CloudStack快速安装使用
CloudStack快速安裝使用
任總關注
0.772019.05.07 17:42:27字數 2,132閱讀 4,074
參考鏈接:https://blog.csdn.net/zhangliu463884153/article/details/80606020
https://blog.csdn.net/u012124304/article/details/75529429
CloudStack結構
?
- 官方網站文檔:http://docs.cloudstack.apache.org/en/latest/index.html
Zone
- Zone 對應于現實中的一個數據中心,它是 CloudStack 中最大的一個單元。 即從包含關系上來說,一個 zone 包含多個 pod,一個 pod 包含多個 cluster,一個 cluster 包含多個 host。
提供點(Pods)
- 一個提供點通常代表一個機架,機柜里面的主機在同一個子網,每個區域中必須包含一個或多個提供點,提供點中包含主機和主存儲服務器, CloudStack 的內部管理通信配置一個預留 IP 地址范圍。預留的 IP 范圍對云中的每個區域來說必須唯一。
集群(Clusters)
- Cluster 是多個主機組成的一個集群。
- 同一個cluster中的主機有相同的硬件,相同的 Hypervisor,和共用同樣的存儲。同一個 cluster 中的虛擬機,可以實現無中斷服務地從一個主機遷移到另外一個上。
- 集群由一個或多個宿主機和一個或多個主要存儲服務器構成。集群的大小取決于下層虛擬機軟件。大多數情況下基本無建議。當使用VMware時,每個VMware集群都被vCenter 服務器管理。管理員必須在本產品中登記vCenter。每個zone下可以有多個vCenter服務器。每個vCenter服務器可能管理多個VMware集群
主機(Hosts)
- Host 就是運行的虛擬機(VM)主機。
- 宿主機就是個獨立的計算機。宿主機運行來賓虛擬機并提供其相應的計算資源。每個宿主機都裝有虛擬機軟件來運行來賓虛擬機。比如一個開啟了kvm支持的服務器,一個思杰XenServer服務器,或者一個ESXi服務器都可以作為宿主機。
- 宿主機在CloudStack部署中屬于最小的組織單元。宿主機包含于集群中,集群又屬于提供點,而區域中包含提供點(就是在邏輯概念上zone>pod>cluster>host),新增的宿主機可以隨時添加以提供更多資源給來賓虛擬機,CloudStack自動探測宿主機的cpu數量和內存資源。宿主機對終端用戶不可見。終端用戶不能決定他們的虛擬機被分配到哪臺宿主機。
CloudStack 中存在兩種存儲:
Primary storage
- 一級存儲與 cluster 關聯,它為該 cluster 中的主機的全部虛擬機提供磁盤卷。一個 cluster 至少有一個一級存儲,且在部署時位置要臨近主機以提供高性能。
Secondary storage
- 二級存儲與 zone 關聯,它存儲模板文件,ISO 鏡像和磁盤卷快照。
通過控制臺連接,您應該以root用戶身份登錄。我們將首先創建Cloudstack將用于網絡的橋梁。創建并打開/ etc / sysconfig / network-scripts / ifcfg-cloudbr0并添加以下設置:
快速安裝cloudstack
- 實驗環境:CentOS7.5 ,Dell630服務器單節點,ip地址:172.16.16.1
-
如果使用vmware workstation虛擬機上試驗,需要cpu開啟虛擬化支持并分配兩個處理器,內存要4G以上
?vm虛擬機cpu開啟虛擬化支持
此時如果連接了ssh,會斷開,要到主機里面查看,已經添加到網橋中了,但未能啟用,然后重啟主機
?
重啟后再次把網卡加入網橋,成功
~]# vim install_cloudstack.sh
#!/bin/sh # cloudstack pike 一鍵安裝腳本 單機 # 環境 centos 7.4.1708 x86_64read -p "Enter nodename > " name #輸入節點主機名 [[ `uname -r` = *el7* ]] && { echo '開啟安裝cloudstack pike'; } || { echo '請在CentOS7.4 環境運行';exit; } [[ $(whoami) == root ]] || { sudo su - root; } [[ $? = 0 ]] || { echo 'Must run in root !';exit; }########################################## #參數#獲取第一塊網卡名、ip地址 Net=`ip add|egrep global|awk '{ print $NF }'|head -n 1` IP=`ip add|grep global|awk -F'[ /]+' '{ print $3 }'|head -n 1` echo "網卡名稱:$Net" echo "IP地址: $IP"#參數 Node=$name #節點名 Netname=$Net #網卡名稱 MyIP=$IP #IP地址########################################## #1、設置echo '調整selinux、關閉防火墻' systemctl stop firewalld.service systemctl disable firewalld.service firewall-cmd --state sed -i '/^SELINUX=.*/c SELINUX=disable' /etc/selinux/config grep --color=auto '^SELINUX' /etc/selinux/config setenforce 0echo '設置hostname,上面已設置,這里怕忘記設置,在搞一遍' hostnamectl set-hostname $Node echo "$MyIP $Node">>/etc/hosts yum install -y wget #使用阿里源 mkdir -p /etc/yum.repos.d/remark && mv /etc/yum.repos.d/* /etc/yum.repos.d/remark/ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.reposed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo ##設置yum源 touch /etc/yum.repos.d/{cloudstack.repo,mysql.repo} echo "#cloudstack-yum源 repo [cloudstack] name=cloudstack baseurl=http://download.cloudstack.org/centos/7/4.11/ enabled=1 gpgcheck=0 ">/etc/yum.repos.d/cloudstack.repoecho "#mysql-yum源 repo [mysql-connectors-community] name=MySQL Community connectors baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/\$releasever/\$basearch/ enabled=1 gpgcheck=1 ">/etc/yum.repos.d/mysql.repoyum clean all && yum makecache #清理緩存echo '時間同步' [[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp ntpdate -y &> /dev/null; } #若沒NTP則安裝 /usr/sbin/ntpdate ntp6.aliyun.com echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com &> /dev/null" > /tmp/crontab crontab /tmp/crontab########################################## #2 安裝yum -y upgrade &> /dev/null yum install -y ntp wget vim net-tools openssh tree &> /dev/null echo 'CloudStack tools 安裝' yum -y install nfs-utils &> /dev/null echo 'mysql安裝' wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm yum -y install mysql-community-release-el7-5.noarch.rpm yum -y update yum -y install mysql-serverecho '安裝nfs'########################################## #3、nfs配置 mkdir -p /var/export/{primary,secondary} echo "/var/export/secondary *(rw,async,no_root_squash,no_subtree_check) /var/export/primary *(rw,async,no_root_squash,no_subtree_check)" >> /etc/exports#域是kvm.io sed -i '/^#Domain = */c Domain = kvm.io ' /etc/idmapd.conf #添加配置值 echo "LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 RQUOTAD_PORT=875 STATD_PORT=662 STATD_OUTGOING_PORT=2020" >> /etc/sysconfig/nfs #啟動nfs systemctl enable rpcbind && systemctl start rpcbindsystemctl enable nfs && systemctl start nfs# #------------------##################### echo 'SQL數據庫配置' touch /etc/my.cnf.d/cloudstack.cnf echo "[mysqld] innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=350 log-bin=mysql-bin binlog-format = 'ROW' ">/etc/my.cnf.d/cloudstack.cnf echo '啟動數據庫服務' systemctl enable mysqld && systemctl start mysqld sleep 5 netstat -antp|grep mysqld##############從MySQL導入GPG公鑰: rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql #安裝mysql-connector yum -y install mysql-connector-python #安裝服務器管理器 yum -y install cloudstack-management #設置數據庫 cloudstack-setup-databases cloud:password@localhost --deploy-as=root #下載vm模板 /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /var/export/secondary -u http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.2-kvm.qcow2.bz2 -h kvm -F #安裝管理代理 yum -y install cloudstack-agent #QEMU VNC配置 sed -i '/^#vnc_listen=*/c vnc_listen="0.0.0.0"' /etc/libvirt/qemu.conf #Libvirt配置 echo "listen_tls = 0 listen_tcp = 1 tcp_port = \"16509\" auth_tcp = \"none\" mdns_adv = 0 " >> /etc/libvirt/libvirtd.confsed -i '/^#LIBVIRTD_ARGS="--listen"/c LIBVIRTD_ARGS="--listen"' /etc/sysconfig/libvirtd#重新啟動libvirtdsystemctl enable libvirtd && systemctl start libvirtd systemctl enable cloudstack-management && systemctl start cloudstack-management #查看是否啟用kvm模塊 lsmod | grep kvm #查看是否啟用kvm模塊 ########################################## ########################################## #endecho ' 安裝完畢! 登錄Web管理 http://'$MyIP':8080/client'#執行腳本 ~]# . install_cloudstack.sh- 后添加了一個小硬盤作為輔助存儲,存儲鏡像文件用,不添加也可以用
登錄,最下面空白行可以選擇成中文
第一次進行基礎配置
?
設置區域和dns
-
由于沒有自己的dns服務器,所以使用公網dns
?創建機架
?添加pod
?設置網絡
添加一個集群
- 群集提供了一種分組主機的方法。群集中的主機都具有相同的硬件,運行相同的虛擬機管理程序,位于同一子網上,并訪問相同的共享存儲。虛擬機實例(VM)可以在同一群集內從一個主機實時遷移到另一個主機,而不會中斷對用戶的服務。
- 集群是CloudStack?部署中的第三大組織單位。群集包含在群集中,并且群落包含在區域內。
CloudStack?允許云部署中的多個群集,但對于基本安裝,我們只需要一個群集。
?
image.png
添加一個主機
- 主機是一臺計算機。主機提供運行來賓虛擬機的計算資源。每個主機都安裝了虛擬機管理程序軟件來管理來賓虛擬機(裸機主機除外,這是“高級安裝指南”中討論的特殊情況)。例如,支持Linux KVM的服務器,Citrix XenServer服務器和ESXi服務器是主機。在基本安裝中,我們使用運行XenServer或KVM的單個主機。
-
主機是CloudStack?部署中最小的組織單位。主機包含在群集中,群集包含在pod中,pod包含在區域中。
?image.png
添加主存儲
- CloudStack?云基礎架構使用兩種類型的存儲:主存儲和二級存儲。這兩者都可以是iSCSI或NFS服務器,也可以是localdisk。
-
主存儲與群集關聯,并且它為在該群集中的主機上運行的所有VM存儲每個來賓VM的磁盤卷。主存儲服務器通常位于主機附近。
?image.png
添加二級存儲
輔助存儲與區域關聯,它存儲以下內容:
-
模板 - 可用于引導VM的操作系統映像,可包含其他配置信息,例如已安裝的應用程序
-
ISO映像 - 可以啟動或不可啟動的操作系統映像
?
磁盤卷快照 - 保存的VM數據副本,可用于數據恢復或創建新模板添加輔助存儲
-
最后點擊完成
ISO和模板文件的管理
- ISO和模板文件通過HTTP或HTTPS協議上傳到二級存儲中。CloudStack中的模板分為三種:系統模板,內置模板和用戶模板:
系統模板:創建系統虛擬機實例時使用
內置模板:CloudStack內置的一組模板,供用戶創建客戶虛擬機實例
用戶模板:由平臺管理員或用戶注冊的模板
注冊ISO和模板文件
- 準備一個HTTP服務器,把系統模板和ISO文件上傳到服務器上,供CloudStack后續下載
- 修改全局設置,將存放模板的服務器ip地址設置到secstorage.allowed.internal.sites中,讓CloudStack可以從該服務器下載模板
- 確認輔助存儲虛擬機工作狀態是否正常,因為上傳ISO或模板文件需要SSVM的支持
注冊ISO文件:在管理界面的模板菜單項中點擊注冊ISO,填入ISO的URL地址
注冊模板:類似注冊ISO文件 - 創建模板,編輯模板,下載模板,復制模板,刪除模板,重置密碼
安裝nginx,啟用web,為cloudstack提供iso下載服務
~]# vim /etc/nginx/nginx.conf ........ http {log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;autoindex on; # 顯示目錄autoindex_exact_size on; # 顯示文件大小autoindex_localtime on; # 顯示文件時間include /etc/nginx/mime.types;default_type application/octet-stream; ....... #移除nginx網頁根目錄/usr/share/nginx/內的文件~]# mkdir /tmp/nginxback~]# mv /usr/share/nginx/html/* /tmp/nginxback/ ~]# systemctl enable nginx && systemctl start nginx #下載centos鏡像到網頁根目錄~]# wget https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso -P /usr/share/nginx/html/centos下載完成的鏡像
?
全局設置可下載的ip地址
注冊自定義鏡像
?
創建實例
?
添加iso
?
image.png
?
image.png
?
給實例安裝系統
?
安裝完后,1關閉虛擬機,2移除ISO鏡像,然后在開啟虛擬機
根據新創建的虛擬機創建模板
打開虛擬機
進入虛擬機,設置通用項目
#關閉防火墻、關閉selinux ~]# sed -i '/^SELINUX=.*/c SELINUX=disable' /etc/selinux/config ~]# systemctl disable firewalld ~]# systemctl stop firewalld#配置虛擬機網卡 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes NAME=eth0 DEVICE=eth0 ONBOOT=yes ~]# systemctl reboot#安裝阿里云源、同步時間 ~]# yum install wget vim -y ~]# mkdir -p /etc/yum.repos.d/remark && mv /etc/yum.repos.d/* /etc/yum.repos.d/remark/ ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo ~]# sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo ~]# [[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp ntpdate -y &> /dev/null; } ~]# /usr/sbin/ntpdate ntp6.aliyun.com #刪除持久化設備 ~]# rm -f /etc/udev/rules.d/70* ~]# rm -f /var/lib/dhclient/*關閉實例
?
創建模板
?
定義模板名稱
?
創建完成
?
使用自定義模板創建實例虛擬機,下面輸入框是創建一個數據磁盤, 可以不輸入
資源域的基礎網絡
-
在資源域的基礎情況下,網絡虛擬機創建后,系統會自動分配一個ip地址。
?系統分配的ip地址
-
更改IP地址,需要關閉實例。
?給實例更改ip
?完成
安全組的使用
- 虛擬機創建后,使用ssh還無法連接,設置安全組規則。
-
注意:如果啟用項目,每個項目的安全組要單獨設定,項目內的安全組規則只對項目內虛擬機有效。
?設置安全組
?設置入口規則和出口規則
項目的創建使用
創建項目
?
添加一個賬戶
?
可以根據實際資源狀況,調整分配這個項目資源
?
登錄后默認的是默認視圖,可以選擇項目,進入項目視圖
- 項目內部創建的實例,默認視圖中看不到。
-
項目內部創建的存儲、網絡、安全組只對項目內虛擬機有效。
?默認視圖下實例,遷移給其他項目賬戶
?分給test項目
?到test項目查看
總結
以上是生活随笔為你收集整理的CloudStack快速安装使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用代理服务器上网
- 下一篇: android日期与时间滑动选择器