cloudstack 安裝

和 OpenStack, OpenNebula 類似,CloudStack 是另一款開源雲計算平臺。CloudStack 的前身是 Cloud.com 家的一款商業雲計算產品(也有開源版本),2011年 Cloud.com 被 Citrix 收購,2012年的時候 Citrix 將收購的雲平臺 CloudStack 全部捐給了 Apache 基金會,自己則以 Citrix CloudPlatform (powered by Apache CloudStack) 的形式爲客戶提供商業化的雲計算解決方案。

按照《OpenStack, OpenNebula, Eucalyptus, CloudStack 社區活躍度比較》的統計,貌似 CloudStack 項目的活躍程度僅次於 OpenStack. 和大多數雲計算、集羣軟件一樣,CloudStack 也是控制節點+計算節點這種架構,控制節點(cloudstack-management)用來統一管理計算節點,提供資源分配和任務,提供 API、GUI、數據庫等服務;計算節點(cloudstack-agent)則用來跑虛擬機。我們需要做的是,

  • 在控制節點上安裝 cloudstack-management;
  • 在(每個)計算節點上安裝 cloudstack-agent 和 kvm.

在控制節點上

安裝完 CentOS 6.4 系統後,升級系統並修改 hostname 後重啓:

# yum update

# echo "cloudstack.vpsee.com" > /etc/hostname

# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=cloudstack.vpsee.com

# echo "192.168.2.150 cloudstack cloudstack.vpsee.com" >> /etc/hosts

# reboot

添加 cloudstack 軟件包的官方源,安裝 ntp, cloudstack-management, mysql 數據庫服務器:

# vi /etc/yum.repos.d/cloudstack.repo
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.2/
enabled=1
gpgcheck=0

# yum update

# yum install ntp
# yum install cloudstack-management
# yum install mysql-server

修改 mysql 配置文件,加入下面幾行,啓動 ntp, mysql 服務並運行 mysql_secure_installation 給 mysql 設置密碼:

# 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'

[mysqld_safe]
...


# service ntpd start
# chkconfig ntpd on

# service mysqld start
# chkconfig mysqld on

# mysql_secure_installation

修改 SELINUX 設置,並配置防火牆允許訪問 mysql 的 3306 端口:

# vi /etc/selinux/config
...
SELINUX=permissive
...

# setenforce permissive

# vi /etc/sysconfig/iptables
...
-A INPUT -p tcp --dport 3306 -j ACCEPT
...

# service iptables restart

使用 cloudstack-setup-databases 初始化 ClouStack 數據庫,完成後運行 cloudstack-setup-management:

# cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:root -i 192.168.2.150

# cloudstack-setup-management
Starting to configure CloudStack Management Server:
Configure sudoers ...         [OK]
Configure Firewall ...        [OK]
Configure CloudStack Management Server ...[OK]
CloudStack Management Server setup is Done!

控制節點應該和存儲分開,這裏爲了方便,我們把 NFS 也裝在這個控制節點上,並自己掛載自己的 NFS 分區:

# yum install nfs-utils
# mkdir -p /export/primary
# mkdir -p /export/secondary

# vi /etc/exports
/export  *(rw,async,no_root_squash,no_subtree_check)

# exportfs -a
# vi /etc/sysconfig/nfs
...
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
...

# service rpcbind start
# service nfs start
# chkconfig nfs on
# chkconfig rpcbind on
# reboot

# mkdir -p /mnt/primary
# mkdir -p /mnt/secondary
# mount -t nfs 192.168.2.150:/export/primary /mnt/primary
# mount -t nfs 192.168.2.150:/export/secondary /mnt/secondary

修改防火牆配置,開放下面一些端口:

# vi /etc/sysconfig/iptables
...
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
...

# service iptables restart
# service iptables save

創建虛擬機需要有模版,這個模版可以自己做,也可以下載官方現成的。需要注意的是,官方文檔中的 /usr/lib64/cloud/common/… 路徑不對,應該是 /usr/share/cloudstack-common/…:

# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://d21ifhcun6b1t2.cloudfront.net/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2 -h kvm -s -F

在計算節點上

爲了保持一致,我們在計算節點上也採用 CentOS 6.4. 在每個計算節點上都需要如下的安裝和配置。升級系統並修改 hostname、重啓:

# yum update

# echo "cloudstack01.vpsee.com" > /etc/hostname

# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=cloudstack01.vpsee.com

# echo "192.168.2.151 cloudstack01 cloudstack.vpsee.com" >> /etc/hosts

# reboot

添加 cloudstack 軟件包的官方源,安裝 ntp, cloudstack-agent 和 kvm:

# vi /etc/yum.repos.d/cloudstack.repo
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.2/
enabled=1
gpgcheck=0

# yum update

# yum install ntp
# yum install cloudstack-agent
# yum install qemu-kvm

修改 libvirt 相關配置文件,去掉下面幾行的註釋,注意把 auth_tcp 改成 “none”,如果需要 vnc 訪問的話別忘了取消 qemu.conf 裏面的 vnc_listen 相關注釋,重啓 libvirtd 服務使配置生效:

# vi /etc/libvirt/libvirtd.conf
...
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
...

# vi /etc/sysconfig/libvirtd
...
LIBVIRTD_ARGS="--listen"
...

# vi /etc/libvirt/qemu.conf
...
vnc_listen = "0.0.0.0"
...

# service libvirtd restart

別忘了讓防火牆開放必要的端口:

# iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# iptables -I INPUT -p tcp -m tcp --dport 1798 -j ACCEPT
# iptables -I INPUT -p tcp -m tcp --dport 16509 -j ACCEPT
# iptables -I INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT
# iptables -I INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT
# iptables-save > /etc/sysconfig/iptables

測試

打開瀏覽器,訪問控制節點 http://192.168.2.150:8080/client/ 就會看到登錄界面,默認用戶名和密碼是 admin/password,登錄後修改密碼、做一些配置後就可以開始用了:

發佈了33 篇原創文章 · 獲贊 9 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章