1、cloudstack介紹
一個開源具有高可用性及擴展性的雲計算平台,Cloudstack是一個開源的雲操作系統;
cloudstack支持管理大部分主流的hypervisors,如:VMware,KVM,Citrix XenServer,Xen Cloud Platform(XCP),Oracle VM服務器和Microsoft Hyper-V。
2、結構介紹
注釋:
#區域Zone
zone對應於現實中的一個數據中心,它是CloudStack中最大的一個單元
(一個zone包含多個pod,一個pod可以包含多個cluster,一個cluster包含多個host)
#提供點pods
一個提供點通常代表一個機架;機櫃里的主機在同一個子網,每個區域中
必須包含一個或多個提供點,提供點中包含主機和主存儲服務器;Cloudstack
的內部管理通信配置一個預留的IP地址范圍。預留的IP地址范圍對雲中的
每一個區域來說必須是唯一的。
#集群Clusters
Clusters是多個主機組成的一個集群。
同一個cluster中的主機有相同的硬件,相同的Hypervisor和共用同樣的存儲。
同一個cluster中的虛擬機,可以實現無中斷服務地從一個主機遷移到另一個主機上
集群由一個或多個宿主機和一個或多個主要存儲服務器構成;
集群的大小取決於下層虛擬機軟件,大多數情況下基本無建議。
#主機hosts
host就是運行的虛擬機(VM)主機。
宿主機就是一個獨立的計算機,宿主機在CloudStack部署中屬於最小的組織單元
#存儲
CloudStack中存在兩種存儲:
Primary storage:一級存儲與cluster關聯,它為該cluster中的主機內全部虛擬機提供
磁盤卷。一個cluster至少有一個一級存儲,且在部署時位置要臨近主機以提高性能。
Secondary storage:二級存儲與zone關聯,它存儲模板文件、ISO鏡像和磁盤卷快照。
3、實驗
系統版本 主機名 IP地址 磁盤 Centos7.5 master01 10.10.10.80 /dev/sda 系統盤 /dev/sdb 數據盤(50G) Centos7.5 agent01 10.10.10.81 /dev/sda 系統盤 /dev/sdb 數據盤(50G)
3.1、基礎環境設置(全部節點)
修改主機名‘、添加hosts解析、關閉SElinux
#下載epl源
yum -y install epel-release
#關閉selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #臨時關閉 setenforce 0 getenforce
#同步時區
timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc 1
yum -y install ntpdate
ntpdate time.windows.com
crontab -e
*/5 * * * * /usr/sbin/ntpdate time.windows.com 2>&1 >> /dev/null
systemctl enable ntpd
3.2、下載軟件包(master節點)
#第一種方式(yum安裝) [root@master01 yum.repos.d]# pwd /etc/yum.repos.d [root@master01 yum.repos.d]# cat cloudstack.repo [cloudstack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/centos7/4.11/ enabled=1 gpgcheck=0 [root@master01 yum.repos.d]# yum list|grep cloudstack cloudstack-agent.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-baremetal-agent.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-cli.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-common.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-integration-tests.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-management.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-marvin.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-mysql-ha.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-usage.x86_64 4.11.1.0-1.el7.centos cloudstack [root@master01 yum.repos.d]# #第二種方式(先下載好) #http://download.cloudstack.org/centos/7/4.11/ wget http://download.cloudstack.org/centos/7/4.11/cloudstack-usage-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-management-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-common-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-cli-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-agent-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-baremetal-agent-4.11.1.0-1.el7.centos.x86_64.rpm #http://download.cloudstack.org/systemvm/4.11/ wget http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.1-kvm.qcow2.bz2
3.3、安裝nfs(master節點)
配置的環境使用NFS作為主存儲和輔助存儲,需要配置兩個NFS共享目錄
[root@master01 src]# yum -y install nfs-utils [root@master01 src]# cat /etc/exports /export/secondary *(rw,async,no_root_squash,no_subtree_check) /export/primary *(rw,async,no_root_squash,no_subtree_check) [root@master01 src]# mkdir -p /export/secondary [root@master01 src]# mkdir -p /export/primary #格式化dev/sdb作為掛載磁盤 mkfs.ext4 /dev/sdb [root@master01 ~]# mount /dev/sdb /export/secondary/ #加入/etc/fsta文件中加入 /dev/sdb /export/secondary xfs defaults 0 0 ***客戶端創建一個/export/primary*** mkdir -p /export/primary mkfs.ext4 /dev/sdb [root@agent01 ~]# mount /dev/sdb /export/primary/ #cloudstack官方文檔 http://docs.cloudstack.apache.org/en/4.11.1.0/quickinstallationguide/qig.html#nfs [root@master01 ~]# vim /etc/sysconfig/nfs LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 RQUOTAD_PORT=875 STATD_PORT=662 STATD_OUTGOING_PORT=2020 #此處防火牆端口的添加不再操作!生產中💊開啟防火牆放行相應端口 #啟動nfs服務 systemctl restart nfs systemctl rpcbind start systemctl enable rpcbind systemctl enable nfs
3.4、客戶端掛載nfs共享磁盤
yum -y install nfs-utils [root@agent01 ~]# showmount -e 10.10.10.80 Export list for 10.10.10.80: /export/primary * /export/secondary * 注釋:可以進行掛載測試,測試完成可以掛載后續刪除,后續軟件會自動掛載
4、管理服務器安裝
接下來進行Cloudstack管理節點和相關工具的安裝
4.1、安裝管理端
#如果配置好了源
[root@master01 src]# yum -y install cloudstack-management cloudstack-common
#如果下載了好包
yum -y install cloudstack-management-4.11.1.0-1.el7.centos.x86_64.rpm cloudstack-common-4.11.1.0-1.el7.centos.x86_64.rpm
#驗證
[root@master01 ~]# rpm -qa|grep cloudstack
cloudstack-common-4.11.1.0-1.el7.centos.x86_64
cloudstack-management-4.11.1.0-1.el7.centos.x86_64
4.2、安裝mysql-server
[root@master01 ~]# yum -y install mariadb-server mysql安裝完成后,需更改其配置文件/etc/my.cnf 在[mysqld]下添加下列參數: innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=350 log-bin=mysql-bin binlog-format= 'ROW' #啟動mysql服務 systemctl start mariadb.service systemctl enable mariadb.service #修改初始密碼 [root@master01 ~]# mysqladmin -u root password '123456' 或(如果之前有密碼需要更新) mysqladmin -u root -p password '12345' #遠程連接權限 mysql -uroot -p12345 -e "GRANT ALL PRIVILEGES ON *.* TO ROOT@'%' IDENTIFIED BY '12345'";
4.3、系統初始化
在程序執行完畢后,需初始化數據庫,通過如下命令和選項完成:
[root@master01 ~]# cloudstack-setup-databases cloud:12345@localhost --deploy-as=root:12345
#啟動cloudstack服務 [root@master01 ~]# cloudstack-setup-management Starting to configure CloudStack Management Server: Configure Firewall ... [OK] Configure CloudStack Management Server ...[OK] CloudStack Management Server setup is Done!

4.4、系統模板設置
CloudStack通過一系列系統虛擬機提供功能,如訪問虛擬機控制台,如提供各類網絡服務以及管理輔助存儲中的各類資源。該步驟會獲取系統虛擬機模板,用於雲平台引導后系統虛擬的部署。
然后需要下載系統虛擬機模板並把這些模板部署於剛才創建的輔助存儲中,管理服務器包含一個腳本可以正確的操作這些系統虛擬機模板:
[root@master01 ~]# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary/ -f /usr/local/src/systemvmtemplate-4.11.1-kvm.qcow2.bz2 -h kvm -F
4.5、登錄管理頁面
要訪問CloudStack的Web界面,只需將瀏覽器指向 http://172.16.10.2:8080/client,默認用戶名為“admin”,默認密碼為“password”
5、安裝agent節點及配置
5.1、agent安裝
安裝kvm代理僅僅需要一條簡單的命令,但之后我們需要進行一些配置。
[root@agent01 ~]# yum -y install cloudstack-common cloudstack-agent
5.2、修改配置
KVM的配置相對簡單,僅需配置一項,編輯QEMW VNC配置文件/etc/libvirt/qemu.conf並取消如下一行的注釋;同時注釋#security_driver = "selinux"。
vnc_listen = "0.0.0.0" #這個需要打開 #security_driver = "selinux" #這個默認就是關閉的,不需要管
5.3、配置Libvirt
CloudStack使用libirt管理虛擬機;因此正確的配置libvirt至關重要。libvirt屬於cloudstack-agent的依賴組件,需要提前安裝好。
為了實現動態遷移,libvirt需要監聽使用非加密的TCP連接,還需要關閉libvirts嘗試使用組播DNS進行廣播。這些都在 /etc/libvirt/libvirtd.conf文件中進行配置。
設置如下參數:(不是必須的)
listen_tls = 0 listen_tcp = 1 tcp_port = "16509" auth_tcp = "none" mdns_adv = 0
[root@agent01 ~]# modprobe kvm [root@agent01 ~]# lsmod|grep kvm kvm 578518 0 irqbypass 13503 1 kvm
重啟libvirt服務
systemctl restart libvirtd
6、系統配置
10章未看