2008年11月25日にFedora 10 正式版がリリースされました。
Fedora 10 正式版でもFedora 9同様にDomain0としての動作は未サポートのままです。
つまりFedora 9同様にFedora 10付属のXen 3.3ベースのXenハイパバイザーをブートできません。
※そのハイパバイザーをブートすると「elf_init: not an ELF binary」エラーになります。
しかしFedora 11 Beta用xen-3.3.1-11.fc11.src.rpmを利用してFedora 10にXen 3.3.1環境を構築するとDomain0として実行可能となります。
ここで構築するXen 3.3.1環境用カーネルは「通常カーネル兼PVゲストカーネル兼Domain0カーネル」という便利なものです。
[補足]
(1)カーネル2.6.23からparavirt-opsという仕組みが追加されました。
(2)paravirt-opsとは通常のvmlinuzカーネル(bzImage形式)をPVゲストカーネルとしても動作させる仕組みを指します。
(3)Fedora 11のxen-3.3.1-11.fc11.src.rpmにはparavirt-ops対応のDomain0カーネルをサポートする機能が追加されています。
(4)paravirt-ops対応のDomain0カーネルとは「通常カーネル兼PVゲストカーネル兼Domain0カーネル」を指します。
(5)Fedora 11が正式リリースされるまでの間はFedora 10環境にparavirt-ops対応のDomain0カーネルを導入するのが無難です。
(6)paravirt-ops対応のDomain0カーネルを構築することで「Xen専用カーネルの不要化」が実現可能となります。
ここではFedora 10をクリーンインストールした状態でXen 3.3.1環境を構築する手順とPVゲストの実行例を紹介します。
尚、今回使用したCPUはCore 2 Duo E6600です。
またここで紹介するホストOS, PVゲスト共にすべて32ビット版OSです。
伸張ファイルの検査中: /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/xen-3.3.1-11.fc10.i386 書き込み完了: /root/rpmbuild/RPMS/i386/xen-3.3.1-11.fc10.i386.rpm 書き込み完了: /root/rpmbuild/RPMS/i386/xen-libs-3.3.1-11.fc10.i386.rpm 書き込み完了: /root/rpmbuild/RPMS/i386/xen-runtime-3.3.1-11.fc10.i386.rpm 書き込み完了: /root/rpmbuild/RPMS/i386/xen-hypervisor-3.3.1-11.fc10.i386.rpm 書き込み完了: /root/rpmbuild/RPMS/i386/xen-devel-3.3.1-11.fc10.i386.rpm 書き込み完了: /root/rpmbuild/RPMS/i386/xen-debuginfo-3.3.1-11.fc10.i386.rpm |
# cat .config|grep XEN CONFIG_XEN=y CONFIG_XEN_MAX_DOMAIN_MEMORY=8 CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set CONFIG_XEN_DOM0_PCI=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_MICROCODE_XEN=y CONFIG_PCI_XEN=y CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_KBDDEV_FRONTEND=y CONFIG_HVC_XEN=y CONFIG_XEN_FBDEV_FRONTEND=y CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=y CONFIG_XEN_BACKEND=y CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_XEN_NETDEV_BACKEND=y CONFIG_XENFS=y CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_XENBUS_FRONTEND=y CONFIG_XEN_GNTDEV=y |
# cat .config|grep PARAVIRT CONFIG_PARAVIRT_GUEST=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_PARAVIRT_DEBUG is not set |
default=2 timeout=15 splashimage=(hd0,2)/boot/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.30-rc3-tip) root (hd0,2) kernel /boot/vmlinuz-2.6.30-rc3-tip ro root=UUID=d32eba94-9e7a-4a62-bd5c-8f59f20ebd5f rhgb quiet initrd /boot/initrd-2.6.30-rc3-tip.img title Fedora dom0 (2.6.30-rc3-tip) root (hd0,2) kernel /boot/xen-3.3.gz dom0_mem=1024M module /boot/vmlinuz-2.6.30-rc3-tip ro root=UUID=d32eba94-9e7a-4a62-bd5c-8f59f20ebd5f console=tty0 module /boot/initrd-2.6.30-rc3-tip.img title Fedora (2.6.27.5-117.fc10.i686) root (hd0,2) kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=d32eba94-9e7a-4a62-bd5c-8f59f20ebd5f rhgb quiet initrd /boot/initrd-2.6.27.5-117.fc10.i686.img |
[root@fedora10 ~]# uname -srm Linux 2.6.30-rc3-tip i686 [root@fedora10 ~]# cat /etc/fedora-release Fedora release 10 (Cambridge) [root@fedora10 ~]# rpm -qa|grep xen|sort xen-3.3.1-11.fc10.i386 xen-debuginfo-3.3.1-11.fc10.i386 xen-devel-3.3.1-11.fc10.i386 xen-hypervisor-3.3.1-11.fc10.i386 xen-libs-3.3.1-11.fc10.i386 xen-runtime-3.3.1-11.fc10.i386 [root@fedora10 ~]# ps aux|grep xen root 21 0.0 0.0 0 0 ? S< 20:37 0:00 [xenwatch] root 22 0.0 0.0 0 0 ? S< 20:37 0:00 [xenbus] root 2258 0.0 0.0 2368 860 ? S 20:37 0:00 /usr/sbin/xenstored --pid-file /var/run/xenstore.pid root 2268 0.0 0.0 10528 520 ? Sl 20:37 0:00 /usr/sbin/xenconsoled --log=none --log-dir=/var/log/xen/console root 2509 0.2 1.0 85028 11272 ? Sl 20:37 0:00 /usr/bin/python2.5 /usr/sbin/xend root 3249 0.0 0.0 5304 808 pts/1 R+ 20:42 0:00 grep xen [root@fedora10 ~]# ifconfig |grep Link eth0 Link encap:Ethernet HWaddr 00:02:B3:38:DC:9B inet6 addr: fe80::202:b3ff:fe38:dc9b/64 Scope:Link lo Link encap:Local Loopback peth0 Link encap:Ethernet HWaddr 00:02:B3:38:DC:9B inet6 addr: fe80::202:b3ff:fe38:dc9b/64 Scope:Link [root@fedora10 ~]# ping -c 1 www.yahoo.com|grep icmp 64 bytes from www.yahoo.com (209.131.36.158): icmp_seq=1 ttl=55 time=127 ms [root@fedora10 ~]# ps aux|grep -i network root 2098 0.0 0.2 15120 2476 ? Ssl 20:37 0:00 NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid root 2104 0.0 0.3 8108 3680 ? S 20:37 0:00 /usr/sbin/nm-system-settings --config /etc/NetworkManager/nm-system-settings.conf root 3255 0.0 0.0 5308 888 pts/1 R+ 20:42 0:00 grep -i network [root@fedora10 ~]# [root@fedora10 ~]# cat /proc/cpuinfo|grep name model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz [root@fedora10 ~]# dmesg|grep paravirt Booting paravirtualized kernel on Xen [root@fedora10 ~]# [root@fedora10 ~]# xm dmesg 以下省略 |
title Fedora (2.6.21-2950.fc8xen) root (hd0,1) kernel /boot/xen.gz-2.6.21-2950.fc8 module /boot/vmlinuz-2.6.21-2950.fc8xen ro root=LABEL=/1 rhgb quiet module /boot/initrd-2.6.21-2950.fc8xen.img |
補足:vmlinuz-2.6.21-2950.fc8xen用構成ファイルの確認結果は以下の通りです。 # cat /boot/config-2.6.21-2950.fc8xen|grep XEN CONFIG_X86_XEN=y # CONFIG_PCI_GOXEN_FE is not set CONFIG_XEN_PCIDEV_FRONTEND=y # CONFIG_XEN_PCIDEV_FE_DEBUG is not set CONFIG_NETXEN_NIC=m CONFIG_XEN=y CONFIG_XEN_INTERFACE_VERSION=0x00030205 # XEN CONFIG_XEN_PRIVILEGED_GUEST=y # CONFIG_XEN_UNPRIVILEGED_GUEST is not set CONFIG_XEN_PRIVCMD=y CONFIG_XEN_XENBUS_DEV=y CONFIG_XEN_BACKEND=y CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_XEN_BLKDEV_TAP=m CONFIG_XEN_NETDEV_BACKEND=m # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set CONFIG_XEN_NETDEV_LOOPBACK=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_BACKEND_VPCI=y # CONFIG_XEN_PCIDEV_BACKEND_PASS is not set # CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set # CONFIG_XEN_PCIDEV_BE_DEBUG is not set # CONFIG_XEN_TPMDEV_BACKEND is not set CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_FRAMEBUFFER=y CONFIG_XEN_KEYBOARD=y CONFIG_XEN_SCRUB_PAGES=y # CONFIG_XEN_DISABLE_SERIAL is not set CONFIG_XEN_SYSFS=y CONFIG_XEN_COMPAT_030002_AND_LATER=y # CONFIG_XEN_COMPAT_030004_AND_LATER is not set # CONFIG_XEN_COMPAT_LATEST_ONLY is not set CONFIG_XEN_COMPAT=0x030002 CONFIG_XEN_SMPBOOT=y # cat /boot/config-2.6.21-2950.fc8xen|grep PARAVIRT # CONFIG_PARAVIRT is not set # cat /boot/config-2.6.21-2950.fc8xen|grep GUEST CONFIG_XEN_PRIVILEGED_GUEST=y # CONFIG_XEN_UNPRIVILEGED_GUEST is not set |
LANG=C /usr/sbin/virt-install -n fc9domu2 -r 512 -f /root/fc9domu2.img -s 4 \ -b virbr0 -p -l http://ftp.riken.jp/Linux/fedora/releases/9/Fedora/i386/os |
補足:PVゲストカーネル(vmlinuz-2.6.25-2.fc9.i686.xen)用構成ファイルの確認結果は以下の通りです。 # cat /boot/config-2.6.25-2.fc9.i686.xen|grep XEN CONFIG_XEN=y CONFIG_XENCTRL=y CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_NETXEN_NIC=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_KBDDEV_FRONTEND=y CONFIG_HVC_XEN=y CONFIG_XEN_FBDEV_FRONTEND=y # cat /boot/config-2.6.25-2.fc9.i686.xen|grep PARAVIRT CONFIG_PARAVIRT_GUEST=y CONFIG_PARAVIRT=y # cat /boot/config-2.6.25-2.fc9.i686.xen|grep GUEST CONFIG_PARAVIRT_GUEST=y |
bootloader = "/usr/bin/pygrub" name = "xmfc9domu2" memory = 512 vif = ['bridge=eth0'] disk = [ "file:/root/fc9domu2.img,sda,w" ] |
bootloader = "/usr/bin/pygrub" name = "pvfc10" memory = 512 vif = ['bridge=eth0'] disk = [ "file:/root/pvfc10.img,sda,w" ] |
title Fedora (2.6.30-rc3-tip) root (hd0,0) kernel /boot/vmlinuz-2.6.30-rc3-tip ro root=UUID=b8c19cae-b122-4678-8b7f-4f2443e4d6a2 rhgb quiet 3 initrd /boot/initrd-2.6.30-rc3-tip.img |
bootloader = "/usr/bin/pygrub" name = "pvu810jeos" memory = 128 vif = ['bridge=eth0'] disk = [ "file:/root/vmu810jeos/vmu810jeos-flat.vmdk,sda,w" ] |