Библиотека сайта rus-linux.net
Перенос данных между серверами с помощью LVM
Масштабирование физических серверов - вопрос, что называется, болезненный. Если добавлять память или диски - это неизбежно приводит к простоям. При апгрейде дисковой подсистемы возникает еще и необходимость перенести всю информацию со старого сервера на новый. Самое простое решение - снять диски с одного сервера и переставить в другой - зачастую не работает. Старый и новый серверы могут находиться в разных дата-центрах, иногда даже в разных городах или странах. Можно, конечно, копировать данные по сети, но это займет слишком много времени. Что же делать?
Совсем недавно мы столкнулись с описываемой проблемой: нам понадобилось перенести данные со старого сервера на новый, более производительный. Естественно, что нам хотелось избежать длинного даунтайма. Мы стали искать в Интернете ответ на вопрос о том, как это можно сделать - и наткнулись на одно не самое простое, но небезынтересное решение. У нас оно вполне нормально сработало.
Мы решили поделиться с ним нашими читателями и надеемся, что кому-то оно тоже поможет. Подробно все расписано по ссылке выше .
Процесс подразделяется на следующие шаги:
- Подготовка нового сервера: загрузка с внешнего носителя, подготовка блочных устройств, разметка дисков, создание RAID-массивов.
- Экспорт блочных устройства по iSCI. Создание iSCI-таргетов.
- Запуск iSCI-инициатора на старом сервере с последующим подключением к таргетам на новом. После чего блочные устройства станут доступными на старом.
- Добавление блочного устройства нового сервера в LVM-группу на старом.
- Копирование данных на новом сервере путем зеркалирования в LVM.
- Отключение старого сервера.
- Монтирование файловой системы на новой машине с последующей корректировкой настроек.
- Перезагрузка нового сервера с дисков с последующим перезапуском всехь серверов.
По ссылке выше все разъяснено подробно, с примерами команд и их выводов. Мы протестировали описанный подход под Debian - все вполне нормально работало.
Плюсы этого подхода вполне очевидны: никакого простоя, во время переноса данных все будет работать. Если с новым сервером возникают какие-то проблемы, то можно просто перезапустить старый.
Единственный недостаток (но можно ли это назвать недостатком в строгом смысле слова?) этого способа заключается в его сложности, но альтернативы у нас пока что нет. А вы что думаете по поводу предлагаемого способа? Каким способами переноса данных пользуетесь вы?