fbpx

CloudStackを使ってみよう[3]

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

1台のPCでCloudStack環境を構築する (nested KVM編)

最近のKVMでは、KVM上でさらにKVMを動作させることが可能です。
本項では OSSはアルミニウムの翼で飛ぶ: KVM on KVM(nested KVM) を参考にnested KVM環境を構築し、その上にCloudStack環境を構築します。

ホストOSの準備

以下の2環境でテストを行いました。

環境1 環境2
OS Debian GNU/Linux (unstable + experimental) Debian GNU/Linux (unstable + experimental)
kernel linux-image-3.5-trunk-amd64 3.5.2-1~experimental.1 linux-image-3.5-trunk-amd64 3.5.2-1~experimental.1
CPU Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
flags fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi flexpriority ept vpid
MEM 32GB 32GB

Debian GNU/Linux (unstable) の kernel である linux-image-3.2.0-3-amd64 3.2.23-1 では、ゲスト OS の kvm_intel が正常に動作しないために experimental の kernel をインストールしています。

GuestOS# modprobe kvm_intel
FATAL: Error inserting kvm_intel (/lib/modules/2.6.32-279.2.1.el6.x86_64/kernel/arch/x86/kvm/kvm-intel.ko): Input/output error
GuestOS#

参考: Nested kvm_intel broken on pre 3.3 hosts, Bug #1031090 “kvm_intel not loadable in a quantal guest”
このホストOSでkvm_intelモジュールをnestedを有効にして読み込ませます。

HostOS# cat > /etc/modprobe.d/kvm-nested.conf
options kvm_intel nested=1
HostOS#

HostOS# modprobe -r kvm_intel
HostOS# modprobe kvm_intel
HostOS#

HostOS# cat /sys/module/kvm_intel/parameters/nested
Y
HostOS#

/sys/module/kvm_intel/parameters/nestedの値がYとなっていれば、nestedが有効になっています。

ゲストOSの準備

CloudStack Management ServerとCloudStack Computing Nodeのための仮想マシンを1台ずつ、CentOS 6.2をvirt-managerからインストールします。Management ServerにStorage Serverを行わせる場合、割り当てるディスク領域の大きさに注意してください。可能であれば他の物理マシンやホストOSをNFSサーバとしてStorage Serverを行わせたほうがよいでしょう。Computing Nodeの仮想マシンのCPUのモデルをcore2duoに、CPUの機能のvmxをoffからrequireに設定しておきます。また、可能な限り多くメモリの割り当てを行うことを推奨します。

仮想マシンが準備できたら、それぞれにCloudStack Management ServerとCloudStack Computing Nodeをインストール、設定を行います。ホストOSでnested KVMが正常に動作しているならば、Computing Node上でシステムVMが無事起動するはずです。

トラブルシューティング

ゲストOSでkvmモジュールが読み込めない

  • ホストOSのkernelでnested KVMが有効になっていない。
  • ホストOSのkernelがバグのためnested KVMが正常に動作しないヴァージョンだった。
  • ホストOSの物理マシンで仮想化支援機能が有効になっていない。
  • ゲストOSの仮想マシンで仮想化支援機能が有効になっていない。

などが考えられます。

初期テンプレートがダウンロードできない。もしくはダウンロードが数パーセント進んで停止してしまう

Secondary Storage VMにログインし、外部へのネットワークが動作しているか確認します。ネットワークが不通になっている場合、Secondary Storage VM内のcloudサービスを何度か再起動することで復帰する可能性があります。原因は詳しくわかっていません。

システムVMがすぐ破損する

Primary/Secondary StorageをゲストOS上のCloudStack Management Serverに行わせていると、ディスクイメージ内にさらにディスクイメージが存在することになり、IO効率が悪く、動作も不安定になります。可能な限り、物理サーバにPrimary/Secondary Storageサーバを行わせることを推奨します。

Author

Chef・Docker・Mirantis製品などの技術要素に加えて、会議の進め方・文章の書き方などの業務改善にも取り組んでいます。「Chef活用ガイド」共著のほか、Debian Official Developerもやっています。

Daisuke Higuchiの記事一覧

新規CTA