Мне нужно клонировать работающий сервер Linux. Мы не можем выключить рабочий сервер. Есть ли способ получить клон и развернуть его на другом сервере?
Мне нужно клонировать работающий сервер Linux. Мы не можем выключить рабочий сервер. Есть ли способ получить клон и развернуть его на другом сервере?
Ответы:
Есть много способов скопировать диски, файловые системы или файлы. Как правило, копирование файловой системы дает вам хороший клон с гибкостью, которая может быть немного другого размера в целевой системе. Когда целевая система работает под управлением какого-либо живого Linux (knoppix, ubuntu live и т. Д.), Загруженного с компакт-диска, вы можете создавать разделы на диске, используя fdisk или ваше любимое приложение для работы с разделами. Предполагая, что у вас SSH-сервер работает в исходной системе, используйте подход, подобный следующему:
http://www.linuxfocus.org/English/March2005/article370.shtml
Волшебство происходит в этой команде:
ssh sourcePC 'dump -0 -f - /' | restore -r -f -
При использовании какого-либо конкретного метода для клонирования дисков в реальной среде Linux ваша единственная проблема, скорее всего, связана с базами данных. Лучший способ сделать резервную копию и восстановить базу данных - использовать их утилиту для создания снимка базы данных в формате ascii непосредственно перед дампом файловой системы. Для MySQL есть:
mysqldump --all-databases > mysql_databases.sql
Для postgresql есть:
pg_dumpall > pg_databases.sql
Если вы столкнулись с какой-либо постоянной ошибкой в новой системе, восстановите базу данных. В качестве альтернативы, как только вы отключите службы в исходной системе, снова выполните дамп БД и восстановите его в целевой системе, и вы не пропустите какие-либо недавно измененные данные.
Создайте расположение дисков на новой машине так, как вы этого хотите.
Используйте rsync для переноса содержимого диска. Повторите несколько раз, чтобы наверстать упущенное.
На новой машине поэкспериментируйте с тем, что вам нужно будет сделать дополнительно для правильной загрузки. Grub, например, и приведёт его в согласованное состояние.
Пока вы не сможете выключить старую машину, регулярно выполняйте rsync, чтобы новый диск был близок к старому.
Затем переведите старый в режим обслуживания, снова выполните rsync и загрузите новый, который должен работать, как старый.
Мой коллега клянется System Imager:
http://wiki.systemimager.org/index.php/Main_Page
Я не знаю, насколько хорошо это будет работать для «живых» систем.
В противном случае я думаю, что вы застряли, делая вещи вручную:
Если вы можете привести свои базы данных в согласованное состояние на диске, вы можете просто использовать DAR, чтобы сделать копию всего, а затем записать его обратно на новый сервер.
Синхронизация ваших баз данных в согласованном состоянии на диске может быть сложной, но может просто сработать моментальный снимок, а затем восстановить его после восстановления образа DAR. DAR повлияет на производительность сервера во время его работы.
Однако, получив изображение, вы можете настроить параметры сети и без проблем восстановить его.