自宅CloudStackを構築してみたメモ

ことはじめ

SSDってやっぱり壊れるんですね.ある日僕が帰宅すると,なんだか様子がおかしいのです.いつもと挙動が違うなーとか思っていたら,ディスクに何も書けないではありませんか.僕のfstabには

/dev/sda2 / ext4 discard,noatime,errors=remount-ro 0 1

みたいな感じでエラーを検知したら自動的にroで再マウントするように設定してあるのですが,これに引っかかったのでしょうか.しかし,rebootしようとするとそもそもディスク自体を認識していないようだったので,僕は突然SSDを別れを告げることになってしまったのでした.

CloudStackを入れよう

さて,そんなこんなで僕は自宅CloudStackを作ることにしました.1台構成なので冗長性などという文言はかけらもありませんが.

まずはUbuntu 12.04のServer版を入れます.パーティションは適当に切ってもらって,あとはVMを置くための領域をどっかに確保します.
僕の場合は別のHDDに確保することにしました.
インストールできたら,ブリッジが作成できるようにbridge-utilsを入れます.

sudo apt-get install bridge-utils

ネットワークの設定はこんな感じです.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
#iface eth0 inet dhcp
auto cloudbr0
iface cloudbr0 inet static
	bridge_ports eth0
	bridge_fd 5
	bridge_maxwait 1
	address 192.168.1.24
	netmask 255.255.255.0
	network 192.168.1.0
	broadcast 192.168.1.255
	gateway 192.168.1.1
	dns-nameservers 129.250.35.250
	dns-search mikunchu.net

基本的にはインストールドキュメントに沿った形で進めます.
http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html-single/Installation_Guide/index.html

とりあえずNFSを入れます.

sudo apt-get install nfs-kernel-server

NFS関係の設定は/etc/exportsしか書いていません.

/mnt/localhdd/cloudstack/primary *(rw,async,no_root_squash,no_subtree_check)
/mnt/localhdd/cloudstack/secondary *(rw,async,no_root_squash,no_subtree_check)

fstabの設定も忘れずに.

/dev/sdb1 /mnt/localhdd ext4 defaults 0 0

また,1台構成だし今後の拡張予定も今のところないので,VMのCPUはホストのCPUをパススルーすることにしました./etc/cloudstack/agent/agent.propertiesあたりを編集します.

guest.cpu.mode=host-passthrough

インストールが終了したら,次はWebUIにログインして構成します.今回は1台構成なのでPrimaryStorageはNFSを介さない形で作ります.とりあえず初回ログインを済ませたあと,最初のセットアップウィザードはスキップして,自分でゾーンを構成します.「インフラストラクチャ」→「ゾーン」→「ゾーンの追加」から基本ネットワークを構成します(拡張ネットワーク構成にもできます).途中で「ローカルストレージを有効にする」というオプションが出てきますが,今回はSharedMountPointでも同様の構成ができるはずなので,そちらを利用しました.

おわりに

全部手動インストールでもCloudStackなら2時間半もあれば構築できるのでラクラクですね.
あと,この記事の投稿日時はUTCです.