迁移NFS服务器(Linux)

我们有一个NFS服务器(Linux),它将文件存储在iSCSI磁盘arrays中。 此服务器正在生产中。 服务器和arrays很旧,必须尽快更换(arrays已经出现严重问题)。

我有更换服务器和arrays准备在不同的networking。

我一直在考虑让rsync的股票,然后再做一遍,所以我同步数据。 我不知道这是否会导致数据不一致…由于股份挂载在lvm上,也许我可以先创build一个快照?

题:

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

你的方法很好,如果你打算在第二个rsync之前禁止写数组。 这将(应)导致一个干净的副本。

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

  1. 当源服务器按原样运行时,rsync文件系统。 这将需要一些时间,让你粗糙的副本,可能有很多不一致之处。
  2. (可选)如果#1需要很长时间,并且有很多写操作,那么在源服务器仍然按原样运行的情况下再次rsync。 这一步将需要更less的时间,所以你得到更好的副本(less写在运行时发生)。
  3. 停止写入源节点。 最好的方法是将其挂载为只读,就像扔石头一样。 但closures服务或使用单用户模式也可以。
  4. rsync它是最后一次。 这一次应该是相当快的。 不应该有很多不一致(步骤#2比#1短得多),所以没有太多的同步。
  5. 做你的支票,并开始新的服务器,而不是旧的。

有几件事情需要注意:

  • 如果你有很多小文件(百万),那么每个rsync都需要一些时间。 (慢行,慢/降级存储等也是如此)
  • 如果您的源存储已经存在问题(驱动器故障或其他可能导致卷不可读的问题),请从#3开始。 你会得到很长的停机时间,但是你最大限度地减less了中间转移失败的风险。
  • 我刚刚得到了整个设备的rsyncing的疯狂想法,文件系统驻留在。 如果目标大于源代码,哪个可以工作。 但我不build议,因为我还没有尝试过自己。

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