Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Перенос данных между серверами с помощью LVM

Масштабирование физических серверов - вопрос, что называется, болезненный. Если добавлять память или диски - это неизбежно приводит к простоям. При апгрейде дисковой подсистемы возникает еще и необходимость перенести всю информацию со старого сервера на новый. Самое простое решение - снять диски с одного сервера и переставить в другой - зачастую не работает. Старый и новый серверы могут находиться в разных дата-центрах, иногда даже в разных городах или странах. Можно, конечно, копировать данные по сети, но это займет слишком много времени. Что же делать?

Совсем недавно мы столкнулись с описываемой проблемой: нам понадобилось перенести данные со старого сервера на новый, более производительный. Естественно, что нам хотелось избежать длинного даунтайма. Мы стали искать в Интернете ответ на вопрос о том, как это можно сделать - и наткнулись на одно не самое простое, но небезынтересное решение. У нас оно вполне нормально сработало.

Мы решили поделиться с ним нашими читателями и надеемся, что кому-то оно тоже поможет. Подробно все расписано по ссылке выше .

Процесс подразделяется на следующие шаги:

  1. Подготовка нового сервера: загрузка с внешнего носителя, подготовка блочных устройств, разметка дисков, создание RAID-массивов.
  2. Экспорт блочных устройства по iSCI. Создание iSCI-таргетов.
  3. Запуск iSCI-инициатора на старом сервере с последующим подключением к таргетам на новом. После чего блочные устройства станут доступными на старом.
  4. Добавление блочного устройства нового сервера в LVM-группу на старом.
  5. Копирование данных на новом сервере путем зеркалирования в LVM.
  6. Отключение старого сервера.
  7. Монтирование файловой системы на новой машине с последующей корректировкой настроек.
  8. Перезагрузка нового сервера с дисков с последующим перезапуском всехь серверов.

По ссылке выше все разъяснено подробно, с примерами команд и их выводов. Мы протестировали описанный подход под Debian - все вполне нормально работало.

Плюсы этого подхода вполне очевидны: никакого простоя, во время переноса данных все будет работать. Если с новым сервером возникают какие-то проблемы, то можно просто перезапустить старый.

Единственный недостаток (но можно ли это назвать недостатком в строгом смысле слова?) этого способа заключается в его сложности, но альтернативы у нас пока что нет. А вы что думаете по поводу предлагаемого способа? Каким способами переноса данных пользуетесь вы?