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

仮想化

意外と簡単!?Fedora、RHEL、RHELクローン上で、Linxuカーネルに組み込まれている仮想化ソフトウェアKVMをインストール、セットアップする方法。

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

KVMとは?

インストール

FedoraでのKVMインストールは、とても簡単です。

コマンドを使う場合

コマンドが苦痛でない方は、 以下を実行するだけ。

yum groupinstall Virtualization

GUIでインストールする場合

【アクティビティ】→【アプリケーション】→【システムツール】→【アプリケーションの追加/削除】を選んでクリック!!

図のように アプリケーションの追加/削除が起動したら、
【パッケージコレクション】→【仮想化】をクリックして、インストールするだけ!!

仮想マシンをインストール!!

KVMでの仮想マシンの導入はとても簡単です。

[アクティビティ]→[アプリケーション]→[システム] [仮想マシン]マネージャーを起動。

あとは、 管理者権限のパスワードを聞かれるので、 入力。

新しく仮想マシンを導入するには、 PCのに再生マーク▼がついたアイコンをクリックした順番に設問に答えるだけです。 ただ、仮想マシンノ名前には、制限があり、アルファベットと数字記号飲み利用可能で、 半角スペースは利用できないのでご注意を。

意外とあっけない。
あとは、いろんなLinuxディストーションを楽しんでみまそう。
筆者が試した範囲でh、Linuxの親戚のPC-UNIX、BSD系が全部インストール出来ない模様。
virt-managerを利用中、メディア、ISOイメージを選択時にUNIX→BSDと選ぶとインストール出来る模様。ただし、パフォーマンスはかなり悪い。

VMware PlayerやVirtual Boxで楽しむしかありませんね。

過去のFedoraをインストールしまくってみるとこんなかんじに。

kvm-fedora9-16alpha

KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド
KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド
クチコミを見る

すべてわかる仮想化大全2011 (日経BPムック)
すべてわかる仮想化大全2011 (日経BPムック)
クチコミを見る

Linuxカーネル3.0でのXen Dom-0とDom-Uの最新の動向、事の成り行き。

ブログネタ
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カーネル仮想化基盤構築ガイド
クチコミを見る

仮想化ソフトウェア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ムック)

☆いつの間にかリリースされていたXen-4.01☆

ブログネタ
インストール に参加中!
Xen Hypervisor Source
* Blktap2 - High performance VHD implementation supporting snaphots and clonces including live snapshots
* Netchannel2 - Support for new Smart NICs with multi-queue and SR-IOV functionality
* Fault Tolerance - Live transactional synchronization of VM state between physical servers
* Libxenlight - New library providing higher-level control of Xen between various toolstacks
* PV-USB and VGA Pass-through
* Xen 4.0 Release Notes


仮想化は私の夢であり仕事にしたいシステムです。
仮想化システムはKVM(-qemu),Xen,virtual-box,VMware,hyper-V
と切磋琢磨して良いシステムにしている高機能な
クラウドようシステムです。
Linux上からWindowsを動かすことも加納です。
そのため、ウェブデザイナーが色んな環境で気軽にテストできる
とても大切な技術です。

私はmixiの友人からこの仮想化のうちXenを進められていらい、
Xenシステムの構築のノウハウを少しずつですが、
固めている所です。

もし、Xenがうまく使えない、
また、そもそもXen以前にLinuxが使えないという方向けにこのブログを更新していくつもりなので、
ぜひ、ブクマかはてブで登録もしくはコメント、つぶやきを私にしていただけると幸です。

さて、今回リリースされた新しいXenの特徴は
USBとVGAがパススルー機能が付き、
仮想化で実現が難しかったハードウェアとの
連携が難しかった点が改善されているという点が非常に
優秀な機能と言えるでしょう。
xen用のLinuxカーネルが2.6.32と新しくなっているので、
デバイスドライバの対応がよくなっていると思われます。

私としては、
Xen用Linuxカーネルが最新のLinuxカーネルにサポートされるといいなあと思っています。

そう思う理由は、この不景気な時代、ハードウェアが低スペックでも準仮想化を使うことで仮想化できる点がKVMよりXenの方が気に入っているためです。

念のため、FacebookのLinusにコメントを入れてみたけど、
あんまりFacebookの記事を更新してないから、
いつ見てもらえるか分からないところが悩みの種。
みんなでLinuxに頼んで、LinuxカーネルにXenがサポートされるように
願いを叶えてもらおう!!


見てもらえたのか、カーネル2.6.37からCONFIG_XEN_DOM0が含まれるようになりました。make menuconfigのメモリを64GBにして、PAEを有効にすると、parvirtuzation guest supportをONにします。残念ながら筆者が試したところ起動しませんでしたが、メーリングリストで活発に議論されているようです。

Fedora 14 13 12でのXen Domain-0のインストール方法。

Fedora 12では、仮想化ソフトウェアXenの
Dom0カーネルがサポートされていません。

ですが、最近になってDom0カーネルの実装がFedora 12でも
使用できるようになりました。
そこで、XenのインストールDom0カーネルのインストール方法を紹介します。

CPUの確認


まずは、CPUの確認をします。
Xenの準仮想化に対応しているかどうかは

$ grep pae /proc/cpuinfo

でpaeを含んだ行が含まれている行が
表示されれば、Xenの準仮想化に対応しています。

また、Intel製CPUの場合、

$ grep vmx /proc/cpuinfo

の実行結果が
AMD製CPUの場合、

$ grep svm /proc/cpuinfo

の実行結果が表示されればXenの完全仮想化に対応している
CPUかどうかが分かります。

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


Xenとyumでのgroupinstallで仮想化環境をインストールします。

$ su
# yum groupinstall Virtualization
# yum install xen


Dom0カーネル


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


Dom0カーネルのインストールをします。
まず、mkinitrdをインストールします。

# yum install mkinitrd

次にDom0カーネルをインストールします。
32bit用と64bit用ではインストールするkernelが
異なるので注意しましょう。

32bitのCPUの場合



$ uname -m
i686

と返ってくる場合は、
32bit用Linuxを使用しています。

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

として、Dom0カーネルをインストールします。
インストールするkernelはkernel-PAEであることに注意して下さい。

64bitのCPUの場合



$ uname -m
x86_64

と返ってくる場合は、
64bit用のLinuxを使用しています。

64bitのCPUの場合、

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

とします。

grub.confの設定


次に、grub.confを設定します。
kernelにXenハイパーバイザ、
moduleにDom0カーネルのkernelとinitrdを指定します。

kernelとかかれていた箇所をmoduleとし、
initrdと書かれていた箇所もmoduleとして、
さらに、kernel=/xen.gztitle行の下に書き加えて下さい。


title Fedora (2.6.31.9-1.2.82.xendom0.fc12.i686.PAE)
root (hd0,0)
kernel /vmlinuz-2.6.31.9-1.2.82.xendom0.fc12.i686.PAE ro \
root=/dev/mapper/vg_dell-LogVol00 LANG=ja_JP.UTF-8 \
KEYBOARDTYPE=pc KEYTABLE=jp106 rhgb
initrd /initrd-2.6.31.9-1.2.82.xendom0.fc12.i686.PAE.img



title Fedora Xen (2.6.31.9-1.2.82.xendom0.fc12.i686.PAE)
root (hd0,0)
kernel /xen.gz
module /vmlinuz-2.6.31.9-1.2.82.xendom0.fc12.i686.PAE ro \
root=/dev/mapper/vg_dell-LogVol00 LANG=ja_JP.UTF-8 \
KEYBOARDTYPE=pc KEYTABLE=jp106 rhgb
module /initrd-2.6.31.9-1.2.82.xendom0.fc12.i686.PAE.img

とします。

titleをFedoraからFedora Xenに変更しています。

vmlinuz-やinitrd-の後ろのバージョン名は
カーネルのバージョンによって異なるので注意して下さい。
また、カーネルオプションもお使いの環境によって異なるので、
便宜書き換えて下さい。

Dom0カーネルのインストール時に自動で生成される
/etc/grub.confをtitleからinitrdまでコピーし、
上で説明したように、
titleのFedoraFedora Xenに、
kernelとかかれていた箇所をmoduleとし、
initrdと書かれていた箇所もmoduleとして、
さらに、kernel=/xen.gztitle行の下に書き加えるだけで
良いでしょう。

Dom0カーネルの起動


Linux(ここではFedora)を再起動します。
起動時のgrubでのカーネルの選択時に、
Fedora Xen (2.6.31.9-1.2.82.xendom0.fc12.i686.PAE)
を選択して起動します。

無事に起動し、ログインしたら、
GNOMEデスクトップの上のメニューの
[アプリケーション]→[システムツール]→[仮想マシンマネージャー]
として、virt-managerを起動します。

以下の図のようにDomain-0カーネルが表示されれば、成功です。
Screenshot-Xen-Domain-0
ブログ内の検索
Google

WWW を検索
このblog内を検索
最新コメント
コンピューター オススメ
Linuxオススメ本
コマンド本
アクセスカウンター

    はてブリスト - 現在
    • ライブドアブログ