ブログネタ
Linuxに関する運用 に参加中!

前置き

記事更新停止と言いながら、更新開始。 ただし、今までみたいに丁寧に解説しながらじゃなく、 走り書き。つまり、自分用メモ。

2016年6月12日(日)現在Xen Dom0の機能はカーネルモジュールに組み込まれておりXen仮想化機構が使えます。

Linux 3.0 Xenの取り込み

先日、Linux カーネル3.0には、仮想化ソフトウェア、 XenのDom-0及びDom-U機能がマージされると発表がありました。 RHEL6では、Xenを捨ててKVMへ推奨としていたので、 仮想化関連の情報としては、衝撃的な発表になったと思う。

2011年 7月 31日 日曜日 15:02:15 JST 現在、世界で一番早い!? Linux kernel 3.0のXen のDomain-0(Dom-0) 機能を試してみた。 [結論:動作しない]にて、実際にLinux kernel 3.0をビルドしてみたが、Domain-0としての機能を実装できておらずbootしないことを、検証した。

Xenについて

仮想化の説明は、もういいかな?最近は。 Xenとは、PC(というかCPU?)との間に仮想的なOSを実現するためのクッション材を間に挟む機能を含むハイパーバイザー型の仮想化ソフトウェアです。

で、Windowsでデスクトップ目的に仮想化するソフトウェアといえば、VMware Playerとか、Virtual Boxが有名どころでしょうけど、 Linuxでは、XenとKVMが有名かと。

そして、Xenだと、所謂仮想化を支える方のOSをホストOSというけど、Dom-0と呼び、 仮想化されている側のOSをDom-Uと呼びます。

ホスト、ゲストと呼ばないのは、ホストーゲスト型の仮想化ソフトウェアではなく、 ハイパーバイザー型だから。 しかも、VMware ESixでしたっけ?の完全ハイパーバイザー型ではない。 あくまで、Dom-Uを管理するために、Dom-0であるLinuxカーネルが必要。 よって、ホストOSは、Linuxに限定される。 CitrixのXenserverは、たぶん管理するための機能をWindowsから Dom-0を操ってるだけ。 仮想化を本当に管理しているのは、Linux。 使ってないからあくまで予測。

で、RHEL6からXenを見捨てKVMに切り替えた時代、 何故今さらXenをとりあげたかというと、 KVMでは、CPUに仮想化支援機構が実装されているものでないと使えないという弱点があるから。

そして、CPUの仮想化支援機構があるPCであってもKVMよりXenの方が高速な仮想化を実現出来る可能性があるから。

で、もう少しXenの事に触れます。 Xenには、大きく別けて2つのゲストOS(Dom-U)の扱い方があります。

それは、完全仮想化(HVM:Hardware Virtual Machine)と準仮想化(PV:para Virtulization)というモード。 (本当は、xen4系列から準仮想化をさらに強化したpvopsというのが加わる。)

完全仮想化とは、CPUの仮想化支援機構が必要ではあるが、 KVMのようにほぼどんなOSでも仮想化することができる。 (実際は、どんなOSでもとは、言えないけども。)

そして、準仮想化とは、CPUの仮想化支援機構がなくても、 仮想化を実現できるモード。 ただし、Dom−U側のカーネルに修正が必要。 (主に、Linux、BSDあたりは動作する。Windowsはほぼ不可能。準仮想化用のドライバが2008だけあったような情報を メーリングリストで見たことがある。)

ここで、ややしこいのですが、一見準仮想化の方が不利なようですが、 カーネルの修正さえ対応していれば、完全仮想化より高速に動作するということ。 (もちろん、CPUの仮想化支援機構があっても準仮想化を使えばさらに高速に動作させられる。) なので、今回のDom-Uの扱い、機能追加というのは、 主にこの準仮想化機能について恩恵が預けられる機能なのです。。

Xenの本当の動き

一番トップのリンク先を見ると、今までXenはLinuxカーネルに取り込まれていなかったのか。と 思っている方がたぶん多いと思うので、ちゃんと事の経緯を書いて起きます。

本当は、XenのDom-0機能は、2.6.37から一部Linuxカーネル本体に取り込まれることが宣言されていたし、 実際に.configにもDOM-0の項目も追加されてた。
ただし、ブートしてもkernel panicになったかなんかでうまく動かず。 Dom-0に必要な色々なドライバが含まれていないためだそう。 ソースは探してくださいませ。

さらに、 Dom-Uの機能はとっくにLinuxカーネルの本体に取り込まれているのに、 取り込まれたぞ!!とタイトルに付けられている。 xen.orgの元ソースですら。 まあ、完全じゃなかったからそう書いたのかもしれないけど。 (元記事もしっかりは読んでないし。)

Dom-Uの機能がLinux カーネル本体にいつから取り込みか忘れたけど、たぶん、Fedoraでいうとたぶんf10から。
某サーバー/os/images/xen/のディレクトリがなくなってる。 その辺もFedoraのリリースノートで確認してください。 あやふやです。

FedoraをDom-Uにするだけなら、少なくともF7の頃にはdom-U用のカーネルをビルドする必要すら無い。
CentOSも5系列、RHEL5系列とそのクローンならOKかと。 kernel-xenパッケージがDom-Uとして働く。

Linux カーネル3.0でのDom-0の最近の動向

で、一番重要なLinux 3.0でのXen Dom-0での動きをTiwtterで 自分が呟いた情報を適当に貼り付け。

私は、鯖管でもなければ、Redhatの社員でもなければ、 IT系の研究室でもなかったけど、 たぶんどこよりも早くLinux 3.0でのXen Dom-0の情報を追っかけてるはず。 ただし、あくまでwebとchangelog飲みの判断でソースコードまで読んでいない。アンドそもそも読めない。) (2011年 6月 25日 土曜日 16:58:26 JST 現在)

2011/06/25 13:45:46
Linux カーネルになんでXen のサポート強化が採用されたのかと思ったら、oracleが提案したのか。oracle vmってxenだもんね。で、推測だけど、今はxen3系列(カーネルじゃなくハイパーバイザーが)で、xen4系列が4.1.1とstableに入った。なんとかせいと
2011/06/25 10:49:22
Linux kernel 3.0にxen dom-0が正式採用ってニュース流れてたけど、changelog見る限りじゃちっとも導入されてないぞ。 #kernel #Xen
2011/06/23 20:31:53
i check changelog about Linux kernel not shown jeremy, is Dom-0 commiter。konrad is Dom-U commiter. *訳changelog見たけど、Dom-0(所謂仮想化のホストOS)の管理人jeremyの名前が見当たらない。konradさんはDom-U(ゲストOS)の管理人だし。#Xen #Linux #kernel #redhat #redhatjp
2011/06/23 20:31:14
http://t.co/rRN34KG Do Linux kernel 3.0 is really involved Xen Dom-0?  本当にLinux カーネル3.0にXen Dom-0カーネルの機能が(全て)実装されるの?#Xen #kernel #redhatjp

P.S. あれ?結局普段と変わらず割と丁寧に書いてしまった。 くれぐれもこの記事丸々を信用しないこと。 動向ばかり書いてどうこうしようと思っているの?(おやじギャグ)

Xen徹底入門 第2版 (CD-ROM付)
Xen徹底入門 第2版 (CD-ROM付)
クチコミを見る
KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド
KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド
クチコミを見る