開源雲平臺 CloudStack 4.1.0 安裝詳解 - 一、管理節點

CloudStack是一個功能強大、UI友好的開源雲(IaaS)計算解決方案。自Ctrix將CloudStack捐獻給 apache 後,一直持續高速發展,其社區活躍度已經漸漸遇上風頭一時無兩的另外一開源雲OpenStack平臺。 mysql

CloudStack擁有全部開源雲平臺中最爲友善的管理界面,並且其天生的多語種支持會使中文用戶感受很爽。 linux

今天咱們來詳細介紹一下CloudStack最新版本 4.1.0 在 CentOS 6.4 下的安裝部署的步驟。鑑於網上文章一大抄,不少內容都是裝來裝去一大堆東西,看官們一會就暈了,根本不瞭解爲何裝這些程序,裝來是幹什麼的。這回呢,我會把每一步說明儘量詳細一些,外加個人經驗和理解(很多心得是重裝了10次以上後得出的),但願能讓後來者能夠少走些彎路。 web

CloudStack可分爲管理節點安裝和受控節點安裝。 sql

管理節點安裝無特殊要求,徹底能夠安裝到虛擬機環境下。 shell

受控節點因要建立虛擬機,故須要硬件虛擬化支持,推薦使用獨立主機安裝。CloudStack支持多種虛擬化方案,包括:KVMXenXenServerVMware。因XenServerVMware已包含有強大的虛擬機管理功能,CloudStack能夠直接與其通訊調用其管理接口,所以這兩種受控機環境下,無需安裝任何軟件。但KVMXen的受控機必須安裝 CloudStack-Agent 以後,才能被CloudStack管理。 數據庫

本篇咱們主要來說解管理節點搭建步驟: apache

1、前期準備

1、配置網卡,確保主機能上網

因咱們要使用網絡安裝方式,因此要首先保證你的服務器能夠正常聯網。 瀏覽器

ping www.baidu.com

2、設置主機名稱

CloudStack運行時須要獲取本機名稱,如沒法正確獲取可能致使服務沒法正常啓動並報一大堆的錯。 tomcat

運行如下命令檢查: 安全

hostname --fqdn

如無正常返回,請編輯 /etc/hosts 文件,添加主機ip對應的名稱。

如:
192.168.19.135  manage.cloudstack.com

vi /etc/sysconfig/network 將 HOSTNAME= 改成同你剛設置的同樣。

編輯完後當即生效。若是還不成的話,重啓下服務器應該就會好了。

三、配置時間同步

管理節點會經過各類協議與受控節點通信,爲了確保安全,受控節點接到命令後會進行一系列的校驗,若是兩機的時間不一樣步的話,會致使命令拒絕執行。

最簡單的辦法就是,全部服務器都安裝 ntp實現時間的自動同步。

yum install ntp

4、修改Linux安全設置

服務器上的SELinux會攔截CloudStack的一些命令,致使CloudStack操做失敗,所以啓動CloudStack前須要對SELinux進行設置。

vi /etc/selinux/config

SELINUX=permissive

以上修改需重啓服務器才能生效,爲使設置當即生效可以使用下邊的命令

setenforce permissive

2、更新 yum 倉庫

默認狀況下,CentOS的軟件源中沒有收錄最新版本CloudStack,爲了能順利安裝,咱們須要手工指定軟件源。

新建 /etc/yum.repos.d/cloudstack.repo 文件,內容爲:

[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.1/
enabled=1
gpgcheck=0

3、安裝管理節點

設置好源之後,咱們就能夠直接使用 yum安裝了,很是簡單方便。

安裝管理節點的命令爲:

yum install cloud-client

若是你的CentOS 是最小化安裝的話,將須要安裝 160 兆以上的東東,請耐心等待哈...

4、配置數據庫

CloudStack使用mysql管理數據,但安裝cloud-client時沒有包含mysql,這時須要咱們手工安裝,並導入數據。這是能夠理解的,由於數據庫能夠被安裝到其它機器上。

yum install mysql-server

默認的,mysql有鏈接數限制,沒法知足CloudStack管理節點的要求,須要手工設定。

vi /etc/my.cnf

增長如下內容:

innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format='ROW'

注:若是沒改的話會發生什麼現象我沒有嘗試,不過仍是建議按要求修改。

    max_connections的參數應設置350乘以你準備部署的管理節點的數量。這裏假定只安裝一個管理節點。

如今,啓動 mysql 服務:

service mysqld start

缺省安裝的mysql安全級別比較低,須要手工設置mysql下密碼、禁用遠程訪問,刪除無用帳戶及測試數據庫。方法也很簡單,直接使用以下命令按嚮導提示一步步來便可:

mysql_secure_installation

數據庫準備好後,需導入CloudStack的表及基礎數據,這樣雲平臺才能正常使用:

cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:剛纔設定的root密碼

若是沒有意外的話,最後會輸出 CloudStack has successfully initialized database 字樣,表示數據庫已經準備好了。

5、安裝網絡存儲

雖然管理節點已經安裝完了,但目前還沒法使用,由於CloudStack的運轉還須要依賴於系統虛機。(系統虛機的用處參見第七節)。系統虛機模板必須導入到網絡存儲上,因此咱們接下來要安轉網絡存儲。

CloudStack支持多種網絡存儲協議,如iSCSI、NFS、VMFS等。因爲NFS簡單易用,推薦使用NFS搭建網絡存儲。

說明:CloudStack使用了兩種網絡存儲。一種是主存儲,主存儲用於存放虛擬機硬盤文件。主存儲也可以使用本地存儲,並不是必需使用網絡存儲。二級存儲用於存放虛擬機模板/快照/ISO文件,二級存儲只能使用網絡存儲。

咱們這裏以NFS爲例。安裝NFS服務:

yum install nfs-utils

編輯 /etc/export 文件,設置主存儲和二級存儲的路徑

# vi /etc/exports

在文件中,增長以下內容

/export  *(rw,async,no_root_squash)

實際創建文件夾

mkdir -p  /export/secondary
mkdir -p  /export/primary

修改 /etc/sysconfig/nfs 將其中的端口號所有打開

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

接着開放iptables相關端口:

vi /etc/sysconfig/iptables

-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 32803 -j ACCEPT
-A INPUT -p udp -m udp --dport 32769 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 892 -j ACCEPT
-A INPUT -p udp -m udp --dport 892 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 875 -j ACCEPT
-A INPUT -p udp -m udp --dport 875 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 662 -j ACCEPT
-A INPUT -p udp -m udp --dport 662 -j ACCEPT

service iptables restart

啓動NFS服務:

service nfs start
service rpcbind start

設置服務爲自動重啓

chkconfig nfs on
chkconfig rpcbind on

6、導入系統虛擬機模板

系統虛機在CloudStack中扮演着重要的角色,如系統虛機沒有正確導入,CloudStack將沒法管理二級存儲,也就沒法完成導入模板、建立新的虛機等操做。

系統虛機文件很大,沒有包含在CloudStack安裝程序中,須要咱們手工下載並導入。

因系統虛機須要存放在二級存儲上,故需先mount 二級存儲到本地硬盤

mkdir /tmp/iso -p
mount -t nfs 127.0.0.1:/export/secondary /tmp/iso
cd /usr/share/cloudstack-common/scripts/storage/secondary/

不一樣的虛擬機實現方案系統虛機模板也是不一樣的

若是你的受控機使用 KVM,則使用下面的命令:

./cloud-install-sys-tmplt -m /tmp/iso/ -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F

若是你的受控機使用XenServer,則使用下面的命令:

./cloud-install-sys-tmplt -m /tmp/iso/ -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.vhd.bz2 -h xenserver -F

若是你的受控機使用vCenter,則使用下面的命令:

./cloud-install-sys-tmplt -m /tmp/iso/ -u http://download.cloud.com/templates/burbank/burbank-systemvm-08012012.ova -h vmware -F

文件較大,需耐心等待.……

固然,你也能夠把文件下載到本地,而後用 -f 參數導入。如:

./cloud-install-sys-tmplt -m /tmp/iso/ -f /var/acton-systemvm-02062012.qcow2.bz2 -h kvm -F

7、登錄WEB-UI

太好了,目前爲止咱們的準備工做都完成了,如今你已經能夠登錄CloudStack控制檯啦。

先初始化一下管理節點,這步只要執行一次就好了:

cloudstack-setup-management

啓動CloudStack服務:

service cloudstack-management restart

啓動CloudStack服務須要花點時間,這期間你能夠查看下它的日誌,確保它正常啓動:

tail -100f  /var/log/cloudstack/management/catalina.out

通常狀況下,它會正常啓動。若是啓動時報權限問題,通常是由於 cloud用戶沒有/var/log/cloudstack/management/ 寫入權限致使。

chown cloud:cloud /var/log/cloudstack/ -R

啓動成功能後,你如今就能夠用谷歌、火狐瀏覽器訪問管理節點啦: 

http://管理節點ip:8080/client 

注:IE訪問可能有兼容性問題。
      Cloudstack基於tomcat提供web服務,默認使用了8080端口。若是你想改用其它端口,能夠修改 /etc/tomcat6/server.xml 文件進行配置。

      Cloudstack  默認安裝在   /etc/cloudstack/management 目錄下,你能夠經過修改 log4j-cloud.xml 文件來調整日誌的輸出級別、路徑等。

CloudStack原生支持中文,怎麼樣看着親切吧?
默認的用戶名爲 admin 密碼是 password 

初次登錄時會顯示嚮導頁面,一步步引導你建立第一個基礎架構。目前咱們的準備工做還沒有完成,還沒法正確添加,所以這裏先選擇跳過。

登錄後點擊「基礎架構」,CloudStack資源管理的功能都在「基礎架構」下。

其中,「區域」能夠理解爲一個機房;
     「提供點」能夠理解爲一個機架;
     「羣集」是機架中主機的分組管理;
     「主存儲」是網絡存儲,主要用於存放虛擬機硬盤的,固然你也可使用本地存儲;
     「二級存儲」也是網絡存儲,主要用於存在虛擬機模板、快照的。

 「系統VM」是CloudStack自帶的專用虛機,用於管理二級存儲及遠程終端。其中二級存儲虛機必須正常啓動模板等一干功能纔可用。遠程終端虛機正常啓動後,才能經過WEB頁面直接訪問虛機控制檯。

  「虛擬路由器」也是CloudStack自帶的專用虛機。主要用於網絡隔離、端口轉發等網絡相關功能。

注意:CloudStack有一個全局屬性來控制二級存儲所在的網段。若是這個網段沒配或配置的不對,將沒法成功能添加上二級存儲。

在 CloudStack 管理頁面上,選擇「全局設置」,在右上邊的搜索框中輸入 sites 搜索。

修改 secstorage.allowed.internal.sites 爲二級存儲當前網段,如 192.168.0.0/24

搜索 local,修改system.vm.use.local.storage 爲 true,容許系統虛機使用本地存儲。

修改後,重啓 CloudStack 生效。

server cloudstack-management restart

8、添加「基礎架構」

好了,如今CloudStack管理節點全部的準備工做都已經完成了。接下來你就能夠添加本身的第一個「區域」了。

這步的操做方法,CloudStack中已經提供了一個很是友好的嚮導,能夠幫助你正確完成添加。另外,網上也有一大堆的文章介紹,我就不詳細說了,等未來有機會時我再給你們介紹下CloudStack高級網絡域的相關功能及添加方法。


附,可能遇到的問題:

一、管理節點的webui 沒法訪問

檢查iptables是否阻擋了8080端口。檢查cloudstack-management服務是否正常啓動。

server cloudstack-management status

若是啓動狀態不正常,則須要檢查一下日誌。

日誌位於 /var/log/cloudstack/management/catalina.out 。根據日誌中的錯誤提示,進行相應的處理,絕大多數問題均可以獲得解決。

若是日誌信息不夠詳細,能夠修改 /etc/cloudstack/management/log4j-cloud.xml來調整日誌的輸出級別。

二、登錄時提示用戶名密碼不正確。

默認的登錄用戶名爲 admin 密碼是 password 

若是登錄時提示不正確,多是導入基礎數據庫時有的問題。

從新導入基礎數據庫:

cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:root密碼

若是還不行,參考5將數據庫刪掉再從新導入。

3CloudStack不能添加主存儲或二級存儲

檢查/etc/sysconfig/nfs配置文件是否把端口都開放了。

檢查iptables是否有阻擋。

檢查CloudStack的「全局設置」,secstorage.allowed.internal.sites屬性是否設置正確。

4CloudStack沒法導入IOS或虛擬機模板

建立好「基礎架構」後,就能夠導入ISO文件或虛擬機模板,爲建立虛機作準備了。

若是你發現註冊ISO或註冊模板時,狀態字段一直不動,已就緒永遠都是no,那通常都是由於二級存儲有問題或Secondary Storage VM 有問題了。

選擇「控制板」->系統容量,檢查二級存儲容量是否正確。

檢查系統VM中的Secondary Storage VM是否正常啓動。

5CloudStack如何重裝

安裝完CloudStack後,咱們每每會作各類實驗,可能會把系統搞得很亂。想刪除的話很是麻煩,由於它們之間每每存在層級關係,必須先從最底層刪起。有沒簡單的辦法直接推倒重來呢?答案是有的,最簡單隻要重置下其數據庫便可。

先停掉CloudStack服務:
service cloudstack-management stop

登錄mysql控制檯,刪除數據庫:

mysql -u root -p

drop database cloud;
drop database cloud_usage;
drop database cloudbridge;
quit;

從新導入基礎數據:

cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:root密碼

從新導入系統虛機:

mount -t nfs 127.0.0.1:/export/secondary /tmp/iso
rm  -rf  /tmp/iso/
cd /usr/share/cloudstack-common/scripts/storage/secondary/

參考第7節,導入相應的系統虛機模板。

重啓cloudstack服務

service cloudstack-management start

這時,你再登錄就會發現一個全新的CloudStack啦。

6CloudStack的區域、提供點等沒法用中文命名

CloudStack4.1之前的版本中,區域、提供點等都可使用中文命名,但4.1版本時殊不知爲什麼作了限制,蛋疼。

若是在乎這個功能,請使用4.1之前的版本。推薦使用 4.0.2版。

相關文章
相關標籤/搜索