cloudstack部署


參考文檔

https://blog.csdn.net/u012124304/article/details/80960504#Mysql_37

cloudstack的rpm包下載地址

http://download.cloudstack.org/centos/

環境部署規划,

虛擬化:esxi 6.7

操作系統版本:centos 6.9

cloudstack版本:4.9.3.0

python版本:2.6

主機名

IP地址

配置

用途

node1

172.16.103.2

16vcpu32Gb內存,16G精簡配置硬盤

cloudstack控制節點,安裝數據庫,和控制節點的web控制台,同時也作為計算節點存在

node2

172.16.103.3

4vcpu,4G內存,16G精簡配置,300G精簡配置硬盤,100G精簡配置

模擬存儲節點,安裝nfs包,對外提供nfs的存儲服務,16G用於安裝操作系統,300G用於主存儲,100G用戶二級存儲

node3

172.16.103.4

16vcpu32Gb內存,16G精簡配置硬盤

純的計算節點,為cloudstack提供計算資源

1,配置ntp服務器和數據庫服務器

關閉selinux和防火牆,重啟

vi /etc/selinux/config

chkconfig iptables off

修改hosts

vi /etc/hosts

172.16.103.2 node1

172.16.103.3 node2

172.16.103.4 node3

安裝ntp服務

yum install ntp -y

service ntpd start

chkconfig ntpd on

安裝mysql

yum -y install mysql mysql-server

service mysqld start

chkconfig --add mysqld

chkconfig mysqld on

修改mysql中root用戶的密碼為root

mysql

mysql> use mysql;

mysql> set password for root@localhost = password('root');

2,安裝管理端和服務端的rpm包

cloudstack主要的包

cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm #agent包。添加計算節點的時候,計算節點上需要安裝的包

cloudstack-common-4.9.3.0-1.el6.x86_64.rpm #common包,應該是主程序包

cloudstack-management-4.9.3.0-1.el6.x86_64.rpm #管理端的包

cloudstack-usage-4.9.3.0-1.el6.x86_64.rpm #計費用量包,本次項目不安裝

mysql-connector-python-2.1.3-1.el6.x86_64.rpm #cloudstack安裝所需要的mysql的python連接器,需要自行去mysql官網下載對應系統版本的即可

libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm #安裝libvirt所需要的依賴包,需要自行上網下載,通過rpm -ivh 安裝,必要是可以強制安裝,加上--force --nodeps參數

libvirt-lock-sanlock-0.10.2-62.el6.x86_64.rpm #安裝libvirt所需要的依賴包,需要自行上網下載,通過rpm -ivh 安裝,必要是可以強制安裝,加上--force --nodeps參數

sanlock-2.8-3.el6.x86_64.rpm #安裝libvirt所需要的依賴包,需要自行上網下載,通過rpm -ivh 安裝,必要是可以強制安裝,加上--force --nodeps參數

sanlock-lib-2.8-3.el6.x86_64.rpm #安裝libvirt所需要的依賴包,需要自行上網下載,通過rpm -ivh 安裝,必要是可以強制安裝,加上--force --nodeps參數

augeas-1.0.0-10.el6.x86_64.rpm #安裝libvirt所需要的依賴包,需要自行上網下載,通過rpm -ivh 安裝,必要是可以強制安裝,加上--force --nodeps參數

jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64 #添加計算節點的需要安裝的依賴包

systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2 #系統vm文件

將以上rpm包上傳到/root目錄下,然后使用yum localinstall 安裝

先安裝mysql的python連接器包

rpm -ivh mysql-connector-python-2.1.3-1.el6.x86_64.rpm

使用yum localinstall 安裝cloudstack包

yum localinstall cloudstack-management-4.9.3.0-1.el6.x86_64.rpm cloudstack-common-4.9.3.0-1.el6.x86_64.rpm -y

初始化數據庫

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

參數解析:

cloud:cloud@localhost :其中cloud:cloudcloudstackmysql數據庫中創建的賬戶和密碼,localhostmysql數據庫的地址,因為我們裝在本機上,所以是localhost,如果mysql數據庫在另外一台機器上,則需改為該機器的IP或域名

–deploy-as=root:root :這個參數的值root:root填的是數據庫的root用戶名和密碼

   

執行這個命令會在MySql數據庫上創建一個cloud的用戶,並使用這個用戶創建一個cloud數據庫。出現以下信息則表明cluodstack的數據庫初始化成功:

時間比較久,耐心等待。

初始化cloudstack管理服務器

cloudstack-setup-management

使用瀏覽器訪問,地址為[host_ipaddress]:8080/client,默認的用戶名和密碼為admin/password,首次登陸和首次使用最好走一遍下面的向導

   

3,配置該主機為計算節點。

配置為計算節點需要安裝cloudstack-agent包和cloudstack-common包,而在這之前還需要安裝libvirtqemucloudstackKVM虛擬化層的操作實際上都是libvirtqemu來完成的,安裝libvirtqemu需要安裝相關的依賴包,需要的依賴包如下

libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm

libvirt-lock-sanlock-0.10.2-62.el6.x86_64.rpm

sanlock-2.8-3.el6.x86_64.rpm

sanlock-lib-2.8-3.el6.x86_64.rpm

augeas-1.0.0-10.el6.x86_64.rpm

這5個包在centos的系統安裝鏡像里面沒有,需要自行上網搜索下載,下面安裝這幾個rpm包

rpm -ivh libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm

rpm -ivh sanlock-lib-2.8-3.el6.x86_64.rpm

rpm -ivh sanlock-2.8-3.el6.x86_64.rpm

rpm -ivh augeas-1.0.0-10.el6.x86_64.rpm --force --nodeps

安裝libvirtqemu

yum install libvirt* qemu* -y

安裝cloudstack-agent包和cloudstack-common包,同時安裝cloudstack-usage包,如果是其他純計算節點,可以不安裝cloudstack-usage包,在安裝這些包之前還需要安裝一個依賴包,這個依賴包可能在centos的系統鏡像里面也沒有

rpm -ivh jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm

yum localinstall cloudstack-common-4.9.3.0-1.el6.x86_64.rpm cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm

啟動相關服務

service cloudstack-agent start

查看服務器狀態

service cloudstack-agent status

發現服務器為cloudstack-agent dead but subsys locked狀態,修復該錯誤,開啟宿主機的虛擬化支持,在vmware workstation設編輯虛擬機設置選擇CPU,勾選虛擬化引擎

修改配置文件

vi /etc/cloudstack/agent/agent.properties

private.network.device=eth0

public.network.device=eth0

這里主要修改的網橋設備,如果使用本地網卡作為網橋的話就寫ifconfig看到的本地網卡的名字即可

   

重新啟動服務

service cloudstack-agent restart

查看服務狀態

service cloudstack-agent status

4,配置存儲節點

關閉該節點的selinux和iptables,掛載系統鏡像,安裝nfs包

yum install nfs-utils rpcbind -y

設置開機啟動

chkconfig nfs on

chkconfig rpcbind on

建立data目錄

mkdir -p /data

mkdir primary

mkdir secondary

添加兩塊磁盤,將磁盤分區格式化之后掛載到/data/primary/data/secondary 目錄,並寫入fstab文件,實現開機自動掛載

編輯nfs的配置文件

vi /etc/exports

/data/primary *(rw,sync)

/data/secondary *(rw,sync)

/data/primary為把該目錄共享出去,*代表所有網絡的主機可以連接該共享,(rw,sync) rw為權限,可讀可寫,sync代表數據同步寫入NFS服務器端的硬盤中。也可以用asyncasync是大數據時使用,是先寫到緩存區,再寫到磁盤里。

設置權限

chown -R nfsnobody:nfsnobody /data

重啟相關服務

service rpcbind restart

service nfs restart

查看nfs共享的目錄

5,創建系統vm

在管理節點上創建被掛載的二級存儲目錄/data/secondary,然后將上面nfs服務器的secondary目錄掛載的此目錄。

mkdir -p /data/secondary

mount -t nfs 172.16.103.3:/data/secondary /data/secondary/

同時寫入fstab文件,實現開機自動掛載

vi /etc/fstab

172.16.103.3:/data/secondary /data/secondary ext4 defaults 0 0

上傳系統vm文件到/data/secondary目錄

解壓縮系統vm文件

bunzip2 systemvm64template-4.10-4.10.0.0-kvm.qcow2.bz2

安裝系統vm

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /data/secondary/ -f /data/secondary/systemvm64template-4.10-4.10.0.0-kvm.qcow2 -h kvm -F

6,圖形化操作

   

   

   

   

   

   

   

   

   

   

   

   

   

注意看系統的vm是狀態,

如果代理狀態不是up的話,可以嘗試重啟一下資源域

如果是在esxi虛擬化下做此實驗的話,需要在esxi虛擬化平台中啟動混雜模式,具體操作是網絡,選擇節點橋接的網絡,啟用混雜模式,然后重啟cloudstack的資源域即可。

7,添加一個計算節點

計算節點安裝好操作系統,掛載系統鏡像為yum源,關閉selinux和iptables,注意在vmware workstation設編輯虛擬機設置選擇CPU,勾選虛擬化引擎

編輯hosts文件

vi /etc/hosts

172.16.103.4 node3

上傳相關的程序包和依賴包到/root目錄

augeas-1.0.0-10.el6.x86_64.rpm

cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm

cloudstack-common-4.9.3.0-1.el6.x86_64.rpm

jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm

libvirt-java-javadoc-0.4.9-1.el6.noarch.rpm

sanlock-2.8-3.el6.x86_64.rpm

sanlock-lib-2.8-3.el6.x86_64.rpm

安裝安裝libvirtqemu的依賴包

rpm -ivh sanlock-lib-2.8-3.el6.x86_64.rpm

rpm -ivh sanlock-2.8-3.el6.x86_64.rpm

rpm -ivh augeas-1.0.0-10.el6.x86_64.rpm --force --nodeps

安裝libvirtqemucloudstackKVM虛擬化層的操作實際上都是libvirtqemu來完成的

yum install libvirt* qemu*

安裝cloudstack-agent包和cloudstack-common包的依賴包

yum install java-gcj-compat

rpm -ivh jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm

安裝cloudstack-agent包和cloudstack-common

yum localinstall cloudstack-agent-4.9.3.0-1.el6.x86_64.rpm cloudstack-common-4.9.3.0-1.el6.x86_64.rpm

編輯cloudstack-agent的配置文件

vi /etc/cloudstack/agent/agent.properties

private.network.device=eth0

public.network.device=eth0

這里主要修改的網橋設備,如果使用本地網卡作為網橋的話就寫ifconfig看到的本地網卡的名字即可

開啟cloudstack-agent服務

service cloudstack-agent start

查看cloudstack-agent服務的運行狀態

service cloudstack-agent status

圖形化操作,添加計算節點

8,默認情況下的cloudstack控制台上主存儲中顯示的容量為可分配的容量,由於虛擬化平台有一個存儲超配的概念,所以默認情況下這里顯示的是可分配的容量,默認情況下可分配的容量是實際容量的2倍(下圖中顯示的容量為實際容量,是本人修改做全局配置之后的容量),為了能夠顯示實際容量需要在全局配置中更改相關的參數,需要更改的參數為storage.overprovisioning.factor(默認這個值為2)修為該1即可,修改之后要重啟cloudstack控制台的服務。

   

9,添加iso鏡像

由於是內網環境,需要在nfs上搭建一個httpd服務,用於發布系統發iso鏡像包,目前版本無法支持在web端自由上傳iso鏡像,所以需要搭建模擬環境

安裝httpd服務

yum install httpd -y

編輯httpd.conf配置文件,將默認的html目錄更改為主存儲的目錄

cd /etc/httpd/conf

備份默認的配置文件

mv httpd.conf httpd.conf.bak

將原配置文件中的內容去掉注釋行導入到新配置文件

cat httpd.conf.bak |grep -v '#' > httpd.conf

vi httpd.conf

DocumentRoot "/data/primary" #此處修改為主存儲掛載的目錄

   

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

   

   

<Directory "/data/primary"> #此處修改為主存儲掛載的目錄

   

Options Indexes FollowSymLinks

   

AllowOverride None

   

Order allow,deny

Allow from all

   

</Directory>

重啟http服務

service httpd restart

將win2008的系統鏡像和centos7.3的系統鏡像上傳至/data/primary目錄並且將win的鏡像名字修改為win08r2.iso,centos系統鏡像名字修改為centos1611every.iso

創建index.html文件,寫入上面的系統鏡像的下載地址

vi /data/primary/index.html

http://172.16.103.3/win08r2.iso

<p>

http://172.16.103.3/centos1611every.iso

</p>

   

在cloudstack平台添加iso

   

   

   

添加之后查看狀態一直處於Connection refused狀態,百度得知需要修改全局配置中

secstorage.allowed.internal.sites的配置,默認情況下,不允許連接任何地址,需要將這里配置成我們的httpd的網絡地址,注意,經過我的多次測試,這里不能寫IP地址,寫了IP地址后重啟了控制台依然還會出現connection refused的情況,所以所需要的填寫的一個網絡,例如我們的httpd服務在172.16.103.2,那么這里就需要填寫172.16.103.0/24

填寫完畢之后,重啟控制台機器,重啟不能夠使用restart參數,需要在控制節點(node1)上執行以下操作

service cloudstack-management stop

   

service cloudstack-management start

執行完start命令之后要確保8080端口打開之后才可以訪問控制台

netstat -nutpl |grep 8080

配置了以上全局配置之后可以看到鏡像處於downloaded狀態了

   

10,模板制作

首先使用上面的ISO鏡像安裝好操作系統,然后將安裝好的系統進行優化,最后制作成系統模板。

centos模板制作

安裝好的centos系統需要執行的操作,首先是網絡配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=dhcp

僅保留上面的配置項,其他項均刪除

刪除udev綁定

rm -f /etc/udev/rules.d/70-persistent-net.rules

刪除歷史命令

history -c

其實還可以執行更多的優化操作例如,刪除日志,安裝一些需要的軟件之類的。

然后關機,等待cloudstack控制台上centos實例的狀態為stopped狀態之后在創建模板如下圖

創建模板

點擊實例名

點擊查看卷

點擊卷名名稱

點擊創建模板

輸入自定義的名稱和說明,選擇對應的操作系統,勾選公用,點擊確定即可創建模板,模板創建成功之后即可使用模板快速創建虛擬機。

windows主機創建模板的流程根上述大致相同,都是首先執行一些系統優化的操作,不同之處在於有些低版本的windows系統可能需要額外添加一些支持虛擬化的驅動(主要是磁盤的驅動),例如virtio-win.iso之類的,最后執行windows封裝命令即可。系統封裝的具體操作如下

C:\Windows\System32\Sysprep目錄下,運行sysprep.exe,選擇進入系統全新體驗,關機,點確定即可。

制作模板的過程根上述制作centos模板的過程類似,都是選擇卷,制作模板,需要注意的是執行關機之后也要得到cloudstack控制上對應實例的狀態處於stopped之后再執行制作模板的操作

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM