понедельник, 1 августа 2016 г.

Копия сервера без выключения.

Руководство поставило задачу - сделать копию сервера БД  mysql. Копия потребовалась для тестирования обновлений, которые в дальнейшем должны быть применены на сервере.
Данный сервер БД используется системой биллинга организации, где я в текущий момент работаю. Сервер "железный", а переносить требовалось было на виртуалку Hyper-V. При этом условия были таковы, что нужно было обойтись только штатными средствами ОС, без установки какого-либо дополнительного софта, остановки сервисов, перезагрузок и выключений.
1. Подключаем диск для копии. Загружаемся с Live CD в подготовленной виртуалке. Я грузился с Ubuntu-desktop 14.04. Диск не монтируем. Диск виден в системе как sda.
2. Через Network Manager настраиваем сеть, таким образом, чтобы сервер-источник был доступен по ssh.
3. Открываем терминал, командуем:
sudo -i
получаем рут-привелегии.
4. Переключаемся в консоль сервера который будем копировать, смотрим диски командой
fdisk -l
понимаем, какой надо копировать. В моем случае был единственный диск - sda.
5. Далее на машине загруженной с Live CD командуем:
ssh root@remote "dd if=/dev/sda" | dd of=/dev/sda conv=noerror,sync
вводим пароль рута на сервере источнике,
bs оставил по умолчанию - т.е. 512 байт. Т.к. до этого пробовал использовать bs=8M и потерпел неудачу, но т.к. процедуры связанные с dd занимают продолжительное время решил не экспериментировать. Теперь надо ждать когда dd снимет дамп, ошибок быть не должно.
6. Dd отработал, можно глянуть разметку тем же fdisk, и сравнить с разметкой на сервере, который мы копировали. Они должны быть одинаковы. Теперь можно загрузиться с этого диска. Все должно пройти корректно, но могут и возникнуть проблемы, например с отсутствием нужных драйверов, тогда придется разбираться.
7. Завершающим шагом является снятие дампа БД mysql на сервере источнике, и заливка дампа на сервере приемнике.

Комментариев нет:

Отправить комментарий