XEN: миграция доменов с ARCH (XEN 3*) на Gentoo (XEN 4*) - Booting from Hard Disk... Boot failed: not a bootable disk

Здравствуйте седобородые гуру. Встала мега задача. Разгребсти гуано с виртуалками. Так как копаться в грязном белье не комильфо, было решено всё поднять заново на моей любимой системе.
Поднял app-emulation/xen-4.1.1-r2 на 3.5.7-gentoo #2 SMP Wed Nov 14 08:10:25 MSK 2012 x86_64 STABLE , скопировал с АРЧА обрызы виртуалок, при попытке запустить HVM домен - вижу в VNC Viewer: Booting from Hard Disk... Boot failed: not a bootable disk Помогите мнением и, возможно, решением. Спасибо.

ДопИнфо:

root@localhost$ xl info | grep cap
hw_caps                : bfebfbff:20100800:00000000:00000940:0000e3bd:00000000:00000001:00000000
virt_caps              : hvm
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 

cat ./qemu-dm-web.log
http://pastebin.com/icr2Zknr

cat xen-hotplug.log

can't add tap7.0 to bridge eth1: Operation not supported

cat xl-web.log

Waiting for domain web (domid 7) to die [pid 3281]
Domain 7 is dead
Action for shutdown reason code 0 is destroy
Domain 7 needs to be cleaned up: destroying the domain
Done. Exiting now

Конфиг:
root@localhost $cat config.hvm

kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory =  768
name = "web"
vcpus=2
pae=1
acpi=1

vif= ['type=ioemu,bridge=eth1,mac=AC:16:3e:AB:00:12']
disk = ['file:/etc/xen/vm_web/web1_new.img,hda,w']
device_model = '/usr/lib64/xen/bin/qemu-dm'
boot="c"

sdl=0
opengl=1
vnc=1

vnclisten="0.0.0.0"
vncdisplay=17
vncpasswd=''

stdvga=0
serial='pty'

далее предполагается, что *

далее предполагается, что

* ядро собрано корректно с т.з xen dom0; поддержка bridge и tun - включена
* app-emulation/xen-tools построны с USE xend
* все повествуется в контексте app-emulation/xen|xen-tools 4.1.2

у меня сделано так (не нравится, как в 4.1 работает xl, поэтому остаюсь на xm/xend. для того, чтобы жить с xl, лучше перейти на xen 4.2):

1. мост для xen строится стандартным для gentoo способом, а не через xend (так мне кажется надежнее и совпадает с мнением wiki xen), т.е посредством /etc/conf.d/net (например, в моей конфигурации используется транк двух физических ethernet, скриптами xend это сделать проблематично):

dns_domain_lo="local"
config_eth0="null"
config_eth1="null"
slaves_bond0="eth0 eth1"
config_bond0="null"
bridge_add_bond0="xenbr"
config_xenbr="10.24.14.10/24 brd 10.24.14.255"
dns_domain_xenbr="local"
dns_servers_xenbr="10.24.14.12 10.24.14.32"
routes_xenbr="default via 10.24.14.12"
brctl_xenbr="stp off"

2. старт демонов xen dom0 вынесен в /etc/local.d (прежде всего потому что время от времени эту же систему нужно грузить без xen, например, чтобы обновиться. используется функциональность openrc - если rc_sys не определена в /etc/rc.conf, то openrc сам выставляет ее значение)

[/etc/local.d/xen.start]

ebegin "local stuff"
if [ "x$RC_SYS" = "xXEN0" ]; then
  /etc/init.d/xenstored start
  rc=$?
  if [ $rc -eq 0 ]; then
    /etc/init.d/xenconsoled start
    rc=$?
    if [ $rc -eq 0 ]; then
      /etc/init.d/xend start
      rc=$?
      if [ $rc -eq 0 ]; then
        xm rename Domain-0 0-Domain
        modprobe dummy
        brctl addbr heartbeat
        brctl addif heartbeat dummy0
        ifconfig heartbeat up
      fi
    fi
  fi
fi
eend $?

как видно, в скрипте строится еще один мост, для виртуальной сети (между domU), никак не связанной с внешним миром (понятно, что можно убрать, если не надо)

с такой конфигурацией у вас все должно заработать, только в конфигурации вашего hvm domU, в секции vif, нужно заменить bridge=eth1 на bridge=xenbr

Спасибо за ответ. Без

Спасибо за ответ. Без поддержки xend, попробую собрать с поддержкой и обновить до версии 4.2 но это будет собираться только с .keyword ~amd64, то есть из нестабильной ветки.

gebs написал(а): Без

gebs написал(а):
Без поддержки xend, попробую собрать с поддержкой и обновить до версии 4.2 но это будет собираться только с .keyword ~amd64, то есть из нестабильной ветки.

вы неверно интерпретируете написанное:

если нужно то, что формально stable - ставьте 4.1.1 с xend (и прочими use, нужными вашим domU)

xl (даже тот, который stable в 4.1) еще не допилен до production, и сейчас активно "пилится". в 4.2 - уже лучше (замечу, кстати, что в portage 4.2 еще нет, но xen любой версии достаточно просто собирается руками, а при желании - не сложно смастерить ebuild себе в локальный оверлей)

однако для небольших инсталляций (вы ведь не amazon и не linode, правда? :) ветка 4.1 вполне подходит, поэтому в планах разработчиков xen есть 4.1.3, а может быть, и 4.1.4 родится

xl будет развиваться также, как и в старшей ветке. кстати, в 4.2 xm/xend уже deprecated

еще немного о стабильности: stable для xen в gentoo - штука условная, при возникновении проблемы не ebuild, а касающейся работы функциональности xen, xen-tools или ядра, в "нашей", т.е gentoo bugzill-e вас все равно отправят upstream

текущая проблема, из-за чего родился пост - всего лишь в сетевой конфигурации вашего domU (ну, может еще в конфигурации ядра dom0)

vr13 написал(а):gebs

vr13 написал(а):
gebs написал(а):
текущая проблема, из-за чего родился пост - всего лишь в сетевой конфигурации вашего domU (ну, может еще в конфигурации ядра dom0)

Booting from Hard Disk... Boot failed: not a bootable disk вот, что я вижу в vnc, что-то сомневаюсь я, что проблема именно в сетевой конфигурации, вы так не считаете?

gebs написал(а): vr13

gebs написал(а):
vr13 написал(а):
gebs написал(а):
Booting from Hard Disk... Boot failed: not a bootable disk

прошу прощения - не увидел. а с образом hvm все нормально? проверить, например структуру fdisk -l <образ>

у меня в коллекции есть ненужная инсталляция hvm-винды, которая много лет таскается с места на место и работает вроде как. утверждаю, что когда-то работала на xen-3 32bit и ставилась не нем же (сейчас xen 4.2 x86_64)

root@ozweb

root@localhost fdisk -l web1_new.img

Диск web1_new.img: 2048 МБ, 2048000000 байт
255 heads, 63 sectors/track, 248 cylinders, всего 4000000 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

virt-sysrep prepare

virt-sysrep prepare foo-bla.img .....

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Slepnoga, благодарю за

Slepnoga, благодарю за участие в дискуссии, но данный данная утилита у меня не установлена. При попытке установит:

The following keyword changes are necessary to proceed:
#required by libguestfs (argument)
=app-emulation/libguestfs-1.18.9 ~amd64

Да и для чего собственно это нужно делать?

Вернусь к прошлым обсуждениям:
пересобрал xen с флагами xend, pae; запустил xend; имею:

root@localhost cat qemu-dm-web.log
http://pastebin.com/92RNDgMu

В частности вызывают внимание строки:

can't add tap2.0 to bridge eth1: Operation not supported
xen be: console-0: xen be: console-0: initialise() failed
Причём на какое то время интерфейс tap.* появляется, но потом пропадает.

И собственно после запуска:

root@localhost xm create webcfg
Using config file "./webcfg".
Error: Device 0 (vif) could not be connected. Hotplug scripts not working.

P.S

root@ozweb /var/log/xen $zcat /proc/config.gz |grep XEN
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=500
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
CONFIG_PCI_XEN=y
CONFIG_XEN_PCIDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
# CONFIG_NETXEN_NIC is not set
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_NETDEV_BACKEND=y
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
# CONFIG_XEN_WDT is not set
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=y
CONFIG_XEN_BACKEND=y
CONFIG_XENFS=y
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_GRANT_DEV_ALLOC=y
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_PCIDEV_BACKEND=y
CONFIG_XEN_PRIVCMD=y
CONFIG_XEN_ACPI_PROCESSOR=y

Цитата: В частности

Цитата:
В частности вызывают внимание строки:

can't add tap2.0 to bridge eth1: Operation not supported
xen be: console-0: xen be: console-0: initialise() failed
Причём на какое то время интерфейс tap.* появляется, но потом пропадает.

И собственно после запуска:

root@localhost xm create webcfg
Using config file "./webcfg".
Error: Device 0 (vif) could not be connected. Hotplug scripts not working.

tap - это интерфейс, работающий поверх другого интерфейса. пока можно больше ничего не говорить про него. а вот eth1 - это в вашем случае что - мост или просто интерфейс?

в первом посте говорилось, что xen-овский hotplug лучше не использовать, а создавать сетевую инфраструктуру инсталляции средствами baselayout2. соответственно в /etc/xen/xend-config.sxp закомментировать все, что связано с сетью, ниже этого комментария:

##
# To bridge network traffic, like this:
#
# dom0: ----------------- bridge -> real eth0 -> the network
#                            |
# domU: fake eth0 -> vifN.0 -+
...

более подробно - посмотрите тут http://wiki.xen.org/wiki/Network_Configuration_Examples_%28Xen_4.1%2B%29

Ну нет так нет. П.С тебя

Ну нет так нет.

П.С тебя пугает ~amd64 ? Так сия утиль в ближайшие пол-года не позеленеет ;)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

gebs

gebs написал(а):
root@localhost fdisk -l web1_new.img

Диск web1_new.img: 2048 МБ, 2048000000 байт
255 heads, 63 sectors/track, 248 cylinders, всего 4000000 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

а это все, что он показывает? в моем случае (винда, как говорилось ранее, - hvm, freebsd - pv. в обоих случаях это именно образ диска, а не просто partition, как делается в случае pv linux. fdisk это распознает и говорит, соответственно:

# fdisk -l /dev/xi/winxp 

Disk /dev/xi/winxp: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9c4a9c4a

        Device Boot      Start         End      Blocks   Id  System
/dev/xi/winxp1   *          63    20948759    10474348+   7  HPFS/NTFS/exFAT
# fdisk -l /dev/xi/beastie 

Disk /dev/xi/beastie: 17.2 GB, 17179869184 bytes
16 heads, 63 sectors/track, 33288 cylinders, total 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x90909090

          Device Boot      Start         End      Blocks   Id  System
/dev/xi/beastie1   *          63    33554303    16777120+  a5  FreeBSD

образы записаны в томах lvm, но это в данном случае неважно. винда грузится, как в вашем случае hvmloader, а freebsd - через pygrub

а это все, что он

а это все, что он показывает?

Да, что в общем-то странно. eth1 - это физический интерфейс. Но в любом случае спасибо за информацию.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".