Предыстория, у меня есть физический сервер ((Supermicro SYS-5019S-M: Debian 10 + Proxmox 6, ZFS разделы, 64Gb оперативной памяти (2 модуля 378A4G43MB1-CTD))
, на нем установлена связка Debian 10 + Proxmox 6.4-13 (running kernel: 5.4.166-1-pve)
который выступает, как часть под тест, как часть под боевое использование. Есть виртуальная машина:
VM ID: 114
Name: srv-usb1804B
OS: Ubuntu 18.04 Server
Hard Disk (scsi0): raid4tb
— ЭтоZFS
хранилище из двух дисков(RAID 1)
по4Tb
настроенных по заметке"Внедряю ZFS для моего сервера Gigabyte C246 WU4"
она настроена под последующее тестирование различного функционала, выключена и сделан снапшот.
Задача: Склонировать снапшот виртуальной машины в полный клон для нового виртуальной машины.
Раньше я просто создавал виртуальную машину с осью Ubuntu 18.04 Server
, выставлял, что загрузка идет по сети и через сервис FOG Project
с применением файла ответов и настроечного скрипта подготавливал систему к последующему использованию. Процесс быстрый, когда все автоматизировано.
Но вот решил, а почему бы просто (VM
выключена) на снапшоте VM
выбрать Snapshots
— выделяю снапшот под именем OS
, далее нажимаю More - Сlone
Target node: srv-proxmox2
VM ID: указываю 500 (к примеру)
Name: srv-usb1804500
Snapshot: OS
Target Storage: выбираю raid4tb
и нажимаю Clone
, но увы получаю ошибку вида "Full clone feature is not supported for drive 'scsi0' (500)"
Спрашивается почему?
Приступаю к решению.
Шаг №1:
Подключаюсь к серверу по SSH
или через Web
—интерфейс (https://IP&DNS:8006)
открываю: (Server View) Datacenter - srv-proxmox2 - >_ Shell
root@ekzorchik:~# ssh -l root 172.35.35.250 root@172.35.35.250's password: Linux srv-proxmox2 5.4.166-1-pve #1 SMP PVE 5.4.166-1 (Wed, 02 Feb 2022 08:05:40 +0100) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jan 24 08:08:00 2023 root@srv-proxmox2:~#
Шаг №2:
Создаю конфигурационный файл под виртуальную машину, пусть у нее VM ID
будет 500:
root@srv-proxmox2:~# cp /etc/pve/qemu-server/114.conf /etc/pve/qemu-server/500.conf
после копирования содержимое файла 500.conf
выглядит так:
root@srv-proxmox2:~# cat /etc/pve/qemu-server/500.conf agent: 1 boot: order=scsi0;ide2 cores: 2 ide2: none,media=cdrom memory: 2048 name: srv-usb1804B net0: virtio=0A:EA:67:29:40:91,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 parent: OS scsi0: raid4tb:vm-114-disk-0,size=60G scsihw: virtio-scsi-pci smbios1: uuid=7dda0a83-d090-4b7d-a241-2f152fb1e72a sockets: 1 vmgenid: 54d6aec9-baa1-4b3f-ac73-d4db7edaa18f [OS] agent: 1 boot: order=scsi0;ide2 cores: 2 ide2: none,media=cdrom memory: 2048 name: srv-usb1804B net0: virtio=0A:EA:67:29:40:91,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 scsi0: raid4tb:vm-114-disk-0,size=60G scsihw: virtio-scsi-pci smbios1: uuid=7dda0a83-d090-4b7d-a241-2f152fb1e72a snaptime: 1671710730 sockets: 1 vmgenid: 95b0f9e0-98e3-4dba-8438-41cc0f5df008
Шаг №3:
Копирую snapshot
(снапшот) в диск:
root@srv-proxmox2:~# zfs send -p raid4tb/vm-114-disk-0@OS | zfs receive raid4tb/vm-500-disk-0 root@srv-proxmox2:~#
Шаг №4:
Добавляю диск в конфигурационный файл VM ID 500:
root@srv-proxmox2:~# qm set 500 -scsi0 raid4tb:vm-500-disk-0 update VM 500: -scsi0 raid4tb:vm-500-disk-0 root@srv-proxmox2:~#
Шаг №5:
Проверяю какая информация в конфигурационном файле для VM ID: 500
и привожу до вида:
root@srv-proxmox2:~# nano /etc/pve/qemu-server/500.conf agent: 1 boot: order=scsi0;ide2 cores: 2 ide2: none,media=cdrom memory: 2048 name: srv-usb1804B-500 net0: virtio=0A:EA:67:29:40:91,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 parent: OS scsi0: raid4tb:vm-500-disk-0,size=60G scsihw: virtio-scsi-pci smbios1: uuid=7dda0a83-d090-4b7d-a241-2f152fb1e72a sockets: 1 vmgenid: 54d6aec9-baa1-4b3f-ac73-d4db7edaa18f
После не забываем сохранить внесенные изменения.
Получается вот так:
Шаг №6:
Запускаю виртуальную машину: либо через консоль, либо через Web
—интерфейс:
root@srv-proxmox2:~# qm start 500 root@srv-proxmox2:~#
Открываю >_ Console
запущенной виртуальной машины с VM ID 500
и вижу что система успешно запускается.
Жаль, что через консоль командной строки данная процедура проделывается, но теперь у меня есть два надежных способа:
Создать с нуля и через PXE развернуть систему.
Сделать клон развернутой и настроенной системы и сохраненной в снапшот.
Итого, заметка работоспособна, на этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.