要件的にはメモリ4GB、ディスクは250GB以上が推奨みたいです。
最低限、マネージメントサーバ、ストレージサーバ、コンピューティングノードの3台の元となるサーバを3台用意しておきます。
IPアドレスなどは自分の環境にあわせてください。
ネストのKVMで行う場合で更にNATを利用する場合はホストとなるKVMの仮想マシンの設定でipforwardの設定を仮想マシンに入れておけば外部に出て行くことが可能です。 ブリッジの場合で外部と同じネットワークであれば必要ありません。
インストールする際のパッケージ選択はMinimalで問題ないでしょう。但し、manやtelnetすら入っていないので必要なものがあればインストールしておきましょう。
また、インストール後はホスト名、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設定は終了です。
次は各サーバの設定になります。
ファイルをダウンロードして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を押下してパッケージをインストールします。
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
ここで一旦マネージメントサーバの設定は終了です。
ストレージサーバの設定後にマネージメントサーバでテンプレートを用意します。
特に特殊な設定を行うわけではなく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
# 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
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
# vi /etc/idmapd.conf
Domain = storage01
設定を反映させます。
# chkconfig nfs on
# chkconfig rpcbind on
# reboot
マネージメントサーバで行います。ストレージサーバのセカンダリストレージを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
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
再起動しないと起動しない場合がありますので再起動します。
# reboot
ここまでで、マネージメントサーバ、ストーレージサーバ、コンピュートノードの設定は終了です。
ブラウザでCloudStackにログインしての作業になります。マネージメントサーバのIPアドレスで接続できます。
初期設定だとユーザ名、 admin パスワード、 password でログインできます。
http://192.168.10.60:8080/client/
ブラウザで接続する(admin、password)とまずCloudStackの説明が表示されます。
注意点としてブラウザの戻るボタンだと戻りすぎるのでCloudStack画面の戻るを利用しましょう。
ツアーで基本インストールを行うため 基本インストールを続行する を押下します。
ゾーンの設定は以下のように行いますが環境に合わせる必要があります。名前は何でもいいので好きな名前を設定してください。
ここでは外部、内部どちらの名前解決もルータで行います。2は必須でないので空白にしています。
入力する際に丁寧にヘルプが出ますので問題ないと思います。
設定項目 | 設定値 |
---|---|
名前 | zone1 |
DNS 1 | 192.168.10.1 |
DNS 2 | |
内部 DNS 1 | 192.168.10.1 |
内部 DNS 2 |
入力後 続行 を押下して次へ行きます。
ポッドの設定は以下のように行いますが環境に合わせる必要があります。名前は何でもいいので好きな名前を設定してください。
全て入力する必要があります。環境に合わせたものを設定してください。 セカンダリVM、コンソールプロキシVMが利用するアドレスなのでそんなに必要ないかもしれませんが以下のようにしています。
入力する際に丁寧にヘルプが出ますので問題ないと思います。
設定項目 | 設定値 |
---|---|
名前 | pod1 |
ゲートウェイ | 192.168.10.1 |
ネットマスク | 255.255.255.0 |
IPアドレスの範囲 | 192.168.10.101 - 192.168.10.150 |
入力後 続行 を押下して次へ行きます。
全て入力する必要があります。環境に合わせたものを設定してください。
入力する際に丁寧にヘルプが出ますので問題ないと思います。
設定項目 | 設定値 |
---|---|
ゲートウェイ | 192.168.10.1 |
ネットマスク | 255.255.255.0 |
IPアドレスの範囲 | 192.168.10.151 - 192.168.10.200 |
入力後 続行 を押下して次へ行きます。
KVM が選択できますので KVM を選択します。
入力する際に丁寧にヘルプが出ますので問題ないと思います。
設定項目 | 設定値 |
---|---|
ハイパーバイザー | KVM |
名前 | cluster1 |
入力後 続行 を押下して次へ行きます。
エージェントをインストールしたコンピュートノードを指定します。
入力する際に丁寧にヘルプが出ますので問題ないと思います。
設定項目 | 設定値 |
---|---|
ホスト名 | compute01 |
ユーザー名 | root |
パスワード | stack |
入力後 続行 を押下して次へ行きます。
ストレージサーバを指定します。
NFSを設定したのでプロトコルはNFSを指定します。というかそれ以外選択できないですね。
パスもストレージサーバに設定したものを指定します。
入力する際に丁寧にヘルプが出ますので問題ないと思います。
設定項目 | 設定値 |
---|---|
名前 | primarystorage1 |
プロトコル | NFS |
サーバー | storage01 |
パス | /export/primary |
入力後 続行 を押下して次へ行きます。
ストレージサーバを指定します。
前から疑問なのですがセカンダリストレージは IPアドレス を指定する必要があるのでそうします。
パスもストレージサーバに設定したものを指定します。
入力する際に丁寧にヘルプが出ますので問題ないと思います。
入力後 続行 を押下して次へ行きます。