うつ病双極性感情障害を抱えたけんけんFedoraFreeBSD勉強日記。
Linux/Unixデスクトップ用途として使う秘訣お教えします。
 since 2006年2月16日(木)

Domain-0

[動いた!!]世界で一番早い!? Linux kernel 3.0のXen のDomain-0(Dom-0) 機能を試してみた。

この記事をクリップ!
共通テーマ:
Linuxに関する運用 テーマに参加中!

Linux kernel 3.0が無事リリースされました。

Linux kernel 3.0上でのDomain-0機能が動作しないと嘆いてましたが、動きました

で、私の中での一番の注目点は、Linuxでの仮想化ソフトウェアXenのDomain-0(通常の仮想化ソフトウェアではホストOSなんだけど、厳密にはイコールではない)のサポート。

Linux kernelのメインストリームには、2.6.37から取り込まれていたのだけれども、 大々的に3.0からXen Domain-0が取り込まれたよ!!っていうんで、3.0 カーネルを実際にビルドしてみました。

昨今は、RedHatさんは、Xenを取りやめてKVMを採用してるけど、KVMだとUNIXなBSD系がFreeBSD以外全滅なので、Xenを試してみた次第。

カーネルのビルド方法

ビルド方法は、私のblogだと、 [高速化]、[軽量化]Linuxカーネルkernelの再構築 on Fedora 12 13 14[15も対応]
hiroumauma君のLinux Kernel 3.0.0リリース/ カーネルのビルド方法
aruneko君の[Fedora15]Kernelの再構築
などを参考にしてください。
hiroumauma君のところでmake CCACHE指定してるけど、makeするだけで、~/.ccacheがアホほど出来てるからいらないと思う。
指摘しないのは、自信がなかったりwww

Xenのハイパーバイザーのインストール

まずは、Xenのハイパーバイザーのインストールをしましょう。(あくまで、ハイパーバイザーのみで、ここではまだ、XenのDomain-0機能はインストールされません。

Fedora、CentOS5系列などRHEL5系列クローンならとても簡単で、

su -c "yum 'groupinstall Virtualization' "
su -c "yum install xen"

とするだけ。

ただ、RHEL5系列クローンは確か、Xenのハイパーバイザーは3系列なので、 Xen4系列の目玉、ゲストOSを高速に動作させる準仮想化PV(Para Virtualization)のさらに高速化したPvopsが使えないかな?(未確認)

RHEL6系列のクローンだと、 Redhat Enterprise Linux 6 Xen 4.0 tutorialでソースからビルド。ガンバ\(^o^)/

Linux kernel 3.0をビルド

Linux ディストリ共通

で、Linux 3.0 をビルドして、 仮想化ソフトウェアXen 4.0.1ハイパーバイザー + Dom0カーネル2.6.32 インストール on Fedora 12 13 14 15!!のgrub.confの設定を施す。(nomodesetは要らない。)
そして、rhgbを削除。

残念ながら、[Xen]とずらーっと出た後、Linux kernel 3.0が起動したところで、、pci周りでずーっとエラー出っぱなし。
だったのは、rhgbである、plymouseが邪魔してた。

携帯でエラーメッセージを写真で取ってみたけど、メッセージが速すぎて、ぼやけまくり。
DVC00001

こういう時は、シリアルコンソールで出力出来るらしい。

FedoraでのXenのDomain-0カーネルのインストール

Fedoraだと、Linux kernel 3.0 に相当する、2.6.40がアップデートが来たので、

su -c "yum upgrade kernel"

として、2.6.40カーネルをインストール。
仮想化ソフトウェアXen 4.0.1ハイパーバイザー + Dom0カーネル2.6.32 インストール on Fedora 12 13 14 15!!のgrub.confの設定を施す。(これもnomodesetは要らない
そして、rhgbを削除。したら、再起動し、該当するカーネル起動すれば、OK。
参考:Xen 4.1 on Fedora 15 with Linux 3.0

以下は、Linux kernel 3.0が動いたので、もういらないかも。
一応、XenのDomain-0カーネルの安定版2.6.32.xのインストールも書いておきます。 
Linux kernel 3.0だとサポートされてない機能もあると思うので。


で、Xenのハイパーバイザー側の設定が悪いのか、LinuxカーネルのDomain-0対応が原因なのかを切り分けるために、 仮想化ソフトウェアXen 4.0.1ハイパーバイザー + Dom0カーネル2.6.32 インストール on Fedora 12 13 14!!の Dom-0カーネルの項目のところにあるように、myoungさんのリポジトリのLinuxカーネル2.6.32.xにXen Domain-0用のパッチを全部当ててあるカーネルをインストールすると、

yum --disablerepo=fedora,updates --enablerepo=dom0-kernel \
install kernel

(32 bitな方は、kernelをkernel-PAEに。)

したら、

su -c "xm list"

xen-fedora15-myoung
写真の通り、無事起動して、XenのホストOS相当のDomain-0が見えている。

ゲストOSというか、Domain-Uをインストールしようとすると、SELinuxなスーパーセキュリティーシステムに怒られたので、今のところ試してはいないけど、
(XenのメーリングリストでもSELinuxをdisableにしろと書かれている。)
あんまり、SELinuxをdisableにしたくないし、disableにせずにポリシー当てられるようになりたいので Domain-U(Dom-U:つまりいわゆるゲストOS)についての追求は今回は、このへんまで。

結論

というわけで、ちゃんとmyuongさんのLinux kernelを使うと、動作するし、
Linux kernel 3.0のDomain-0サポートされました。まだ不完全、未実装なものはあるとは思うけど。

これより下の情報は、念の為残しておくけど、 Linux kernel 3.0でXenのDomain-0機能が動きましたよっと。

Xen公式のカーネル、 Xen paravirt_ops for upstream Linux kernel に掲載されている、jeremyさんのカーネルをを私の方ではビルドしてないけど、これも結局、Linux kernelのバージョンはあくまで2.6.32.xだったりするので、Fedoraでビルドしてくれてるmyoungさんのカーネルと変わらんと思う。というか、myoungさんは、たぶん、これを使って、rpmにしてくれてるだけだろうし。

たぶん、XenserverのCitrixさんやoracle vmさんもここまで、検証してないか、今までのLinux kernel 2.6.32.x辺りを使っているんだと思う。Xen ハイパーバイザーのxen4系列の採用はしてるか、現在作業中かもしれないけど。

もしかしたら、CitrixさんやOracle vmさんは、Linux kernel 3.0でも起動するように、独自にパッチ当ててたりして対応するかもしれないけど。

あとは、私の方でも、何か設定が足らないのかもしれないかな?

Xen公式のwiki、 Xen paravirt_ops for upstream Linux kernelを見ても、 Linux kernel 3.1に取り込む予定の機能は、

xen-pciback backend driver to be used in dom0 to support PCI passthru to VMs.
support for VGA text console in dom0.
memory hotplug support for xen balloon driver (allows adding more memory to the VM online / on-the-fly).
self-balloon driver to decrease memory in the guest and make the swap pages be shuffled by tmem to be compressed/shared/etc.
tmem driver to shuffle file-system and swap pages between guests as appropiate.
Xen PCI glue code cleanup.
Xen MMU debugfs tracing API support.
blkback providing completion latency that follows the hardware's completion latency.
Balloon expansion (using memory hotplug) to grow bigger than the initial domU memory size. 

となっていて、PCIがどうたらな項目が幾つかあったりする。
PCIパススルーなxen-pciback backend driverがXenのDomain-0の起動に必須なものかどうかは、 私の勉強不足で分からないけど、上の方でpciエラーがズラリと出るので、たぶん、この辺りが起動しない理由だと思う。

Linux kernel 3.0と、myoungさんのconfigとのdiffを取ってみると、(実際は、sortしたりして比較してる。)

diff  -u .config-no-customize-XEN .config-2.6.32-xen-XEN |grep XEN
--- .config-no-customize-XEN	2011-07-31 12:29:59.452766423 +0900
+++ .config-2.6.32-xen-XEN	2011-07-31 12:30:17.628765217 +0900
-# CONFIG_XEN_DEBUG is not set
+# CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER is not set
+# 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_ACPI_PROCESSOR_XEN=y
 CONFIG_HVC_XEN=y
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+CONFIG_MICROCODE_XEN=y
 CONFIG_NETXEN_NIC=m
 CONFIG_PCI_XEN=y
 CONFIG_SWIOTLB_XEN=y
 CONFIG_XENFS=m
 CONFIG_XEN_BACKEND=y
 CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BLKBACK_PAGEMAP=m
 CONFIG_XEN_BLKDEV_BACKEND=m
 CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_TAP=m
 CONFIG_XEN_COMPAT_XENFS=y
 CONFIG_XEN_DEBUG_FS=y
 CONFIG_XEN_DEV_EVTCHN=m
 CONFIG_XEN_DOM0=y
-CONFIG_XEN_FBDEV_FRONTEND=y
+CONFIG_XEN_DOM0_PCI=y
+CONFIG_XEN_FBDEV_FRONTEND=m
 CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_KBDDEV_FRONTEND=m
 CONFIG_XEN_MAX_DOMAIN_MEMORY=128
+CONFIG_XEN_MCE=y
 CONFIG_XEN_NETDEV_BACKEND=m
 CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PCIDEV_BACKEND_VPCI=y
 CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PCI_PASSTHROUGH=y
 CONFIG_XEN_PLATFORM_PCI=m
 CONFIG_XEN_PRIVILEGED_GUEST=y
 CONFIG_XEN_PVHVM=y
+CONFIG_XEN_S3=y
 CONFIG_XEN_SAVE_RESTORE=y
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_SYS_HYPERVISOR=y
 CONFIG_XEN_WDT=m
-CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_XENBUS_FRONTEND=m

となっていて、PCI周りが何個かとblkdev、blkback辺りが引っかかってるかな。blkdevやblkbackが何のことやら分からんけども。(PCIの項目で is not setがあるところは、ドライバーを選べるだけ。)

というわけで、私の調査では、Linux kernel 3.0での XenのDomain-0サポートは、2011年 8月 7日 日曜日 10:30:17 JST現在、ちゃんと動きましたよっと。

それでも、Compizやら、Gnome-Shellは動作してくれないですね。残念。


Linux kernel 2.6.32.xなDomain-0でも、KMSをサポートしきれてないので、nomodesetをgrub.confに指定する必要があったりする。なので、たぶん基本的には、Gnome-ShellやらCompizやらのOpenGLは使えない…

VGAパススルーは、Xen側では実装してるっぽいので、Linux kernel 3.0がXenのDom-0サポートを進めてくれるまで待つしかなさそう…
と、思ったけど、Linux kernel 3.0 を使ってもまだ、VGAパススルーが出来てないっぽい。
もしかしたら、グラフィックボードが私は、オンボードなのでできないかもしれない。

というか、大人しく、Virtual Boxを使ったほうが、Addtionなんとかで、OpenGLを使いつつ、ゲストOSを使えるので、楽かもね。
libvirtから、CUIでいじれるっぽいし。

たぶん、Xenの本だとこの本が一番整っていると思うけど、Linux kernelは、2.6.32どころかもっと古く、XenハイパーバイザーもXen3系列だと思う。
もちろん、日本で一番、充実したXenの本であることは確かだけども。
今回の記事でなんと、このXen徹底入門の長谷川さんから、Twitterでアドバイスを貰えたりした…
しかも、倉木麻衣 ちゃん繋がりで… 
Twitterっれどこでどんな趣味で繋がるか分かりませんね…(´・ω・`)

Xen徹底入門 第2版 (CD-ROM付)
Xen徹底入門 第2版 (CD-ROM付)
クチコミを見る
すべてわかる仮想化大全2011 (日経BPムック)
すべてわかる仮想化大全2011 (日経BPムック)
クチコミを見る

仮想化ソフトウェアXen 4.0.1ハイパーバイザー + Dom0カーネル2.6.32 インストール on Fedora 12 13 14 15!!

この記事をクリップ!
共通テーマ:
Linux Tips テーマに参加中!

前置き

仮想化がずいぶん注目されるようになりました。 ですが、Fedora及びRedHatKVMへシフトするようになってしまいました。 最新のPCをお持ちの方ですとKVMの導入は手軽で高速な仮想化環境を整えることができるでしょう。 しかし、KVMはCUPの仮想化支援機構が必要で私のような化石PCでは 扱えません。 そんなお古なPCでも仮想化できるソフトウェアがXenです。 準仮想化モードで動作できます。 ただし、Fedora 14では正式にはXenに対応していません。 ですが、myoungさんのカーネルを使ってXenDom0カーネルの有効化に成功したのでお知らせします。 Fedora 14の仮想化XenのDom0カーネルの有効化、 Xen 4.0.1のインストール方法を紹介します。

CPUの確認

まずは、CPUの確認をします。 Xenの準仮想化に対応しているかどうかは
$ grep pae /proc/cpuinfo
paeを含んだ行が含まれている行が 表示されれば、Xenの準仮想化に対応しています。 また、Intel製CPUの場合、
$ grep vmx /proc/cpuinfo
の実行結果が AMD製CPUの場合、
$ grep svm /proc/cpuinfo
の実行結果が表示されればXenの完全仮想化に対応している CPUかどうかが分かります。

仮想化のグループインストール

まずは、一気に仮想化ソフトウェアをインストールします。 本当はKVM環境も一緒にインストールされるのですが、 Xenでも利用するvirt-managervirt-installvirt-viewerを インストールするためです。
su
(パスワード入力)
yum groupinstall 仮想化

Xenのインストール

Xen-4.0.1のインストールです。 Fedora 14では公式パッケージを使ってインストールできます。
yum install xen

Dom0カーネル

Fedora 14でのXenを使用するための鬼門、 Dom0カーネルのインストール、設定を紹介します。

Dom0カーネルのインストール

公式パッケージには含まれていないのですが、 xenをインストールした時に一緒に/etc/yum.repo.d/dom0-kernel.repo というリポジトリがインストールされます。 このリポジトリを利用してインストールします。 ただし、少しコツが必要で以下のように--disablrepo でfedora公式のリポジトリを無効にし、--enablerepodom0-kernel のリポジトリを有効にしてからカーネルをインストールします。

32 bitの場合

yum --disablerepo=fedora,updates --enablerepo=dom0-kernel \
install kernel-PAE

64 bitの場合

yum --disablerepo=fedora,updates --enablerepo=dom0-kernel \
install kernel

grub.confの設定

次にgrub.confの設定を追加します。 インストールしたカーネル(*-xendom0の行)の項目4行を コピーし、貼り付けます。(貼りつけ場所に注意!!) titleをFedoraから始まる行にXenをtitle(半角スペース) の後に追加します。 そして、titleの下に
kernel /xen.gz
として、もともとkernelと書かれている箇所をmodulekernelと書かれていた行の一番後ろにnomodesetを加えます。 initdと書かれている箇所もmoduleとします。 Fedoraをインストールしたときに パーティションのレイアウトを変更していない場合は 以下のように設定します。
title Xen Fedora (2.6.32.26-174.2.xendom0.fc12.i686.PAE)
	root (hd0,1)
	kernel /xen.gz
	module /vmlinuz-2.6.32.26-174.2.xendom0.fc12.i686.PAE ro \
root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap \
rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc \
KEYTABLE=jp106 rhgb quiet nomodeset
	module /initramfs-2.6.32.26-174.2.xendom0.fc12.i686.PAE.img

SELinux

SELinuxdisableにします。 [システム]→[管理]→[SELinux Management] を起動し、写真の赤い線の場所をクリックしてSELinuxdisableにします。 xen-selinux-on
xen-selinux-off

再起動

再起動し、Xen Fedoraと表示されているカーネルで起動します。

仮想マシンマネージャー

[アプリケーション]→[システム]→[仮想マシンマネージャー] を開き、 Domain-0が表示されていれば、 Fedora14でのXenのDom0カーネルの有効化が成功です。 DomUのインストール方法はまた別途紹介します。 参考文献: [Fedora-xen] Fedora 12 Xen guests (domU) and hosts (dom0) [Fedora-xen] [fedora-virt] Fedora 12 Xen guests (domU) and hosts (dom0) / grub.conf example Fedora 12に Xen 4.0をインストールする Features/XenPvopsDom0 - Fedora Project Setup Fedora 11 PV DomU at Xen 3.4.1 Dom0 (kernel 2.6.31-rc3) on top of Fedora 11 Xen徹底入門 第2版 (CD-ROM付) すべてわかる仮想化大全2011 (日経BPムック)

Fedora13上でのXen 4.0.1のインストール方法の紹介!!

この記事をクリップ!
Fedora13Xen4Tutorial - Xen Wiki
Fedora13でのxen4系列のインストール方法を一つずつ順序立てて解説してくれているサイト


仮想化ソフトウェアXen 4.0.1ハイパーバイザー + Dom0カーネル2.6.32 インストール on Fedora 12 13 14!!

KVMに押されぎみのLinux上での仮想化技術Xenを
Fedora13上でインストールする方法です。
ぜひとも、チャレンジしてみてください。

私もチャレンジする予定です。
できるPRO CentOS サーバー CentOS 5対応 (できるPROシリーズ)できるPRO CentOS サーバー CentOS 5対応 (できるPROシリーズ)
著者:辻 秀典
インプレスジャパン(2009-06-05)
おすすめ度:4.5
販売元:Amazon.co.jp
クチコミを見る
KVM徹底入門 Linuxカーネル仮想化基盤構築ガイドKVM徹底入門 Linuxカーネル仮想化基盤構築ガイド
著者:平 初
翔泳社(2010-07-08)
おすすめ度:3.5
販売元:Amazon.co.jp
クチコミを見る
Xen徹底入門 第2版 (CD-ROM付)Xen徹底入門 第2版 (CD-ROM付)
著者:宮本 久仁男
翔泳社(2009-09-15)
販売元:Amazon.co.jp
クチコミを見る


ブログ内の検索
Google

WWW を検索
このblog内を検索
私がPixivで描いたイラスト
うつ病の治療に効果がある可能性があるらしい
FedoraにオススメのPC、周辺機器(動作保証するものではありません)




tweet
コンピューター オススメ
Linuxオススメ本
コマンド本
さらにLinux/UNIX上級者になりたい方へ
NAVERまとめ
livedoorトピックワード
livedoor 天気
アクセスカウンター

    はてブリスト - 現在
    倉木麻衣ちゃん
    はてブリスト - 前のドメイン名
    • ライブドアブログ