2009年3月31日にFedora 11 Beta版(Fedora 10.92)がリリースされました。
Fedora 11 Beta付属のXenはXen 3.3.1です。
Fedora 9, 10同様にFedora 11(Beta)でも自分自身をXenのDomain0として動作させる機能はサポートしていません。
Fedora 11のXen関連パッケージ自体にはparavirt-ops対応のDomain0カーネルをサポートする機能が追加されています。
しかしFedora 11付属のPAEカーネル(正確にはカーネルソース)側にはそのカーネルをDomain0として起動させる構成オプション自体が含まれていません。
このためFedora 11付属のPAEカーネルを再構築してもそのカーネルをDomain0としてブートさせることはできません。
即ち、Fedora 11をDomain0として実行させるにはFedora 11付属でない別のカーネルソースが必要になってきます。
[補足]
(1)カーネル2.6.23からparavirt-opsという仕組みが追加されました。
(2)paravirt-opsとは通常のvmlinuzカーネル(bzImage形式)をPVゲストカーネルとしても動作させる仕組みを指します。
(3)Fedora 11のXen関連パッケージにはparavirt-ops対応のDomain0カーネルをサポートする機能が追加されています。
(4)paravirt-ops対応のDomain0カーネルとは「通常カーネル兼PVゲストカーネル兼Domain0カーネル」を指します。
(5)Fedora 11においてparavirt-ops対応のDomain0カーネルを構築することで「Xen専用カーネルの不要化」が実現可能となります。
ここではFedora 11をクリーンインストールした状態でDomain0としても動作するカーネルを即席で構築する手順を紹介します。
更にPVゲストの実行例やKVM/Xennerの実行例も合わせて紹介します。
尚、今回使用したCPUはCore 2 Duo E6600です。
またここで紹介するホストOS, PVゲスト共にすべて32ビット版OSです。
下記では特に断りが無い限りFedora 11はFedora 11 Betaを指します。
# cat .config|grep XEN CONFIG_XEN=y CONFIG_XEN_MAX_DOMAIN_MEMORY=8 CONFIG_XEN_SAVE_RESTORE=y CONFIG_XEN_DEBUG_FS=y 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 11 (2.6.30-rc3-tip) root (hd0,2) kernel /boot/vmlinuz-2.6.30-rc3-tip ro root=UUID=ebba706c-e965-451c-b01c-b2cc3f380fe5 rhgb quiet initrd /boot/initrd-2.6.30-rc3-tip.img title Fedora 11 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=ebba706c-e965-451c-b01c-b2cc3f380fe5 console=tty0 module /boot/initrd-2.6.30-rc3-tip.img title Fedora 11 (2.6.29-0.258.2.3.rc8.git2.fc11.i686.PAE) root (hd0,2) kernel /boot/vmlinuz-2.6.29-0.258.2.3.rc8.git2.fc11.i686.PAE ro root=UUID=ebba706c-e965-451c-b01c-b2cc3f380fe5 rhgb quiet initrd /boot/initrd-2.6.29-0.258.2.3.rc8.git2.fc11.i686.PAE.img |
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" ] |
bootloader = "/usr/bin/pygrub" name = "pvu810jeos" memory = 128 vif = ['bridge=eth0'] disk = [ "file:/root/vmu810jeos/vmu810jeos-flat.vmdk,sda,w" ] |
# cat .config|grep KVM CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m CONFIG_KVM_TRACE=y |
/usr/bin/xenner -m 128 -name xnr-vmu810jeos -boot c \ -kernel /root/vmu810jeos/vmlinuz-2.6.27-7-server \ -initrd /root/vmu810jeos/initrd.img-2.6.27-7-server \ -hda /root/vmu810jeos/vmu810jeos-flat.vmdk \ -append "root=UUID=1bbdd7e0-7302-4411-85d4-06a2c2fcf7a4 ro quiet console=xvc0" \ -network 54:52:00:48:19:01,virbr0 |
1243057409 54:52:00:48:19:01 192.168.122.145 vmu810jeos * |