ただ、クラウドが簡単に運用できるとは思わないほうがいいと思う。少なくとも本番運用には2セット(本番、検証環境)は必要。それを理解した上で構築することをおすすめする。
下手なベンダーに騙されるぐらいなら、自分で事前検証をすることをおすすめする。もし、ベンダーに頼むのであれば、間違いなく大手SIerに頼むべし!彼らの価格提示が高いのは、最初に大きく、正しく絵を描いているからだ。
さて、まずは構成図(物理構成)
あくまでも、こじんまりと最小限の環境で構築をするようにしている。
F/W・ルーターは、Buffaloなどの家庭用のでも検証は可能。ただし、インターネットへの接続は必ず必要。また、グローバルIPは、あっても無くても(ケーブルテレビ環境など)いい。また、ルーターでのDHCPは、無くても良い。
このCloudStackの構成をBasic Networkモードという。VLANは使わないが、CloudStack付属のファイアーウォールやロードバランサーは利用できない。
必要機材は、基本的にCloudStackの必要要件に準じるが
- ルータ・ファイアーウォールやネットワークHUB(普通のSWITCH)
- ストレージサーバ (NFSが利用できればなんでもいい)
- CloudStack管理サーバ
- 計算機ノード(Intel VTあるいは、AMD-Vが利用できるマシン。メモリは4GBくらい必要)
・ルータ・ファイアーウォール Buffaloの有線LANルーター
・ストレージサーバ CentOS 6.2 x86_64 2GB Memory HDD 500GB
・CloudStack管理サーバ CentOS 6.2 x86_64 2GB Memory HDD 20GB
・計算機ノード Intel Xeon E3 4core/8Thread 16GB Memory HDD 160GB
計算機ノードのディスクは、本来20GB程度で構わないが、計算機ノードのストレージもプライマリストレージとして使えるので、付いていると便利。また、CPUは、AMDだとHyperthreadingが使えないので、リソースが厳しくなる。(本来Hyperthreadingは、偽のCPU-パワーなので期待できないが、KVMの場合は有効に使える。)
つまり、計算機ノードは、贅沢に、残りはしょぼくても構わない。
OS仮想環境は、以下のようにする。
OS: CentOS 6.2 x86_64
仮想環境: KVM
このチョイスにした理由は、お金をかけたくないからである。また、KVMを利用した理由は、XenServerだと、パワーマネージメントが使えないため電気代が大量にかかる。一方KVMは、パワーマネージメントが有効的に使える上に、KSMというメモリシェアリングの機構が使えるため、同じOSを複数台起動するという条件付きだが、見た目以上のリソースを動作させることが可能。
以下構築手順だが、肝心なGUIでの入力値が抜けているが後日追加する。
ネットワーク空間は、192.168.100.0/24に構築することとする。
1.ストレージサーバの構築
●OSのインストール
CentOS 6.2 x86_64
インストールしたパッケージグループは、Baseのみ。
/export配下に高速かつ大容量ストレージをマウントする。
●IPv6の無効化とホストの設定
# vi /etc/sysconfig/network
以下を追加。
-> NETWORKING_IPV6=no
# vi /etc/modprobe.d/disable-ipv6.conf
以下を追加。
-> options ipv6 disable=1
# vi /etc/hosts
-> ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
をコメントアウト。また、ホスト名を設定
-> 192.168.100.X yourhost.yourdomain.com yourhost
# chkconfig ip6tables off
●その他、設定、アップデート
# yum -y update
# yum -y install acpid ntp nfs-utils wget
# service acpid start
# service ntpd start
# chkconfig acpid on
# chkconfig ntpd on
# vi /etc/selinux/config
以下を変更。
SELINUX=enforcing
-> SELINUX=permissive
# setenforce permissive
# vi /etc/idmapd.conf
以下を変更。(サーバのドメイン名に)
以下を変更。(サーバのドメイン名に)
-> Domain = company.com
NFSサーバの設定
# mkdir -p /export/primary
# mkdir -p /export/secondary
# vi /etc/exports
以下を追加。
-> /export *(rw,async,no_root_squash)
# exportfs -a
# vi /etc/sysconfig/nfs
以下の設定を変更(コメントアウトを外す)
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020
# vi /etc/sysconfig/iptables
INPUT chainの下に以下を追加
-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
# /etc/init.d/iptables restart
# /etc/init.d/rpcbind start
# /etc/init.d/nfs start
# chkconfig rpcbind on
# chkconfig nfs on
# rpcinfo -p localhost
rpcが動作しているか確認
# showmount -e
エキスポートが正しくされているか確認
これでストレージサーバの構築は終了
2. CloudStackの構築
設定例
管理サーバ 192.168.100.4
ストレージサーバ 192.168.100.5
ストレージパス
プライマリストレージ 192.168.100.5:/export/primary
セカンダリストレージ 192.168.100.5:/export/secondary
CloudStackの構成は、ベーシックネットワークモード
mysqlのrootのパスワード dbpassword
mysqlのcloudのパスワード cloudpassword
とすると
<共通設定>
●OSのインストール
CentOS 6.2 x86_64
インストールしたパッケージグループは、Baseのみ。
●IPv6の無効化とホストの設定
# vi /etc/sysconfig/network
以下を追加。
-> NETWORKING_IPV6=no
# vi /etc/modprobe.d/disable-ipv6.conf
以下を追加。
-> options ipv6 disable=1
# vi /etc/hosts
-> ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
をコメントアウト。また、ホスト名を設定
-> 192.168.100.X yourhost.yourdomain.com yourhost
# chkconfig ip6tables off
●その他、設定、アップデート
# yum -y update
# yum -y install acpid ntp nfs-utils wget
# service acpid start
# service ntpd start
# chkconfig acpid on
# chkconfig ntpd on
# vi /etc/selinux/config
以下を変更。
以下を変更。
SELINUX=enforcing
-> SELINUX=permissive
# setenforce permissive
# vi /etc/idmapd.conf
以下を変更。(サーバのドメイン名に)
以下を変更。(サーバのドメイン名に)
# /etc/init.d/rpcbind start
# /etc/init.d/nfs start
# chkconfig rpcbind on
# chkconfig nfs on
●インストール前のネットワーク構成のコピー (アンインストールした時に楽)
cp /etc/sysconfig/iptables /root
●再起動
# reboot
●確認
# ifconfig
IPv6が表示されていないことを確認
# ping `hostname`
正しくpingがループバックアドレス以外で返ってくることを確認
# ping www.yahoo.co.jp
外部への名前解決ができていて応答が返ってくるかを確認
CloudStackのパッケージをダウンロードしておく。
<管理サーバ>
# tar xfz CloudStack-oss-3.0.2-1-rhel6.2.tar.gz
# cd CloudStack-oss-3.0.2-1-rhel6.2
# ./install.sh
>M
# ./install.sh
>D
# vi /etc/my.cnf
[mysqld]セクションの最後に以下を追加
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
# service mysqld restart
# mysql -u root
mysql> SET PASSWORD = PASSWORD('dbpassword');
mysql> exit
# cloud-setup-databases cloud:cloudpassword@localhost --deploy-as=root:dbpassword
# cloud-setup-management
# mount -o vers=3 192.168.100.5:/export/secondary /mnt
以下の行は1行で実行
以下の行は1行で実行
# /usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F
このコマンドを実行すると、管理VMの仮想マシンイメージがダウンロードされる。
これでCloudStack管理サーバの構築は完了
<計算機サーバ -- KVMの場合>
●インストール前のネットワーク構成のバックアップ(アンインストールした時に楽)
# cp /etc/sysconfig/network-script/ifcfg-eth* /root
●ローカルディスクを使う場合の設定(オプション)
# mkdir -p /home/images
# mkdir -p /var/lib/libvirt/images
# vi /etc/fstab
以下を追加
-> /home/images /var/lib/libvirt/images ext3 bind,defaults 0 0
-> /home/images /var/lib/libvirt/images ext3 bind,defaults 0 0
# mount -a
●Agentのインストール
# tar xfz CloudStack-oss-3.0.2-1-rhel6.2.tar.gz
# cd CloudStack-oss-3.0.2-1-rhel6.2
# ./install.sh
>A
# vi /etc/libvirt/qemu.conf
以下のコメントアウトを外す
-> "vnc_listen = 0.0.0.0"
# /etc/init.d/libvirtd restart
# chkconfig libvirtd on
●vhostモジュールは無効にしておく!
# vi /etc/modprobe.d/blacklist-kvm.conf
以下を追加。
-> blacklist vhost-net
●DNSマスカレード停止
# /etc/init.d/dnsmasq stop
# chkconfig dnsmasq off
●KSMの有効化(オプション)
# /etc/init.d/ksm start
# /etc/init.d/ksmtuned start
# chkconfig ksm on
# chkconfig ksmtuned on
●管理ツールのインストール(オプション)
# yum install virt-manager virt-top
一旦再起動したほうがいい
<計算機サーバ -- XenServerの場合>
特に特別な指定はない。インストールはかなり楽。ただし、IPアドレスは固定アドレスを使う。
インストールが完了したらXenServerのコンソールにログインをして以下を実行する
# tar xf xenserver-cloud-supp.tgz
# xe-install-supplemental-pack xenserver-cloud-supp.iso
# xe-switch-network-backend bridge
●念のためCPUのmicrocode update (Intel CPUを利用している人のみ)
# cp /etc/firmware/microcode.dat /etc/firmware/microcode.dat.orig
# tar xfz microcode-20120606.tgz
# mv /etc/firmware/microcode.dat /etc/firmware/
# /etc/init.d/microcode_ctl restart
updaterがあればXenCenterから当てておく。
が2012/6/5時点でリリースされている。一つづつインストールしないとダメッだった。
XenCenterからactivation codeをインストール
CloudStack Agentなどのインストールはない。これで完了。CloudStack管理コンソールから追加する。
3.Webコンソールで設定
http://192.168.100.4:8080/client/
初期ユーザ名/パスワードは admin/password
システムのネットワークは、192.168.100.21-39
ゲストのネットワークは、192.168.100.40-99
とした。ネットマスクは、255.255.255.0
セットアップ完了したら、Secondary Storage VMが稼働して、built-inのCentOSイメージのtemplateのダウンロードが開始される。このダウンロードが終わるまで、一旦環境を放置しておく。(一時間程度まっても完了しない場合は、Secondary Storage VMに問題がある可能性がある。一度、Secondary Storage VMをdestroyして、もう一度確認する。)
4. パラメータの変更
Built-inのTemplateが利用可能になったら(ダウンロード終了したら)、パラメータの変更をする。
●変更するパラメータ
-以下の値を小さくしないと、なかなかリソースが解放されない。
expunge.delay 86400 -> 7200
expunge.interval 86400 -> 7200
-ローカルストレージ(ハイパーバイザーのストレージ)を使うようにする設定
設定を変更した場合、一度virtual routerとsecondary storage VMをdestroyする。
また、通常のインスタンスでローカルストレージを利用する場合は、Servicingの変更を行う。
system.vm.use.local.storage true
use.local.storage true
●cloud-managmentの再起動
# service cloud-managment stop
# service cloud-managment start
●動作確認
- Security Groupを新規作成して、sshでアクセスできるようにする。
Built-inのCentOS テンプレートでインスタンスを起動する。
コンソールログイン (root/password)
- ifconfigを実行して、本来割当られるべきアドレス空間がアサインされているかを確認
(他のDHCPなどのアドレス空間から割当られている場合は、vhost-netがハイパーバイザでロードされている可能性がある。)
- yum -y updateを実行して正常終了したらOK
- インスタンスの起動でErrorになる場合は、計算機ノードのCPU/Memoryリソースが足りない可能性がある。
[備考]インストールしておくと便利なイメージ
Windows用Paravirtual Driver
CentOS
Ubuntu
0 件のコメント:
コメントを投稿