存储数据迁移需求和迁移工具分析

随着互联网的发展,数据量的爆炸式增长已经成为一种常态,为了更好地使用和管理这些数据,通常需要升级存储系统来满足客户对数据存储的要求。升级新的存储系统能够提供高可靠、高可扩展、高性能和高安全的存储服务,但在升级过程中也带来了很多新的挑战,其中就包括数据的迁移:即将所需数据从原存储系统平滑迁移到新存储中,在项目实际交付过程中,往往需要使用数据迁移工具,结构化存储迁移工具已经日趋成熟并且相对可控,所以本文将着重介绍非结构化类数据将如何迁移,并从存储迁移的需求和挑战,以及存储迁移工具的分类、特点及应用实践等几个方面进行介绍。

存储迁移的需求

◎ 数据中心迁移

随着公司的业务发展,数据中心的迁移需求不断加大,在数据中心迁移过程中,需要将数据从原来的数据中心的业务、数据、设备迁移到新的数据中心,数据是企业的生命,数据的迁移也是重中之重。

◎ 硬件替代

原有数据中心存储性能、稳定性、容量等无法满足企业发展要求时,存储系统需要进行升级时,更多的情况都是存储层的硬件升级,如从中端升级至高端;另一方面,存储的架构也会同步升级,如从传统架构升级至分布式架构,从现有的SCSI协议升级至NVME协议,这时就需要将数据从旧设备迁移到新的存储上。

◎ 技术转换

随着技术的不断更新换代,存储系统也在不断更新。其中之一就是数据存储方式的替换,例如现有数据存储方式为树型结构(CIFS),随着企业发展,文件规模过亿,文件检索会非常慢,需要更换为扁平化存放,如对象存储的方式,相应的就需要进行存储系统的更换和数据的迁移。

存储迁移的挑战

存储数据迁移面临着一些挑战,主要包括以下几个方面:

① 数据迁移的复杂性

数据跨存储系统迁移时,需要考虑数据在存储之间的传输、数据同步、数据一致性等问题,这些问题都增加了数据迁移的复杂性。

② 数据迁移的速度

存储更新替换时,新购存储通常为异构,即无法采用存储层进行数据迁移,数据的传输速度很容易受到迁移工具性能、网络带宽、原存储读取性能、目标存储写入性能等因素的影响,导致数据迁移速度变慢。

③ 迁移过程中的数据安全

存储系统保存的是企业的核心数据,因此数据安全性是迁移过程中需要关注的一个重要问题。在数据迁移过程中,需要保证数据的一致性及不会被非法窃取或篡改,要求迁移工具必须具有容错能力和数据实时校验的功能。

④ 数据迁移的时间和成本

数据迁移需要消耗大量的时间和成本,这些消耗主要来自于数据传输、数据同步和数据转换等方面。因此,需要选择一种高效、可靠且经济的迁移方案。

⑤ 迁移过程中的业务保障

在迁移过程中,必须保证业务的连续性和稳定性,避免对业务造成影响或中断。因此,需要考虑如何在保证业务不中断的情况下完成数据迁移。

存储迁移工具的主要功能

存储迁移工具主要是帮助用户进行存储系统数据迁移,存储数据迁移一般要求业务连续性,不能对生产业务造成任何影响,或严格按照规划的停机窗口完成数据迁移。所以在不同的业务场景和迁移场景下,需要选择合适的数据迁移工具。以下是存储迁移工具的一些常见功能(具体功能和实现方式可能因厂商产品而异):

◎ 数据同步/迁移

将源存储系统中的数据与目标存储系统中的数据进行同步/迁移,确保数据在同步/迁移过程中不会遗失或重复。

◎ 迁移任务管理

管理数据迁移的任务,例如创建、启动、暂停和恢复任务,以及监控任务状态和进度等。

◎ 数据验证和测试

在迁移完成后,进行数据验证和测试,以确保所有数据都已正确地迁移并可以正常访问。

◎ 容错和恢复

在迁移过程中,发生故障或意外情况时,可以通过容错和恢复机制来保证数据的安全性和可靠性。

◎ 配置管理

管理源和目标存储系统的配置信息,例如连接信息、认证信息和存储策略等。

◎ 性能调优

根据用户的需求,调整数据迁移的吞吐量、并发度和网络带宽等参数,以提高数据迁移的效率和性能。

◎ 日志记录和报告

记录数据迁移的日志信息,并生成报告,以便用户查看迁移的数据量、吞吐量、用时及最终状态。

存储迁移工具的主要分类

◎ 存储自有迁移工具

存储协议相对通用,但存储厂商所使用的底层技术往往不统一,因此存储厂商都会根据自身存储的特点提供存储自带迁移工具。针对通用协议(如非机构化存储提供的CIFS、NFS、对象S3等)进行数据迁移时,厂商会提供相应的迁移服务及迁移工具。

◎ 开源迁移工具

开源迁移工具通常是由社区或开发者共同开发的,具有更广泛的用户群体和更丰富的功能。这些工具通常可以自由定制和扩展,且无需付费,可以在企业预算不足等条件下满足不同的迁移需求。

◎ 专业工具和付费迁移服务

除了提供迁移工具外,还有一些专业服务商可以提供存储迁移的解决方案和迁移服务。这些服务商通常具有更专业的技术和更多的经验,可以为企业提供一站式数据迁移。

存储迁移工具介绍

● 文件的数据迁移

文件存储主要提供如下几种访问协议,如CIFS、NFS和FTP等,不同的文件访问协议适用场景不同,CIFS通常用于Windows个人或者组织共享访问;NFS则是Unix和Linux应用主机共享状态数据适用;S3的适用场景较为广泛,通常为一些“一次写入,多次读取”的访问场景,如社交网站存放的数据。下面针对几种访问协议介绍几种常用的迁移工具:

CIFS迁移工具:Robocopy

Robocopy是Windows自带的命令行工具,可以用于复制和迁移CIFS共享文件夹中的文件和文件夹。它支持多种复制选项,如文件过滤、文件夹排除等,并且具有可靠的错误处理和日志记录功能。

NFS迁移工具:rsync

rsync是一款用于Unix/Linux系统的命令行工具,可以实现文件和文件夹的增量复制和迁移。它支持多种数据传输方式,如SSH、rsync协议等,并且可以保留文件元数据、权限等信息。

● 数据库的数据迁移

本文以最常见的数据库(ORACLE、SQL Server和MySQL)举例,针对不同的数据库需使用不同的迁移工具:

ORACLE迁移工具

云厂商迁移工具,如H3C DTS/阿里云DTS/亚马逊DMS等,这些工具是将ORACLE数据库迁移到云中。支持多种数据源和目标数据库(包括Oracle),提供了可视化的迁移工具和自定义脚本。它还提供了实时数据同步功能,保证数据的一致性。

ORACLE DataGuard:Oracle Data Guard是Oracle的高可用性解决方案之一,它可以将一个数据库实例的数据复制到另一个数据库实例上,从而实现数据备份、灾难恢复和实时数据复制等功能。在数据迁移的场景下,Oracle Data Guard也可以被用来实现无停机/短暂停机下迁移数据库。

数据泵:Oracle数据泵是一种快速、高效地从Oracle数据库中导出和导入数据和元数据的工具。使用数据泵,可以将表、视图、过程、触发器、索引等数据库对象导出为一个二进制文件,然后将其导入到目标数据库中。

ASM镜像:目前使用最多的Oracle数据迁移方式,主要用于主机不变,仅更换存储场景;该方式操作简便,零停机,并且可以实现IO性能的控制。

SQL Server迁移工具

SQL Server迁移助手:这是由微软官方提供的一款免费工具,用于将其他数据库(如MySQL、Oracle)中的数据迁移至SQL Server。它支持多种数据源,提供了简单易用的界面,同时支持自定义脚本。

SQL Server Management Studio (SSMS):SSMS是SQL Server官方提供的免费工具,其中包含了复制向导和复制监视器。复制向导用于创建和配置复制拓扑,而复制监视器用于监控复制拓扑中的活动。

MYSQL迁移工具

MySQL Replication:MySQL自带的复制工具,可以将一个MySQL实例的数据复制到另一个MySQL实例。使用MySQL Replication可以在不停止生产环境的情况下完成数据迁移,因为它允许在复制时进行生产和备份实例之间的切换。

mysqldump:是MySQL自带的备份工具,可以备份整个数据库或单个表,并将备份文件导入到另一个MySQL服务器中。

MySQL Workbench:MySQL官方提供的免费工具,功能强大,包含多个工具和选项,可以进行本地和远程数据迁移和管理。

● 虚拟机或云主机迁移

虚拟机或云主机平台自带工具

虚拟机和云主机迁移主要分为同构迁移和异构迁移,同构迁移(如VMware到VMware)可使用自带的vMotion工具,在线将原有存储虚拟机数据迁移至目标存储中,新华三及其他厂商均有类似的热迁移工具,相同云主机也可以通过云平台进行迁移,但是使用场景较少;在客户上云迁移需求越来越大的场景下,更多的是采用异构迁移工具(如从VMware、青云或其他云平台迁移至H3C云平台、阿里云等)。云平台异构迁移工具也称为V2V工具,如H3C云迁移工具,可以支持把任意源云平台数据迁移至任何目标云平台,并且支持全量复制、增量同步,在线迁移等多种方式;华为的rainbow云平台迁移工具还支持镜像打包并导入,此方式一般做为前面的补充方案。

第三方云迁移工具HyperMotion

HyperMotion可理解为资源调度平台,对于源端Agent代理程序获取数据后直接传输至目标云侧,本身不走数据流,只是单纯做管理。源端侧,分为Agent和Agentless两种模式来获取源端数据,获取到数据后直接通过中间网络传输至目标云侧云存储网关进行存储,做到点到点数据传输和精简数据复制,高效快捷。目标云侧,云存储网关为HyperMotion迁移软件的一个目标侧接收数据的组件,以一个虚拟机示例的形态存在,主要接收源端Agent或Agentless传输过来的迁移数据,由云存储网关来接收写入到目标云盘进行存储。

● 对象存储的数据迁移

针对对象存储的迁移工具主要有以下几种:

rclone迁移工具

rclone是一个开源的命令行工具,用于在不同的存储服务间进行文件传输和同步。rclone支持多种云存储服务,包括本地分布式存储、阿里云、Amazon S3等,并可以通过SFTP、FTP、WebDAV等协议访问本地或远程文件系统。rclone迁移对象存储缺点是速度慢,并且看不到迁移进度。

s3cmd迁移工具

s3cmd是一个基于命令行的工具,用于管理存储桶中的文件。它可以用于上传和下载文件,列出桶中的文件,创建和删除存储桶等。s3cmd是一个开源软件,可以在Windows,Linux和MacOS上运行;s3cmd在trouble shooting时非常有用,在数据迁移时,需要自己写迁移步骤脚本,且要控制并发数。

原厂商云迁移工具

基于云厂商的对象存储迁移工具,如H3C的ONEMigr、阿里云对象存储Import工具、微软的AzCopy等,这些工具通常支持各种云提供商的对象存储,并能将本地或者其他云存储迁移到目标云存储中。需要说明的是基于ceph的分布式对象存储,一般回源都集成到存储里了,属于存储的一个功能部分。

● 容器的数据迁移

容器通常运行在分布式存储中,其迁移工具主要分为平台自带及第三方迁移工具,具体如下:

容器平台自带工具

容器迁移可使用容器的导入导出工具,将容器导出为压缩格式的“gzip”文件,并导入到另一个容器平台中,类似的,可通过docker save保存后再恢复容器;通过容器镜像迁移,通过“Docker commit”将容器镜像保存至镜像库,并通过“Docker run”命令在新存储位置创建容器,从而完成迁移。

VELERO迁移工具

VELERO是一个开源的容器备份和恢复工具,它可以帮助你在Kubernetes环境中进行备份和恢复操作,并且支持在不同Kubernetes集群之间迁移应用和数据,同时支持备份不同容器存储至不同云之间,也支持K8S其他资源的单独备份恢复,如Namespace、ReplicaSets、StorageClasses等。

存储迁移工具的优缺点

在这里插入图片描述

存储迁移工具的发展趋势

随着存储技术的不断发展和应用,存储迁移工具也在不断发展和完善,以下列举几个存储迁移工具的发展趋势:

  • List item

自动化

存储迁移工具将越来越趋向于自动化,可以通过预定义的规则和策略,自动完成数据迁移操作。这可以大大降低数据迁移的时间和成本,提高数据迁移的效率和可靠性。

跨平台

存储迁移工具将越来越趋向于跨平台,可以在不同的操作系统和存储系统中进行数据迁移操作。这可以提高工具的灵活性和通用性,适用于更多的企业需求。

安全性

存储迁移工具将越来越注重安全性,可以通过加密和认证等方式保障数据的安全性。这可以保障企业的业务数据不受到未授权的访问和攻击,保证数据的机密性和完整性。

大数据

随着大数据技术的发展,存储迁移工具也将面临更大规模、更复杂的数据迁移需求。存储迁移工具将需要处理更大规模的数据,同时需要更高的效率和可靠性,保证数据迁移的准确性和一致性。

人工智能

随着人工智能技术的发展,存储迁移工具也将应用更多的AI技术,提高数据迁移的智能化和自适应性。例如,可以通过机器学习算法来分析和预测数据迁移的需求和流量,优化数据迁移的策略和方案。

  • 多云管理

随着多云环境的普及,存储迁移工具也将需要面对多云管理的需求。存储迁移工具将需要支持多个云存储系统之间的数据迁移,提高数据在不同云存储系统之间的可移植性和可扩展性。

  • 管理和监控

存储迁移工具将越来越注重管理和监控,可以通过图形化界面和实时监控系统来管理和监控数据迁移操作。这可以提高工具的易用性和可维护性,帮助管理员更好地管理和维护数据迁移操作。

本文介绍了存储迁移工具的功能、分类、应用场景、优缺点等方面的内容,分析了存储迁移工具的发展趋势和未来发展方向。可以看出,存储迁移工具在企业数据管理和运维方面发挥着重要的作用,可以帮助企业实现数据的可靠、高效和安全的迁移操作,提高数据的价值和利用率。随着存储技术的不断发展和应用,存储迁移工具也将不断发展和完善,为企业数据管理和运维提供更加高效、智能、安全和可靠的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/153347.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSM整合RabbitMQ,Spring4.x整合RabbitMQ

SSM整合RabbitMQ目录 前言版本实现目录参考pom.xml依赖rabbitmq.properties配置文件spring-rabbitmq.xmlspring-mvc.xml或applicationContext.xmlrabbitmq目录下MessageConsumer.javaMessageConsumer2.javaMessageProducer.javaMessageConstant.java 测试调用 扩展消息重发 前言…

硬件测试(一):温循

一、定义: 温度循环试验,也称为热循环试验或高低温循环试验,是将试验样品暴露于预设的高低温交替的试验环境中所进行的可靠性试验。 温循作为自然环境的模拟,可以考核产品在不同环境条件下的适应能力,常用于产…

04训练——基于YOLO V8的自定义数据集训练——在windows环境下使用pycharm做训练-1总体步骤

在上文中,笔者介绍了使用google公司提供的免费GPU资源colab来对大量的自定义数据集进行模型训练。该方法虽然简单好用,但是存在以下几方面的短板问题: 一是需要通过虚拟服务器做为跳板机来访问,总体操作起来非常繁杂。 二是需要将大量的数据上传缓慢,管理和使用非常不友…

微信小程序使用CryptoJS加密PassWord(MD5)

微信小程序使用CryptoJS加密PassWord(MD5) 背景及环境: 微信小程序登录页面,需要加密登录密码发送给后端,使用 MD5 来加密密码 开发工具:微信开发者工具 npm安装CryptoJS 查看有哪些crypto的包 npm search crypto 找到自己需要的包…

鱼哥赠书活动第①期:《脑洞大开:透测试另类实战攻略》《Kali Linux高级渗透测试》《CTF实战:技术、解题与进阶》《构建新型网络形态下的网络空间安全体系》

鱼哥赠书活动第①期: 《脑洞大开:透测试另类实战攻略》1.1介绍: 《Kali Linux高级渗透测试》1.1介绍: 《CTF实战:技术、解题与进阶》1.1介绍: 《构建新型网络形态下的网络空间安全体系》1.1介绍&#xff1a…

Django REST framework API版本管理【通过GET参数传递】

API版本 在开发过程中可能会有多版本的API,因此需要对API进行管理。django drf中对于版本的管理也很方便。 http://www.example.com/api/v1/info http://www.example.com/api/v2/info 上面这种形式就是很常见的版本管理 在restful规范中,后端的API需…

算法题:摆动序列(贪心算法解决序列问题)

这道题是一道贪心算法题,如果前两个数是递增,则后面要递减,如果不符合则往后遍历,直到找到符合的。(完整题目附在了最后) 代码如下: class Solution(object):def wiggleMaxLength(self, nums):…

外汇天眼:罚了!有的面临高额罚款,有的已被拉黑

随着金融监管机构对外汇平台的监管力度不断加强,那些未遵守规则和法律的平台正面临着严厉的制裁,有的将面临高额罚款,有的已被拉黑,旨在确保外汇市场的透明度、公平性和合法性。那么发生了什么,具体新闻如下&#xff1…

串联起深度学习的整体,以及其他领域

1、从模型拟合(收敛)数据关系出发: 2、f从简单的一层和两层连接开始,发展;被表示成 3、如何判断收敛:,即目标函数 4、如何界定任务:,表示什么?表示什么?&a…

29 WEB漏洞-CSRF及SSRF漏洞案例讲解

目录 CSRF漏洞解释,原理等CSRF漏洞检测,案例,防御等防御方案2、设置随机Token3、检验referer来源 SSRF漏洞会比csrf漏洞重要一些SSRF_PHP,JAVA漏洞代码协议运用演示案例:SSRF_漏洞代码结合某漏洞利用测试 如何查找ssrf漏洞 SSRF漏…

【Spring Boot】SpringBoot 单元测试

SpringBoot 单元测试 一. 什么是单元测试二. 单元测试的好处三. Spring Boot 单元测试单元测试的实现步骤 一. 什么是单元测试 单元测试(unit testing),是指对软件中的最⼩可测试单元进⾏检查和验证的过程就叫单元测试。 二. 单元测试的好处…

c语言文件操作详解:fgetc,fputc,fgets,fputs,fscanf,,fprintf,fread,fwrite的使用和区别

前言:在对于c语言的学习中,我们为了持续使用一些数据,为了让我们的数据可以在程序退出后仍然保存并且可以使用,我们引入了文件的概念和操作,本文旨在为大家分享在文件操作中常用的输入输出函数的使用方式和技巧&#x…

计算机的体系与结构

文章目录 前言一、冯诺依曼体系二、现代计算机的结构总结 前言 今天给大家介绍计算机的体系和结构,分为两个板块:冯诺依曼体系和现代计算机的结构。 一、冯诺依曼体系 冯诺依曼体系是将程序指令和数据一起存储的计算机设计概念结构。 冯诺依曼体系可以…

mybatis配置entity下不同文件夹同类型名称的多个类型时启动springboot项目出现TypeException源码分析

记录问题:当配置了 mybatis.type-aliases-packagecom.runjing.erp.entity 配置项时,如果entity文件夹下存在不同子文件夹下的同名类型时,mybatis初始化加载映射时会爆出org.apache.ibatis.type.TypeException: The alias TestDemo…

SpringBoot集成WebSocket讲解

文章目录 1 WebSocket1.1 简介1.2 WebSocket作用和调用1.2.1 作用1.2.2 js端调用 1.3 Javax1.3.1 服务端1.3.1.1 服务端接收1.3.1.2 服务端集成1.3.1.3 ping和pong消息 1.3.2 客户端1.3.2.1 客户端接收1.3.2.2 客户端发送 1.4 WebMVC1.4.1 服务端1.1.4.1 服务端接收1.1.4.2 服务…

如何列出 Ubuntu 和 Debian 上已安装的软件包

当你安装了 Ubuntu 并想好好用一用。但在将来某个时候,你肯定会遇到忘记曾经安装了那些软件包。 这个是完全正常。没有人要求你把系统里所有已安装的软件包都记住。但是问题是,如何才能知道已经安装了哪些软件包?如何查看安装过的软件包呢&a…

集线器、交换机、路由器是如何转发包的

集线器、交换机、路由器是如何转发包的 集线器交换机MAC地址表的维护 路由器路由表中的信息路由器的包接收操作查询路由表确定输出端口找不到匹配路由时选择默认路由包的有效期通过分片功能拆分大网络包路由器发送操作中的一些特点 参考文档 集线器 集线器是一层(物…

Springcloud中间件-----分布式搜索引擎 Elasticsearch

该笔记是根据黑马程序员的课来自己写了一遍的,b站有对应教程和资料 第一部分 第二部分 第三部分 # 分布式搜索引擎01 – elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c…

【centos7安装ElasticSearch】

概述 最近工作中有用到ES ,当然少不了自己装一个服务器捣鼓。本文的ElasticSearch 的版本: 7.17.3 一、下载 ElasticSearch 点此下载 下载完成后上传至 Linux 服务器,本文演示放在: /root/ 下,进行解压&#xff1…