Мне нужно клонировать рабочий 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 повлияет на производительность сервера во время его работы.
Однако после того, как у вас есть изображение, вы можете настроить параметры сети и без проблем восстановить его.