virtlib xen pv gentoo

Модератор: Модераторы разделов

Ответить
Tokra
Сообщения: 399

virtlib xen pv gentoo

Сообщение Tokra »

Всем доброго времени суток, господа.

Что мы имеем.:
1. Сервер PowerEdge R910 - Dell

Код: Выделить всё

processor    : 79
vendor_id    : GenuineIntel
cpu family    : 6
model        : 47
model name    : Intel(R) Xeon(R) CPU E7- 4870  @ 2.40GHz
stepping    : 2
microcode    : 0x36
cpu MHz        : 2394.060
cache size    : 30720 KB
physical id    : 3
siblings    : 20
core id        : 25
cpu cores    : 10
apicid        : 243
initial apicid    : 243
fpu        : yes
fpu_exception    : yes
cpuid level    : 11
wp        : yes
flags        : fpu de tsc msr pae cx8 apic sep cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq monitor est ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes hypervisor lahf_lm ida arat dtherm
bogomips    : 4788.12
clflush size    : 64
cache_alignment    : 64
address sizes    : 44 bits physical, 48 bits virtual


2. Система gentoo adm64 с ядром 3.5.7-gentoo

3. Установлен xen и xen-tools

Код: Выделить всё

app-emulation/xen-4.1.1-r2 was built with the following:
USE="(multilib) -custom-cflags -debug -flask -pae -xsm"
CFLAGS=""

Код: Выделить всё

app-emulation/xen-tools-4.1.1-r6 was built with the following:
USE="hvm (multilib) qemu screen xend -api -custom-cflags -debug -doc -flask -pygrub"
CFLAGS="-fno-strict-overflow"
CXXFLAGS="-O2 -pipe -fno-strict-overflow"
LDFLAGS=""


xen используется для виртуализации в режиме Paravirtualization. В качестве гостевых ОС тот же самый gentoo.
Конфиг гостевой ОС выглядит так:

Код: Выделить всё

kernel = "/boot/DomU"
vcpus = 2
memory = 4096
name = "test"
vif = [ 'bridge=peth4' ]
disk = [ 'phy:/dev/vlxen/root,xvda,w', 'phy:/dev/vlxen/swap,xvdb,w' ]
root = "/dev/xvda ro"
extra = "console=hvc0 xencons=xvc0"
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'


В таком варианте все супер, все работает, делаешь xm create test.cfg и радуемся)

Дернул меня черт попробовать рулить всем этим добром через virtlib, т.к. есть успешный опыт работы с ним в KVM и как бы поддержка XEN есть.
Поставил себе libvirt

Код: Выделить всё

app-emulation/libvirt-0.10.2-r3 was built with the following:
USE="caps libvirtd lvm lxc macvtap (multilib) nls python udev vepa virt-network xen -audit -avahi -debug -iscsi -nfs -numa -openvz -parted -pcap -phyp -policykit -qemu -rbd -sasl (-selinux) -uml -virtualbox"


Поправил xend-config.sxp на предмет (xend-unix-server yes), сделал /etc/init.d/xend restart и /etc/init.d/libvirtd start. Вроде все норм.
Проверяем

Код: Выделить всё

 virsh -c xen:///
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh #

вроде счастье есть.

Теперь решил преобразовать стандартный конфиг виртуалки в xml понятный libvirt

Код: Выделить всё

virsh -c xen:/// domxml-from-native xen-xm test.cfg
<domain type='xen'>
  <name>test</name>
  <uuid>5e8e64d2-fa11-bf72-b2e1-4e8642fdf8a6</uuid>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='xenpv'>linux</type>
    <kernel>/boot/DomU</kernel>
    <cmdline>console=hvc0 xencons=xvc0</cmdline>
  </os>
  <clock offset='utc' adjustment='reset'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/vlxen/root'/>
      <target dev='xvda' bus='xen'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/vlxen/swap'/>
      <target dev='xvdb' bus='xen'/>
    </disk>
    <interface type='bridge'>
      <mac address='00:00:00:00:00:00'/>
      <source bridge='peth4'/>
    </interface>
    <console type='pty'>
      <target type='xen' port='0'/>
    </console>
  </devices>
</domain>


Это добро сохраняем в test.xml и пробуем запустить

Код: Выделить всё

virsh -c xen:///
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # create test.xml
Domain test created from test.xml

Вроде все номр, но делаем

Код: Выделить всё

virsh # list
 Id    Name                           State
----------------------------------------------------
 0     Domain-0                       running


И как видим нифига.

Проверяю через xm create родной конфиг - все пучком стартует и работает.

Лезем в логи

Код: Выделить всё

tail -f libvirtd.log
') unexpected exit status 1
2012-11-05 07:49:51.960+0000: 9375: error : ebiptablesDriverTestCLITools:4241 : Testing of ebtables command failed: Failure to execute command '$EBT -t nat -L' : 'FATAL: Module ebtables not found.
The kernel doesn't support the ebtables 'nat' table.'.

2012-11-05 07:50:38.515+0000: 9367: error : xenHypervisorDoV2Sys:1007 : Unable to issue hypervisor ioctl 3166208: Permission denied
2012-11-05 07:50:38.516+0000: 9367: error : xenHypervisorDoV2Sys:1007 : Unable to issue hypervisor ioctl 3166208: Permission denied
2012-11-05 07:50:38.517+0000: 9367: error : xenHypervisorDoV2Sys:1007 : Unable to issue hypervisor ioctl 3166208: Permission denied
2012-11-05 07:50:38.518+0000: 9367: error : xenHypervisorDoV2Sys:1007 : Unable to issue hypervisor ioctl 3166208: Permission denied
2012-11-05 07:50:38.519+0000: 9367: error : xenHypervisorDoV2Sys:1007 : Unable to issue hypervisor ioctl 3166208: Permission denied
2012-11-05 07:54:23.824+0000: 9371: error : virConnectListAllDomains:8250 : this function is not supported by the connection driver: virConnectListAllDomains


Есть только такие сообщения на момент создания домена.
Поиск в лоб в гугле ничего вменяемого не дал.

Вот и вопрос к аудитории: использует ли кто-то в продакшене libvirt для управления гипервизором xen и если да, то сталкивался ли кто-то с такой проблемой).
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: virtlib xen pv gentoo

Сообщение Bluetooth »

Вообще, лично я не вижу смысла в libvirt в продакшне, т.к. встренные средства xen обеспечивают нужный функционал.
Ну а относительно самого вопроса: домен стартует и тут же останавливается, в консольку домена при этом сыпется ошибка, из-за которой он валится, но мы его не видим. Можно сделать так(сразу оговорюсь: libvirt+xen никогда не видел, говорю исходя из логики и опыта решения подобных проблем в xen+ganeti):
1) запустить через libvirt домен с автоматическим подключением к консольке домена(типа как xm create -c), если такая опция есть.
2) запустить через libvirt домен, затем сразу помощью xm подключиься к консольке:
virsh create DOMU; xm console DOMU
Такой способ прокатывает не всегда - чаще всего домен успевает завершиться до того, как xm отработает.
3) Не знаю, насколько это соотвествует правде, но логично предположить, что libvirt формирует xen конфиг, который и подсовывает xm для создания домена. При этом этот конфиг где-то лежит и его можно стащить, чтобы затем запустить с xm create -c и увидеть ошибки в консольке. Разумеется, если libvirt работает не так, то такой вариант недоступен.
4) Может быть, libvirt имеет средства для логирования содержимого консольки домена, в этом случае ими нужно воспользоваться.
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

Bluetooth писал(а):
06.11.2012 00:35
Вообще, лично я не вижу смысла в libvirt в продакшне, т.к. встренные средства xen обеспечивают нужный функционал.
Ну а относительно самого вопроса: домен стартует и тут же останавливается, в консольку домена при этом сыпется ошибка, из-за которой он валится, но мы его не видим. Можно сделать так(сразу оговорюсь: libvirt+xen никогда не видел, говорю исходя из логики и опыта решения подобных проблем в xen+ganeti):
1) запустить через libvirt домен с автоматическим подключением к консольке домена(типа как xm create -c), если такая опция есть.
2) запустить через libvirt домен, затем сразу помощью xm подключиься к консольке:
virsh create DOMU; xm console DOMU
Такой способ прокатывает не всегда - чаще всего домен успевает завершиться до того, как xm отработает.
3) Не знаю, насколько это соотвествует правде, но логично предположить, что libvirt формирует xen конфиг, который и подсовывает xm для создания домена. При этом этот конфиг где-то лежит и его можно стащить, чтобы затем запустить с xm create -c и увидеть ошибки в консольке. Разумеется, если libvirt работает не так, то такой вариант недоступен.
4) Может быть, libvirt имеет средства для логирования содержимого консольки домена, в этом случае ими нужно воспользоваться.


Домен в принципе не стартует, хотя virsh говорит, что он стартанул. В этом весь прикол.

Затеялся только ради того, что бы была единая система руления что в xen, что в kvm. Люди пишут, что упор в разработке все же идет на qemu/kvm.

Сейчас более детально логи смотрю. Может что-то нарою
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: virtlib xen pv gentoo

Сообщение Bluetooth »

Домен в принципе не стартует, хотя virsh говорит, что он стартанул. В этом весь прикол.
На чем основана эта уверенность? Утилита старта отрабатывает хорошо, значит, домен, скорее всего, стартует. Иначе утилита старта ругалась бы. Ну, по крайней мере, по логике так должно быть. А завершается он за доли секунды, так что то, что он не показывается в списке(даже если эту команду вызвать сразу), не значит, что он не стартует.

И да, кстати. Мы вот с Вами теоритизируем - стартовал домен аль нет, а на самом деле это нужно посмотреть в логе xend :)
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

Bluetooth писал(а):
06.11.2012 01:33
Домен в принципе не стартует, хотя virsh говорит, что он стартанул. В этом весь прикол.
На чем основана эта уверенность? Утилита старта отрабатывает хорошо, значит, домен, скорее всего, стартует. Иначе утилита старта ругалась бы. Ну, по крайней мере, по логике так должно быть. А завершается он за доли секунды, так что то, что он не показывается в списке(даже если эту команду вызвать сразу), не значит, что он не стартует.

И да, кстати. Мы вот с Вами теоритизируем - стартовал домен аль нет, а на самом деле это нужно посмотреть в логе xend :)


На момент старта
xend.log

Код: Выделить всё

cat xend.log
[2012-11-05 16:33:50 43349] DEBUG (XendDomainInfo:103) XendDomainInfo.create(['vm', ['name', 'test'], ['memory', '4096'], ['maxmem', '4096'], ['vcpus', '2'], ['uuid', 'ffecd709-4db2-e410-37fc-03fa7d65f81e'], ['on_poweroff', 'destroy'], ['on_reboot', 'restart'], ['on_crash', 'restart'], ['image', ['linux', ['kernel', '/boot/DomU'], ['args', 'console=hvc0 xencons=xvc0'], ['localtime', '0']]], ['localtime', '0'], ['device', ['vbd', ['dev', 'xvda'], ['uname', 'phy:/dev/vlxen/root'], ['mode', 'w']]], ['device', ['vbd', ['dev', 'xvdb'], ['uname', 'phy:/dev/vlxen/swap'], ['mode', 'w']]], ['device', ['vif', ['mac', '00:00:00:00:00:00'], ['bridge', 'peth4'], ['script', 'vif-bridge']]]])
[2012-11-05 16:33:50 43349] DEBUG (XendDomainInfo:2498) XendDomainInfo.constructDomain
[2012-11-05 16:33:50 43349] DEBUG (balloon:187) Balloon: 4213640 KiB free; need 16384; done.
[2012-11-05 16:33:50 43349] DEBUG (XendDomain:476) Adding Domain: 39
[2012-11-05 16:33:50 43349] DEBUG (XendDomainInfo:2836) XendDomainInfo.initDomain: 39 256
[2012-11-05 16:33:50 43349] DEBUG (XendDomainInfo:2863) _initDomain:shadow_memory=0x0, memory_static_max=0x100000000, memory_static_min=0x0.
[2012-11-05 16:33:51 43349] INFO (image:182) buildDomain os=linux dom=39 vcpus=2
[2012-11-05 16:33:51 43349] DEBUG (image:721) domid          = 39
[2012-11-05 16:33:51 43349] DEBUG (image:722) memsize        = 4096
[2012-11-05 16:33:51 43349] DEBUG (image:723) image          = /boot/DomU
[2012-11-05 16:33:51 43349] DEBUG (image:724) store_evtchn   = 1
[2012-11-05 16:33:51 43349] DEBUG (image:725) console_evtchn = 2
[2012-11-05 16:33:51 43349] DEBUG (image:726) cmdline        = console=hvc0 xencons=xvc0
[2012-11-05 16:33:51 43349] DEBUG (image:727) ramdisk        =
[2012-11-05 16:33:51 43349] DEBUG (image:728) vcpus          = 2
[2012-11-05 16:33:51 43349] DEBUG (image:729) features       =
[2012-11-05 16:33:51 43349] DEBUG (image:730) flags          = 0
[2012-11-05 16:33:51 43349] DEBUG (image:731) superpages     = 0
[2012-11-05 16:33:56 43349] INFO (XendDomainInfo:2357) createDevice: vbd : {'uuid': 'f21fcc6d-ca34-f7be-cdd7-d881caad0a02', 'bootable': 1, 'driver': 'paravirtualised', 'dev': 'xvda', 'uname': 'phy:/dev/vlxen/root', 'mode': 'w'}
[2012-11-05 16:33:56 43349] DEBUG (DevController:95) DevController: writing {'virtual-device': '51712', 'device-type': 'disk', 'protocol': 'x86_64-abi', 'backend-id': '0', 'state': '1', 'backend': '/local/domain/0/backend/vbd/39/51712'} to /local/domain/39/device/vbd/51712.
[2012-11-05 16:33:56 43349] DEBUG (DevController:97) DevController: writing {'domain': 'test', 'frontend': '/local/domain/39/device/vbd/51712', 'uuid': 'f21fcc6d-ca34-f7be-cdd7-d881caad0a02', 'bootable': '1', 'dev': 'xvda', 'state': '1', 'params': '/dev/vlxen/root', 'mode': 'w', 'online': '1', 'frontend-id': '39', 'type': 'phy'} to /local/domain/0/backend/vbd/39/51712.
[2012-11-05 16:33:56 43349] INFO (XendDomainInfo:2357) createDevice: vbd : {'uuid': '5ec817b8-a9e3-8e15-5343-b791491b3d6b', 'bootable': 0, 'driver': 'paravirtualised', 'dev': 'xvdb', 'uname': 'phy:/dev/vlxen/swap', 'mode': 'w'}
[2012-11-05 16:33:56 43349] DEBUG (DevController:95) DevController: writing {'virtual-device': '51728', 'device-type': 'disk', 'protocol': 'x86_64-abi', 'backend-id': '0', 'state': '1', 'backend': '/local/domain/0/backend/vbd/39/51728'} to /local/domain/39/device/vbd/51728.
[2012-11-05 16:33:56 43349] DEBUG (DevController:97) DevController: writing {'domain': 'test', 'frontend': '/local/domain/39/device/vbd/51728', 'uuid': '5ec817b8-a9e3-8e15-5343-b791491b3d6b', 'bootable': '0', 'dev': 'xvdb', 'state': '1', 'params': '/dev/vlxen/swap', 'mode': 'w', 'online': '1', 'frontend-id': '39', 'type': 'phy'} to /local/domain/0/backend/vbd/39/51728.
[2012-11-05 16:33:56 43349] INFO (XendDomainInfo:2357) createDevice: vif : {'bridge': 'peth4', 'mac': '00:00:00:00:00:00', 'uuid': 'b1b82ead-fa76-2cb5-d809-2ae5169b7666', 'script': 'vif-bridge'}
[2012-11-05 16:33:56 43349] DEBUG (DevController:95) DevController: writing {'mac': '00:00:00:00:00:00', 'handle': '0', 'protocol': 'x86_64-abi', 'backend-id': '0', 'state': '1', 'backend': '/local/domain/0/backend/vif/39/0'} to /local/domain/39/device/vif/0.
[2012-11-05 16:33:56 43349] DEBUG (DevController:97) DevController: writing {'bridge': 'peth4', 'domain': 'test', 'handle': '0', 'uuid': 'b1b82ead-fa76-2cb5-d809-2ae5169b7666', 'script': '/etc/xen/scripts/vif-bridge', 'mac': '00:00:00:00:00:00', 'frontend-id': '39', 'state': '1', 'online': '1', 'frontend': '/local/domain/39/device/vif/0'} to /local/domain/0/backend/vif/39/0.
[2012-11-05 16:33:56 43349] DEBUG (XendDomainInfo:3420) Storing VM details: {'on_xend_stop': 'ignore', 'pool_name': 'Pool-0', 'shadow_memory': '0', 'uuid': 'ffecd709-4db2-e410-37fc-03fa7d65f81e', 'on_reboot': 'restart', 'start_time': '1352133236.66', 'on_poweroff': 'destroy', 'bootloader_args': '', 'on_xend_start': 'ignore', 'on_crash': 'restart', 'xend/restart_count': '0', 'vcpus': '2', 'vcpu_avail': '3', 'bootloader': '', 'image': "(linux (kernel /boot/DomU) (args 'console=hvc0 xencons=xvc0') (superpages 0) (pci ()) (localtime 0) (nomigrate 0) (tsc_mode 0) (notes (HV_START_LOW 18446603336221196288) (FEATURES '!writable_page_tables|pae_pgdir_above_4gb') (VIRT_BASE 18446744071562067968) (GUEST_VERSION 2.6) (PADDR_OFFSET 0) (GUEST_OS linux) (HYPERCALL_PAGE 18446744071578849280) (LOADER generic) (SUSPEND_CANCEL 1) (PAE_MODE yes) (ENTRY 18446744071589892624) (XEN_VERSION xen-3.0)))", 'name': 'test'}
[2012-11-05 16:33:56 43349] DEBUG (XendDomainInfo:1794) Storing domain details: {'console/ring-ref': '11524184', 'image/entry': '18446744071589892624', 'console/port': '2', 'store/ring-ref': '11524185', 'image/loader': 'generic', 'vm': '/vm/ffecd709-4db2-e410-37fc-03fa7d65f81e', 'control/platform-feature-multiprocessor-suspend': '1', 'image/hv-start-low': '18446603336221196288', 'image/guest-os': 'linux', 'cpu/1/availability': 'online', 'image/virt-base': '18446744071562067968', 'memory/target': '4194304', 'image/guest-version': '2.6', 'image/pae-mode': 'yes', 'description': '', 'console/limit': '1048576', 'image/paddr-offset': '0', 'image/hypercall-page': '18446744071578849280', 'image/suspend-cancel': '1', 'cpu/0/availability': 'online', 'image/features/pae-pgdir-above-4gb': '1', 'image/features/writable-page-tables': '0', 'console/type': 'xenconsoled', 'name': 'test', 'domid': '39', 'image/xen-version': 'xen-3.0', 'store/port': '1'}
[2012-11-05 16:33:56 43349] DEBUG (DevController:95) DevController: writing {'protocol': 'x86_64-abi', 'state': '1', 'backend-id': '0', 'backend': '/local/domain/0/backend/console/39/0'} to /local/domain/39/device/console/0.
[2012-11-05 16:33:56 43349] DEBUG (DevController:97) DevController: writing {'domain': 'test', 'frontend': '/local/domain/39/device/console/0', 'uuid': '0bb5d266-fe00-e734-88df-84f02daf7ec1', 'frontend-id': '39', 'state': '1', 'location': '2', 'online': '1', 'protocol': 'vt100'} to /local/domain/0/backend/console/39/0.
[2012-11-05 16:33:56 43349] DEBUG (XendDomainInfo:1881) XendDomainInfo.handleShutdownWatch
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices tap2.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices vif.
[2012-11-05 16:33:57 43349] DEBUG (DevController:144) Waiting for 0.
[2012-11-05 16:33:57 43349] DEBUG (DevController:628) hotplugStatusCallback /local/domain/0/backend/vif/39/0/hotplug-status.
[2012-11-05 16:33:57 43349] DEBUG (DevController:642) hotplugStatusCallback 1.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices vkbd.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices ioports.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices tap.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices vif2.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices console.
[2012-11-05 16:33:57 43349] DEBUG (DevController:144) Waiting for 0.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices vscsi.
[2012-11-05 16:33:57 43349] DEBUG (DevController:139) Waiting for devices vbd.
[2012-11-05 16:33:57 43349] DEBUG (DevController:144) Waiting for 51712.
[2012-11-05 16:33:57 43349] DEBUG (DevController:628) hotplugStatusCallback /local/domain/0/backend/vbd/39/51712/hotplug-status.
[2012-11-05 16:33:57 43349] DEBUG (DevController:628) hotplugStatusCallback /local/domain/0/backend/vbd/39/51712/hotplug-status.
[2012-11-05 16:33:57 43349] DEBUG (DevController:642) hotplugStatusCallback 1.
[2012-11-05 16:33:57 43349] DEBUG (DevController:144) Waiting for 51728.
[2012-11-05 16:33:57 43349] DEBUG (DevController:628) hotplugStatusCallback /local/domain/0/backend/vbd/39/51728/hotplug-status.
[2012-11-05 16:33:58 43349] DEBUG (DevController:628) hotplugStatusCallback /local/domain/0/backend/vbd/39/51728/hotplug-status.
[2012-11-05 16:33:58 43349] DEBUG (DevController:642) hotplugStatusCallback 1.
[2012-11-05 16:33:58 43349] DEBUG (DevController:139) Waiting for devices irq.
[2012-11-05 16:33:58 43349] DEBUG (DevController:139) Waiting for devices vfb.
[2012-11-05 16:33:58 43349] DEBUG (DevController:139) Waiting for devices pci.
[2012-11-05 16:33:58 43349] DEBUG (DevController:139) Waiting for devices vusb.
[2012-11-05 16:33:58 43349] DEBUG (DevController:139) Waiting for devices vtpm.
[2012-11-05 16:33:58 43349] INFO (XendDomain:1225) Domain test (39) unpaused.
[2012-11-05 16:33:59 43349] WARNING (XendDomainInfo:2061) Domain has crashed: name=test id=39.
[2012-11-05 16:33:59 43349] ERROR (XendDomainInfo:2195) VM test restarting too fast (Elapsed time: 2.352089 seconds). Refusing to restart to avoid loops.
[2012-11-05 16:33:59 43349] DEBUG (XendDomainInfo:3071) XendDomainInfo.destroy: domid=39
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2401) Destroying device model
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2408) Releasing devices
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2414) Removing vif/0
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2414) Removing console/0
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = console, device = console/0
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2414) Removing vbd/51712
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/51712
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2414) Removing vbd/51728
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/51728
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2406) No device model
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2408) Releasing devices
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2414) Removing vif/0
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2414) Removing vbd/51712
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/51712
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:2414) Removing vbd/51728
[2012-11-05 16:34:00 43349] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/51728


При этом в логе libvirtd

Код: Выделить всё

cat libvirtd.log
2012-11-05 16:34:15.567+0000: 9366: error : virConnectListAllDomains:8250 : this function is not supported by the connection driver: virConnectListAllDomains


Специально логи почистил.
В логах ксена я ничего криминального не вижу. Или уже спать хочу и не увижу)
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: virtlib xen pv gentoo

Сообщение Bluetooth »

В логах ксена я ничего криминального не вижу. Или уже спать хочу и не увижу)
Нет там криминала, зато отлично видно, что домен стартует и крашится сразу. Так что имеет смысл увидеть, что же он там в консоль сыпет перед смертью(собсно, о чем я и говорил изначально).

А вообще сразу есть идея - ядро прописано внешнее, про pygrub ничего не сказано. А вот ramdisk для ядра не прописан - поэтому домен крашится(ну если только у Вас не собрано ядро без использования initrd ;) )
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

Bluetooth писал(а):
06.11.2012 10:04
В логах ксена я ничего криминального не вижу. Или уже спать хочу и не увижу)
Нет там криминала, зато отлично видно, что домен стартует и крашится сразу. Так что имеет смысл увидеть, что же он там в консоль сыпет перед смертью(собсно, о чем я и говорил изначально).

А вообще сразу есть идея - ядро прописано внешнее, про pygrub ничего не сказано. А вот ramdisk для ядра не прописан - поэтому домен крашится(ну если только у Вас не собрано ядро без использования initrd ;) )


Мне рамдиск не нужен и пайграб не использую, таких нод у меня уже десятка два. Схема отлажена до автоматизма. Та же виртуалка стартует средствами xm без проблем.

Подключиться к консоли я физически не успеваю...
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

Bluetooth, у тебя чуйка фееричная)
При старте средствами virsh kernel punic

Код: Выделить всё

[    0.393605] device-mapper: multipath queue-length: version 0.1.0 loaded
[    0.393609] device-mapper: multipath service-time: version 0.2.0 loaded
[    0.393942] dcdbas dcdbas: Dell Systems Management Base Driver (version 5.6.0-3.2)
[    0.393952] No iBFT detected.
[    0.394132] usbcore: registered new interface driver usbhid
[    0.394138] usbhid: USB HID core driver
[    0.394157] Netfilter messages via NETLINK v0.30.
[    0.394169] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[    0.394404] ctnetlink v0.93: registering with nfnetlink.
[    0.394566] ip_tables: (C) 2000-2006 Netfilter Core Team
[    0.394608] TCP: cubic registered
[    0.394612] Initializing XFRM netlink socket
[    0.394898] NET: Registered protocol family 10
[    0.395186] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    0.395219] sit: IPv6 over IPv4 tunneling driver
[    0.395476] NET: Registered protocol family 17
[    0.395506] 8021q: 802.1Q VLAN Support v1.8
[    0.395713] registered taskstats version 1
[    0.395774] console [netcon0] enabled
[    0.395780] netconsole: network logging started
[    0.395853] md: Waiting for all devices to be available before autodetect
[    0.395859] md: If you don't use raid, use raid=noautodetect
[    0.396064] md: Autodetecting RAID arrays.
[    0.396071] md: Scanned 0 and added 0 devices.
[    0.396074] md: autorun ...
[    0.396077] md: ... autorun DONE.
[    0.396106] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    0.396112] Please append a correct "root=" boot option; here are the available partitions:
[    0.396120] ca00        20971520 xvda  driver: vbd
[    0.396125] ca10         6291456 xvdb  driver: vbd
[    0.396130] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    0.396137] Pid: 1, comm: swapper/0 Not tainted 3.5.7-gentoo #5
[    0.396141] Call Trace:
[    0.396150]  [<ffffffff815bce7e>] panic+0xb8/0x1ca
[    0.396154]  [<ffffffff815bcfd8>] ? printk+0x48/0x4a
[    0.396161]  [<ffffffff81a89f86>] mount_block_root+0x1d2/0x1f0
[    0.396166]  [<ffffffff81a8a194>] mount_root+0xe1/0xec
[    0.396171]  [<ffffffff81a8a304>] prepare_namespace+0x165/0x192
[    0.396176]  [<ffffffff81a89c52>] kernel_init+0x1b8/0x1ca
[    0.396182]  [<ffffffff81a894de>] ? loglevel+0x31/0x31
[    0.396187]  [<ffffffff815c4f64>] kernel_thread_helper+0x4/0x10
[    0.396193]  [<ffffffff815bee78>] ? retint_restore_args+0x5/0x6
[    0.396198]  [<ffffffff815c4f60>] ? gs_change+0x13/0x13


А теперь эта же виртуалка, но стартуем через xm create

Код: Выделить всё

 *     127.0.0.0/8 via 127.0.0.1 ...
 [ ok ]
 * Mounting misc binary format filesystem ...
 [ ok ]
 * Loading custom binary format handlers ...
 [ ok ]
 * Activating swap devices ...
 [ ok ]
 * Initializing random number generator ...
 [ ok ]
INIT: Entering runlevel: 3
 * Bringing up interface eth0
 *   10.30.10.149/24 ...
 [ ok ]
 *   Adding routes
 *     default via 10.30.10.254 ...
 [ ok ]
 *   Waiting for IPv6 addresses ...
 [ ok ]
 * Mounting network filesystems ...
 [ ok ]
 * Starting syslog-ng ...
 [ ok ]
 * Setting clock via the NTP client 'ntpdate' ...

This is BigXEN_test.unknown_domain (Linux x86_64 3.5.7-gentoo) 03:27:43

BigXEN_test login:


Весело)

Есть подозрения, что связанно с этим
Please append a correct "root=" boot option; here are the available partitions:
[ 0.396120] ca00 20971520 xvda driver: vbd
[ 0.396125] ca10 6291456 xvdb driver: vbd


Т.к. в родном конфиге присутствует
root = "/dev/xvda ro"

а вот уже в конфиге, который сгенерил libvirt только
<disk type='block' device='disk'>
<driver name='phy'/>
<source dev='/dev/vlxen/root'/>
<target dev='xvda' bus='xen'/>
</disk>
<disk type='block' device='disk'>
<driver name='phy'/>
<source dev='/dev/vlxen/swap'/>
<target dev='xvdb' bus='xen'/>
</disk>
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: virtlib xen pv gentoo

Сообщение Bluetooth »

Есть подозрения, что связанно с этим
Please append a correct "root=" boot option; here are the available partitions:
[ 0.396120] ca00 20971520 xvda driver: vbd
[ 0.396125] ca10 6291456 xvdb driver: vbd
Да, именно с этим. Собсно, тебе нужно посмотреть, как в libvirt задавать этот параметр.
Но, вообще, мне кажется, лучше с libvirt использовать pygrub. Впрочем, мне кажется, что лучше использовать pygrub в любом случае :)
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

Bluetooth писал(а):
06.11.2012 15:50
Есть подозрения, что связанно с этим
Please append a correct "root=" boot option; here are the available partitions:
[ 0.396120] ca00 20971520 xvda driver: vbd
[ 0.396125] ca10 6291456 xvdb driver: vbd
Да, именно с этим. Собсно, тебе нужно посмотреть, как в libvirt задавать этот параметр.
Но, вообще, мне кажется, лучше с libvirt использовать pygrub. Впрочем, мне кажется, что лучше использовать pygrub в любом случае :)


Буду на работе - посмотрю. В моих условиях пайграб нафиг не нужен. На ноде в среднем 10 виртуалок, которые братья близнецы) Тем более, с родным xen-tools никаких проблем не возникало.
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

И так, подведем итоги)

Вся загвоздка была в <root>/dev/xvda</root>

Итоговый рабочий конфиг

Код: Выделить всё

<domain type='xen'>
  <name>test</name>
  <uuid>ffecd709-4db2-e410-37fc-03fa7d65f81e</uuid>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='xenpv'>linux</type>
    <kernel>/boot/DomU</kernel>
    <root>/dev/xvda</root>
    <cmdline>console=hvc0 xencons=xvc0</cmdline>
  </os>
  <clock offset='utc' adjustment='reset'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/vlxen/root'/>
      <target dev='xvda' bus='xen'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/vlxen/swap'/>
      <target dev='xvdb' bus='xen'/>
    </disk>
    <interface type='bridge'>
      <mac address='00:00:00:00:00:00'/>
      <source bridge='peth4'/>
    </interface>
    <console type='pty'>
      <target type='xen' port='0'/>
    </console>
  </devices>
</domain>

Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: virtlib xen pv gentoo

Сообщение Bluetooth »

Итоговый рабочий конфиг
Эм, вопрос из чистого любопытства: где в libvirt хранятся конфиги доменов(или как там оно зовется в терминах libvirt? наверное, инстансом :) ) и можно ли их редактировать руками без последствий для последующей работы с ними через утилиты libvirt?
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

Bluetooth писал(а):
06.11.2012 17:57
Итоговый рабочий конфиг
Эм, вопрос из чистого любопытства: где в libvirt хранятся конфиги доменов(или как там оно зовется в терминах libvirt? наверное, инстансом :) ) и можно ли их редактировать руками без последствий для последующей работы с ними через утилиты libvirt?


У меня был готовый конфиг для xm. У libvirt есть приблуда, которая генерит xml конфиг на базе родного для xm.

Код: Выделить всё

 domxml-from-native             Convert native config to domain XML
 domxml-to-native               Convert domain XML to native config

После того как он его сгенерил - тупо сохраняешь в блабла.xml и все. Для запуска virsh create /pach/to/блабла.xml
Если Вы создавали домен через virt-install, то можно сделать дамп

Код: Выделить всё

dumpxml test
<domain type='xen' id='45'>
  <name>test</name>
  <uuid>ffecd709-4db2-e410-37fc-03fa7d65f81e</uuid>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static' cpuset='0-19'>2</vcpu>
  <bootloader></bootloader>
  <os>
    <type>linux</type>
    <kernel>/boot/DomU</kernel>
    <cmdline>root=/dev/xvda console=hvc0 xencons=xvc0</cmdline>
  </os>
  <clock offset='utc' adjustment='reset'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/vlxen/root'/>
      <target dev='xvda' bus='xen'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/vlxen/swap'/>
      <target dev='xvdb' bus='xen'/>
    </disk>
    <interface type='bridge'>
      <mac address='00:00:00:00:00:00'/>
      <source bridge='peth4'/>
      <script path='/etc/xen/scripts/vif-bridge'/>
      <target dev='vif45.0'/>
    </interface>
    <console type='pty' tty='/dev/pts/2'>
      <source path='/dev/pts/2'/>
      <target type='xen' port='0'/>
    </console>
  </devices>
</domain>


И опять же его сохраняете в файл и пользуетесь.

Ну это если я правильно понял Ваш вопрос)
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: virtlib xen pv gentoo

Сообщение Bluetooth »

Tokra писал(а):
06.11.2012 18:04
Ну это если я правильно понял Ваш вопрос)

Правильно поняли. Спасибо за инфу.
Спасибо сказали:
Tokra
Сообщения: 399

Re: virtlib xen pv gentoo

Сообщение Tokra »

Bluetooth писал(а):
06.11.2012 18:46
Tokra писал(а):
06.11.2012 18:04
Ну это если я правильно понял Ваш вопрос)

Правильно поняли. Спасибо за инфу.


Да нет за что) Будим дальше ковырять. Может рожу какую-то приблуду для всего хозяйства)
Спасибо сказали:
Ответить