随着互联网的发展,数据量的爆炸式增长已经成为一种常态,为了更好地使用和管理这些数据,通常需要升级存储系统来满足客户对数据存储的要求。升级新的存储系统能够提供高可靠、高可扩展、高性能和高安全的存储服务,但在升级过程中也带来了很多新的挑战,其中就包括数据的迁移:即将所需数据从原存储系统平滑迁移到新存储中,在项目实际交付过程中,往往需要使用数据迁移工具,结构化存储迁移工具已经日趋成熟并且相对可控,所以本文将着重介绍非结构化类数据将如何迁移,并从存储迁移的需求和挑战,以及存储迁移工具的分类、特点及应用实践等几个方面进行介绍。
存储迁移的需求
◎ 数据中心迁移
随着公司的业务发展,数据中心的迁移需求不断加大,在数据中心迁移过程中,需要将数据从原来的数据中心的业务、数据、设备迁移到新的数据中心,数据是企业的生命,数据的迁移也是重中之重。
◎ 硬件替代
原有数据中心存储性能、稳定性、容量等无法满足企业发展要求时,存储系统需要进行升级时,更多的情况都是存储层的硬件升级,如从中端升级至高端;另一方面,存储的架构也会同步升级,如从传统架构升级至分布式架构,从现有的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技术,提高数据迁移的智能化和自适应性。例如,可以通过机器学习算法来分析和预测数据迁移的需求和流量,优化数据迁移的策略和方案。
- 多云管理
随着多云环境的普及,存储迁移工具也将需要面对多云管理的需求。存储迁移工具将需要支持多个云存储系统之间的数据迁移,提高数据在不同云存储系统之间的可移植性和可扩展性。
- 管理和监控
存储迁移工具将越来越注重管理和监控,可以通过图形化界面和实时监控系统来管理和监控数据迁移操作。这可以提高工具的易用性和可维护性,帮助管理员更好地管理和维护数据迁移操作。
本文介绍了存储迁移工具的功能、分类、应用场景、优缺点等方面的内容,分析了存储迁移工具的发展趋势和未来发展方向。可以看出,存储迁移工具在企业数据管理和运维方面发挥着重要的作用,可以帮助企业实现数据的可靠、高效和安全的迁移操作,提高数据的价值和利用率。随着存储技术的不断发展和应用,存储迁移工具也将不断发展和完善,为企业数据管理和运维提供更加高效、智能、安全和可靠的支持。