CloudStack+KVM 虛擬機器器部署測試詳細流程

2020-10-09 11:00:26

目錄

基本介紹

部署準備

開始部署

1.檢視並修改虛擬機器器網路

2.建立manager節點

2.設定manage節點

2.克隆為agent節點

3.設定NFS服務

4.安裝MySQL服務

5.設定網路橋接

6.安裝CloudStack

(1)網路源

(2)本地源

7.設定CloudStack

8.建立資源域 

9.註冊ISO,新增範例,建立模板

可能遇到的問題


基本介紹

本文旨在介紹如何在本機虛擬機器器裡部署一套CloudStack環境的測試流程,包括一臺管理節點(manager)和一臺計算節點(agent)。其中,manager節點會搭建作為二級儲存的NFS服務,agent會搭建用於映象下載的nginx伺服器。

本文使用KVM建立虛擬機器器,通過libvirtd管理虛擬機器器。

部署準備

軟體安裝:

VMWare Workstation,XShell

資源下載:

CentOS-7-x86_64-Minimal-1810.iso  //系統映象

cloudstack-common-4.13.1.0-1.el7.x86_64.rpm

cloudstack-management-4.13.1.0-1.el7.x86_64

cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm

systemvmtemplate-4.11.3-kvm.qcow2.bz2

本文所用所有資源的百度雲分享連結:https://pan.baidu.com/s/1AiuZUF5JvudgIgFjc_8j4Q  提取碼:oy3h 

開始部署

1.檢視並修改虛擬機器器網路

       首先,開啟Wmware Workstation,選擇選單欄「編輯」->虛擬網路編輯器,檢視VMnet8的子網地址。

每臺機器VMnet8被分配的子網地址都不相同,但在每個網段中,本機都預設為1,閘道器都預設為2。

以本機「192.168.100.0」網段為例,在該網段中,預設本機的IP地址為「192.168.100.1」,預設閘道器的IP地址為「192.168.100.2」。

而若是「192.168.67.0」網段,則預設本機的IP地址為「192.168.67.1」,預設閘道器的IP地址為「192.168.67.2」。

請注意並修改後續操作中IP地址,以保證在VMnet8的網段中。

       若想更改網段,可以點選右下角「更改設定」,以管理員許可權開啟虛擬網路編輯器,修改左下角子網IP。

       預設DHCP分配IP範圍為128-254,可以點選「DHCP設定」調整,本文調整如下。開放地址範圍為192.168.100.100-192.168.100.254。

       綜上,本機虛擬網路相關的資訊如下:

地址範圍:192.168.100.100-192.168.100.254
閘道器:192.168.100.2
子網掩碼:255.255.255.0

2.建立manager節點

本文先建立manager節點虛擬機器器,安裝必要的軟體後,會克隆該虛擬機器器作為agent節點,再分別部署各自節點。

manager節點IP設定為192.168.100.100

agent節點IP設定為192.168.100.101

在VmWare Station 中新建虛擬機器器,在新建嚮導中依次選擇「典型」、「稍後安裝作業系統」、「Linux」、「CentOS 7 64位元」。

命名該虛擬機器器為Manager,避免混淆。

磁碟容量為預設20G足可,在最後一步中點選「自定義硬體」,按下圖設定。

Manager節點推薦記憶體為2G,處理器核心2顆,開啟Intel VT-x/EPT,CD驅動器載入CentOS的iso映象,並確定已勾選啟動時連線,再刪除多餘的音效卡和印表機硬體,點選「關閉」並點選「完成」。

再次編輯該虛擬機器器設定,點選左下角新增,新增硬碟。

新增新硬碟

        一路點「下一步」,最後完成新硬碟新增。

        啟動虛擬機器器,開始映象安裝。點選虛擬螢幕,按上下鍵選擇「Install CentOs 7」,進入視覺化安裝介面。

第一步,選擇中文。

選擇「中文」

       點選「繼續」,等待依賴檢索完成,依次設定「安裝位置」、「網路和主機名」。

設定「安裝位置」
設定「網路和主機名」

         設定manager節點IP地址「192.168.100.100」,並設定阿里DNS伺服器。點選「儲存」和「完成」。

設定「ens33」

   

        點選「開始安裝」。

安裝中

 

        在安裝時,設定ROOT密碼,本文設定為12345。若密碼過於簡單,點選兩次完成也可以完成設定。

        安裝完成後,重新啟動。

2.設定manage節點

       開啟XShell,新建對談。

 點選「使用者身份驗證」,輸入root和ROOT密碼。

儲存並連線,驗證主機金鑰,選擇「接受並儲存」。

在XShell中完成以下設定。

(1)設定IP對映

設定後可以直接通過Hostname,存取到對應節點。

複製一下指令到XShell對談框中,按回車執行。

vi /etc/hosts

在該檔案新的一行中插入以下內容:

192.168.100.100 manager
192.168.100.101 agent

小提示

按I鍵進入INSERT模式。

按ESC,輸入「:wq」儲存並退出,輸入「:q!"不儲存退出。

按ESC,按兩下D刪除遊標所在行。

(2)關閉防火牆

systemctl disable firewalld
systemctl stop firewalld

然後設定selinux為permissive模式

修改config檔案

vi /etc/selinux/config 

找到selinx並改成

SELINUX=permissive

重新啟動生效

reboot

檢視selinux

getenforce 

(3)時區設定(非必要)

timedatectl set-timezone  Asia/Shanghai

檢視時區

timedatectl

 (4)安裝EPEL

yum -y install epel*

重建本地倉庫快取

yum clean all && yum makecache

安裝VIM,用以編輯檔案。

yum -y install vim

安裝lrzsz,用以向虛擬機器器傳送檔案。

yum -y install lrzsz

(5)安裝時間同步模組

yum -y install chrony

修改組態檔

vim /etc/chrony.conf

將伺服器修改為阿里雲的時間同步伺服器

找到以下四行

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

修改為

server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst

 重新啟動chronyd服務

systemctl restart chronyd

(5)安裝NFS服務

yum -y install nfs-utils

編輯組態檔

vim /etc/sysconfig/nfs

取消如下項的註釋。其中,RQUOTAD_PORT需要手動新增。

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

啟動服務並設定開機啟動。

systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs
systemctl start nfs

檢視新增硬碟

fdisk -l

格式化硬碟,建立ext4檔案系統

mkfs.ext4 /dev/sdb

至此,兩節點的通用設定已完成。

2.克隆為agent節點

關閉manager節點,在庫中,右鍵manager節點,選擇「管理」->「克隆」,進入克隆虛擬機器器嚮導。

依次選擇「克隆當前狀態」、「建立完整克隆」,命名為「agent」,然後點選完成。

由於克隆後agent節點IP與manager衝突,建議先在虛擬機器器內部修改完靜態IP地址後,再通過XShell設定。

開啟agent虛擬機器器,輸入賬戶root,密碼12345。

修改host名

vim /etc/hostname

修改manager為agent

修改IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33

將IPADDR修改為192.168.100.101,修改後如下。

 重新啟動虛擬機器器

reboot

在XShell中,建立新對談,名稱為「agent」,主機為192.168.100.101,賬號為root,密碼為12345。

在XShell的對談中完成後續設定。

3.設定NFS服務

前面已經設定過檔案,此步驟只需設定共用目錄。請注意各個操作與其操作節點,避免混淆。

manager節點

建立掛載點

mkdir -p /export/secondary

硬碟掛載

 echo "/dev/sdb  /export/secondary  ext4 defaults 0 0"  >> /etc/fstab

快速掛載

mount -a

檢視掛載

df -h

結果如下

設定共用目錄

vim /etc/exports

新增

/export/secondary *(rw,async,no_root_squash,no_subtree_check)

 重新匯入共用目錄設定

exportfs -a

agent節點

建立掛載點

mkdir -p /export/primary

硬碟掛載

echo "/dev/sdb  /export/primary  ext4 defaults 0 0"  >> /etc/fstab

快速掛載

mount -a

設定共用目錄

vim /etc/exports

新增

/export/primary *(rw,async,no_root_squash,no_subtree_check)

重新匯入共用目錄設定

exportfs -a

驗證共用

manager 節點檢視 agent的共用目錄

showmount -e agent

agent 節點檢視 manager 的共用目錄

showmount -e manager

4.安裝MySQL服務

manager節點

yum -y install mariadb-server mariadb

編輯 mariadb 組態檔

vim /etc/my.cnf

在mysqld 模組下加入

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

啟動mariadb 並設定為開機啟動

systemctl enable mariadb
systemctl start mariadb

執行資料庫初始化安全操作

mysql_secure_installation

初始未設定密碼按回車跳過,選擇設定密碼,設定為12345,移除匿名使用者,不遮蔽遠端登入等,其他按回車選擇預設。

賦予 root 遠端登入許可權

請注意並修改下方操作中的密碼為自己設定的密碼

mysql -uroot -p12345 -e "GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '12345' WITH GRANT OPTION";

5.設定網路橋接

agent節點

yum -y install net-tools bridge-utils

 編輯網路卡橋接檔案 cloudbr

vim /etc/sysconfig/network-scripts/ifcfg-cloudbr0

修改後內容如下。靜態IP根據自己實際情況修改。

TYPE=Bridge
BOOTPROTO=none
DEVICE=cloudbr0
ONBOOT=yes
IPADDR=192.168.100.101
NETMASK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=223.5.5.5
STP=yes

設定網路卡檔案

vim /etc/sysconfig/network-scripts/ifcfg-ens33

 修改後如下

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ad4d6e67-ae59-4a3c-9270-7045700517cd"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE=cloudbr0

重新啟動網路服務

systemctl restart network

檢視 網橋 和路由

brctl show route -n

至此,基本環境安裝已經完成,建議拍攝快照,以免後期設定錯誤,功虧一簣。

6.安裝CloudStack

(1)網路源

manager和agent節點

設定網路原始檔,兩臺節點設定相同

vi /etc/yum.repos.d/cloudstack.repo

 新增

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

manager節點

yum -y install cloudstack-management

agent 節點

yum -y install cloudstack-agent

(2)本地源

官方下載地址:

http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-management-4.13.1.0-1.el7.x86_64.rpm
http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm
http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-common-4.13.1.0-1.el7.x86_64.rpm

本文提供的百度雲裡下載。

本文使用lrzsz進行檔案傳送,若遇問題,也可以使用WinSCP等其他軟體傳送。

manager節點

將cloudstack-common和cloudstack-management兩個rpm檔案,分別拖入XShell對談框,傳送給虛擬機器器。

執行下述指令進行本地安裝。

yum -y install cloudstack-common-4.13.1.0-1.el7.x86_64.rpm cloudstack-management-4.13.1.0-1.el7.x86_64.rpm

安裝過程或以後使用過程中,有任何問題,可以通過紀錄檔檢視。

tail -f /var/log/cloudstack/management/management-server.log

初始化資料庫,建立新使用者cloud。

最後,root:12345為root賬號及root密碼,密碼不同請修改。

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

啟動management

cloudstack-setup-management

agent 節點

將cloudstack-common和cloudstack-agent兩個rpm檔案,分別拖入XShell對談框,傳送給虛擬機器器。

執行下述指令進行本地安裝。

yum -y install cloudstack-common-4.13.1.0-1.el7.x86_64.rpm cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm 

manager節點

安裝KVM模板

在二級儲存中安裝KVM模板。以下兩種方式二選一

a.網路源安裝

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u http://cloudstack.apt-get.eu/systemvm/4.11/systemvmtemplate-4.11.3-kvm.qcow2.bz2  \
-h kvm -F

b.本地源

官方地址:

http://cloudstack.apt-get.eu/systemvm/4.11/systemvmtemplate-4.11.3-kvm.qcow2.bz2

本文提供的百度雲裡下載。

同上述過程,拖入對談即可。

注意:當前資料夾是否為root,不是請先「cd /root」,或者修改下述程式碼中路徑。

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt  \
-m /export/secondary \
-f /root/systemvmtemplate-4.11.3-kvm.qcow2.bz2 \
-h kvm –F

agent 節點

設定libvirt

編輯QEMU VNC組態檔/etc/libvirt/qemu.conf

vim /etc/libvirt/libvirtd.conf

取消註釋或新增

listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0

小提示

可以按下ESC,使用「/+搜尋詞」,如「/listen」進行搜尋。

 設定/etc/sysconfig/libvirtd檔案

LIBVIRTD_ARGS="--listen"

重新啟動libvirtd 並設定為開機自啟

systemctl restart libvirtd
systemctl enable libvirtd

7.設定CloudStack

 預設存取埠為manager節點IP的8080埠。

開啟瀏覽器,存取http://192.168.199.100:8080/client/。

預設賬號為admin,預設密碼為password,選擇語言為「簡體中文」,登陸。

 初次登陸選擇左下角「我以前使用過」。

選擇左下角「全域性設定」,搜尋並修改以下設定。

cpu.overprovisioning.factor 2.0               //CPU超配
mem.overprovisioning.factor 2.0               //記憶體超配,即2GB變4GB
secstorage.allowed.internal.sites 0.0.0.0/0   //從該網段下載ISO或模板,後期搭建ngix伺服器可修改
management.network.cidr 192.168.100.0/24      //管理網段,可不修改,但會有警報資訊

在manager節點中,重新啟動cloudsatck-management服務

systemctl restart cloudstack-management

重新啟動時間較長,請耐心等候,可以觀察紀錄檔檔案,瞭解啟動程序。

tail -f /var/log/cloudstack/management/management-server.log

8.建立資源域 

重新登入,選擇左下角「基礎架構」,選擇「資源域」,點選工具列「+ 新增資源域」。

設定如下即可。

 

 

 請注意,「新增主機」這一步,是新增計算節點作為叢集的預設主機,而不是管理節點。

 

 點選「啟動資源域」,等待建立完成,然後啟動即可。

9.註冊ISO,新增範例,建立模板

如下,等待系統VM建立成功後,開始後續步驟。

agent節點

建立一個NGINX 伺服器當作映象下載站。

安裝 nginx 軟體

yum -y install nginx

編輯 nginx 組態檔

vim  /etc/nginx/nginx.conf 

在access_log /var/log/nginx/access.log main一行後加上

autoindex on;# 顯示目錄
autoindex_exact_size on;# 顯示檔案大小
autoindex_localtime on;# 顯示檔案時間

清空 /usr/share/nginx/html 目錄

小心謹慎

cd /usr/share/nginx/html
rm -rf *

將準備好的ISO映象放進去,本文使用的是虛擬機器器的映象,直接拖入對談框,傳送至/usr/share/nginx/html目錄。

重新啟動nginx 服務,設定為開機啟動

systemctl enable nginx
systemctl start nginx

 可通過瀏覽器直接存取agent節點IP地址檢視。

註冊ISO

選擇左側「模板」->選擇檢視「ISO」,點選工具列「註冊ISO」。

 依次填寫所有資訊,URL可以從192.168.100.101網頁中複製連結。

 點選「確定」,點選該ISO,點選「資源域」,檢視狀態。

 安裝完成後,如下所示。

新增範例

依次選擇左邊「範例」->工具列「新增範例」。

選擇ISO建立。

 選擇剛剛註冊的ISO。

 計算方案選擇Medium,分配記憶體為1GB,可在「服務方案」中修改。

 其餘一律預設即可,最後填寫資訊。

 啟動VM,等待VM建立並執行。

選擇該虛擬機器器快速檢視->檢視控制檯。

在彈出的控制檯網頁中,安裝ISO即可。

安裝過程同虛擬機器器大致一樣,不同的是網路只需開啟即可,不需要設定靜態IP和主機名。

安裝完成後,重新啟動。

至此,一臺可以用於生產的範例已經部署完成,後續可以安裝其他生產環境,本文僅做測試,安裝系統即可。

建立模板

接下來是,將安裝有生產環境的範例建立模板,用以建立更多範例。

關閉範例。「快速檢視」->停止。

 等待停止後,點選「檢視卷」。

選擇「快速檢視」->「建立模板」。

 填寫資訊後,建立即可。

 

 以後新增範例時,選擇該模板即可建立一模一樣的範例。

可能遇到的問題

Q:安裝軟體時一直切換映象,最後也不下載,這是怎麼回事?

A:沒有設定DNS伺服器。

沒有設定網橋的話,設定網路

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

新增DNS伺服器

DNS1=223.5.5.5

設定網橋了的話,在網橋檔案裡新增DNS。

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

 

Q:管理節點重新啟動後,CloudStack 的WEB UI上不去,這是怎麼回事?

A:一般是Server還在啟動中,稍等即可。

可以通過檢視紀錄檔的方式排除問題。

tail -f /var/log/cloudstack/management/management-server.log

 

Q:系統VM建立失敗,紀錄檔顯示「can't create development for vm」,這是為什麼?

A:這可能有兩個原因造成:

1.agent節點硬體資源不足

本文建議的4GB記憶體加2核,再加上2倍超配,經多次試驗完全能滿足要求。

2.沒有安裝KVM模板

如果紀錄檔中報錯「Not such file or directory」,然後指向/export/secondary裡的template資料夾,那麼就是這個原因,按照第6部中的「安裝KVM模板」步驟完成即可。

 

Q:紀錄檔報資料庫中列錯誤,怎麼處理?

A:按照第6步中,初始化資料庫的步驟,重新建立使用者,安裝management。