このエントリーをはてなブックマークに追加

1.2. CloudStackのインストール

この手順ではちゃんと動きません。
4.0でKVMまともに使えるのかと試してみました。

1.2.1. OSインストールの注意点

OSは、CentOS 6.3 64bit をインストールします。
冗長構成は考慮しない構成で構築します。
Swiftも利用しません。
SwiftはCloudStackだとセカンダリストレージとして利用できるだけみたいなので急いで利用する必要はないと思ってますがどうなんでしょう。
コンピュートノードは、Xenserver推奨です。
CloudStackはどう考えても調子はXenserverのほうがいいです。でもKVMを使います。
まだ、プレリリース版でCIでビルドされたものを利用したのでダウンロード先がない場合はダウンロードURLの変更が必要になります。

要件的にはメモリ4GB、ディスクは250GB以上が推奨みたいです。

最低限、マネージメントサーバ、ストレージサーバ、コンピューティングノードの3台の元となるサーバを3台用意しておきます。

上記のうちコンピューティングノードだけは何らかの仮想化を行うことが出来る環境が必要です。
またストレージサーバはプライマリ、セカンダリ共に同じサーバに構築します。データベースサーバは管理サーバと同じサーバにインストールします。

IPアドレスなどは自分の環境にあわせてください。

ネストのKVMで行う場合で更にNATを利用する場合はホストとなるKVMの仮想マシンの設定でipforwardの設定を仮想マシンに入れておけば外部に出て行くことが可能です。 ブリッジの場合で外部と同じネットワークであれば必要ありません。

インストールする際のパッケージ選択はMinimalで問題ないでしょう。但し、manやtelnetすら入っていないので必要なものがあればインストールしておきましょう。

また、インストール後はホスト名、IPアドレスの固定化を行って置きます。

1.2.1.1. OSまわりの設定

3台とも同じ設定をおこなっておきます。
OSのアップデートを行ってるくらいで特に気にする内容はありません。。
ネットワークブリッジの設定は Cloudstack がよろしくやってくれますのでIPアドレスの固定化だけおこなっておきます。
# yum upgrade -y
# yum install man wget ntp telnet nfs-utils man openssh-clients -y
# chkconfig ntpd on
# sed -i 's/::1/#::1/g' /etc/hosts
# echo "192.168.10.60 manage01" >> /etc/hosts
# echo "192.168.10.61 storage01" >> /etc/hosts
# echo "192.168.10.62 compute01" >> /etc/hosts
# chkconfig ip6tables off
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# setenforce 0

Cloudstackインストール前のOS設定は終了です。

次は各サーバの設定になります。

1.2.2. マネージメントサーバの設定

ファイルをダウンロードしてCloudStackをインストールします。インストールファイルはOSが6.3だったので6.3用を利用します。

# cd /usr/local/src
# wget http://jenkins.cloudstack.org/job/build-4.0-rhel63/lastSuccessfulBuild/artifact/CloudStack-oss-4.0.0-79.tar.bz2
# tar jxvf CloudStack-oss-4.0.0-79.tar.bz2
# cd CloudStack-oss-4.0.0-79
# ./install.sh

メニューが表示されますので、マネージメントサーバに必要なものをインストールするために M を選択した後、yを押下してパッケージをインストールします。

# ./install.sh

終了後、データベースサーバも同じサーバで利用しますので再度インストールシェルを実行します。

# ./install.sh

メニューが表示されますので、データベースサーバに必要なものをインストールするために D を選択した後、yを押下してパッケージをインストールします。

1.2.2.1. MySQLの設定

CloudStackが推奨しているMySQLの設定を行います。

# sed -i '6a\
innodb_rollback_on_timeout=1\
innodb_lock_wait_timeout=600\
max_connections=350\
log-bin=mysql-bin\
binlog-format = 'ROW'\
' /etc/my.cnf

続いてMySQLのパスワードを設定します。本番などではキチンとしたものを設定する必要がありますがここではpasswordとします。

# service mysqld restart
# mysql -u root
mysql> SET PASSWORD = PASSWORD('password');
mysql> exit

パスワードを変更したためCloudStackのデータベースのユーザ名、パスワードの設定を行います。

# cloud-setup-databases cloud:password@localhost --deploy-as=root:password

マネージメントサーバの設定をコマンドで実施します。一瞬で終わります。

# cloud-setup-management

ここで一旦マネージメントサーバの設定は終了です。

ストレージサーバの設定後にマネージメントサーバでテンプレートを用意します。

1.2.3. ストレージサーバの設定

特に特殊な設定を行うわけではなくNFSの設定を行うだけです。またプライマリストレージとセカンダリストレージは同一サーバで行います。

1.2.3.1. NFSの設定

共有用ディレクトリと設定を行います。

# yum -y install nfs-utils
# mkdir -p /export/primary
# mkdir -p /export/secondary
# echo '/export *(rw,async,no_root_squash)' >> /etc/exports
# exportfs -a

1.2.3.2. NFSが利用するポートの設定

# sed -i "s/#LOCKD_TCPPORT=32803/LOCKD_TCPPORT=32803/g" /etc/sysconfig/nfs
# sed -i "s/#LOCKD_UDPPORT=32769/LOCKD_UDPPORT=32769/g" /etc/sysconfig/nfs
# sed -i "s/#MOUNTD_PORT=892/MOUNTD_PORT=892/g" /etc/sysconfig/nfs
# sed -i "s/#RQUOTAD_PORT=875/RQUOTAD_PORT=875/g" /etc/sysconfig/nfs
# sed -i "s/#STATD_PORT=662/STATD_PORT=662/g" /etc/sysconfig/nfs
# sed -i "s/#STATD_OUTGOING_PORT=2020/STATD_OUTGOING_PORT=2020/g" /etc/sysconfig/nfs

1.2.3.3. ファイアウォールの設定

iptablesの設定を行います。

# cat <<SETUP > /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -m state --state NEW -p udp --dport 662 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9090 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8250 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
SETUP
クライアントとサーバーの間で NFSv4 通信を使用する場合は、ドメインを/etc/idmapd.conf に追加します。ここではストレージサーバーでこの設定を行いますが、後でコンピュートノードでも同じ設定を行います。
# vi /etc/idmapd.conf
Domain = storage01

設定を反映させます。

# chkconfig nfs on
# chkconfig rpcbind on
# reboot

1.2.4. テンプレートの用意

マネージメントサーバで行います。ストレージサーバのセカンダリストレージをNFSでマウントして行います。

# mkdir /mnt/secondary
# mount -t nfs storage01:/export/secondary /mnt/secondary
# /usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F
# umount /mnt/secondary

1.2.5. コンピュートノードのインストール

XenServerであれば何も設定する必要なくWebUIからCloudStackのコンピュートノードとして追加できますがKVMであればエージェントをインストールしておく必要があります。

KVMのコンピュートノードを追加するのであれば毎回作業が必要です。

注意点としてはCloudStack独自のqemu-kvmを利用するため既にインストールしてあればアンインストールシておきます。

# cd /usr/local/src
# wget http://jenkins.cloudstack.org/job/build-4.0-rhel63/lastSuccessfulBuild/artifact/CloudStack-oss-4.0.0-79.tar.bz2
# tar jxvf CloudStack-oss-4.0.0-79.tar.bz2
# cd CloudStack-oss-4.0.0-79

# ./install.sh

メニューが表示されますので、エージェントに必要なものをインストールす>るために A を選択した後、yを押下してパッケージをインストールします。

インストール後、マニュアルにNFSのサービスを起動するように記述があったので起動しておきます。iscsiを利用した”SharedMountPoint”のためにインストールする必要があるのかな。すいません、もう少し勉強します。

# service rpcbind start
# chkconfig rpcbind on

ストレージサーバのDomainを設定します。

# vi /etc/idmapd.conf
Domain = storage01

仮想マシンをGUIで利用するためにVNCの外部接続設定を行います。

# sed -i 's/# vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/' /etc/libvirt/qemu.conf

1.2.5.1. libvirtdの起動

再起動しないと起動しない場合がありますので再起動します。

# reboot

ここまでで、マネージメントサーバ、ストーレージサーバ、コンピュートノードの設定は終了です。

1.2.6. CloudStackの初期設定

ブラウザでCloudStackにログインしての作業になります。マネージメントサーバのIPアドレスで接続できます。

初期設定だとユーザ名、 admin パスワード、 password でログインできます。

http://192.168.10.60:8080/client/

1.2.6.1. CloudStackについて

ブラウザで接続する(admin、password)とまずCloudStackの説明が表示されます。

注意点としてブラウザの戻るボタンだと戻りすぎるのでCloudStack画面の戻るを利用しましょう。

ツアーで基本インストールを行うため 基本インストールを続行する を押下します。

1.2.6.2. パスワード変更

パスワードの変更を促す画面が表示されますのでパスワードを変更しましょう。

変更後、保存して続行 を押下して次へ行きます。

1.2.6.3. ゾーンの説明

ゾーンの説明が表示されますので読んで理解しておきます。

OK を押下して次へ行きます。

1.2.6.4. ゾーンの追加

ゾーンの設定は以下のように行いますが環境に合わせる必要があります。名前は何でもいいので好きな名前を設定してください。

ここでは外部、内部どちらの名前解決もルータで行います。2は必須でないので空白にしています。

入力する際に丁寧にヘルプが出ますので問題ないと思います。

設定項目 設定値
名前 zone1
DNS 1 192.168.10.1
DNS 2  
内部 DNS 1 192.168.10.1
内部 DNS 2  

入力後 続行 を押下して次へ行きます。

1.2.6.5. ポッドの説明

ポッドの説明が表示されますので読んで理解しておきます。

OK を押下して次へ行きます。

1.2.6.6. ポッドの追加

ポッドの設定は以下のように行いますが環境に合わせる必要があります。名前は何でもいいので好きな名前を設定してください。

全て入力する必要があります。環境に合わせたものを設定してください。 セカンダリVM、コンソールプロキシVMが利用するアドレスなのでそんなに必要ないかもしれませんが以下のようにしています。

入力する際に丁寧にヘルプが出ますので問題ないと思います。

設定項目 設定値
名前 pod1
ゲートウェイ 192.168.10.1
ネットマスク 255.255.255.0
IPアドレスの範囲 192.168.10.101 - 192.168.10.150

入力後 続行 を押下して次へ行きます。

1.2.6.7. ゲストネットワークの追加

全て入力する必要があります。環境に合わせたものを設定してください。

入力する際に丁寧にヘルプが出ますので問題ないと思います。

設定項目 設定値
ゲートウェイ 192.168.10.1
ネットマスク 255.255.255.0
IPアドレスの範囲 192.168.10.151 - 192.168.10.200

入力後 続行 を押下して次へ行きます。

1.2.6.8. クラスターの説明

クラスターの説明が表示されますので読んで理解しておきます。

OK を押下して次へ行きます。

1.2.6.9. クラスターの追加

KVM が選択できますので KVM を選択します。

入力する際に丁寧にヘルプが出ますので問題ないと思います。

設定項目 設定値
ハイパーバイザー KVM
名前 cluster1

入力後 続行 を押下して次へ行きます。

1.2.6.10. ホストの説明

ホストの説明が表示されますので読んで理解しておきます。

OK を押下して次へ行きます。

1.2.6.11. ホストの追加

エージェントをインストールしたコンピュートノードを指定します。

入力する際に丁寧にヘルプが出ますので問題ないと思います。

設定項目 設定値
ホスト名 compute01
ユーザー名 root
パスワード stack

入力後 続行 を押下して次へ行きます。

1.2.6.12. プライマリストレージの説明

プライマリストレージの説明が表示されますので読んで理解しておきます。

OK を押下して次へ行きます。

1.2.6.13. プライマリストレージの追加

ストレージサーバを指定します。

NFSを設定したのでプロトコルはNFSを指定します。というかそれ以外選択できないですね。

パスもストレージサーバに設定したものを指定します。

入力する際に丁寧にヘルプが出ますので問題ないと思います。

設定項目 設定値
名前 primarystorage1
プロトコル NFS
サーバー storage01
パス /export/primary

入力後 続行 を押下して次へ行きます。

1.2.6.14. セカンダリストレージの説明

セカンダリストレージの説明が表示されますので読んで理解しておきます。

OK を押下して次へ行きます。

1.2.6.15. セカンダリストレージの追加

ストレージサーバを指定します。

前から疑問なのですがセカンダリストレージは IPアドレス を指定する必要があるのでそうします。

パスもストレージサーバに設定したものを指定します。

入力する際に丁寧にヘルプが出ますので問題ないと思います。

入力後 続行 を押下して次へ行きます。

1.2.6.16. おめでとうございます

と表示されるので起動しましょう。

後は、GUIのため結構直感的に動かすことができます。