26
3章 章章章章章章章章章章章章 章 「」 Nested KVM 章章章章章章Cloudstack 章章章 1 LT 章章章章 章章章章章章章章章 章章 章章

Cloudstack nested kvm検証環境

Embed Size (px)

Citation preview

Page 1: Cloudstack nested kvm検証環境

3 章「インストールと環境構築」 を Nested KVM でやってみ

た。Cloudstack 読書会 1 LT

株式会社 クレヴァシステムズ松浦 直樹

Page 2: Cloudstack nested kvm検証環境

自己紹介株式会社 クレヴァシステムズ・都内の Sier です。 SAP 、 EC サイト構築 Web 系開発、、、インフラ周りの構築 / 運用をやっています。

( 当然、、 cloudstack も頑張っています。 )

松浦 直樹基本、 Windows 系サーバエンジニアです。XenApp を利用した SaaS サイトの運用やっています。

http://kumozaru.com というサイトやっています。現状まったく更新できず。。良い CMS があったら教えてください。

HW レイヤから cloudstack 構築までのチュートリアルを公開したい。。。と思っています。

自作プライベートクラウドとか、、やっています。

Page 3: Cloudstack nested kvm検証環境

今回は、以下の環境でやってみました。

超低価格で頑張った自作クラウド。

Page 4: Cloudstack nested kvm検証環境

Cloud stack 検証環境Nested KVM でやってみる。 ( 本

題 )

幾つか勉強用とか検証用に環境を作りたい。

3 つ、、4っ、、、作りたいです。

Page 5: Cloudstack nested kvm検証環境

普通に作ると・・・

baremetal-Server& Primary

SecondaryStorageServer

Management Server& DB

Management Server& DB

Management Server& DB

Compute-Node1 Compute-Node2 Compute-Node3

Management Server& DB

Compute-Node4

物理サーバー

5 台も必要、、、金かかる割に大して面白い環境つくれない。。。。。。

Page 6: Cloudstack nested kvm検証環境

baremetal-Server& Primary

SecondaryStorageServer

Management Server& DB

Management Server& DB

Management Server& DB

Management Server& DB

こんなの出来たらよいですね・・・

物理サーバー 

仮想インスタンスVM2HostNode

仮想インスタンスVM1HostNode

仮想インスタンスVM3HostNode

KVM物理 H/W

Console Proxy(SystemVM)

仮想インスタンスVM1HostNode

BIOS Intel-VT

仮想支援

User-Instance SecondaryStorageVM(SystemVM)

VirtualRouter(SystemVM)

仮想支援 vmx。。。

ココいらへんが Nested

CUs

SeV C)Us

SeV CUs

SeV CUs

SeV

2 台でできる。これって eco?

2

層目

1

層目

Page 7: Cloudstack nested kvm検証環境

baremetal-Server Hostname : cloud-infra1.edi.local SecondaryStorageServer baremetal-Server Hostname : cloud-infra2.edi.local PrimaryStorageServer

Internet

Management /DB/storagemgmt1.edi.loc

DB Serverdb1.edi.local

Router(Vyatta)192.168.11.0/24

User-Instance

Console Proxy

(SystemVM)

SecondaryStorageVM(SystemVM)

VirtualRouter(SystemVM)

192.168.1.0/24 192.168.2.0/24

10.0.0.0/24

X.X.X.X

User-Instance

実際構成2 物理サーバーで、 3 セットストレージは、物理サーバー自作クラウドの全 8 台中2 台で検証環境として構築

Hsotname:ssh.edi.local SSH xxx22 ( ポート変更 )

Management mgmt1.edi.loc

ComputeNode node1.edi.local

ComputeNode node1.edi.local

DB Serverdb1.edi.local

Management mgmt1.edi.local

ComputeNode node1.edi.local

Console Proxy

(SystemVM)

SecondaryStorageVM(SystemVM)

VirtualRouter(SystemVM)

Console Proxy

(SystemVM)

SecondaryStorageVM(SystemVM)

VirtualRouter(SystemVM)

User-Instance User-Instance User-Instance User-Instance

10.0.0.0/2410.0.0.0/24

Page 8: Cloudstack nested kvm検証環境

Management Server& DB

cloudstack 徹底入門のインストールなら、、 1 台でできる。

物理サーバー     1 台のみ

KVM物理 H/W

Console Proxy(SystemVM)

仮想インスタンスHost 用 Node

BIOS Intel-VT

仮想支援

User-Instance SecondaryStorageVM(SystemVM)

VirtualRouter(SystemVM)

仮想支援 vmx。。。

ココいらへんが Nested

CUs

SeV

Management Server& DB& PrimaryStorage& SecondaryStorage

1

層目

2

層目

物理層

Page 9: Cloudstack nested kvm検証環境

とは言ってみたものの、、、カーネル 2.6x では未対応な機能なの

で、CentOS ・・・ハードル高し。

Ubuntu 。。。出来るらしい。Fedora も大丈夫。

Intel 系は、 3.x(3.2?) 以降で利用可能。AMD 系は、 2.6 以降で利用可能 ?

Page 10: Cloudstack nested kvm検証環境

やっぱりココは、、、CentOS でやってみたい。

カーネルを UP してまで CentOS でやる意味があるのかは、、わからない。

のですが、、

諸事情もあり、、、

Page 11: Cloudstack nested kvm検証環境

ということで、 CentOS 6.3ベース

でやってみました。環境構築 (Nested) で参考にさせていただいたサイト

http://oss.fulltrust.co.jp/?p=501iOSSオープンソースをもっと身近なものに

CentOS6.3 で KVM のネストを出来るようにする

とても参考になりました。というか、 Nested KVM については、

ほとんどこちらのサイトの内容のままです。

Page 12: Cloudstack nested kvm検証環境

KVM モジュールの Nested 対応化手順 ( 大まかな流れ )

●KVM のインストール ( 入っていればスキップ )● qemu-kvm の最新化 → qemu-kvm-1.2.0 を利用● カーネルのバージョンアップ → カーネルバージョン 3.6 を利用● Nested 用 KVM モジュール入れ替え → kvm-intel 、 kvm● ネストの設定 →kvm.conf の編集

Page 13: Cloudstack nested kvm検証環境

KVM モジュールの Nested 対応化手順 ( ざっくりバージョン )

1.(KVM のインストール ) →OS セットアップ時に組み込んでいれば不要

2.qemu-kvm の最新化 → qemu-kvm-1.2.0 を利用 → curl -L -o qemu-kvm-1.2.0.tar.gz http://sourceforge.net/projects/kvm/files/qemu-    kvm/1.2.0/qemu-kvm-1.2.0.tar.gz/download

3.qemu-kvm を入れ替え →2. で入れた最新版の qemu-kvm の有効化をするのですが 参考にさせてもらったページの内容から、 若干書き換え ( パスの書き換え ) がありました。 ( 後日資料を Update します。 )

Page 14: Cloudstack nested kvm検証環境

4. カーネルのバージョンアップ →# yum install ncurses-devel -y →# curl -O http://www.kernel.org/pub/linux/kernel/v3.0/linux -3.6.tar.xz

5. 新しいカーネルを利用するための準備 ( 既存の設定を利用 ) →# cp /usr/src/kernels/`uname -r`/.config . →# make menuconfig ( 変更なしなので、 esc*2 、 yes で完了 ) →# echo "CONFIG_SYSFS_DEPRECATED=y" >> .config →# echo "CONFIG_SYSFS_DEPRECATED_V2=y" >> .config →# make bzImage && make modules && make modules_install && make instal

6.OS の起動設定を確認と grub.conf の設定。 → # vi /etc/grub.conf

Page 15: Cloudstack nested kvm検証環境

7.Nested KVM モジュールのインストール → カーネルバージョンに合わせたモジュール ( 今回は 3.6) を使います。 → curl -L -o kvm-kmod-3.6.tar.bz2 http://sourceforge.net/projects/kvm/files/kvm -kmod/3.6/kvm-kmod-3.6.tar.bz2/download

8. 元のモジュールの停止 → # modprobe -r kvm-intel →# modprobe -r kvm

9. 新モジュールの読み込み → 新しいモジュールをコピーし、 modprobe で読み込みます。 →# modprobe kvm →# modprobe kvm-intel nested=1 (nested=1 を忘れない。 ) →# modinfo kvm-intel

Page 16: Cloudstack nested kvm検証環境

10.kvm.conf の編集 →vi /etc/modprobe.d/kvm.conf →options kvm_intel nested=1

詳細は、 http://oss.fulltrust.co.jp/?p=501 さんのサイトの内容で。。。。ばっちりです。(2 か所ほど私の環境では編集箇所があったので、後日、修正箇所のみ補足して、資料を UP しておきます。 )再確認したところ、、修正箇所なしで OK でした。。。

NestedKVM の動作としては、KVM on KVM 状態で動作することを

確認できています。わりと動います。

Page 17: Cloudstack nested kvm検証環境

clodstack は、、動いたの ?実際に CloudStack 徹底入門の 3 章

インストールと環境構築をやってみました。。。本当に書籍をトレースしてみました。

特にはまることなく、、、作業もでき、、、ゾーンの作成までできました。。

NFS をインストールした後、、、(/etc/idmapd.conf の Domain = ドメイン名 の編集 )chkconfig nfs onchkconfig rpcbind onrebootはやっておいたほうが良いかも。

p100 の、、 9 ブリッジの作成は、、 IPADDR や、 DNS の設定は、パラメータ一覧を追う。。図中の内容は、読み替えが必要かも ?

Page 18: Cloudstack nested kvm検証環境

特にはまることなく、、、ゾーンの作成まで、できました・・・・

ゾーンの作成まで、、できました・・・・

Page 19: Cloudstack nested kvm検証環境

特に問題なくインストールが、、終わった、、、と思っていたら、、、、

SystemVM が Starting の状態。。。。

お約束すぎる。

ある意味よくできた感じもします。。。

Page 20: Cloudstack nested kvm検証環境

ということで、、7.3.3 章

トラブルの例システム VM が起動しない。

につづく。。。。

NW ( インターネット接続ルーター ) の設定を間違えてました。(Template が落ちてこない。 )

これは関係ありませんでした。

というところで時間切れでした。。。。残念。。

Page 21: Cloudstack nested kvm検証環境

いじょうです。

ありがとうございました。

後日資料アップします。

Page 22: Cloudstack nested kvm検証環境

その後、、、

Cloudstack 動いてます。

ただし、何点か修正しています。

Page 23: Cloudstack nested kvm検証環境

修正箇所 ( システム VM が running にならない件 )

1. Hostノード上で、 PrymaryStorage がマウントされていない。。。 ⇒iptables を無効化したところ、 mount するようになりました。 本当はもう少し丁寧に確認したいところですが、、、時間もなく。。

2.Nested した、 hostへの CPU 割り当て数を変更 ⇒システム VM の起動が NG ( Hostノードで PrimayStorage がマウントされているのに、 やっぱりシステム VM が起動してこない。 ) ⇒単純に仮想 CPU の割り当てを増やしてあげたところ、 すんなり起動するようになりました。最初は割り当て数 =1 でした。

Global 設定の、 cpu.overprovisioning.factor をいじってみましたが、、効かなかったみたい。

Page 24: Cloudstack nested kvm検証環境

おまけ

772 、、、、 773・・・・・

Page 25: Cloudstack nested kvm検証環境

おまけ 2 (仮想の host 用マシンの設定 )

twitter で、カーネル 3.7.1 で、 OK という情報をいただきましたので、、、、、、試してみようかと。。。

Page 26: Cloudstack nested kvm検証環境

本資料について

• 本資料は、 cloudstack 徹底入門初版 (翔泳社 ) の内容を参考にしています。• 設定について、書籍に記載されている内容を設定しているつもりですが、誤読による設定ミス等あるかもしれません。内容については、無保証です。

• 本資料を利用したことによるあらゆる損害に対して、筆者は一切保障をいたしません。

参考資料程度でご利用ください。