Назад | Перейти на главную страницу

Перенос сервера NFS (Linux)

У нас есть сервер NFS (Linux), который хранит файлы в дисковом массиве iSCSI. Этот сервер находится в производстве. Сервер и массив очень старые и вскоре должны быть заменены (массив уже в серьезных проблемах).

У меня есть готовый заменяющий сервер и массив в другой сети.

Я думал о синхронизации общих ресурсов, а затем повторить это снова, чтобы синхронизировать данные. Я не знаю, могло ли это вызвать несоответствие данных ... Поскольку общие ресурсы монтируются через lvm, может быть, я мог бы сначала сделать снимок?

ВОПРОС:

Как лучше всего перенести все данные? Есть ли у вас какие-либо советы?

Rsync + rsync или snapshot + rsync на самом деле не будет иметь большого значения - с rsync, возможно, более удобным, поскольку вы можете в конечном итоге сжимать / шифровать данные во время передачи, не беспокоясь о необходимости использовать дополнительные команды. В обоих случаях вы всегда будете пытаться догнать то, что ваши пользователи могли скопировать на общий ресурс с момента последнего rsync, включая частичный файл, который все еще находится в пути. Честно говоря, я бы порекомендовал вам сделать первую копию с помощью rsync в период низкого использования. Затем предупредите пользователей, что произойдет небольшой сбой из-за необходимого обслуживания. Остановить запись сервисов на диск. Перемонтируйте старый общий ресурс в режиме только для чтения, выполните последнюю rsync, а затем полностью замените старый общий ресурс nfs новым. Если вы хотите / можете, вы можете предоставить клиентам доступ только для чтения в течение этого периода. 100% доступность - это чистая мечта, и лучше остановить клиентов на 1 час, чем гнаться за возможными бесконечными жалобами на потерянные / поврежденные данные и сбои приложений.

Ваш подход хорош, если вы планируете отключить запись в массив перед вторым rsync. Это (должно) привести к чистой копии.

В зависимости от обстоятельств, чтобы минимизировать время простоя, выполните тройную rsync:

  1. rsync файловых систем, пока исходный сервер работает как есть. Это займет некоторое время, и вы получите черновик, возможно, с множеством несоответствий.
  2. (необязательно) Если №1 занимает много времени, и у вас в это время много операций записи, выполните синхронизацию с исходным сервером как есть. Этот шаг займет меньше времени, и вы получите гораздо лучшее копирование (меньше операций записи во время его работы).
  3. Прекратить запись в исходный узел. Лучший способ - смонтировать его только для чтения, как предлагает stoned. Но отключение служб или использование однопользовательского режима тоже подойдут.
  4. rsync в последний раз. На этот раз это должно быть довольно быстро. Не должно быть много несоответствий (шаг №2 намного короче, чем №1), поэтому синхронизировать не так много.
  5. Проведите проверки и запустите новый сервер вместо старого.

Однако следует отметить несколько моментов:

  • Если у вас много маленьких файлов (миллионы), каждый rsync в любом случае займет некоторое время. (то же самое касается медленных линий, медленных / деградированных хранилищ и т. д.)
  • Если в исходном хранилище уже есть проблемы (неисправные диски или что-то еще, что может привести к тому, что том станет нечитаемым), просто начните с №3. Вы получите длительное время простоя, но сведете к минимуму риск того, что он потерпит неудачу при передаче.
  • Мне только что пришла в голову безумная идея синхронизировать все устройство, на котором находится файловая система. Что может сработать, если цель больше источника. Но не рекомендую, так как не пробовал.