Я хочу знать, есть ли способ сделать как снимок резервное копирование системы 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, но общий процесс для других дистрибутивов будет примерно таким же. Общий процесс выглядит так:
/mnt/recovery
tar -xvjpf archive.tar.bz2
особое внимание уделяя флагам, используемым в этом процессе. 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. Я успешно использовал его в производственных проектах. Интерфейс командной строки достаточно интуитивно понятен.