2

Я хотел бы сделать резервную копию моего сервера. Например, используя dd:

dd if=/dev/md0 of=/some_network_share

Интересно, будет ли этот образ изменяться, если /dev /md0 смонтирован? Можно ли будет преобразовать такой образ dd в привод vdi и создать работающую виртуальную машину? Используя эту команду, например:

VBoxManage convertfromraw ImageFile.dd OutputFile.vdi 

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

5 ответов5

2

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

Есть несколько коммерческих продуктов, которые могут сделать это, в той или иной форме - vmware vCenter Converter может сделать виртуальную машину из реальной машины, Acronis TrueImage имеет версию linux одного из своих корпоративных продуктов, которая поддерживает живые копии.

В противном случае хакерский способ сделать это, который мог бы работать, состоял бы в том, чтобы повторно использовать rsync до тех пор, пока различия не станут достаточно маленькими, чтобы вы могли перемонтировать файловые системы только для чтения, rsync в последний раз и затем перемонтировать rw. Я никогда не пробовал это на необработанном образе файловой системы, но он хорошо работает на структуре каталогов.

1

Я действительно сделал это, и это работает. Это достаточно надежно, учитывая все обстоятельства. Это хорошая идея? Нет, наверное нет. Вы можете потерять данные или получить поврежденные файлы. При использовании разделов ext3 при загрузке вы получите предупреждение о том, что раздел «не был чисто размонтирован, проверка принудительно». Затем он запустит «fsck». Fsck может потребоваться много времени, чтобы вернуть файловую систему в чистое состояние, но она туда доберется. Файловая система ext4 сделает это быстрее.

Подумайте об этом так: «dd» живой файловой системы эквивалентно отключению питания от сервера во время работы. Если вы отключили питание от сервера, ожидаете ли вы, что файловая система будет разрушена и компьютер не загрузится снова? Конечно, нет. Ну, если вы не обновляли загрузочное ядро или initrd или что-то еще. Я уверен, что есть и другие крайние случаи. Но это все еще не идеальный способ выключения системы. Не надейся на это.

Кроме того, выполнение 'sync', вероятно, бесполезно в этой ситуации (я говорю "вероятно, бесполезно", потому что я не на 100% уверен в своих фактах и не чувствую, что проверяю факты). Запуск 'sync' до шага 'dd' не сделает образ более согласованным, потому что 'dd' не просто обходит ядро и напрямую обращается к оборудованию. 'dd' все еще проходит через ядро Linux. Если 'dd' запрашивает данные из грязных блоков (обновленные данные, которые не были синхронизированы с диском), он не игнорирует этот факт. Другими словами, 'dd' фактически скопирует грязные блоки, даже если они еще не были синхронизированы с диском. Обратите внимание, что я полагаю, что есть варианты, чтобы попросить 'dd' сделать это (обойти буферы ядра и напрямую связаться с оборудованием), но это не стандартное поведение.

0

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

0

Да.

Не делай этого.

Резервная копия не будет использоваться. Даже если ваше преобразование будет успешным, вам будет сложно проверить содержание.

0

Это зависит от метода. Проблема создания образа на работающем диске заключается в том, что невозможно обеспечить постоянство - файлы меняются, пока вы над ними работаете.

Есть несколько подходов, чтобы избежать этого - один - использовать какой-то способ сделать снимок того, как файлы находятся в очень определенный период времени, и сделать резервную копию - у Windows есть VSS, но у linux / ext нет аналога этому.

Другой - сделать изображение из не живой системы.

Так что нет, если только ОС или ФС не могут делать снимки, это не лучший способ делать что-либо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .