通过存储端复制的技术迁移速度更快,但是对源端和目标端NAS设备有品牌、型号和版本的要求,为了满足这个要求可能要对老NAS设备进行版本升级。在这个时候NAS数据迁移是选择使用客户端进行迁移还是通过存储端进行数据迁移 ,希望同业专家可以谈谈自己的经验和实践。
一般情况都是主机端进行迁移,因为一般都不是同一品牌的,即使是统一品牌,估计新旧存储的双活兼容也不容易。
存储侧:不同品牌的,我们知道SAN有网关,异构虚拟化等,NAS好像没有或比较差;同品牌的可能也受到代次的问题,不一定兼容;
主机侧:利用工具如BY,或者市场上主流的双机软件,storage foudation,BCP,NEC EC cluster,Life keeper等,或者自己复制;
总之,主机侧方便可行主流一些。
收起1、存储端迁移更多依赖存储厂商和存储设备自身的功能,借助存储底层的数据同步功能完成数据迁移,这种方案速度最快相对也最安全稳定,不用担心操作系统和文件系统对存储文件的影响。缺点是价格高同时要考虑设备兼容性
2、客户端迁移不受设备影响,只要能访问就可以实现数据迁移。需要考虑的是迁移工具对文件权限的影响(例如文件权限、共享权限);同时可能存在数据复制不完整的情况(例如正在打开的数据库文件、数据库临时文件等)
如果可以选择,尽量选择存储端同步。
NAS文件系统数据迁移确实是一个复杂的过程,其中增量数据停机迁移的时长受元数据扫描和对比所消耗的时间影响比较大。对于这个问题,一些经验和解决方案分享如下:
1、首先要站在业务连续性视角来梳理各应用系统的关联关系,梳理NAS共享卷的挂载关系以及相互依赖关系,还有每个NAS共享卷挂载点的数据读写时间段、读写频率等,形成详细的统计分析表,可以按应用系统及重要程度为维度进行挂载卷的排序,然后跟进应用系统的维护停机窗口制定迁移计划和切换计划。
2、评估老NAS存储的性能情况及业务系统的负载情况,在新NAS存储分配新的共享卷组,然后可以使用一台专用NAS数据迁移服务器,在其上挂载老NAS存储共享卷(只读)和新NAS共享卷(可读写),可使用rsync命令从老NAS存储共享卷将数据同步到新NAS存储共享卷,并记录首次全量数据同步的耗时情况,然后可以再次使用rsync命令同步数据,并记录增量同步数据的耗时情况,将操作步骤和耗时情况登记到统计分析表中,以此类推。
3、根据增量同步数据执行耗时情况以及业务系统停机维护窗口时长,统筹分析关联系统影响情况,在变更窗口期内进行相关应用进程的停止,执行增量数据同步,同时更新/etc/fstab设置,执行umount老挂载点和mount新挂载点的操作,并验证新挂载点的读写权限,核对该NAS共享卷所有挂载点均调整完毕,检查无误后启动应用进程并做好交易验证, 然后对外提供服务。
4、由于NAS共享卷可能很多,且每个共享卷的挂载点也很多,所以可能需要开展很多个批次的变更,务必要提前沟通好各项细节,而且要做好操作培训,执行结果的核对验证,避免遗漏挂载点导致的数据不一致的情况。
NAS存储数据迁移本身是一个复杂的过程,一般这个过程都要求我们在不影响业务运行的前提下完成的,最多也就是在存储切割那一个小时间窗口允许NAS的访问中断一会儿。笔者近期正好参与过NAS迁移的实施,使用存储端和主机客户端的迁移都涉及到了,以下就我们实施的具体实际梳理一点感受。NAS数据的迁移主要考虑的点包括数据的一致性,数据文件的权限不能变化,复制迁移的过程尽可能减小对业务的影响(比如带宽的占用)及业务中断的时间。
就实现方式而言,个人觉得能在存储进行的数据就优先选择存储端进行,因为存储端数据迁移的整个过程几乎可以做到用户无感知,业务无感知。且仅在初始数据同步时占用部分存储带宽,后续增量数据的复制数据可以做到实时同步,且可以保证目录及文件的权限无变化。最后仅需要在存储切割时影响业务访问。但是存储端迁移一般限制也比较大,一般只在两边NAS存储均为一家厂商情况下实现,甚至有时候要求是同型号的存储。同时,存储端数据迁移的工具也一般由厂商提供,对存储厂商的要求较高。
在实际环境中,使用主机客户端方式实现的情况更多一些。为了尽量减小对生产环境的影响,我们在实施过程中尽量避免安装额外的工具客户端,使用系统自带的rsync工具文件同步的方式完成迁移。rsync同步过程需要考虑的因素包括文件权限、网络带宽占用、增量同步的时间间隔,NAS存储切割时间点的数据校验等。总体需要人工控制的因素较多,因此实施过程会相对复杂,且对生产环境带来一定影响。笔者在rsync同步过程中,因为碎文件较多,在未限制同步带宽的情况下因长时间占用带宽影响其他业务系统访问性能的问题,后续通过带宽限制解决,带宽限速又会大大延长同步的时间。
综合以上,在有条件选择存储端同步的情况下有限选择存储端同步。如若不可,在主机端同步需要充分考虑同步过程数据的一致性、文件及目录的权限、对生产环境带来的可能影响等,做好应急预案。避免出现问题时,长时间影响业务的情况发生。
针对这个问题,我可以给出以下建议:
总之,选择存储端复制的技术还是使用客户端进行数据迁移,需要根据具体情况进行评估和选择。在进行数据迁移之前,需要进行充分的准备和测试,以确保数据的安全和可靠性。