NAS文件系统迁移包括存量数据在线迁移+增量数据停机迁移两大步,增量数据停机迁移的时长受元数据扫描和对比所消耗的时间影响,即使最后的增量数据变化很小,也可能由于基础元数据太大而消耗很大对比时间。因此一般NAS文件系统过程中普通存在停机时长难以预估和控制的难题。
NAS存储的数据迁移,迁移时长主要取决于多个要素,包括存款性能,网络带宽,文件数据总量的大小,数据文件的数量多少等。如果采用同型号的存储来备份迁移,比较好处理,主要因素是数据总大小和文件总个数,买个兼容的双活,即可实现自动迁移。主要难点在异构的非同类存储。
NAS不像SAN那样简单,NAS是共享的,金融行业主要用的2种,CIFS和NFS的比较多。CIFS和NFS比较而言,CIFS相比NFS更复杂和难一些,CIFS一般受用户控制,金融行业客户一般不限制IP地址,NFS主要靠IP地址黑白名单来限制,所以CIFS的客户端统计比较困难,NFS相对容易,因为客户端IP地址可见,好统计,CIFS如果只看用户,客户端难以统计,再加上CIFS还有二次共享等,就更加难以迁移,因此更多时候金融行业选择NAS较多。针对这个问题,结合各个同行的经验,一般建议以下的方式。
1、首先要站在业务连续性视角来梳理各应用系统的关联关系,梳理NAS共享卷的挂载关系以及相互依赖关系,还有每个NAS共享卷挂载点的数据读写时间段、读写频率等,形成详细的统计分析表,可以按应用系统及重要程度为维度进行挂载卷的排序,然后跟进应用系统的维护停机窗口制定迁移计划和切换计划。
2、评估老NAS存储的性能情况及业务系统的负载情况,在新NAS存储分配新的共享卷组,然后可以使用一台专用NAS数据迁移服务器,在其上挂载老NAS存储共享卷(只读)和新NAS共享卷(可读写),使用rsync + inotify 方式来实现文件的实时复制。对于此种方案的选择需要考虑文件存储的大小,如果文件大小达到的1GB以上容易出现文件损坏。以上不论是采用哪种方式实现,都必须考虑NAS存储文件过程中所占用的带宽问题。建议使用rsync的limit参数对传输速率进行限制以免影响业务的正常运行。
3、根据增量同步数据执行耗时情况以及业务系统停机维护窗口时长,统筹分析关联系统影响情况,在变更窗口期内进行相关应用进程的停止,执行增量数据同步,同时更新/etc/fstab设置,执行umount老挂载点和mount新挂载点的操作,并验证新挂载点的读写权限,核对该NAS共享卷所有挂载点均调整完毕,检查无误后启动应用进程并做好交易验证, 然后对外提供服务。
4、由于NAS共享卷可能很多,且每个共享卷的挂载点也很多,所以可能需要开展很多个批次的变更,务必要提前沟通好各项细节,而且要做好操作培训,执行结果的核对验证,避免遗漏挂载点导致的数据不一致的情况。
总的来说停机时长与业务本身有很大的关系,NAS大量读写且没有相对有效空闲期的业务停机时长的预估会更不受控制,比如手机银行,这类系统为了尽量降低停机时长,可在系统设计时就充分引入高可用集群机制,采用NAS节点逐步切换的方式完成。此时的风险点在于主备切换过程有相同应用节点挂载不同NAS存储存在短暂的部分新生成文件不一致的问题,在快速切换完成后再用rsync做一次同步即可。可在日常运维中建立起数据的同步机制,定期全量备份数据文件,如需灾备切换或是发送其他异常情况,只需再同步增量数据,同步时间将会大大缩短。如果文件数据较多,应该定期按特定规则打包、压缩文件,一是减少数据文件,能释放存储的读文件能力,更重要的是能大大缩短文件的同步时间。