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

KVM загрузка ядра без образа и существующего раздела

Я сейчас перехожу с 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. (Также могут потребоваться различные параметры производительности / настройки, я просто еще не дошел до этого.)