Назад | Перейти на главную страницу

Сделайте идентичную копию Centos

У меня работает сервер CENTOS, и я хочу сделать его идентичную копию (все программное обеспечение, пользователей), например, сдвоенный сервер для целей зеркалирования. Как я могу это сделать?

Пока dd копирует один смонтированный диск на другой, копия будет непоследовательный. Файловая система постоянно меняется, а если вы используете журналируемую файловую систему, тем более. Использование dd лучше всего работает, когда диск статический, т.е. только для чтения. В большинстве случаев это не вариант, но если у вас есть доступ только для чтения, это будет работать нормально.

Есть и другие инструменты для выполнения этой функции клонирования. Но проще всего использовать функцию зеркала LVM. Предостережение заключается в том, что вам уже понадобится существующая файловая система на LVM. Используя зеркало LVM, вы можете делать горячие копии файловой системы, и когда вы сломаете зеркало, чтобы получить второй диск, образ файловой системы будет в согласованном состоянии, потому что все записанные изменения будут отправляться последовательно. Это требует небольшой работы, кроме запуска процесса зеркалирования и его остановки после того, как оригинал будет полностью реплицирован.

Если по какой-то причине вы не хотите использовать функцию зеркалирования, вы всегда можете создать снимок файловой системы и реплицировать снимок, доступный только для чтения, на другой диск. Хотя это не так автоматично, как зеркалирование, и немного беспорядочно (дополнительные шаги), его можно заставить работать нормально.

Наконец, вы всегда можете попробовать rsync по-своему. Это звучит странно, но я использовал его для успешной репликации сервера в 400 милях от локального диска. Загвоздка заключалась в том, что мне пришлось вручную изменить /etc/fstab файл (разделы были разные), но в остальном загружается нормально.

Остается один больной вопрос: сделать диск загрузочным. Использование dd скопирует загрузчик (так как это поблочная копия), но если вы используете методы LVM или rsync, вам необходимо переустановить загрузчик. К счастью, это не так уж сложно и может быть легко выполнено с дисками, отличными от текущего (исходного?) Корневого filesystmem.

Я думаю, что «dd» сделает то, что вы ищете - ознакомьтесь со статьями ниже.

Резервное копирование Linux: клонирование жесткого диска с помощью «dd»

dd: лучший инструмент для клонирования дисков

Википедия: dd

[редактировать]

Если то, что вы ищете, является скорее шаблоном системы, где несколько систем настроены и настроены одинаково, а не точная копия, тогда Сапожник может быть то, что вы ищете:

Cobbler - это установочный сервер Linux, который позволяет быстро настроить среду сетевой установки. Он объединяет и автоматизирует многие связанные задачи Linux, поэтому вам не нужно переключаться между множеством различных команд и приложений при развертывании новых систем и, в некоторых случаях, при изменении существующих.

Я читал о Hotcopy в формате Linux несколько вопросов назад. Должен сделать свое дело.

Чтобы создать сервер, как это было при первоначальной установке, вы можете использовать предоставленный anaconda файл кикстарта в /root/anaconda-ks.cfg, вам нужно будет отредактировать его для разбиения и, возможно, имени сети / хоста.

Это даст вам хорошую воспроизводимую базовую конфигурацию сервера и упростит быстрое создание машин. Увидеть Руководство по установке CentOS Больше подробностей. Я не могу достаточно отстаивать то, что автоматизация процесса сборки - это отличная практика.

Для программного обеспечения / конфигурации, которые вы хотите сделать поверх этого, вы можете использовать %packages раздел и %post сценарии в кикстарте, но я лично использую инструмент управления конфигурацией - для меня это принципиально кукольный. Это позволяет вам изменять вещи на протяжении всего срока службы машины и гарантирует, что эти изменения, внесенные в систему, сохранятся (чаще всего в системе управления версиями). Даже если у вас всего несколько серверов, это может очень помочь в сценарии аварийного восстановления, поскольку вы гарантируете, что все изменения будут зафиксированы в конфигурации.

Для начала в марионетке есть инструмент под названием ralsh которые могут использовать ресурсы системы (например, пользователей или пакеты) и выдавать фрагменты марионеточного языка, которые можно использовать для создания реплики системы.

Переход к управлению конфигурацией может стать большим шагом и потребует изменения способа вашей работы. Для прямого клона вы также можете взглянуть на SystemImager

Более подробная информация поможет ...

Если это производственная общедоступная система, я бы рекомендовал выполнить новую установку и выяснить, как ее клонировать вручную. Причина в том, что вы будете знать, как работает ваша система, и, вероятно, сможете лучше спроектировать отказоустойчивость, если у вас есть эти знания. Например, если это веб-приложение с серверной частью базы данных, наличие двух установок на самом деле не даст вам хорошего зеркала, вам нужно будет изучить различные репликации базы данных.

Другие известные мне варианты:

  1. Создайте образ раздела, используя что-то вроде dd
  2. Выполните новую установку CentOS и просто синхронизируйте старую установку поверх новой с параметром -a. На самом деле это работает очень хорошо, вы захотите исключить каталог / proc и, возможно, пару других

дд скопирует непосредственно жесткий диск для создания идентичной версии. Тем не менее, для этого вам нужно будет настроить обычную работу и установить их диски поперечно или физически их перемещать.

Другие позаботились о большинстве решений, но есть еще одно, которое касается части клонирования. Для одноразовой копии я бы предложил использовать Clonezilla. (http://clonezilla.org/) Это как Norton Ghost, но бесплатно. Пока целевой диск по крайней мере такой же большой, как и исходный (я не верю, что вы можете клонировать на меньший диск), он может сделать все клонирование за вас. Вам нужно будет войти в систему после загрузки, чтобы изменить IP / имя хоста и некоторые другие вещи, если вы хотите, чтобы обе системы работали параллельно.

Возможно, вы захотите взглянуть на решение, объединяющее DRBD и Pacemaker; DRBD действует как конфигурация RAID-1 сетевого уровня. Оттуда у вас может быть два сервера с одинаковыми разделами данных, а затем, когда / если одна система выйдет из строя, кардиостимулятор отгородит старую систему, а другой сервер подберет слабину.

Это зависит от того, ищете ли вы также высокую доступность или балансировку нагрузки ... DRBD и Pacemaker предназначены для обеспечения доступности, но в последних версиях добавлена ​​конфигурация «первичный-первичный», поэтому она может работать и с балансировкой нагрузки, но она зависит от того, как вы спроектируете приложение. Вы также можете найти в Интернете примеры использования Xen для создания виртуальной машины, сбалансированной на двух системах с DRBD, и которая может дать вам то, что вы ищете.

Читать о LVM и снимках Вот. Думаю, это то, что вам нужно.