Была поставлена задача — перенести mySQL ноду с одного сервера на другой сервер и сделать это с минимальным downtime. Ниже описание действий, которые необходимо сделать, чтобы перенести сервер с одной железки на другой.
Дано:
1) Сервер с OS: CentoOS 6(CloudLinux) — диски обычные с software raid 1
2) Сервер с OS: CentoOS 6 — 2 диска SAS 10k 300GB — hardware raid1 и 2 SSD Samsung EVO 480GB — hardware raid1
3) Система для создания бэкапов Acronis
Изначально я думал сделать бэкап разделов и восстановить на новые диски, но увы это не сработало и пришлось делать бэкап папок через Акроснис. После удачного создания бэкапа разворачиваем его уже на новый сервер — тут нужно заменить, что я на новый сервер установил CentOS и разметка была примерная, что и на сервере 1. Для восстановления файлов я использовал Acronis Boot Image. Восстановился я все файлы во временный раздел. Тут все делалось довольно быстро минут 10. После чего грузимся с LiveCD CentOS 6 и монтируем временный раздел в какую либо папку (/opt) после чего делаем:rsync -arzgop /opt/restored/ /mnt/system
Тут следуют упоминуть, что в процессе восстановления файлов я не восстанавливал /etc/fstab. После завершения rsync — можно сделать reboot и система с вероятностью 95% вгрузиться норм, но я же сделал :
grub-install и mkinitramfs после чего сделал reboot и система загрузилась без проблем. После загрузки системы, поставить rsync основных папок — кроме fstab — /boot — и делал rsync папки с mysql.
В 00:00 я сделал финальный rsync и перегрузил сервер .. и выключил старый сервер . В результате я без проблем перенес все данные и последний rsync занял у меня совсем не много времени 10 мин, это и есть наш downtime