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

KVM virt-clone во время работы виртуальной машины

Можно ли клонировать работающую машину kvm без таких инструментов, как virt-clone?

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

Если вас не интересуют данные в памяти, вы можете сделать снимок резервного устройства и сделать копию этого снимка.

Это, конечно, требует пула хранения с поддержкой моментальных снимков (в основном LVM или ZFS, поскольку BTRFS ужасно медленна для хранения виртуальных машин).

У меня был рабочий vm. Находясь в нем, я подключился к базовой машине KVM по ssh и скопировал ее резервный диск и моментальный снимок на диск nvme, используя cp -ar. Я также отформатировал и разбил упомянутый nvme перед копированием ... Затем использовал

virsh edit mykvm 

изменил идентификатор и места на диске и имя ...

и выключил мою машину и перезагрузил новую. Пропали только открытые окна и хромированная сессия ...

Кажется, он работает, если вы не пишете какие-то системные файлы или файлы приложений ...

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

Однако, если бы мне когда-нибудь пришлось использовать его в качестве основного снимка ОС. Я бы просто проверил файловую систему, а затем системные файлы (sha1sum) или использовал бы любые встроенные команды для проверки системных файлов.

Я подозреваю, что это только возможно клонировать диск, избегая использования virt-clone, потому что (как уже упоминалось) virt-clone откажется работать с работающей виртуальной машиной. Таким образом, вам придется использовать что-то еще, чтобы сделать копию фактического образа диска.

Я думаю, что основной ответ заключается в том, что вы можете попробовать и надеяться, что вам повезет.

Получить «снимок» конфигурации гостя достаточно просто (virsh dumpxml NAME сделаю это). Если у вас более одного диска (например, если у вас есть диск ОС и n + 1 дисков с данными), я бы попытался избежать клонирования диска ОС и посмотреть, могу ли я вместо этого использовать новую установку.

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

По сути, я бы внимательно рассмотрел, что вам действительно нужно делать, и постарался бы не тратить время на что-то вроде попытки скопировать образ диска, который используется (помимо проблем, связанных с тем, как может выглядеть копия, у меня были бы опасения по поводу что попытка скопировать диск может сделать с оригиналом).

Это полностью выполнимо с форматом образа диска RAW. Насчет qcow2 не знаю ...

Debian.img: загрузочный сектор x86; раздел 1: ID = 0x83, активный, starthead 32, startsector 2048, 497664 секторов; раздел 2: ID = 0x5, starthead 59, startsector 501758, 104353794 секторов, кодовое смещение 0x63

Debian2.img: загрузочный сектор x86; раздел 1: ID = 0x83, активный, начальная точка 32, начальный сектор 2048, 497664 секторов; раздел 2: ID = 0x5, starthead 59, startsector 501758, 104353794 секторов, кодовое смещение 0x63

Для теста я установил работающую систему Linux Mint со всем. Затем создал новую виртуальную машину с новым образом, у нее даже не было несоответствий файловой системы при загрузке. Хотя это была всего лишь небольшая виртуальная машина для настольных компьютеров, я собирался «клонировать» работающий сервер LAMP в производстве с большим количеством операций ввода-вывода в базе данных.

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