まだ全然よくわかっていないですが・・・
まずは、構築前に参考書籍紹介
今回構築するネットワーク構成は以下のとおり。
- ManagedServer
- 参考書籍通り、NFSサーバと兼用する。
- ネットワーク
- 基本ゾーンで構築。
- ただし、公開用ネットワークと管理、NFS用のネットワークは分離する。
- 本当はグローバルIPな環境下でないといけないのだが、一般家庭にそんなものはないので、ルータ配下で構築を行う。
- したがって、DNSやゲートウエイの設定をルータのIPに設定している。
(192.168.24.1、192.168.0.1が各ネットワークルータのIP)
ManagedServer構築
- OS:CentOS6 (64bit)を最小インストール。
- ホスト名、ネットワーク回り設定。
(ホスト名がFQDNで解決できないといけないらしいので、hostname --fqdnで完全修飾ホスト名が返ってこない場合は、hostsファイルを設定してください。) - SELinuxを無効に設定
- IPV6を無効に設定
- アップデート
- 時刻同期の為、ntpサーバをインストールします。
(何らかの形で時刻同期が取れれば問題ないと思います。) - 最寄りのntpサーバを/etc/ntp/confに登録。
- 起動&自動起動設定
- CloudStack管理サーバをインストールします。
まずは、/etc/yum.repos.d/cloudstack.repoというファイルを作成します。 - 管理サーバをインストールします。
- vhd-utilをダウンロードし、指定のディレクトリに展開します。
(KVM環境の時に必要なのかは不明だが、一応入れておく) - MySQLサーバのインストール
yum -y install mysql-server
/etc/my.confの[mysql]セクションのdatadir行の下に以下追加innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=350 log-bin=msql-bin binlog-format = 'ROW'
- 起動&自動起動設定
- データベースセキュリティの設定 mysql_secure_installationを実行。 Disallow root login remotely以外を全てyで答える。
- データベース作成&初期データ投入
- ファイヤーウォール設定 cloudstack-setup-managementを実行
yum -y install ntp
service ntpd start chkconfig ntpd on
[cloudstack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/rhel/4.1/ enabled=1 gpgcheck=0
yum -y install cloud-client
wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util cp vhd-util /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver
service mysqld start chkconfig mysqld on
最初にパスワードを聞かれるが、空エンターすることで、 新しいパスワードの設定を行う。
cloudstack-setup-databases cloud:<ユーザcloudに対する設定するパスワード>@localhost --deploy-as=root:<さっき設定したrootのパスワード>
- NFSサーバの構築 (今回はManagedServer上に構築する。独立させてもOK)
- exportディレクトリをエクスポートします。
- NFSの設定 /etc/sysconfig/nfsファイルより、以下の項目のコメントを外します。
- 自動起動設定
- ファイヤーウォールの設定 /etc/sysconfig/iptablesファイルのINPUTチェーンに以下追記します。
- ここでいったんリブートします。
- KVMのテンプレートをDLして共有に展開します。
プライマリストレージとセカンダリストレージ用の共有ディレクトリを作成。
mkdir -p /export/primary mkdir -p /export/secondary上記ディレクトリに対し、NFSでアクセスするためのアクセス制限を設定する。/etc/exportsファイルに以下の内容を記述。
/export *(rw,async,no_root_squash)
exportfs -a
LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 STATD_PORT=662 STATD_OUTGOING_PORT=2020 RQUOTAD_PORT=875
chkconfig nfs on
-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
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm管理サーバのインストールは以上です。
KVMサーバ構築
- OS:CentOS6 (64bit)を最小インストール。
- ホスト名、ネットワーク回り設定。
(ホスト名がFQDNで解決できないといけないらしいので、hostname --fqdnで完全修飾ホスト名が返ってこない場合は、hostsファイルを設定してください。) - SELinuxを無効に設定
- IPV6を無効に設定
- アップデート
- 時刻同期の為、ntpサーバをインストールします。
(何らかの形で時刻同期が取れれば問題ないと思います。) - 最寄りのntpサーバを/etc/ntp/confに登録。
- 起動&自動起動設定
- CloudStackエージェントをインストールします。
まずは、/etc/yum.repos.d/cloudstack.repoというファイルを作成します。 - CloudStackエージェントをインストールします。
- libvirtの設定 /etc/libvirt/libvirtd.confのパラメタを以下のように書き換えます。
- 管理用、パブリック両ネットワークに対し、ブリッジを作成する。 以下参考例 (管理ネットワーク:eth0パブリックネットワーク:eth1)
- 設定したらネットワーク再起動
- ファイヤーウォールの設定 /etc/sysconfig/iptablesのINPUTチェーンに以下追記する
yum -y install ntp
service ntpd start chkconfig ntpd on
[cloudstack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/rhel/4.1/ enabled=1 gpgcheck=0
yum -y install cloud-agent
listen_tls = 0 listen_tcp = 1 tcp_port = 16059 auth_tcp = "none" mdns_adv = 0/etc/sysconfig/libvirtdのパラメタを以下のように書き換えます。
LIBVIRTD_ARGS="--listen" #コメントを外し有効化する/etc/libvirt/qemu.confのパラメタを以下のように書き換えます。
vnc_listem = "0.0.0.0" #コメントを外し有効化するlibvirtを再起動します。
service libvirtd restart
/etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=none NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet IPADDR=192.168.0.108 NETMASK=255.255.255.0 IPV6INIT=no USERCTL=no GATEWAY=192.168.0.1 DNS1=192.168.0.1 BRIDGE=cloudbr0/etc/sysconfig/network-script/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=none NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet IPADDR=192.168.24.7 NETMASK=255.255.255.0 GATEWAY=192.168.24.1 DNS1=192.168.24.1 IPV6INIT=no USERCTL=no BRIDGE=cloudbr1/etc/sysconfig/network-script/ifcfg-cloudbr0
DEVICE=cloudbr0 BOOTPROTO=none NM_CONTROLLED=no ONBOOT=yes TYPE=Bridge IPADDR=192.168.0.108 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=192.168.0.1 IPV6INIT=no USERCTL=no/etc/sysconfig/network-script/ifcfg-eth1
DEVICE=cloudbr1 BOOTPROTO=none NM_CONTROLLED=no ONBOOT=yes TYPE=Bridge IPADDR=192.168.24.7 NETMASK=255.255.255.0 GATEWAY=192.168.24.1 DNS1=192.168.24.1 IPV6INIT=no USERCTL=no
service network restart
-A INPUT -p tcp -m tcp --dport 1798 -j ACCEPT -A INPUT -p tcp -m tcp --dport 16509 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT -A INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPTセットアップ終了。
- http://管理サーバのIP:8080/clientを開く。 (ID:admin PW:password) ウイザードが立ち上がるが、
- ゾーンの設定
- 左のメニューのインフラストラクチャをクリック ゾーンのすべて表示をクリック。
右上にあるゾーンの追加をクリック - ポッドの設定 ここでは、管理ネットワークの中で、 ポッドに割り当てるIPの範囲を指定します。 (ここでは10個ほど予約)
- ゲストネットワークの設定 要するにパブリックネットワーク設定
- ストレージネットワークの設定 よくわからないが、10個ほど予約 VLANのところは空白でOKらしい
- クラスタの登録 KVMサーバを登録
- プライマリストレージの登録
- セカンダリストレージの登録 完了! (といいたいのだが、上手く動かなかった。)
「CloudStackを使用したことがるので、このガイドをスキップする」 のボタンをクリック。
管理インターフェースが起動します (一般アラートは今のところ無視してOK)
基本が選択されているのを確認しNextをクリック ゾーンの名前、管理ネットワークのDNS、パブリックネットワークのDNSを設定。 ハイパーバイザはKVMを選択 赤いストレージのアイコンを右側のPhysicalNetwork1へドラッグする。
各アイコンのEditボタンを押して、トラフィックラベルを以下のように設定する。
青アイコン:cloudbr0
赤アイコン:cloudbr0
緑アイコン:clodubr1
KVMサーバ上で、/etc/cgconfig.confに設定を追加し、マシンを再起動して上手くいった。
参照先
- はまりポイントその1
- VMに外部からSSHできない
ネットワークのセキュリティレベルを変更。
デフォルトでは外部接続NGになっている。
こんな感じで設定します。
- はまりポイントその2
- MyISOの登録方法が分からん。
テンプレートからISOの登録を行う。
URLの箇所はhttpから始まるFQDNでないとダメらしい。 参照先より。 - はまりポイントその3
- システムVMへSSHができない。
ポート番号が違うようです。ssh -i 169.254.xxx.xxx .ssh/id_rsa.cloud -p 3922
(169.254.xxx.xxx の箇所は、インフラストラクチャの中にある、 システムVMのリンクローカルIPアドレスを入れる) - はまりポイントその4
- 仮想コンソールで192-168-24-101.realhostip.comのようなホスト名が解決できないといわれる。
違うネットワークセグメントから接続するとなるようです。
接続するクライアントPCのhostsに192.168.24.101 192-168-24-101.realhostip.com
な感じて登録しましょう。
(無論、DNSがあれば登録してもいい) - はまりポイントその5
- windowsをインストールする際、システムコンソールで「japanese keybord」を
選択しているのに、「半角/全角」キーが押せない。
どうも駄目のようです。インストールの際は、sキーを押して、その他のキーボードから 日本語キーボードを選択してください。 - はまりポイントその6
- windowsxpをインストールしたけど、ネットワークが繋がらないんだけど・・・
どうもドライバが無いようです。現在調査中・・・
薄々感づいてはいましたが、仮想マシンの起動が遅い!
仮想マシンのHDDはNFS上に配置されているので、もしKVMサーバが1台しかないのなら、
KVMサーバ側にNFSサーバを兼用すれば、ネットワークがボトルネックにならなくて済むかも。
あと、ManagemedServer側は、NFSを分離できれば、単なるMySQLとTomCatなサーバのようです。
なので、推奨環境にあるような高スペックPCでなくても、仮想マシン数台の管理程度なら、ATOM程度で行けるんじゃないかなぁ。
(64botでないといけないのがイタしいですが・・)
2013/09/02
CloudStack4.1用に加筆修正。
初めまして、
返信削除その後、CloudStack+KVMのWindowsXPゲストのNICはどうなりましたか?
確認したところ、WindowsXP(32bit)でのゲストOSのNICは、e1000のようでした。
WindowsXPSP2付属ドライバではだめのようですが、IntelProSet XP 32bit 版をインストールするとゲストOSでEthernetドライバが正常稼働できましたので、コメントしておきます。
確認方法:virsh edit 内部VM名
ではでは