vCloud Availability (原名是vCloud Availability for vCloud Director,現已改為vCloud Availability,簡稱vCAV)是VMware的公有雲災備和負載遷移解決方案,企業可以利用它將以VMware私有雲為基礎的重要虛擬機災備到有提供此服務的VMware VCPP合作夥伴公有雲機房內,其架構如下圖所示:

Architecture

上圖左半邊是企業的私有雲環境,右半邊是服務運營商的環境,灰色以外的元件就是vCAV需要用到的組件。

其中有用到Cassandra和RabbitMQ兩個元件,今天我們就來看看他們所提供的作用是什麼,並且如何在測試環境很快的可以把這些元件搭好。

Cassandra

Cassandra是免費的開源分佈式NoSQL資料庫,裡面存放資料抄寫時所需要的metadata,例如抄寫服務訊息、虛擬機抄寫狀態和提供此服務的底層架構對應關係等等,一般來說,正式環境需要一個Cassandra的叢集以提供高可用和服務連續功能。

RabbitMQ

也是開源產品,提供AMQP的消息對列功能,主要是當成接收事件和轉發事件的窗口,當vSphere Replication Cloud Service (上圖的vRCS)被註冊為vCloud Director的延伸服務之一時,RabbitMQ被拿來當作是vCloud Director交換訊息的轉發中心。不清楚vCloud Director延伸服務概念的讀者可以到我的這個Blog看一下。

所以我們可以理解Cassandra為負責記錄抄寫的大腦,而RabbitMQ就是負責交換抄寫訊息的轉運站。這兩個元件都非常的重要,在正式環境裡都需要考量到如何做到附載均衡和高可用性的設計。

我們現在介紹在測試環境如何快速將這兩個元件以容器的形式安裝好。

下載vCAV Installer

首先需要下載vCAV Installer的OVA,所有vCAV的相關元件未來都是用這個Installer來完成,我們可以到這裡去下載。

下載完畢後用vSphere Web Client把它Import進到vCenter底下,如下圖所示,匯入的OVA名字是vcav201:

vcav201

接下來參考VMware官方文件,一步一步安裝相關元件:

登入vcav201,執行以下命令:

啟動Docker服務:

# systemctl start docker

新增一台Docker虛擬主機:

# vcav docker create \ –vsphere=mgmt-vsphere-address \ –ntp=pool.ntp.org \ –root-password-file=~/.ssh/.root \ –vm-name=vcav-docker01
要注意的是要在vcav201機器上將密碼先建出來,以下面為例,要先有.root的檔案。
create dockerVM
指令完成後,我們會看到有一台”vcav-docker01″的虛擬機被建立。
docker host created

設定環境變數

# DOCKER01_ADDRESS=`vcav vsphere get-ip \ –vsphere=mgmt-vsphere-name \ “–network=mgmt-vsphere-network” \ –vm-name=vcav-docker01`
# AMQP_ADDRESS=$DOCKER01_ADDRESS
# CASSANDRA_ADDRESS=$DOCKER01_ADDRESS

Set var

下載RabbitMQ和Cassandra的鏡像

# docker pull rabbitmq:3.4

# docker pull cassandra:2.2.9

建立RabbitMQ Container

# vcav amqp create \ –docker-address=$DOCKER01_ADDRESS \ –container-name=vcav-amqp01 \ –amqp-port=5671 \ –amqp-user=vcd \ –amqp-password-file=~/.ssh/.amqp

 

# vcav trust add \ –address=$DOCKER01_ADDRESS \ –port=5671 \ –accept-all

rabbitMQ Created

這樣RabbitMQ就建好了。

建立Cassandra Container

接著建Cassandra:

# vcav cassandra create \ –docker-address=$DOCKER01_ADDRESS \ –docker-image=cassandra:2.2.9 \ –container-name=vcav-cass01 \ –cassandra-port=9042
cassandra created
如上所示,看到OK表示完成。
我們可以在vcav-docker01裡面執行”docker ps”查看container狀況。
docker check

進入Docker VM設定Cassandra

當Cassandra Docker建立好後,我們可以用正常的Docker指令進入該Docker容器進行我們想要做的設定,如下圖,我們用:

#sudo docker exec -it [Container name or ID] /bin/bash

cassandra yaml
接著我們就可以安裝其他vCAV的元件了。

註記:

  • 目前台灣已提供此服務的廠家可參考這裡。