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

Linux - решение для резервного копирования изображений?

Я хочу знать, есть ли способ сделать как снимок резервное копирование системы Linux в отдельный файл и восстановить это в другой системе?

Вы знаете, что в Windows есть программы, которые делают копию диска (например, C: \) в один файл изображения. Таким образом, вы можете восстановить этот файл позже, если вы заразитесь или что-то случится.

Каждый раз, когда я хочу мигрировать мой vps на другой хост, мне нужно настроить новый сервер с нуля и переместить файлы вручную. Могу ли я просто сделать резервную копию снимка всей системы и восстановить ее в другом месте (или на том же сервере)?

Я не знаком с Linux и понятия не имею, возможно ли это технически или нет? Индивидуальны ли разделы, конфиги, системные файлы и т. Д. Для каждой системы?

Я слышал о rsync, но я не это ищу.

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

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

Создание образа файловой системы вполне возможно. Фактически, для некоторых дистрибутивов, таких как Gentoo, это фактически предпочтительный метод не только резервного копирования существующих систем, но и развертывания новых систем на основе существующей базовой установки. Gentoo, в частности, компилирует каждый пакет из исходного кода, поэтому самый быстрый способ развернуть новую установку - заархивировать существующую общую установку и распаковать ее в новую систему, тем самым сэкономив часы времени компиляции. Это называется этапом установки 4, подробно описанном на Gentoo вики.

Однако для восстановления такого образа вам потребуется загрузить новую систему с live CD, что может быть невозможно, если вы используете VPS. Если это не проблема, то вот как вы будете архивировать и восстанавливать свою систему:


Архивирование системы

При архивации существующей установки следует учитывать несколько предостережений, наиболее важным из которых является список каталогов, которые вам следует не включить в архив. Например, вы, конечно, не хотите включать /dev, и аналогично, включая /proc directory тоже было бы бессмысленно. Вот общий список каталогов, которые следует исключить при создании архива:

.bash_history
/mnt/*
/tmp/*
/proc/*
/sys/*
/dev/*
/etc/mtab
/etc/ssh/ssh_host_*
/usr/src/*
/path/to/save/at/the_archive_file_you_are_creating.tar.bz2

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

Для создания архива используйте следующую команду:

tar cvjf /path/to/save/at/archive.tar.bz2 / -X excluded.txt

(где excluded.txt текстовый файл, содержащий список исключаемых каталогов.)

Вот краткое описание флагов, используемых для создания архива:

c - create archive
v - verbosely list files processed
j - use bzip2 compression
f - specify file name
X - use the specified exclusion file


Восстановление архива

Я должен подчеркнуть, что этот процесс будет зависеть от используемого вами дистрибутива. Этот процесс во многом основан на процессе, используемом в 4 этап установка для Gentoo, но общий процесс для других дистрибутивов будет примерно таким же. Общий процесс выглядит так:

  1. Загрузитесь с живого компакт-диска
  2. Зайти в консоль
  3. Создайте свои разделы, создайте файловые системы и смонтируйте файловые системы (для этого объяснения смонтируйте свой раздел на /mnt/recovery
  4. Скопируйте архивный файл на смонтированный раздел
  5. Распакуйте архив, используя tar -xvjpf archive.tar.bz2 особое внимание уделяя флагам, используемым в этом процессе.
  6. Создайте несколько основных узлов устройства:
    mknod -m 660 /mnt/recovery/dev/console c 5 1
    mknod -m 660 /mnt/recovery/dev/null c 1 3
    mknod -m 600 /mnt/recovery/dev/initctl p

Когда вы закончите, вам также необходимо настроить GRUB, чтобы убедиться, что ваша конфигурация загрузки правильная; это наиболее вероятное место, где вы столкнетесь, поэтому трижды проверьте свои конфигурации GRUB, чтобы убедиться, что все правильно.

Я настоятельно рекомендую ознакомиться с руководством по Stage 4 на Gentoo wiki. Это фантастический ресурс, подробно описывающий именно этот процесс.

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

Обновить: Я только что заметил, что вы говорите, что не знакомы с Linux. Процедура, которую я здесь описал, нетривиальна, поэтому, если вы не слишком знакомы с Linux, вы можете бороться с этим. К сожалению, я не могу придумать более простого и надежного метода для создания и восстановления снимков всей системы.

Вы, вероятно, захотите использовать какое-то решение, которое понимает конкретные конфигурации и может сделать полезную копию конфигурации системы.

некоторые примеры программного обеспечения, реализующего эту стратегию:

http://www.cfg2html.com/
резервное копирование webmin
Сборщик конфигурации системы и план

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

повар
кукольный
cfengine

Если все, что вам нужно, это полная копия вашей системы, вы можете использовать dd.

[как показано здесь 1], но, как обсуждалось выше, на VPS это может быть не совсем полезно для вас.

Проверять, выписываться Ghost для Linux. Я успешно использовал его в производственных проектах. Интерфейс командной строки достаточно интуитивно понятен.