溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么用CloudStack配置和管理云環(huán)境

發(fā)布時(shí)間:2021-11-20 11:29:20 來(lái)源:億速云 閱讀:254 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要為大家展示了“怎么用CloudStack配置和管理云環(huán)境”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么用CloudStack配置和管理云環(huán)境”這篇文章吧。

CloudStack 前身為 cloud.com 的商業(yè)化產(chǎn)品,它在 2011 年被 Ctrix 以超過(guò)二億美金價(jià)格收購(gòu),隨后又在今年被捐獻(xiàn)給 Apache 基金會(huì)。這項(xiàng)產(chǎn)品開(kāi)源的舉措,引起了市場(chǎng)對(duì) IaaS 發(fā)展路線(xiàn)的一些爭(zhēng)議,例如它與另外一個(gè)開(kāi)源產(chǎn)品 OpenStack 的競(jìng)爭(zhēng)與合作關(guān)系?

OpenStack 是由 Rackspace 和 NASA 主導(dǎo)開(kāi)發(fā)的一個(gè) IaaS,它擁有更大的用戶(hù)群,包括 HP,IBM,Dell 和 Redhat 等大公司。表 1 列出了 CloudStack 與 OpenStack 的一些對(duì)比。

表 1.CloudStack 與 OpenStack 的對(duì)比

怎么用CloudStack配置和管理云環(huán)境

附:比較數(shù)據(jù)截止至2012年中,對(duì)應(yīng)的軟件版本為CloudStack 3和OpenStack Essex。

可以認(rèn)為,在市場(chǎng)上 CloudStack 和 OpenStack 這兩個(gè) IaaS 平臺(tái)存在不同的功能、客戶(hù)和發(fā)展路線(xiàn),前者作為曾經(jīng)的商業(yè)軟件,已經(jīng)被證明為可以可靠的用于生產(chǎn)系統(tǒng);而后者,雖則目前缺少?gòu)V泛的真實(shí)用戶(hù),卻擁有更多的大公司支持。這是它們顯著的不同。

盡管如此,但從技術(shù)而言,它們背后的源代碼貢獻(xiàn)者并不是一定不同的,經(jīng)常有來(lái)自同一家公司的開(kāi)發(fā)人員為這兩個(gè)開(kāi)源項(xiàng)目提交代碼。從這個(gè)角度說(shuō),兩個(gè)平臺(tái)在某一天的合并也不會(huì)令人驚奇。

還存在其它眾多的 IaaS 產(chǎn)品(例如 Eucalyptus,Nebula 等),可以在文末的 參考資源中找到一些介紹。總體而言,這些產(chǎn)品當(dāng)中 CloudStack 和 OpenStack 是特性最為相近、也是最引起爭(zhēng)論的,參考資源中的一篇文章提及到了最近發(fā)生的一個(gè)有趣爭(zhēng)論。

CloudStack 架構(gòu)圖

CloudStack 采用了典型的分層結(jié)構(gòu):客戶(hù)端、核心引擎、以及資源層。它面向各類(lèi)型的客戶(hù)提供了不同的訪(fǎng)問(wèn)方式:Web Console、Command Shell 和 Web Service API。通過(guò)它們,用戶(hù)可以管理使用在其底層的計(jì)算資源(又分為主機(jī)、網(wǎng)絡(luò)和存儲(chǔ)),完成諸如在主機(jī)上分配虛擬機(jī),配給虛擬磁盤(pán)等功能。見(jiàn)圖 1。

怎么用CloudStack配置和管理云環(huán)境

圖 1. 系統(tǒng)架構(gòu)圖

虛擬機(jī)如果使用 Xen 和 KVM,需要安裝 CloudStack Agent 來(lái)支持其與管理服務(wù)器的交互。而管理服務(wù)器和 Xen Server 交互則是靠 XAPI,和 vCenter、ESX 交互靠 HTTP。

當(dāng)部署 CloudStack 時(shí),需要了解它的層次結(jié)構(gòu)和存儲(chǔ)管理,見(jiàn)圖 2。

怎么用CloudStack配置和管理云環(huán)境

圖 2. 部署圖

Zone:Zone 對(duì)應(yīng)于現(xiàn)實(shí)中的一個(gè)數(shù)據(jù)中心,它是 CloudStack 中最大的一個(gè)單元。

Pod:Pod 對(duì)應(yīng)著一個(gè)機(jī)架。同一個(gè) pod 中的機(jī)器在同一個(gè)子網(wǎng)(網(wǎng)段)中。

Cluster:Cluster 是多個(gè)主機(jī)組成的一個(gè)集群。同一個(gè) cluster 中的主機(jī)有相同的硬件,相同的 Hypervisor,和共用同樣的存儲(chǔ)。同一個(gè) cluster 中的虛擬機(jī),可以實(shí)現(xiàn)無(wú)中斷服務(wù)地從一個(gè)主機(jī)遷移到另外一個(gè)上。

Host:Host 就是運(yùn)行虛擬機(jī)(VM)的主機(jī)。

即從包含關(guān)系上來(lái)說(shuō),一個(gè) zone 包含多個(gè) pod,一個(gè) pod 包含多個(gè) cluster,一個(gè) cluster 包含多個(gè) host。

CloudStack 中存在兩種存儲(chǔ):

Primary storage:一級(jí)存儲(chǔ)與 cluster 關(guān)聯(lián),它為該 cluster 中的主機(jī)的全部虛擬機(jī)提供磁盤(pán)卷。一個(gè) cluster 至少有一個(gè)一級(jí)存儲(chǔ),且在部署時(shí)位置要臨近主機(jī)以提供高性能。

Secondary storage:二級(jí)存儲(chǔ)與 zone 關(guān)聯(lián),它存儲(chǔ)模板文件,ISO 鏡像和磁盤(pán)卷快照。

模板:可以啟動(dòng)虛擬機(jī)的操作系統(tǒng)鏡像,也包括了諸如已安裝應(yīng)用的其余配置信息。

ISO 鏡像:包含操作系統(tǒng)數(shù)據(jù)或啟動(dòng)媒質(zhì)的磁盤(pán)鏡像。

磁盤(pán)卷快照:虛擬機(jī)數(shù)據(jù)的已儲(chǔ)存副本,能用于數(shù)據(jù)恢復(fù)或者創(chuàng)建新模板。

安裝 CloudStack

環(huán)境準(zhǔn)備

  • 一個(gè)完整的 CloudStack 環(huán)境包括兩部分:

  • 管理服務(wù)器(Management Server)

  • 虛擬機(jī)管理器 (Hypervisor)

附:通常對(duì) CloudStack 的 hypervisor 也有另外的稱(chēng)呼,例如主機(jī)(host),代理(agent)等。本文統(tǒng)一為 hypervisor。

在本文的安裝步驟中,所要配置的為一個(gè)簡(jiǎn)單網(wǎng)絡(luò),即所有被管理的虛擬機(jī)都位于一個(gè)網(wǎng)段。相應(yīng)的硬件如下:

怎么用CloudStack配置和管理云環(huán)境

表 2.軟硬件環(huán)境

本次安裝中 CloudStack 的版本為:Red Hat Enterprise Linux/CentOS 6.2

Hypervisor 為 KVM。

管理服務(wù)器需要更多的存儲(chǔ)空間是因?yàn)?NFS 也建在該機(jī)上。更多的詳細(xì)安裝需求可以參閱 CloudStack 官網(wǎng)的指南。這里需要著重列出的問(wèn)題為:

Q1:官網(wǎng)的安裝要求中哪些軟硬件因素容易導(dǎo)致 CloudStack 的安裝失敗?

Hypervisor 所在的主機(jī),要求 CPU 和主板支持硬件虛擬化(本人的機(jī)器是 DELL 臺(tái)式機(jī),需要在主板的 BIOS 中設(shè)置 Intel-VT 為 enable)。

操作系統(tǒng)必須是 64 位的,推薦 centos 6.2(當(dāng)前最新的 CloudStack 3 支持 6.2)。如果使用 5.5 或者 6.0 版本,一定要選擇匹配的 CloudStack 安裝包。Ubuntu 目前只有運(yùn)行在 10.04 平臺(tái)上的發(fā)行版,且該 release 不是最新的 CloudStack。此處強(qiáng)烈建議新用戶(hù)給 Managment Server 和 Hypervisor 所在的兩臺(tái)主機(jī)選擇一樣的操作系統(tǒng)(推薦 centos/redhat)和一樣版本的 CloudStack 軟件,同時(shí)注意 OS 一定是要被官方 release 宣稱(chēng)支持,這樣能避免走不少?gòu)澛贰@绱_實(shí)也存在有人能成功在 Ubuntu 12.04 或 centos 6.3(官方 2012 年 9 月尚未宣稱(chēng)支持)上部署 CloudStack,但付出精力較大。

Hypervisor 的主機(jī)不能有任何正在運(yùn)行的虛擬機(jī),否則在后續(xù)的 add host 操作中會(huì)遇到失敗。最佳的建議是 hypervisor 主機(jī)上的操作系統(tǒng)為全新安裝,且沒(méi)有部署任何其余虛擬機(jī)。

無(wú)論是管理服務(wù)器還是 hypervisor 所在主機(jī),都需要以 root 登錄進(jìn)行 CloudStack 安裝。

Management Server 和 Hypervisor 主機(jī)必須是有獨(dú)立靜態(tài) IP 的主機(jī)。否則后續(xù)安裝因?yàn)?IP 地址變化會(huì)導(dǎo)致 service 狀態(tài)異常。

CentOS 安裝后的默認(rèn)網(wǎng)絡(luò)配置為 DHCP,需修改為手工分配 IP,這步操作要在 cloud-server 和 cloud-agent 兩臺(tái)機(jī)器都進(jìn)行:

點(diǎn)擊桌面右上角的網(wǎng)絡(luò)圖標(biāo),編輯網(wǎng)絡(luò):

怎么用CloudStack配置和管理云環(huán)境

圖 3

Method 原來(lái)為“DHCP”,改成設(shè)置為“Manual”,然后輸入靜態(tài) IP 地址、掩碼、網(wǎng)關(guān)、DNS 服務(wù)器信息。

怎么用CloudStack配置和管理云環(huán)境

圖 4

安裝 Management Server

以 root 身份登錄 cloud-server.squirrel.org。

運(yùn)行“hostname – fqdn”,檢查其返回的格式必須是包括域名的全稱(chēng)(例如 cloud-server.squirrel.org)。Hostname 最好是在安裝 centos 時(shí)即設(shè)置好,否則需要在 /etc/hosts 和 /etc/sysconfig/network 兩處文件中同時(shí)修改才可以永久生效。

設(shè)置 SELinux。在 /etc/selinux/config 中修改“SELINUX=enforcing”為“SELINUX=permissive ”,并在 shell 中運(yùn)行“setenforce permissive ”令其立即生效。

進(jìn)入下載并解壓好的 CloudStack 安裝目錄 ( 我這里是 /home/squirrel/mybox/cloud/CloudStack-oss-3.0.2-1-rhel6.2),運(yùn)行命令“./install.sh”,選擇“M”安裝 Management Server 軟件。

運(yùn)行下面命令啟動(dòng) NFS 和 rpcbind 服務(wù),并設(shè)置為開(kāi)機(jī)運(yùn)行:

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

再次運(yùn)行命令“./install.sh”,選擇“D”安裝數(shù)據(jù)庫(kù) mysql。

編輯 /etc/my.cnf,在 [mysqld] 下面加入內(nèi)容:

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

重啟數(shù)據(jù)庫(kù)后,設(shè)置 root 用戶(hù)密碼。

# service mysqld restart # mysql -u root mysql> SET PASSWORDPASSWORD = PASSWORD('<password>'); mysql> exit

運(yùn)行 CloudStack 腳本讓其自動(dòng)配置數(shù)據(jù)庫(kù):

#cloud-setup-databases cloud:<dbpassword>@localhost \ --deploy-as=root:<password>

即表示以 root 用戶(hù)身份來(lái)生成數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)屬于新建的 cloud 用戶(hù)(密碼 dbpassword 可以留空)。

最后,下面的命令將完成對(duì)操作系統(tǒng) iptables、sudoers 的設(shè)置(CloudStack 本身有安全性方面的要求,不是無(wú)限暴露給網(wǎng)絡(luò),同時(shí)又需要一些管理權(quán)限來(lái)運(yùn)行自身服務(wù),因此要做這兩項(xiàng)的設(shè)置),并啟動(dòng)管理服務(wù)器:

#cloud-setup-management

使用“service cloud-management status”查看運(yùn)行狀態(tài)。

Q2:第 2 步中運(yùn)行“hostname &ndash; fqdn”命令時(shí),要保證機(jī)器是聯(lián)網(wǎng)狀態(tài),才能返回正確的主機(jī)名稱(chēng)。

Q3:如果后續(xù)打算把 hypervisor 也安裝在 management server 的同一臺(tái)主機(jī)上,需要在 /etc/sysconfig/network-scripts/ifcfg-<yourPhysicalDeviceName> 中配置出對(duì)應(yīng)的信息。

同時(shí),如果該 hypervisor 為 KVM,需要修改 /etc/sudoers ,加入如下行:

Defaults:cloud !requiretty

配置 NFS

前面講過(guò),CloudStack 需要兩類(lèi)存儲(chǔ)(primary storage 和 secondary storage)來(lái)支持它的 cluster 和 host,本節(jié)中由 NFS 來(lái)提供這兩個(gè)存儲(chǔ),因此前述步驟中要啟動(dòng) NFS 服務(wù)。同時(shí)為了方便起見(jiàn),NFS Server 也由 cloud-server.squirrel.org 充當(dāng)。

以 root 身份登錄 cloud-server.squirrel.org。

創(chuàng)建兩個(gè)目錄,分別作為一級(jí)和二級(jí)存儲(chǔ):

# mkdir -p /export/primary # mkdir -p /export/secondary

編輯文件 /etc/exports ,加入:

/export *(rw,async,no_root_squash)

然后導(dǎo)出 /export 目錄:

# exportfs -a

編輯 /etc/sysconfig/nfs 文件,取消如下行的注釋符號(hào)(或者在文件末尾直接添加下列行):

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

編輯防火墻設(shè)置文件 /etc/sysconfig/iptables,在 input 部分最上面加入如下的規(guī)則:

-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 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

重啟防火墻,并保存修改:

# service iptables restart # service iptables save

在管理服務(wù)器(cloud-server.squirrel.org)和 hypervisor 主機(jī)(cloud-agent.squirrel.org)上,修改文件 /etc/idmapd.conf,加入如下內(nèi)容:

Domain = squirrel.org

重啟管理服務(wù)器的主機(jī),然后測(cè)試并掛載 NFS。在 cloud-agent.squirrel.org 機(jī)器建立目錄 /primarymount,運(yùn)行如下命令并確認(rèn)其是否成功:

mount -t nfs 192.168.1.4:/export/primary /primarymount

Q4:在 KVM hypervisor 機(jī)器運(yùn)行 showmount 命令時(shí),如果采用的是 hostname,例如“showmount -e cloud-server.squirrel.org”,并且失敗,報(bào)錯(cuò)“clnt_create: RPC: Program not registered”,那么可以嘗試用 IP 代替:“showmount -e 192.168.1.4”?;蛘呔庉嫳緳C(jī)的 /etc/hosts,加入對(duì)方 server 的 IP- 主機(jī)名映射(但這樣失去了靈活性):

192.168.1.4 cloud-server.squirrel.org

Q5:第 5 步中新加入規(guī)則在防火墻配置文件中的次序?qū)?NFS share 成功很重要,一定要加入 INPUT 區(qū)的最開(kāi)始部分,即系統(tǒng)中原有的 input 項(xiàng)必須在新加入行的后面,否則可能在運(yùn)行 showmount -e 192.168.1.4 時(shí)會(huì)出現(xiàn)

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) 的錯(cuò)誤。

Q6:出現(xiàn)錯(cuò)誤 mount.nfs: access denied by server while mounting 192.168.1.4:/export/primary 的處理?

有時(shí)當(dāng)運(yùn)行“showmount -e cloud-server.squirrel.org”有“clnt_create: RPC: Port mapper failure - Unable to receive: errno 111 (Connection refused)”錯(cuò)誤提示,然后 mount nfs 失敗,會(huì)出現(xiàn)標(biāo)題上的錯(cuò)誤信息,這可能跟 NFS 的建立方式有關(guān),有時(shí)也跟防火墻有關(guān)。需要檢查 log:

tail -200 /var/log/messages refused mount request from 192.168.1.5 for /export/primary (/export): illegal port 1024

那么考慮嘗試如下方法:

vi /etc/exports

在原來(lái)的那一行上修改如下:

/export *(rw,async,insecure,no_root_squash)

然后:

exportfs -rv service nfs restart

在 cloud-agent.squirrel.org 上重新運(yùn)行命令:

mount -t nfs 192.168.1.4:/export/primary /primarymount

沒(méi)有提示,應(yīng)該成功了,可以確認(rèn):

mount |grep primary OK !

準(zhǔn)備系統(tǒng)虛擬機(jī)模板

系統(tǒng)虛擬機(jī)模板(System VM Template)保存在二級(jí)存儲(chǔ)上,是用于創(chuàng)建云平臺(tái)上的系統(tǒng)虛擬機(jī)的。

以 root 身份登錄 cloud-server.squirrel.org。

這里下載的是 KVM 模板,運(yùn)行如下命令安裝:

# /usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F

依賴(lài)于網(wǎng)絡(luò)速度,這個(gè)過(guò)程所需時(shí)間在幾分鐘到數(shù)小時(shí)(筆者的下載速度顯示在 2M~3M/s,三分鐘左右完成全部下載和安裝)。

Q7:這里有兩點(diǎn)需要注意:

  • 磁盤(pán)分區(qū)必須夠大。

  • 虛擬機(jī)模板的下載安裝這步不可省略,否則后面在控制臺(tái)添加二級(jí)存儲(chǔ)時(shí)會(huì)失敗。

系統(tǒng)虛擬機(jī)不同于普通的 hypervisor host 上的虛擬機(jī),它是 CloudStack 自帶的用于完成自身系統(tǒng)相關(guān)的一些任務(wù)的 vm。它有兩種:

  • 二級(jí)存儲(chǔ)虛擬機(jī)(Secondary Storage VM):下載上傳模板、下載鏡像,第一次創(chuàng)建虛擬機(jī)時(shí)從二級(jí)存儲(chǔ)拷貝模板到一級(jí)存儲(chǔ)并且自動(dòng)創(chuàng)建快照等。

  • 控制臺(tái)代理虛擬機(jī)(Console Proxy VM):用于在 web 界面上展示控制臺(tái)。

需要注意的是,系統(tǒng)虛機(jī)為 Debian 32 位操作系統(tǒng),CloudStack 管理員可以用 SSH 登錄。同時(shí),能在主機(jī)的 /var/lib/libvirt/images 查看到它們,如圖 5:

怎么用CloudStack配置和管理云環(huán)境

圖 5.查看已經(jīng)安裝的 VMs

安裝 KVM Hypervisor

以 root 身份登錄 hypervisor 主機(jī) cloud-agent.squirrel.org。

確保 hostname 是完整帶域名的,修改方法同管理服務(wù)器步驟 1。

運(yùn)行“yum erase qemu-kvm”刪除 OS 自帶的 qemu-kvm。

進(jìn)入下載并解壓好的 CloudStack 安裝目錄,運(yùn)行命令“./install.sh”,選擇“A”安裝 agent。

安裝完畢后,運(yùn)行下面命令啟動(dòng) nfs 和 rpcbind 服務(wù),并設(shè)置為開(kāi)機(jī)運(yùn)行:

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

Q8:如何處理因?yàn)闆](méi)有 enable VT 而導(dǎo)致 CloudStack Agent 啟動(dòng)不成功?

注意檢查 log:/var/log/cloud/agent/。如果是因?yàn)?BIOS 的 VT 沒(méi)有打開(kāi)而引起的啟動(dòng)失敗,則需要在打開(kāi) VT 支持后重新安裝 agent。運(yùn)行命令:

# service cloud-agent status

若顯示:

cloud-agent (pid  4188) is running...

則說(shuō)明已經(jīng)成功運(yùn)行了。

安裝 NTP,時(shí)間同步

運(yùn)行“yum install ntp”安裝 NTP 服務(wù)。

編輯配置文件 /etc/ntp.conf,加入如下服務(wù)器:

server 0.xenserver.pool.ntp.org server 1.xenserver.pool.ntp.org server 2.xenserver.pool.ntp.org server 3.xenserver.pool.ntp.org

重啟 NTP 并設(shè)置為開(kāi)機(jī)自動(dòng)運(yùn)行:

# service ntpd restart # chkconfig ntpd on

在 Management Console 中配置虛擬化資源

當(dāng)上面的管理服務(wù)器與 hypervisor 安裝好后,可以登錄進(jìn) CloudStack 的 UI console 進(jìn)行資源的配置與部署。

和幾個(gè)競(jìng)爭(zhēng)對(duì)手&mdash;&mdash;例如 Eucalyptus 從一開(kāi)始就對(duì) AWS 的兼容,OpenStack 對(duì)松耦合組件的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)&mdash;&mdash;相比,CloudStack 的特點(diǎn)之一就是有最友好的用戶(hù)界面,即控制管理臺(tái)。

首先打開(kāi)瀏覽器,登錄 URL:

http://192.168.1.4:8080/client 用戶(hù)名 / 密碼:admin/password

選擇“Continue with basic installation”,接著修改 CloudStack 管理員密碼。

怎么用CloudStack配置和管理云環(huán)境

圖 6.添加 zone

怎么用CloudStack配置和管理云環(huán)境

圖 7.添加 pod

怎么用CloudStack配置和管理云環(huán)境

圖 8.添加客戶(hù)機(jī)網(wǎng)絡(luò)

怎么用CloudStack配置和管理云環(huán)境

圖 9.添加 cluster

怎么用CloudStack配置和管理云環(huán)境

圖 10.添加 host

怎么用CloudStack配置和管理云環(huán)境

圖 11.添加一級(jí)存儲(chǔ)

怎么用CloudStack配置和管理云環(huán)境

圖 12.添加二級(jí)存儲(chǔ)

最后點(diǎn)擊“Launch”啟動(dòng) CloudStack 云平臺(tái),開(kāi)始初始化。

怎么用CloudStack配置和管理云環(huán)境

圖 13.初始化中

直到出現(xiàn)成功信息。這樣一個(gè)簡(jiǎn)單的云環(huán)境就搭建完畢,我們隨后可以在這個(gè)控制臺(tái)執(zhí)行計(jì)算資源的管理任務(wù)了。下面兩圖為控制臺(tái)顯示界面。

怎么用CloudStack配置和管理云環(huán)境

圖 14.Overview

怎么用CloudStack配置和管理云環(huán)境

圖 15.Infrastructure

Q9:有時(shí)因?yàn)楦鞣N原因,例如在控制臺(tái)錯(cuò)誤的配置了一些數(shù)據(jù),需要重新初始化時(shí),可以刪除 CloudStack 的數(shù)據(jù)庫(kù),步驟如下:

在命令行下:

mysql &ndash;u root <password> mysql> drop database cloud; drop database cloud_usage; #cloud-setup-databases cloud:<dbpassword>@localhost --deploy-as=root:<password> #cloud-setup-management

然后重復(fù)本節(jié)的操作。

附:CloudStack 的 Web Console 界面是可以定制化的。

使用 CloudStack API

如同 AWS API 一樣,CloudStack API 也是基于 Web Service,可以使用任何一種支持 HTTP 調(diào)用的語(yǔ)言(例如 Java,PHP)編寫(xiě)代碼。

調(diào)用代碼(caller)首先需要在管理服務(wù)器進(jìn)行認(rèn)證。目前 CloudStack 采用兩種認(rèn)證方式:

  • Session 認(rèn)證:通過(guò) login API,獲得一個(gè) JSESSIONID cookie 和一個(gè) SESSIONKEY token。

  • API Key 認(rèn)證。

本文代碼示例采用 API Key 進(jìn)行認(rèn)證。其過(guò)程如下:

管理員給調(diào)用者分配 API Key 和 Security Key(由 Admin 通過(guò) web console 或者用 registerUserKeys在程序中生成)。

調(diào)用者用 Security Key 以 HMAC SHA-1 哈希算法對(duì) API Key + Command String 生成簽名。

最后的 API Request=Base URL+API Path+Command String+Signature。

下面具體為 admin 用戶(hù)生成兩個(gè) key:

首先登陸管理臺(tái):http://192.168.1.4:8080/client。

點(diǎn)擊 accounts,選擇 admin,點(diǎn)擊 users tab,找到 admin。

可以看到 API Key 和 Security Key,如果兩個(gè)框沒(méi)有值,點(diǎn)擊工具欄的鑰匙小圖標(biāo),“Generate Keys”,如圖 16。

怎么用CloudStack配置和管理云環(huán)境

圖 16. 生成 API Key 和 Security Key

兩個(gè) Key 的生成結(jié)果如下:

怎么用CloudStack配置和管理云環(huán)境

表 3.Admin 用戶(hù)的 API Key 和 Security Key

接下來(lái)用 CloudStack 的 Restful API 生成一個(gè)虛擬機(jī)。其調(diào)用 URL 如下:

http://192.168.1.4:8080/client/api?command=deployVirtualMachine&\ serviceofferingid=1&templateid=4&zoneid=1

command 參數(shù)中的內(nèi)容可以參閱 API Reference: CloudStack,此處不贅述。需要注意的是,URL 當(dāng)中每個(gè)參數(shù)是按照字母順序排列的,這是生成簽名必要的。

下面演示如何生成簽名并組裝一個(gè)完整的 URL。

首先在此處下載一段 perl 腳本,我們要利用它來(lái)幫助生成簽名。將它放入合適的目錄,然后在命令行下鍵入:

$ ./generate-url.pl &ndash;f 1 -u "command=deployvirtualmachine&serviceofferingid=1&templateid=4\ &zoneid=1" -a TEBBqfXkV-9blsxpkjFLAxNUmnvMsFEq7WKwPOMT_nuce69bmcElXz1\ izsN1qJFK58ye5U5hWWN2ckscsysodg &ndash; s 7VJx0QfxvJQZBYZbLdct2QFck8lV6hwLMvo9\ YCJ97pVou8f_aDSHdhEqBaY2CtFI6_MULP0eYqr_Z7D2Jon8nQ

-f 后面數(shù)字 1 是生成 url 的意思,-a 后面是 API Key,-s 后面是 Security Key。-u 后面的 command 參數(shù)都已經(jīng)修改為小寫(xiě)字母(此步不可省略)。命令運(yùn)行完畢生成一段字符串:

http://*.*.*.*/client/api?command=deployvirtualmachine&serviceofferingid=1\&zoneid=1&templateid=4&apikey=Kn7rrPjdXDWTrcjCTLs7hZM22o0X6aKSZ4Cy4\ GDUHD1TmoVw3e-oNxjRTCBXchffju5OFTqW4zPIik-HKxH7-w&signature=%2BQMXTBOoicZJG\ 6EosCcRGvO7OWU%3D

然后把 IP 替換入上面 url,并把 command 中的小寫(xiě)字母還原成原來(lái)正確的 API 名字,結(jié)果如下:

http://192.168.1.4:8080/client/api?command=listVirtualMachines&account=\admin&amp;domainId=1&apikey=Kn7rrPjdXDWTrcjCTLs7hZM22o0X6aKSZ4Cy4GDUHD1TmoVw3e-o\ NxjRTCBXchffju5OFTqW4zPIik-HKxH7-w&signature=i5%2FQxBf7FIGc6GvAfNcpFnVKpEw%3D

把該 URL 鍵入瀏覽器,可以執(zhí)行成功,返回一段 XML response:

<deployvirtualmachineresponse cloud-stack-version="3.0.2.20120506223416"> <id>d29a98f2-610c-4e4e-9331-18c133c5bdb3</id> <jobid>a5c9f26d-98be-4a81-9883-da9dd8dfda47</jobid> </deployvirtualmachineresponse>

如果回到控制臺(tái)界面的 instance tab,可以看到一個(gè)新的 vm instance 被創(chuàng)建。

用同樣的方法,使用如下命令,列舉出 Admin 用戶(hù)下的全部虛擬機(jī)。

http://192.168.1.4:8080/client/api?command=listVirtualMachines&account= admin&amp;domainId=1&apikey=Kn7rrPjdXDWTrcjCTLs7hZM22o0X6aKSZ4Cy4GDUHD1TmoVw3e-\ oNxjRTCBXchffju5OFTqW4zPIik-HKxH7-w&signature=%2BQMXTBOoicZJG6EosCcRGvO7OWU%3D

Q10:CentOS 需要安裝 perl 開(kāi)發(fā)環(huán)境才能運(yùn)行上面的腳本。如果在命令執(zhí)行過(guò)程中出現(xiàn)類(lèi)似 cannot locate WWW/Mechanize 類(lèi)的錯(cuò)誤,需要先安裝 cpan:

yum install cpan

然后用 cpan 安裝缺少的 module:

cpan install WWW::Mechanize

后面缺少哪個(gè) module,就用 cpan 安裝該 module,直到所使用的包都被裝入。

總體而言,CloudStack 的 API 提供了很靈活和強(qiáng)大的功能,而且通過(guò) CloudBridge,更是實(shí)現(xiàn)了與亞馬遜 EC2 API 的兼容。

現(xiàn)狀與展望

CloudStack 目前在 Apache 站點(diǎn)的更新也很快,最新的 4.0 也已經(jīng)發(fā)布,它提供了 VLAN 間路由(VPC)能力、給管理資源保存元數(shù)據(jù)、增加新類(lèi)型存儲(chǔ)、和支持 Ubuntu 12.04 和 REHL6.3 等新功能。

在國(guó)內(nèi),像中國(guó)電信這類(lèi)大型企業(yè),還有一些中小型企業(yè),都在迅速的使用 CloudStack 來(lái)構(gòu)建它們的公共云或私有云、混合云平臺(tái)。在這些用戶(hù)的實(shí)踐中,CloudStack 對(duì)豐富種類(lèi)的 Hypervisor、存儲(chǔ)類(lèi)型的支持、強(qiáng)大的伸縮能力和網(wǎng)絡(luò)功能、良好的安全設(shè)計(jì)、靈活的 API 調(diào)用都令人留下深刻印象。

與 OpenStack 的競(jìng)爭(zhēng)會(huì)是接下來(lái)幾年 CloudStack 無(wú)法回避的問(wèn)題,相對(duì)于對(duì)手的后發(fā)優(yōu)勢(shì),CloudStack 更強(qiáng)調(diào)成熟的產(chǎn)品應(yīng)用。但隨著自身的開(kāi)源,將來(lái)的 IaaS 市場(chǎng)也許會(huì)在求同方面走的更遠(yuǎn)。

以上是“怎么用CloudStack配置和管理云環(huán)境”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI