Я сейчас перехожу с Xen на qemu-kvm. Моя текущая установка Xen имеет несколько томов LVM, каждый из которых имеет раздел (а не полный образ диска). В Xen я запускаю каждую виртуальную машину с такой конфигурацией:
kernel = "/boot/vmlinuz-2.6.18-128.4.1.el5xen"
ramdisk = "/boot/initrd-xen-2.6.18-128.4.1.el5xen"
disk = [ 'phy:/dev/vmdata/vm-standalone,sda1,w' ]
Теперь я хочу повторно использовать эти виртуальные машины, но вместо этого запустить их под kvm. Похоже, что virt-install --import
позволил бы мне сделать это, используя --boot kernel=<kernel>,initrd=<initrd>
, но я не понимаю, как я могу указать virt-install присоединить существующий том в качестве загрузочной / корневой файловой системы. Это возможно?
Я тоже исследовал эту тему и только что опубликовал несколько похожий вопрос, но с другой областью: KVM / qemu - использовать тома LVM напрямую без файла изображения?
По вашему конкретному вопросу, работает ли это: https://wiki.archlinux.org/index.php/QEMU#By_specifying_kernel_and_initrd_manually
В частности, -append root=/dev/sda /dev/sda3
. Я сам не пробовал, но похоже, что он должен делать то, что вы хотите.
Просто создайте новую виртуальную машину в virt-manager
или через virsh
с такими же параметрами, как и у Xen (память, ЦП и т. д.), и когда вас попросят создать для него виртуальные диски, укажите на существующие диски Xen.
Возможно, вам придется отрегулировать fstab
немного, чтобы указать на /dev/vdX
вместо того xvdX
(или что угодно, что использует Xen)
Если вам нужна действительно хорошая процедура перемещения, которая позаботится обо всем за вас, вы можете использовать virt-v2v
.
Ответы Dynasy и Джареда указывают в правильном направлении, но остаются немного необъясненными.
Краткий ответ на мой вопрос заключается в том, что virt-install отлично может предоставить раздел в загрузочную систему. Фактически, для блочных устройств он не заботится и просто передает его в qemu, который настраивает его как блочное устройство. Затем ядро использует / dev / sda (а не / dev / sda1) в качестве корневой файловой системы.
Командная строка для этого выглядит так:
virt-install --name nic
--ram 512
--disk /dev/vg_ext/nic-standalone
--disk /dev/vg_ext/nic-swap
--network bridge=br0
--boot kernel=/boot/vmlinuz,initrd=/boot/initramfs.img,kernel_args="console=ttyS0 root=/dev/sda"
--serial=pty
Чтобы заставить эту работу работать, мне пришлось изменить / etc / fstab на nic-standalone, чтобы он указывал на правильную корневую файловую систему и раздел подкачки (/ dev / sda, / dev / sdb). Ядро и initrd, указанные выше, являются стандартными для CentOS 6. (Также могут потребоваться различные параметры производительности / настройки, я просто еще не дошел до этого.)