前言
在 Gartner Report HCI 超融合魔力象限中,Nutanix 常年在 Leader
領導者象限中(如圖 1 所示),然而當企業和組織的管理人員,想要體驗 Nutanix
各項功能時,採用普通的 x86
硬體伺服器卻連安裝運作環境,都無法順利安裝成功。因此,在本文實戰演練小節中,將透過
「巢狀式虛擬化」(Nested Virtualization)技術,讓 IT 預算不足的企業和組織,也能夠安裝部署和測試體驗 Nutanix
單節點叢集環境。
圖 1、2021 年發佈的 Gartner HCI 超融合報告
Nutanix CE 運作架構
HCI 超融合平台
圖 2、傳統三層式架構轉換為 HCI 超融合架構示意圖
其中 AHV 是原生 Hypervisor 並專為 AOS
設計,除了擔任虛擬化基礎架構之外,也將實體伺服器的網路資源進行整合,而 AOS
則是運作在 CVM 主機之上的基礎作業系統,並將儲存 / 運算 /
網路等資源,整合至軟體定義基礎架構當中,其中 CVM
主機負責運作許多重要的叢集服務,例如,負責資料 I/O 的
Stargate、負責存取介面的 Zeus、分佈式 Matadata 儲存機制的
Cassandra、負責叢集組態設定管理的 Zookeeper……等(如圖 3 所示)。
圖 3、CVM 主機內運作許多重要的叢集服務示意圖
硬體需求
在 CPU 處理器運算資源方面,最少應配置 4 Cores 核心,其中有 2 Cores
核心將給予 CVM 主機使用,在記憶體資源的部份,建議至少 32GB 或更多,以便
AOS 的重複資料刪除或壓縮等儲存機制能順利運作。
在安裝硬碟方面,至少需要 1 顆 32GB 硬碟擔任 Hypervisor Boot Device,1 顆
200GB SSD 固態硬碟,擔任 Hot Tier 也就是屆時 CVM 主機安裝碟,另 1 顆 500GB
的 HDD 或 SSD 固態硬碟,擔任 Cold Tier 也就是屆時儲存資料的部份。
AHV 網路架構
在 AHV 網路架構的部份,可以看到運作 AOS 的 CVM 主機和
OVS(Open vSwitch),每台 AHV 都會運作一台 CVM,除了處理 I/O、UI、API
和升級等服務之外,並為其上運作的所有 VM 虛擬主機器提供所有 I/O 操作。
在 AHV 預設網路運作架構中,AHV 和 CVM 直接透過
Linux Bridge(virbr0/vnet1)網路介面互相溝通,AHV 預設採用 192.168.5.1 而 CVM 預設採用 192.168.5.2
位址,其中 CVM 則同時連接到 Linux Bridge virbr0 和 OVS br0,OVS 中的 br0
橋接器連接每台 VM 虛擬主機的 tap 網路介面,並透過
br0-up介面存取實體網卡和外部網路(如圖 4 所示)。
實戰演練 – Nutanix CE Single Node Cluster
建立巢狀式虛擬化環境
由於,本文實作環境,並非採用裸機方式直接安裝 Nutanix Hypervisor(如圖 5
所示),而是先在硬體主機中,透過傳遞硬體輔助虛擬化功能給予 VM
虛擬主機後,讓該台 VM 虛擬主機擔任 Guest Hypervisor,屆時再建立 Nested VM
虛擬主機,達成
「巢狀式虛擬化」(Nested Virtualization)的測試環境。
屆時 Nested VM 虛擬主機能否順利建立的關鍵,在於部署 Guest Hypervisor
虛擬主機時,硬體主機是否將硬體輔助虛擬化功能,傳遞給 Guest Hypervisor
虛擬主機。
在本次實作環境中,硬體主機的作業系統採用 Windows Server
2022,當然讀者也可以採用 Windows 10 或 Windows 11 進行實作,請在實作之前
下載 Coreinfo 工具,並使用系統管理員權限開啟命令提示字元後,執行「
Coreinfo64.exe -v」指令,即可看到硬體主機所支援的硬體輔助虛擬化功能,可以看到這台硬體主機支援
VMX 和 EPT 硬體輔助虛擬化功能(如圖 6 所示),並且目前沒有被任何
Hypervisor 佔用的情況,後續即可順利建立 Guest Hypervisor 虛擬主機。
圖 6、確認硬體主機是否支援 VMX 和 EPT 硬體輔助虛擬化功能
建立 Guest Hypervisor 虛擬主機
在硬體主機 Windows Server 2022 作業系統中,安裝 VMware Workstation Player
虛擬化軟體,在建立 Guest Hypervisor
虛擬主機的過程中,雖然簡單但是仍有些需要注意的部份,否則稍後安裝的 Nutanix
CE 運作環境,將無法順利運作,或無法順利建立「單點主機叢集」(Single Node
Cluster)。
或許,管理人員會有疑惑,為何不直接使用 Windows Server 2022,直接建構
Hyper-V 巢狀式虛擬化環境,來安裝和測試 Nutanix CE 環境? 主要原因,在於
Hyper-V 巢狀式虛擬化環境,安裝 Nutanix CE 的過程中,進行至 AHV Hypervisor
安裝作業時,將會因為網路卡驅動程式不支援的關係,導致安裝作業失敗。
開啟 VMware Workstation Player 虛擬化軟體後,點選 Create a New Virtual
Machine 後,選擇載入 Nutanix CE ISO 映像檔,在選擇客體作業系統時,請選擇
Linux 選項中的「CentOS 7 64-bit」項目(如圖 7 所示),稍後安裝完成後,管理人員可以看到 Nutanix AHV 和
CVM,皆採用 CentOS 7.9 作業系統版本。
圖 7、選擇採用 CentOS 7 64-bit 作業系統版本
接著,組態設定 Guest Hypervisor
虛擬主機名稱和儲存路徑,在指派硬碟空間時,請將預設值 20GB 調整為 50GB
儲存空間,屆時此空間將會安裝 AHV Hypervisor 使用,最後按下 Finish 鈕建立
Guest Hypervisor 虛擬主機。
建立後,請點選 Edit virtual machine settings 鈕,在記憶體的部份由預設的
1GB,調整為 64GB 記憶體空間,在 CPU 處理器的部份,由預設的 1 Core 調整為 8
Cores,值得注意的是請記得勾選「Virtualize Intel VT-x/EPT or AMD-V/RVI」項目(如圖 8 所示),確保硬體主機的硬體輔助虛擬化功能,能夠傳遞給 Guest
Hypervisor 虛擬主機,並額外新增 2 顆硬碟,1 顆為 200GB 屆時為安裝 CVM
也就是 Hot Tier 的部份,另 1 顆為 500GB 屆時為 Cold Tier。
圖 8、確保傳遞硬體輔助虛擬化功能給 Guest Hypervisor 虛擬主機
組態設定後,先別急著開機進入安裝程序,請使用系統管理員權限開啟 Notepad
筆記本,修改 Guest Hypervisor 虛擬主機的「.vmx」組態設定檔,加上「disk.EnableUUID = "TRUE"」參數值,確保指派給硬碟 Serial
Number,否則稍後的安裝程序中,可以看到硬碟並沒有顯示 Serial Number(如圖 9
所示),這將會導致後續啟動叢集服務時,在啟動 Medusa
服務時將會卡住並產生錯誤,造成 Nutanix 叢集無法順利啟動。
圖 9、未指派硬碟 Serial Number 給 Guest Hypervisor 虛擬主機
安裝 Nutanix AHV 虛擬化平台
在安裝 Nutanix CE 擔任 Guest Hypervisor
虛擬主機之前,管理人員必須預先準備「2 個」IP
位址,稍後在安裝程序中將會進行指定,第 1 個 IP 位址為底層 AHV Hypervisor
使用,第 2 個 IP 位址則是 CVM 使用。值得注意的是,由於 Nutanix CE
預設會使用「192.168.5.0/24」網段,所以請避開使用這個網段。
開機並通過硬體檢測程序後,首先,請選擇 Hypervisor 採用預設的 AHV,或是採用
ESXi 虛擬化平台,在安裝硬碟的部份,可以看到系統預設已經自動選取 50GB
硬碟空間為 Hypervisor Boot 使用,至於 CVM 或 Data
的硬碟空間則可能發生選擇錯誤的情況,倘若系統自動選擇錯誤時,管理人員可以選擇至正確的硬碟空間按下
C 或 H 進行切換。同時,也可以看到 3 個安裝硬碟,皆有指派 Serial Number
更貼近模擬成實體主機的運作型態。
確認安裝硬碟的組態配置後,接著組態設定 AHV 和 CVM 的 IP
位址,以及網路遮罩和預設閘道。值得注意的是,是否勾選「Create single-node cluster」選項(如圖 10
所示),取決於管理人員的測試需求,舉例來說,倘若勾選此選項後,那麼系統建立叢集後將會鎖定,後續即便有其它
Nutanix Node 節點主機,也無法加入這個 Single-Node Cluster
內,此外勾選此選項後,系統將會自動建立 RF2 Storage
儲存空間,簡單來說,現有儲存空間將會降低一半。
圖 10、安裝 Nutanix CE Guest Hypervisor 並組態設定 AHV 和 CVM IP 位址
組態設定完畢後,選擇 Next Page 後,到 Nutanix CE EULA
使用者授權條款頁面,請使用上下箭頭或 Page Up/Page Down 鈕,閱讀完 EULA
使用者授權條款頁面內容,然後勾選「I accept the end user license agreement」項目後,選擇 Start 即可立即進行安裝。
值得注意的是,在 EULA
使用者授權條款頁面中,必須閱讀完所有的使用者授權條款內容,倘若未閱讀完內容,便按下
Start
立即進行安裝程序的話,那麼系統將會在安裝程序至一半時,出現錯誤並停止安裝,可以看到系統提示必須重新回到
EULA 使用者授權條款頁面,閱讀完所有的內容後才能繼續安裝程序(如圖 11
所示)。
圖 11、未閱讀完 EULA 使用者授權條款內容造成安裝程序中斷
順利安裝一段時間並完成安裝程序後,系統將會提示退出安裝映像檔,並鍵入 Y
重新啟動主機以便套用生效(如圖 12 所示)。
圖 12、安裝完畢並重新啟動主機
查詢 AHV 和 CVM 運作資訊
重新啟動後,管理人員可以從 Guest Hypervisor 虛擬主機的 Console
登入,或是透過 SSH Client 登入 AHV Hypervisor
系統。在登入系統之前,先了解相關管理者登入帳號和密碼,以便稍後登入進行管理作業:
- AHV: SSH 登入、管理帳號 root、管理密碼 nutanix/4u 。
- CVM: SSH 登入、管理帳號 nutanix、管理密碼 nutanix/4u 。
- Prism Element: Web 登入、管理帳號 admin、管理密碼 nutanix/4u
。
無論透過 Console 或 SSH 登入 AHV Hypervisor 之後,管理人員可以透過「cat /etc/nutanix-release」和「cat /etc/centos-release」指令,分別查詢 Nutanix CE 版本,和採用 CentOS 7.9
作業系統版本。同時,執行「virsh list」指令,查詢運作於 AHV Hypervisor 之上的 CVM 運作狀態,一開始 CVM
運作狀態為「paused」,也就是 CVM 在啟動中並尚未開機完成,這時也無法 ping 到 CVM IP
位址,經過一段時間後 CVM 運作狀態會轉變為「running」,此時就可以 ping 到 CVM IP 位址(如圖 13 所示)。
圖 13、查詢 AHV 版本資訊和 CVM 啟動狀態
也可以在 AHV 執行「ip a」或是「ip -c -br a」指令,查看 AHV Hypervisor 使用的 IP 位址資訊,可以看到「br0」介面,使用剛才安裝程序中組態設定的「10.10.75.30」位址,而和 CVM 溝通的「virbr0」介面,則是使用系統預設的「192.168.5.1」位址(如圖 14
所示),這也是一開始提醒管理人員,請勿使用 192.168.5.0/24
系統預設網段的原因。
圖 14、查詢 AHV Hypervisor 網路組態資訊
確認 CVM 啟動成功後,管理人員同樣可以透過 SSH 登入 CVM 主機,執行「cat /etc/centos-release」指令,查詢到使用的 CentOS 7.9 作業系統版本,以及「ip -c -br a」指令查詢 CVM 網路組態,可以看到「eth0」介面,使用剛才安裝程序中組態設定的「10.10.75.31」位址,而「eth1」介面則使用系統預設的「192.168.5.2」和「192.168.5.254」位址(如圖 15 所示)。
圖 15、查詢 CVM 作業系統版本和網路組態資訊
部署並啟動 Single-Node Cluster
確認 AHV 和 CVM
網路組態設定無誤後,由於是部署單一節點的叢集,所以在「資料可用性」(Data
Resiliency)的部份,只能搭配「--redundancy_factor=1」參數,等同於是沒有資料保護的情況,必須部署多節點的叢集才能提升參數值,增加資料可用性。
請切換到 CVM 主機,執行「cluster -s 10.10.75.31 --redundancy_factor=1 create」指令,部署和啟動叢集的動作,需要等待一段時間才能完成。同時,在過程中可以看到相關服務逐步啟動中,而整個叢集的指揮中心名稱為
ZeusLeader,一旦所有服務順利啟動後,系統將的出現「INFO MainThread cluster:3104 Success!」訊息,表示單一節點的 Nutanix 叢集已經部署和啟動完成(如圖 16
所示)。倘若,管理人員後續需要確認叢集狀態時,執行「cluster status」指令即可進行確認。
圖 16、部署和啟動單一節點 Nutanix 叢集
叢集基礎設定
雖然單點叢集已經部署和啟動完成,但預設情況下系統並未組態設定叢集名稱,執行「ncli cluster info」指令後,可以查詢單點叢集的相關資訊,可以看到在 Cluster Name
的欄位值為「Unnamed」,請執行「ncli cluster edit-params new-name=ntnx-cluster」指令,組態設定單點叢集的名稱為「ntnx-cluster」,執行「ncli cluster set-external-ip-address
external-ip-address="10.10.75.35"」指令,組態設定單點叢集的 VIP(Virtual IP)位址(如圖 17 所示)。
圖 17、組態設定單點叢集的名稱 ntnx-cluster 和 VIP 位址
預設情況下,叢集採用的 DNS 名稱解析伺服器,為網際網路上的「8.8.8.8 和 8.8.4.4」。在本文實作環境中,內部使用的 DNS 名稱解析伺服器為「10.10.75.10」,在組態設定之前,請先執行「nc -zv 10.10.75.10 53」指令,確認 CVM 能夠和即將指定的 DNS 名稱解析伺服器進行溝通。
確認和 DNS 名稱解析伺服器溝通無誤後,執行「ncli cluster add-to-name-servers servers="10.10.75.10"」指令,組態設定叢集節點中 CVM 和 AHV 的 DNS
名稱解析伺服器。此時,可以發現預設的「8.8.8.8 和 8.8.4.4」DNS 名稱解析伺服器仍存在,請執行「ncli cluster remove-from-name-servers servers="8.8.8.8,8.8.4.4"」指令,移除預設的 DNS 名稱解析伺服器,最後執行「ncli cluster get-name-servers」指令,再次確認目前叢集的 DNS 名稱解析伺服器組態設定(如圖 18 所示)。
圖 18、組態設定叢集節點中 CVM 和 AHV 的 DNS 名稱解析伺服器
預設情況下,單點叢集的時區組態設定值為「UTC
格林威治標準時間」,執行「ncli cluster info | grep Timezone」指令,可以查詢目前單點叢集的時區組態設定,執行「timedatectl list-timezones | grep Asia/Taipei」指令,先確認系統是否支援「UTC+8」的「Asia/Taipei」台北時區。
確認系統支援台北時區後,執行「
ncli cluster set-timezone timezone= "Asia/Taipei"」指令,組態設定單點叢集為台北時區後,系統會詢問是否要套用新的時區設定,請鍵入
y 確認進行變更,系統將會提示必須重新啟動
CVM,或是重新啟動叢集所有服務才能完全套用生效,請再次執行「
ncli cluster info | grep Timezone」指令,先確認時區設定是否套用生效(如圖 19 所示)。詳細資訊請參考
Nutanix KB1050 知識庫文章。
圖 19、組態設定單點叢集的時區組態設定為台北時區(UTC+8)
預設情況下,叢集採用的 NTP 時間校對伺服器,為網際網路上的「1.pool.ntp.org 和 0.pool.ntp.org」。在本文實作環境中,內部使用的 NTP 時間校對伺服器為「10.10.75.10」,在組態設定之前,請先執行「nc -zv 10.10.75.10 -u 123」指令,確認 CVM 能夠和即將指定的 NTP
時間校對伺服器進行溝通。值得注意的是,nc 指令預設情況下會採用 TCP
通訊協定,但 NTP 時間校對伺服器必須採用
UDP 通訊協定進行溝通,所以必須加上「-u」參數。
確認和 NTP 時間校對伺服器溝通無誤後,執行「
ncli cluster add-to-ntp-servers servers="10.10.75.10"」指令,組態設定叢集節點中 CVM 和 AHV 的 NTP
時間校對伺服器。此時,可以發現預設的「1.pool.ntp.org 和
0.pool.ntp.org」NTP 時間校對伺服器仍存在,請執行「
ncli cluster remove-from-ntp-servers
servers="1.pool.ntp.org,0.pool.ntp.org"」指令,移除預設的 NTP
時間校對伺服器,倘若管理人員希望立即執行時間校對作業,請執行「
/usr/sbin/ntpdate -t 10 -q 10.10.75.10」指令,立即找組態設定的 NTP 時間校對伺服器進行時間校對(如圖 20
所示)。詳細資訊請參考
Nutanix KB4519 知識庫文章。
圖 20、組態設定單點叢集的 NTP 時間校對伺服器
預設情況下,CVM 的主機名稱由系統產生,命名規則為
NTNX-<block_serial>-<position-in-block>-CVM,舉例來說,本文實作環境主機名稱為
NTNX-bd3ffec5-A-CVM。值得注意的是,即便管理人員要變通 CVM 主機名稱,也必須遵照系統命名規則,
開頭為「NTNX-」結尾為「-CVM」,管理人員可執行「
sudo /usr/local/nutanix/cluster/bin/change_cvm_hostname
NTNX-Node01-CVM」指令(如圖 21 所示),將 CVM 主機名稱改為「
NTNX-Node01-CVM」,另一點值得注意的是變更 CVM
主機名稱後,系統會提醒必須重新啟動才能套用生效,按下 Y
鍵後便會重新啟動。詳細資訊請參考
Nutanix KB3517 知識庫文章。
圖 21、執行指令變更 CVM 主機名稱
登入 Prism Element 管理介面
預設情況下,在單點叢集架構中,透過 CVM IP 位址即可連線 Prism Element 管理介面。當 CVM 主機重新啟動完成後,在登入 Prism Element 管理介面之前,請執行「netstat -tunpl | grep 9440」指令,確認 CVM 主機 Prism Element 管理介面(Port 9440)已經運作中。
開啟瀏覽器鍵入網址「https://ntnx-cluster.lab.weithenn.org:9440」,然而使用 Chrome 或 Edge 嘗試登入 Prism Element 管理介面時,卻顯示「NET::ERR_CERT_INVALID」的警告訊息,並且按下 Advanced 鈕,展開內容後也沒有略過的按鈕可以繼續(如圖 22 所示)。
圖 22、預設自簽憑證錯誤無法顯示 Prism Element 登入介面
此時,只要在錯誤網頁中空白處,直接鍵入「thisisunsafe」(舊稱為 badidea),即可順利載入這個不安全的網頁,並看到 Prism Element 登入畫面。預設登入管理帳號為 admin密碼 nutanix/4u,登入後系統會提示立即變更管理密碼,變更後會再度回到登入介面以新的管理密碼登入(如圖 23 所示)。
圖 23、使用新的管理密碼登入 Prism Element 管理介面
第一次登入 Prism Element 管理介面時,系統將會彈出 NEXT Credentials 視窗,原因在於採用 Nutanix CE 社群版本時,必須使用在 My Nutanix 中的帳號登入進行註冊作業(如圖 24 所示)。記得注意的是,在 My Nutanix 帳號中,必須針對 Community Edition 區塊,點選「Activate」鈕進行啟用後,才能順利執行註冊作業。倘若,確認無誤卻仍無法完成註冊作業的話,有可能單節點叢集所處網路環境,註冊作業的網路流量被防火牆所阻擋,請確保防火牆上允許單節點叢集中,流出的 TCP 通訊協定 Port 80 或 8443 放行通過。
圖 24、採用 Nutanix CE 社群版本時必須使用 My Nutanix 的帳號登入進行註冊作業
此時,系統首先檢查 My Nutanix 的帳號,其中 Community Edition 是否 Activate,接著啟動 Pulse 遙測服務,以便定期擷取 Nutanix 叢集診斷資訊並進行回傳作業,最後檢查 Acropolis 版本是否為最新版本,確認無誤後即可看到 Prism Element 儀表板管理介面(如圖 25 所示)。
圖 25、順利登入 Prism Element 儀表板管理介面
結語
透過本文的深入剖析和實戰演練後,相信管理人員即便在沒有專屬的 Nutanix 硬體伺服器的情況下,也可以透過巢狀式虛擬化技術,輕鬆建構出 Nutanix 單節點叢集的運作環境進行測試和研究,後續也將和讀者分享部署 Nutanix 多節點叢集。