迁移 NFS 服务器 (Linux)

迁移 NFS 服务器 (Linux)

我们有一台 NFS 服务器(Linux),它将文件存储在 iSCSI 磁盘阵列中。该服务器正在生产中。服务器和阵列都非常旧,必须尽快更换(阵列已经出现严重问题)。

我已经在不同的网络中准备好了替换服务器和阵列。

我一直在考虑 rsyncing 共享,然后再次执行此操作以同步数据。我不知道这是否会导致数据不一致... 由于共享是通过 lvm 挂载的,也许我可以先制作快照?

问题:

迁移所有数据的最佳方法是什么?您有什么建议吗?

答案1

如果您计划在第二次 rsync 之前禁用对数组的写入,那么您的方法很好。这将(应该)导致干净的副本。

根据具体情况,为了最大限度地减少停机时间,请执行三重 rsync:

  1. 在源服务器按原样运行时对文件系统进行 rsync。这将花费一些时间并为您提供粗略的副本,可能存在很多不一致之处。
  2. (可选)如果 #1 花费很长时间,并且同时有大量写入,则在源服务器仍按原样运行的情况下再次 rsync。此步骤将花费更少的时间,因此您将获得更好的副本(运行时发生的写入更少)。
  3. 停止写入源节点。最好的方法是按照 stoned 的建议以只读方式挂载它。但关闭服务或使用单用户模式也可以。
  4. 最后一次 rsync。这次应该会很快。应该不会有很多不一致之处(步骤 #2 比步骤 #1 短得多),所以不需要同步太多内容。
  5. 进行检查并启动新服务器来代替旧服务器。

但有几点需要注意:

  • 如果您有很多小文件(数百万),每次 rsync 都会花费一些时间。(对于慢速线路、慢速/降级的存储等也是如此)
  • 如果您的源存储已经出现问题(驱动器故障,或者其他可能导致卷无法读取的因素),请从第 3 项开始。您将面临较长的停机时间,但可以最大程度地降低传输过程中发生故障的风险。
  • 我刚刚想到了一个疯狂的想法,即同步整个设备,文件系统就驻留在该设备上。如果目标大于源,这种方法可能有效。但我不建议这样做,因为我自己还没有尝试过。

答案2

Rsync+rsync 或快照+rsync 不会有太大区别 - rsync 可能更方便,因为您最终能够在传输过程中压缩/加密数据,而无需使用额外命令。在这两种情况下,您都将永远尝试赶上用户自上次 rsync 以来可能已在共享上复制的内容,包括仍在传输中的部分文件。老实说,我建议您在使用率低的时期使用 rsync 进行第一次复制。然后,警告您的用户由于需要维护,将出现小规模中断。停止在磁盘上写入的服务。以只读模式重新安装旧共享,执行最后一次 rsync,然后用新共享完全替换旧 nfs 共享。如果您愿意/可以,您可以在此期间为客户提供只读访问权限。100% 可用性是一个纯粹的梦想,最好让您的客户停止 1 小时,而不是追逐可能无休止的数据丢失/损坏和应用程序崩溃的投诉。

相关内容