1. 程式人生 > >Cloudstack平臺實戰

Cloudstack平臺實戰

1. 理論基礎

1.1 雲端計算的出現

基本上,雲端計算只是一種把 IT 資源當作服務來提供的手段。幾乎所有 IT 資源都可以作為雲服務來提供:應用程式、計算能力、儲存容量、聯網、程式設計工具,以至於通訊服務和協作工具。
雲端計算最早為 Google、Amazon 等其他擴建基礎設施的大型網際網路服務提供商所採用。於是產生一種架構:大規模擴充套件、水平分佈的系統資源,抽象為虛擬 IT 服務,並作為持續配置、合用的資源進行管理。
就終端使用者而言,雲端計算意味著沒有硬體購置成本、沒有需要管理的軟體許可證或升級、不需要僱傭新的員工或諮詢人員、不需要租賃設施、沒有任何種類的基建投資,而且還沒有隱性成本。只是一種用儀表測量出來的、根據使用情況支付的訂購費或固定的訂購費。只是用您所需的量,而且只按使用量付費。

雲端計算體系結構圖如下:
這裡寫圖片描述

1.2 把基礎設施當做服務(IaaS)

把基礎設施當作服務 (IaaS) 處於最低層級,而且是一種作為標準化服務在網上提供基本儲存和計算能力的手段。伺服器、儲存系統、交換機、路由器和其他系統協作 (例如,通過虛擬化技術) 處理特定型別的工作負載 — 從批處理到峰值負載期間的伺服器/儲存擴大。

最著名的商業示例是 Amazon Web 服務 (AWS),其 EC2 和 S3 服務分別提供基本計算和儲存服務。國內代表阿里雲、騰訊雲、百度雲、金山雲等。

1.3 IaaS平臺的虛擬化技術的好處

利用率更高 — 在虛擬化之前,企業資料中心的伺服器和儲存利用率一般平均不到 50% (事實上,通常利用率為 10% 到 15%)。通過虛擬化,可以把工作負載封裝一併轉移到空閒或使用不足的系統,這就意味著可以整合現有系統,因而可以延遲或避免購買更多伺服器容量。
資源整合 — 虛擬化使得整合多個 IT 資源成為可能。除伺服器和儲存整合之外,虛擬化提供一個整合系統架構、應用程式基礎設施、資料和資料庫、介面、網路、桌面系統甚至業務流程,因而可以節約成本和提高效率。
節省電能/成本 — 執行企業級資料中心所需的電能不再無限制地使用,而成本呈螺旋式上升趨勢。在伺服器硬體上每花一美元,就會在電費上增加一美元 (包括伺服器執行和散熱方面的成本)。利用虛擬化進行整合使得降低總能耗和節約大量資金成為可能。
節約空間 — 伺服器膨脹仍然是多數企業資料中心面臨的一個嚴重問題,可擴大資料中心並不總是一個良好的選擇,因為每增大一平方米空間,就會平均增加很多成本。虛擬化通過把多個虛擬系統整合到較少物理系統上,可以緩解空間壓力。
災難恢復 (Disaster recovery) /業務連續 (Business Continuity) — 虛擬化可提高總體服務級利用率,並提供災難恢復解決方案新選項。

1.4 Cloudstack 介紹

CloudStack是一個開源的具有高可用性及擴充套件性的雲端計算平臺CloudStack 是一個開源的雲作業系統,它可以幫助使用者利用自己的硬體提供類似於Amazon EC2那樣的公共雲服務。CloudStack可以通過組織和協呼叫戶的虛擬化資源,構建一個和諧的環境。
Cloudstack支援管理大部分主流的hypervisors,如KVM,XenServer,VMware,Oracle VM,Xen等。
這裡寫圖片描述
Cloudstack 部署圖如下:
這裡寫圖片描述
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 映象和磁碟卷快照。

2. 部署安裝

2.1 cloudstack 安裝前的準備

 電腦一臺,記憶體>=4G
 安裝VirtualBox 或VMWARE Workstation虛擬機器軟體。
 安裝好2臺CentOS-6-x86_64(6.6 以上)的虛擬機器。
 基本系統:1VCPU+1024M記憶體+20硬碟+50G硬碟(兩塊盤), 2VCPU+2048M記憶體+20硬碟+50G硬碟(兩塊盤),
 網路選擇:網路地址轉換(NAT)。
 軟體包選擇:Basic Server。
 關閉iptables和SELinux。

2.2 系統配置安裝

2.2.1 網路配置

預設情況下新安裝的機器並未啟用網路,您需要根據實際環境進行配置。由於網路中不存在DHCP伺服器,您需要手工配置網路介面。為了實現快速簡化安裝的目標,這裡假定主機上只有eth0一個網路介面。
使用root使用者登入本地控制檯。檢查檔案 /etc/sysconfig/network-scripts/ifcfg-eth0,預設情況,其內容如下所示:

DEVICE="eth0"
HWADDR="52:54:00:B9:A6:C0"
NM_CONTROLLED="yes"
ONBOOT="no"

但是根據以上配置您無法連線到網路,對於Cloudstack也同樣不適合;您需修改配置檔案,指定IP地址,網路掩碼等資訊

DEVICE=eth0
HWADDR=52:54:00:B9:A6:C0
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.16.10.2
NETMASK=255.255.255.0
GATEWAY=172.16.10.1
DNS1=8.8.8.8
DNS2=8.8.4.4

2.2.2 修改主機名

需要修改兩處:一處是/etc/sysconfig/network,另一處是/etc/hosts,只修改任一處會導致系統啟動異常。
/etc/sysconfig/network
用vi編輯器,裡面有一行 HOSTNAME=localhost.localdomain (如果是預設的話),修改 localhost.localdomain 為你的主機名。
/etc/hosts
開啟該檔案,會有一行127.0.0.1 localhost.localdomain localhost 。其中 127.0.0.1 是本地環路地址, localhost.localdomain 是主機名(hostname),也就是你待修改的。localhost 是主機名的別名(alias)。將第二項修改為你的主機名,第三項可選。
將上面兩個檔案修改完後,並不能立刻生效。如果要立刻生效的話,可以用 hostname your-hostname 作臨時修改,它只是臨時地修改主機名,系統重啟後會恢復原樣的。但修改上面兩個檔案是永久的,重啟系統會得到新的主機名。
最後,重啟後檢視主機名 hostname –fqdn
通過hostname –fqdn命令重新檢查主機名,並確認返回了正確的FQDN

2.2.3 新增hosts檔案實現叢集主機之間相互能夠解析

修改每臺機器的 /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.101 master1

2.2.4 關閉selinux

關閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux 或者
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
也可以用vi 直接編輯修改

2.2.5 安裝epel 源

 cloudstack  yum源有部分包依賴 epel 源
 yum -y install epel-release 

2.2.6 安裝 cloudstack 源

新增CloudStack軟體倉庫,建立/etc/yum.repos.d/cloudstack.repo檔案,並新增如下資訊。

[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/centos/6/4.8/
enabled=1
gpgcheck=0

或者把安裝包下載到本地
這裡寫圖片描述

2.2.7 安裝NTP

為了同步雲平臺中主機的時間,需要配置NTP,但NTP預設沒有安裝。因此需要先安裝NTP,然後進行配置。通過以下命令進行安裝:

 yum -y install ntp

實際上預設配置項即可滿足的需求,僅需啟用NTP並設定為開機啟動,如下所示:

chkconfig ntpd on
service ntpd start

2.2.8 NFS

本文件將配置的環境使用NFS做為主儲存和輔助儲存,需配置兩個NFS共享目錄,在此之前需先安裝nfs-utils:

yum -y install nfs-utils

接下來需配置NFS提供兩個不同的掛載點。通過編輯/etc/exports檔案即可簡單實現。確保這個檔案中包含下面內容:

/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)
#兩臺主機分別掛載

注意配置檔案中指定了系統中兩個並不存在的目錄,下面需要建立這些目錄並設定合適的許可權,對應的命令如下所示:

mkdir -p /export/primary
mkdir /export/secondary
格式化 /dev/sdb 
Master 節點 掛載給 /export/secondary
Agent  節點 掛載給  /export/primary
在 /etc/fstab  檔案中加入
Master 節點
/dev/sdb  /export/secondary  xfs defaults 0 0
Agent  節點
/dev/sdb  /export/primary  xfs defaults 0 0

方法二:
執行 命令

Master 節點
echo "/dev/sdb  /export/secondary  ext4 defaults 0 0"  >> /etc/fstab
Agent  節點
echo "/dev/sdb  /export/primary  ext4 defaults 0 0"  >> /etc/fstab
mount -a

CentOS 6.x 版本預設使用NFSv4設定為以下內容:
在/etc/sysconfig/nfs檔案中取消如下選項的註釋:

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

接下來還需配置防火牆策略,允許NFS客戶端訪問。編輯檔案/etc/sysconfig/iptables(可以直接關閉防火牆)

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

通過以下命令重新啟動iptables服務:

service iptables restart

最後需要配置NFS服務為開機自啟動,執行如下命令:

service rpcbind start
service nfs start
chkconfig rpcbind on
chkconfig nfs on

2.3 管理伺服器安裝

接下來進行CloudStack管理節點和相關工具的安裝。

2.3.1 安裝管理端

現在將要開始安裝管理伺服器。執行以下命令:

yum -y install cloudstack-management cloudstack-common

2.3.2 資料庫安裝和配置

首先安裝MySQL,並對它進行配置,以確保CloudStack執行正常。
執行如下命令安裝:

yum -y install mysql-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後,啟動它並配置為開機自啟動:

service mysqld start
chkconfig mysqld on

設定mysql 密碼及範圍許可權

mysqladmin -uroot password 123456
mysql -uroot  -p123456 -e "GRANT ALL PRIVILEGES ON *.* TO [email protected]'%' IDENTIFIED BY '123456'";

2.3.3 系統初始化

在程式執行完畢後,需初始化資料庫,通過如下命令和選項完成:

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

當該過程結束後,您應該可以看到類似資訊:”CloudStack has successfully initialized the database.”。
資料庫建立後,最後一步是配置管理伺服器,執行如下命令:

cloudstack-setup-management

2.3.4 上傳系統模板

CloudStack通過一系列系統虛擬機器提供功能,如訪問虛擬機器控制檯,如提供各類網路服務,以及管理輔助儲存的中的各類資源。該步驟會獲取系統虛擬機器模板,用於雲平臺引導後系統虛擬機器的部署。
然後需要下載系統虛擬機器模板,並把這些模板部署於剛才建立的輔助儲存中;管理伺服器包含一個指令碼可以正確的操作這些系統虛擬機器模板:

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary/ -f /opt/systemvm64template-2016-05-18-4.7.1-kvm.qcow2.bz2 -h kvm -F
#注意將模板檔案改成自己的檔名稱

2.3.5 訪問使用者介面

要訪問CloudStack的WEB介面,僅需在瀏覽器訪問 http://XXX.XXX.XXX:8080/client ,使用預設使用者’admin’和密碼’password’來登入。第一次登入可以看到歡迎介面。
這裡寫圖片描述

2.4 安裝agent節點及配置

2.4.1 先決條件

本文件描述的環境使用管理伺服器同時作為計算節點,這意味著很多先決步驟已經在搭建管理伺服器時完成;但為了清晰起見,仍然列出相關步驟:

  1. 網路配置
  2. 主機名
  3. SELinux
  4. NTP 配置
  5. ClouStack軟體庫

你不需要在管理節點上執行這些操作,當然,如果您需要新增額外的主機以上步驟仍然需要執行。

2.4.2 Agent 安裝

安裝KVM代理僅僅需要一條簡單的命令,但之後我們需要進行一些配置。

yum -y install cloudstack-agent cloudstack-common

2.4.3 虛擬化配置

配置KVM
KVM中我們有兩部分需要進行配置, libvirt和QEMU.
配置QEMU
KVM的配置項相對簡單,僅需配置一項。編輯QEMU VNC配置檔案/etc/libvirt/qemu.conf並取消如下行的註釋。同時註釋 security_driver=”none”

vnc_listen=0.0.0.0
# security_driver="none"

配置Libvirt
CloudStack使用libvirt管理虛擬機器。因此正確的配置libvirt至關重要。Libvirt屬於cloudstack-agent的依賴元件,應提前安裝好。
為了實現動態遷移,libvirt需要監聽使用非加密的TCP連線。還需要關閉libvirts嘗試使用組播DNS進行廣播。這些都是在 /etc/libvirt/libvirtd.conf檔案中進行配置。
設定下列引數:

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

僅僅在libvirtd.conf中啟用”listen_tcp”還不夠,我們還必須修改/etc/sysconfig/libvirtd中的引數:
更改

LIBVIRTD_ARGS="-1"

重啟libvirt服務

service libvirtd restart

KVM配置完成
For the sake of completeness you should check if KVM is running OK on your machine:

lsmod | grep kvm
kvm_intel              55496  0
kvm                   337772  1 kvm_intel

3 系統配置

3.1 登陸到使用者介面

CloudStack提供一個基於web的UI,管理員和終端使用者能夠使用這個介面。使用者介面版本依賴於登陸時使用的憑證不同而不同。使用者介面是適用於大多數流行的瀏覽器包括IE7,IE8,IE9,Firefox Chrome等。URL是:(用你自己的管理控制伺服器IP地址代替)

http://<management-server-ip-address>:8080/client

如果管理伺服器是全新的安裝,。那麼會出現一個安裝嚮導。在稍後的訪問中,,你將看到一個登入介面,,你需要通過使用者名稱和密碼登入來檢視你的儀表盤.

使用者名稱 -> 你賬號的使用者ID。預設使用者名稱是admin。
密碼 -> 使用者ID對應的密碼。預設使用者名稱的密碼是password。
域 -> 如果你是root使用者,此處留空即可。

CloudStack使用者介面幫助雲基礎設施的使用者檢視和使用他們的雲資源,包括虛擬機器、模板和ISO、資料卷和快照、賓客網路,以及IP 地址。如果使用者是一個或多個CloudStack專案的成員或管理員,使用者介面能提供一個面向專案的檢視。

3.2 根管理員介面的概述

在管理伺服器軟體安裝並且執行後, 你就可以執行CloudStack的使用者介面.了。在這裡通過UI,可以供給、檢視並管理你的雲基礎架構。
開啟你自己喜歡的瀏覽器並訪問這個URL。請把IP地址替換成你自己的管理伺服器的IP。
http://:8080/client
初次登入管理伺服器時,會出現一個嚮導啟動畫面。後續訪問時,您會直接進入控制面板。
如果你看到第一次的嚮導螢幕, 可以選擇下面步驟之一進行。
繼續執行基本安裝。如果你僅僅是想體驗CloudStack,請選擇這個,並且這樣你可以馬上開始跟著嚮導進行簡單的配置。我們將幫助你建立一個有以下功能的雲:一個執行CloudStack軟體的機器和使用NFS協議的儲存;一個執行VMs的XenServer或KVM hypervisor的伺服器;一個共享的公有網路。
安裝嚮導的提示會給你需要的所有資訊。但如果你需要更多的詳細資訊,你可以按照試用安裝嚮導進行。
我之前用過CloudStack。 如果您已經完成設計階段,計劃部署一個複雜CloudStack雲,或是準備對用基礎安裝嚮導搭建的試驗雲進行擴充套件,請選擇此項。在管理員UI中,您可以使用CloudStack中更強大的功能,例如高階VLAN網路、高可用、負載均衡器和防火牆等額外網路裝置,以及支援Citrix XenServer、KVM、VMware vSphere等多種虛擬化平臺。
根管理員的儀表盤顯示出來。
在雲的安裝及後續管理過程中,您需要用根管理員登入UI。根管理員賬號管理著CloudStack的部署以及物理設施。根管理員可以修改系統配置,改變基本功能,建立和刪除使用者賬號,以及其他僅限於已授權人員執行的操作。在初始安CloudStack時,請務必修改預設密碼為新的較獨特的密碼。
開啟你自己喜歡的瀏覽器並訪問這個URL。請把IP地址替換成你自己的管理伺服器的IP。

http://<management-server-ip-address>:8080/client
使用當前root使用者的ID和口令登入UI。預設為admin,pawword。
點選帳戶。
點選管理員帳號名。
點選檢視使用者。
點選管理員使用者名稱。
點選更改密碼按鈕。   
輸入新密碼,然後點選確認。

3.3 初始化配置

選擇“基礎架構 –> 新增區域”按照截圖進行配置。
這裡寫圖片描述
這裡寫圖片描述
名稱:default dns1:8.8.8.8 dns2:8.8.4.4 (這些內容包括下面的填寫僅為參考值。可根據實際情況進行修改)
這裡寫圖片描述
這裡寫圖片描述
提供名稱:default01 預留閘道器:192.168.1.1 預留掩碼:255.255.255.0
起始IP:192.168.1.170 結束IP:192.168.1.189

這裡寫圖片描述

來賓閘道器:192.168.1.1 掩碼:255.255.255.0 起始IP:192.168.1.201
結束IP:192.168.1.230

這裡寫圖片描述
這裡寫圖片描述
主機名稱:192.168.1.190 使用者名稱:root 密碼:*(這裡使用者名稱和密碼,填寫被新增主機的root使用者和密碼)
這裡寫圖片描述
名稱:primary(這些名稱包括上面的default ,都不是固定的,自己根據需要進行區分即可,)
協議:選擇nfs 伺服器:192.168.1.190
Path:/mnt/mycloud/primary(在第一部分裡建立的primary目錄)
這裡寫圖片描述
NFS伺服器:192.168.1.190 路徑:/mnt/mycloud/secondary(在第一部分裡建立的secondmary目錄)
這裡寫圖片描述
這裡寫圖片描述
單擊“是”啟動區域!
檢視系統VM。大約5-10分鐘啟動成功,如果啟動失敗,檢視日誌檔案進行改進!
如果配置錯誤在可以在這裡啟動區域
這裡寫圖片描述
這裡寫圖片描述
如果以上步驟均沒有問題,則會顯示如上圖所示的介面,除了虛擬路由器數目仍舊為0,系統VM數目為2之外,其他所有元件的數目均為1。
系統VM是否啟動成功可以檢視其狀態是否為Running:

這裡寫圖片描述
系統VM是不同於主機上建立的普通虛擬機器的,他們是CloudStack雲平臺自帶的用於完成自身的一些任務的虛擬機器。
Secondary Storage VM:簡稱為SSVM,用於管理二級儲存的相關操作,如模板跟映象檔案的上傳與下載,快照,volumes的存放,第一次建立虛擬機器時從二級儲存拷貝模板到一級儲存並且自動建立快照,每一個資源域可以有多個SSVM,當SSVM被刪除或停止,它會自動被重建並啟動。
Console Proxy VM:用於在web 介面上展示控制檯。
虛擬路由器將會在第一個例項啟動後自動建立。
這裡寫圖片描述

3.4 啟動虛擬機器例項

3.4.1 搭建一個http 伺服器

搭建http 服務主要用來管理ISO系統和映象模板
在master 節點安裝 nginx

yum  -y install nginx

防火牆中加入允許80 埠訪問

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

編輯 /etc/nginx/nginx.conf 配置檔案,能夠使訪問目錄

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

到 /usr/share/nginx/html 目錄 刪除所有檔案 ,啟動nginx

/etc/init.d/nginx restart

上傳ISO 到 /usr/share/nginx/html
看到如下介面
這裡寫圖片描述
修改全域性設定 secstorage.allowed 設定 ,二級儲存ISO映象和模板可以下載,IP網段
這裡寫圖片描述

3.4.2 製作模板

一種是通過KVM 製作的qcow2或raw檔案
另外就是直接上傳ISO檔案作為模版檔案

先在Cloudstack的模板註冊中,新增ISO映象檔案,然後啟動例項,選擇從ISO啟動,然後安裝系統。
這裡寫圖片描述
URL 輸入下載ISO的地址
這裡寫圖片描述
完成後,已就緒狀態是 “YES”
這裡寫圖片描述
用ISO 安裝虛擬機器例項
這裡寫圖片描述
選擇ISO
這裡寫圖片描述
這裡寫圖片描述
選擇磁碟方案
這裡寫圖片描述
完成後選擇 啟動例項
這裡寫圖片描述
安裝centos 後 ,發現沒有IP, 網絡卡處選擇自動啟動
對於CentOS,必須要修改網路介面的配置檔案,在這裡我們編輯/etc/sysconfig/network-scripts/ifcfg-eth0檔案,更改下面的內容。

DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=dhcp
ONBOOT=yes

移除udev持久裝置規則

rm -f /etc/udev/rules.d/70*
rm -f /var/lib/dhclient/*

移除SSH Keys
這步是為了確認所有要作為模板的VMs的SSH Keys都不相同,否則這樣會降低虛擬機器的安全性。

rm -f /etc/ssh/*key*

清除日誌檔案
從主模板移除舊的日誌檔案是一個好習慣。

cat /dev/null > /var/log/audit/audit.log 2>/dev/null
cat /dev/null > /var/log/wtmp 2>/dev/null
logrotate -f /etc/logrotate.conf 2>/dev/null
rm -f /var/log/*-* /var/log/*.gz 2>/dev/null

清除使用者歷史
下一步來清除你曾經執行過的bash命令。

history -c
unset HISTFILE

關閉VM
現在你可以關閉你的主模板並且建立模板了!
halt -p
建立模板!
這裡寫圖片描述
成功後從模板列表中,可以看出
這裡寫圖片描述
接下來可以用模板建立VM

3.5 服務方案

除了雲中的物理和邏輯基礎設施以及 CloudStack 軟體和伺服器,你還需要一個使用者服務層以便讓人們能夠真正利用雲。這不僅僅意味這一個使用者介面,而是一組使用者可選擇的選項和資源,如通過模版建立虛擬機器,磁碟儲存等等。
計算和磁碟服務方案
一個服務方案是一個虛擬硬體特徵集合,比如 CPU 核心數量和速度,記憶體,已經磁碟大小。 CloudStack 管理員可以建立各種方案,接著終端使用者在建立一個新虛擬機器時就可以選擇可用方案。基於使用者的選擇方案, CloudStack 可以傳送整合在計費系統中的使用記錄。
CloudStack 管理員必須定義一些服務方案的特徵,同時留下一些未定義的,讓終端使用者輸入自己需要的值。這個對於降低 CloudStack 管理員定義的方案的數量很有用處。代替為每個使用者定義一個他們想要可能組合值的計算方案,管理員可以為使用者定義靈活的計算方案,並作為基本的若干不同虛擬機器配置。
磁碟方案特指:
磁碟大小 (可選)。如果 CloudStack 管理員未定義,使用者可選擇磁碟大小。
資料磁碟標籤
自定義計算方案
為了建立一個新的計算方案
以管理員許可權登入CloudStack使用者介面。

在左側導航欄中,點選 服務方案。
選擇方案中,選擇計算方案
點選 新增計算方案
在對話方塊中,選擇如下操作:
** 名稱 **: 服務方案所需的名稱。
** 描述 ** :顯示給使用者的簡短方案描述。
** 儲存型別 *:磁碟型別應該被分配。系統VM 執行時所在主機掛載的儲存作為本地分配。通過 NFS 可訪問的儲存作為 共享分配。
** 自定義 ** :自定義計算方案使用在以下場景:部署虛擬機器,改變停止狀態和執行中虛擬機器的計算方案,僅僅為了擴大規模。

* HA 方案 * : 如果必要,管理員可以選擇監控系統 VM 和儘可能採用高可用。
建立一個新的磁碟方案

為了建立一個新的磁碟方案
以管理員許可權登入CloudStack使用者介面。
在左側導航欄中,點選 服務方案。
在選擇方案中,選擇 磁碟方案
點選 新增磁碟方案

4 在企業中搭建自己的私有云

4.1 機器建議配置

CPU:  210 核(Intel Xeon E5-2650 v3 或 Intel Xeon E5-2650 v3)
記憶體:256G (16G*16,單條記憶體無要求,按照最高性價比採購)
網絡卡:10G*2(模組與目前機房的萬兆交換機匹配)
磁碟:6002塊SAS盤(系統盤,,大小無特殊規定,按公司標準採購)
      6×4T SATA盤

4.2 部署架構

部署架構應該從硬體、網路、儲存綜合考慮,保障私有云整體的穩定性和安全性,主控制節點需要2臺機器保障控制節點高可用,計算節點由多臺機器(最少2臺)組成一個或多個叢集,保障業務的連續性、穩定性、安全性。

4.3 控制節點架構

主控節點有兩臺機器作為主備,安裝cloudstack管理端、MYSQL和分散式檔案系統作為二級儲存,都是一主一備。

CloudStack管理伺服器可以部署一個或多個前端伺服器並連線單一的MySQL資料庫。可視需求使用一對硬體負載均衡對Web請求進行分流。另一備份管理節點可使用遠端站點的MySQL複製資料以增加災難恢復能力
這裡寫圖片描述

4.4 計算節點儲存架構

這裡寫圖片描述
這裡寫圖片描述

4.5 私有云整體架構

管理伺服器叢集(包括前端負載均衡節點,管理節點及MYSQL資料庫節點)通過兩個負載均衡節點接入管理網路。
輔助儲存伺服器接入管理網路。
每一個機櫃提供點(POD)包括儲存和計算節點伺服器。每一個儲存和計算節點伺服器都需要有冗餘網絡卡連線到不同交換機上
這裡寫圖片描述

4.6 高階網路

每個區域都有基本或高階網路。一個區域的整個生命週期中,不論是基本或高階網路。一旦在CloudStack中選擇並配置區域的網路型別,就無法再修改。
下表比較了兩種網路型別的功能
這裡寫圖片描述
這裡寫圖片描述
在一個雲中可能會存在二種網路型別。但無論如何,一個給定的區域必須使用基本網路或高階網路。
單一的物理網路可以被分割不同型別的網路流量。賬戶也可以分割來賓流量。你可以通過劃分VLAN來隔離流量。如果你在物理網路中劃分了VLAN,確保VLAN標籤的數值在獨立範圍。

在cloudstack 中使用 openvswitch
Open vSwitch(下面簡稱為 OVS)是由 Nicira Networks 主導的,執行在虛擬化平臺(例如 KVM,Xen)上的虛擬交換機。在虛擬化平臺上,OVS 可以為動態變化的端點提供 2 層交換功能,很好的控制虛擬網路中的訪問策略、網路隔離、流量監控等等。
安裝openvswitch 安裝包

kmod-openvswitch-1.9.3-1.el6.x86_64.rpm
openvswitch-1.9.3-1.x86_64.rpm

新增如下配置資訊到/etc/cloudstack/agent/agent.properties,以便CloudStack可以識別KVM上的Open vSwitch。

network.bridge.type=openvswitch
libvirt.vif.driver=com.cloud.hypervisor.kvm.resource.OvsVifDriver

驗證Open vSwitch是否正確安裝

lsmod |grep openvswitch
openvswitch            78045  0
ovs-vsctl 

對比網絡卡配置的變化
用橋接的方式 bridge cloudbr0

DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
USERCTL=no
IPV6INIT=no
HWADDR=00:0c:29:c2:10:fd
IPADDR=192.168.59.129
NETMASK=255.255.255.0
GATEWAY=192.168.59.2

用OVS的方式 bridge cloudbr0

DEVICE=cloudbr0
IPV6INIT=no
ONBOOT=yes
TYPE=OVSBridge
BOOTPROTO=none
USERCTL=no
NM_CONTROLLED=no
STP=no
DEVICETYPE=ovs
IPADDR=192.168.59.129
NETMASK=255.255.255.0
GATEWAY=192.168.59.2

用bridge 的eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
USERCTL=no
IPV6INIT=no
HWADDR=00:0c:29:c2:10:fd
IPADDR=192.168.59.129
NETMASK=255.255.255.0
GATEWAY=192.168.59.2
BRIDGE=cloudbr0

用OVS 的 eth0

DEVICE="eth0"
IPV6INIT=no
ONBOOT=yes
TYPE=OVSPort
BOOTPROTO=none
NETMASK=255.255.255.0
GATEWAY=192.168.59.2
USERCTL=no
NM_CONTROLLED=no
DEVICETYPE=ovs