CentOS7にCloudStack4.9を入れた
新自宅サーバーを自宅クラウドにすべく、iaasの何かを入れようと思って、いくつかtryしたうちのCloudStackを入れた手順のメモ。
クラウド環境は、All in oneで、ハイパーバイザーは旧自宅サーバーに合わせてKVMを使用する。
構成は、ブロードバンドルーターに繋いだ自宅サーバー用マシン
– 手順 –
1.LAN設定の変更
①/etc/sysconfig/network-scripts/ifcfg-eno1でNM_CONTROLLED=noにする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="eno1" UUID="2f1fcb53-7c0d-49d5-9c8f-058b86cfc233" DEVICE="eno1" ONBOOT="yes" NM_CONTROLLED=no |
※ DHCPにしてるのはブロードバンドルーターの機能でMACアドレスからIP=192.168.0.10に固定してるため。
②NetworkManagerをやめてnetworkを使用する
1 2 3 4 |
#systemctl disable NetworkManager #systemctl enable network #systemctl stop NetworkManager #systemctl restart network または、reboot |
③SELinux無効、ファイヤーウォール無効
1 2 3 4 5 |
#setenforce 0 #vi /etc/sysconfig/selinux SELINUX=permissive ← permissiveにする #systemctl stop firewalld #systemctl disable firewalld |
2.MariaDBのインストール
①古いMariaDBを削除
バージョンが5.5~なので削除する
1 2 3 4 5 |
#rpm -qa | grep -i "mariadb" ← バージョン確認 mariadb-libs-5.5.52-1.el7.x86_64 #yum remove mariadb mariadb-libs #rpm -qa | grep -i "mariadb" ← 削除確認 (何も表示されない) |
②/etc/yum.repos.d/MariaDB.repoを作成
1 2 3 4 5 |
[mariadb] name=MariaDB baseurl=http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 |
③MariaDBインストール
1 2 3 4 5 6 7 8 |
#yum -y install --enablerepo=mariadb MariaDB-common MariaDB-devel MariaDB-shared MariaDB-compat MariaDB-server MariaDB-client #rpm -qa | grep "MariaDB" ← 確認 MariaDB-compat-10.1.20-1.el7.centos.x86_64 MariaDB-client-10.1.20-1.el7.centos.x86_64 MariaDB-devel-10.1.20-1.el7.centos.x86_64 MariaDB-common-10.1.20-1.el7.centos.x86_64 MariaDB-shared-10.1.20-1.el7.centos.x86_64 MariaDB-server-10.1.20-1.el7.centos.x86_64 |
④設定ファイルの作成
1 |
#cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
port = 3306 socket = /var/lib/mysql/mysql.sock skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 240K datadir=/var/lib/mysql #### 追加 character-set-server = utf8 #### 追加 innodb_rollback_on_timeout=1 #### 追加 innodb_lock_wait_timeout=600 #### 追加 max_connections=350 #### 追加 log-bin=mysql-bin #### 追加 binlog-format = 'ROW' #### 追加 |
⑤起動
1 2 3 4 |
#systemctl enable mariadb.service #systemctl start mariadb.service #ps -ef|grep "mysql"|grep -v "grep" ← 確認 mysql 22979 1 0 16:21 ? 00:00:02 /usr/sbin/mysqld |
3.MySQLコネクターをインストール
①/etc/yum.repos.d/mysql.repoを作成
1 2 3 4 5 |
[mysql-community] name=MySQL Community connectors baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/$releasever/$basearch/ enabled=1 gpgcheck=1 |
②インストール
1 2 |
#rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql #yum -y install mysql-connector-python |
4.nfsの設定
①プライマリ、セカンダリ用のディレクトリ作成
CentOS7を自動パーティションで作成したので、空きの多いボリュームにする。
1 2 3 4 5 6 7 8 9 10 11 |
#df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/mapper/cl_mon--server2-root 50G 949M 50G 2% / devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 8.7M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/md126p2 1014M 132M 883M 13% /boot /dev/md126p1 200M 9.5M 191M 5% /boot/efi /dev/mapper/cl_mon--server2-home 818G 33M 818G 1% /home tmpfs 3.2G 0 3.2G 0% /run/user/0 |
/homeにプライマリ、セカンダリのフォルダを作成する。
1 2 |
#mkdir -p /home/exports/primary #mkdir -p /home/exports/secondary |
②/etc/exportsの作成
1 2 |
/home/exports/secondary *(rw,async,no_root_squash,no_subtree_check) /home/exports/primary *(rw,async,no_root_squash,no_subtree_check) |
③nfsのインストール
1 |
#yum -y install nfs-utils |
④/etc/idmapd.confの修正
1 2 3 4 5 |
[General] #Verbosity = 0 # The following should be set to the local NFSv4 domain name # The default is the host's DNS domain name. Domain = mon-server2 ← サーバー名にする |
⑤/etc/sysconfig/nfsの修正
1 2 3 4 5 6 7 |
RPCNFSDCOUNT=64 GSS_USE_PROXY="no" RPCRQUOTADOPTS="-p 875" ←追加 LOCKD_TCPPORT=32803 ←追加 LOCKD_UDPPORT=32769 ←追加 RPCMOUNTDOPTS="-p 892" ←追加 STATDARG="-p 662 -o 2020" ←追加 |
⑥起動
1 2 3 |
#systemctl start rpcbind nfs-lock nfs-server #systemctl enable rpcbind nfs-lock nfs-server #exportfs -v ← 確認 |
5.管理サーバーのインストール
①/etc/yum.repos.d/cloudstack.repoの作成
1 2 3 4 5 |
[cloudstack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/centos/7/4.9/ enabled=1 gpgcheck=0 |
②インストール
1 |
#yum -y install cloudstack-management |
6.管理サーバーのセットアップ
1 2 |
#cloudstack-setup-databases cloud:password@localhost --deploy-as=root #cloudstack-setup-management --tomcat7 |
7.システムVMテンプレート(KVM)のダウンロード
①セカンダリディスク(/home/exports/secondary)にダウンロードする
CloudStackは4.9だけどシステムVMは4.6が最新みたいなので4.6にした。
1 |
#/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /home/exports/secondary -u http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-kvm.qcow2.bz2 -h kvm -F |
8.agentインストール
1 |
#yum -y install cloudstack-agent |
9.kvm-qemuの設定
①/etc/libvirt/qemu.confの修正
1 |
vnc_listen=0.0.0.0 ← コメントを外す |
10.libvirtを設定
①/etc/libvirt/libvirtd.confの修正
1 2 3 4 5 |
listen_tls = 0 ← コメントを外す listen_tcp = 1 ← コメントを外す tcp_port = "16059" ← コメントを外す auth_tcp = "none" ← コメントを外す mdns_adv = 0 ← コメントを外す |
②/etc/sysconfig/libvirtdの修正
1 |
LIBVIRTD_ARGS="--listen" ← コメントを外す |
③libvirtd再起動
1 |
#systemctl restart libvirtd |
④KVMの確認
1 2 3 4 |
#lsmod | grep kvm kvm_intel 170181 0 kvm 554609 1 kvm_intel irqbypass 13503 1 kvm |
11.停止順序の設定
シャットダウン時にcloudstack-managementより先にnfs-serverが終了しないようにする。
①/usr/lib/systemd/system/cloudstack-management.serviceを修正
Afterにnfs-server.service、mariadb.serviceを追加
Beforeにcloudstack-agent.serviceを追加
1 2 3 |
[unit] #After=syslog.target network.target After=syslog.target network.target nfs-server.service mariadb.service |
②設定を反映する
1 |
#systemctl daemon-reload |
12.GUIにアクセスして設定
http://192.168.0.10:8080/client
ユーザー名:admin
パスワード:password
①ようこそ画面はスキップ
②インフラストラクチャでゾーンを追加する
③基本を選択
④DNSはルーターのアドレス、ハイパーバイザーはKVM、ネットワークオファリングはDefaultSharedNetworkOfferingを選択
※6.3.1. 基本ゾーンの構成 – http://svn.apache.org/repos/asf/cloudstack/docsite/html/docs/ja-JP/Apache_CloudStack/4.1.1/html/Installation_Guide/zone-add.html
⑤ゲストトラフィックはそのまま次へ
⑤ゲストトラフィックでストレージをドラッグしてストレージトラフィックを追加。
⑥podの追加。アドレスの範囲は、192.168.0.100~192.168.0.119にした。
⑦ゲストトラフィック。アドレスの範囲は、192.168.0.120~192.168.0.139にした。
⑦’ストレージトラフィック。192.168.0.140~192.168.0.159にした。
⑧クラスター
⑨ホスト。このサーバーマシンを指定
⑩プライマリーストレージ。nfsでエクスポートした/home/exports/primaryを指定。
⑪セカンダリーストレージ。nfsでエクスポートした/home/exports/secondaryを指定。
⑫ゾーンの起動
⑬しばらくしたら完了するので、ゾーンを有効にする。
⑭少しすると、システムVMが2つ起動する。
これで環境は完成。ε=( ̄。 ̄;A フゥ…
一応ゲストVMの作成もできたが、100Gとか大きなストレージで作ろうとすると失敗する。
secondaryの容量が足りないとかエラーがでる。
GUI起動までは良いとして、zoneの作り方が違うかもしれない。
↑nfsでマウントしたボリュームの容量より大きなVMを作るとエラーになるので、nfsは/homeの下にした。
作成したブリッジとか設定するとこないし。
もっと学習が必要だ。。。
—
参考サイト
CloudStack 完全ドキュメント – http://people.apache.org/~gochiba/ja-JP/html/index.html
CentOS 7 MariaDB インストール、及び初期設定 – http://server.etutsplus.com/centos-7-mariadb-install-and-mysql-secure-installation/
その他 – ググった
—
追記・修正
(2017.1.30):手順12.⑤⑦’ – ストレージトラフィックを追加した。
(2017.2.3):手順11.① – Afterにmariadb.serviceを追加。Beforeにcloudstack-agent.serviceを追加。
(2017.2.4):手順11.① – ルーターが起動しなくなったので、Before=cloudstack-agent.serviceを削除。