前言
在前一篇技術專欄中,已經帶領讀者實際部署和建構 Nutanix 單節點叢集,讓企業和組織的管理人員,能夠透過極小型的運作環境進行研究和測試作業。然而,在實務上,企業和組織不可能將重要的營運服務,運作在只有單節點的叢集架構中。
因此,在本文中將部署和建構 Nutanix 多節點叢集環境,以便管理人員後續能夠實作 HCI 超融合基礎架構(如圖 1 所示),以及其它進階特色功能和災難演練的部份。
圖 1、Nutanix HCI 超融合基礎架構運作示意圖
實戰演練 – 部署 Nutanix 多節點叢集
建立巢狀式虛擬化環境
在實戰演練小節中,將會安裝和部署「3 台」Nutanix 節點主機後,建構 Nutanix 多節點叢集環境,並且透過 Prism Element 圖形化管理介面或指令,進行叢集基礎架構的基本組態設定,確保叢集運作環境的穩定性和高可用性。
部署 3 節點 Nutanix 叢集
順利部署 3 台 Nutanix 節點主機後,管理人員可以從 Console 登入,或是透過 SSH Client 登入 AHV虛擬化平台,以及 CVM 主機運作環境。在本文實作環境中,3 台 Nutanix 主機的 AHV IP位址為「10.10.75.21、10.10.75.22、10.10.75.23」,CVM IP 位址為「10.10.75.31、10.10.75.32、10.10.75.33」。
管理人員只要登入其中一台 CVM 主機,並使用 ping 指令確認 3 台 Nutanix 主機之間,AHV 和 CVM 主機皆通訊無誤後,便可以鍵入「cluster -s 10.10.75.31,10.10.75.32,10.10.75.33 create」指令,執行部署多節點主機的 Nutanix 叢集工作任務。
請注意,建立 Nutanix 叢集必須使用所有 CVM 主機的 IP 位址,而非 AHV 主機的 IP 位址。
部署 Nutanix 多節點叢集需要等待一段時間才完成,在部署過程中,可以看到其中一台 CVM 主機,將會自動擔任 ZeusLeader 角色,並負責整個 Nutanix 叢集的總指揮中心,一旦 3 台 Nutanix 節點主機,將叢集系統服務順利啟動完成後,系統將出現「INFO MainThread cluster:3104 Success!」訊息,表示 Nutanix 多節點叢集已經部署和啟動完成(如圖 2 所示)。當然,管理人員想要再次確認叢集狀態時,只要執行「cluster status」指令即可進行確認。
圖 2、部署並啟動 Nutanix 多節點叢集
多節點 Nutanix 叢集部署完畢後,請執行「ncli cluster info」指令,查詢 Nutanix 叢集組態設定資訊,舉例來說,目前 Cluster Name 欄位為「Unnamed」,也就是尚未組態設定 Nutanix 叢集名稱,Node Count 欄位為「3」,表示此 Nutanix 叢集目前擁有 3 台節點主機,NCC Version 欄位為「ncc-4.6.2.1」表示目前的 NCC 版本,以及 Cluster Version 欄位為「6.5.2」為叢集目前使用的 AOS 版本(如圖 3 所示)。
圖 3、查詢 Nutanix 叢集組態設定資訊
預設情況下,在多節點叢集運作架構中,會有多台 AHV 虛擬化平台和多台 CVM 主機,倘若仍需要一台一台主機逐一 SSH 登入進行管理的話,那麼除了造成管理上的麻煩之外,也可能因為人為操作錯誤的關係,例如,打錯字或貼錯指令……等,造成叢集管理上的困擾。
因此,如何快速簡單且一致性的管理便相形重要,在 Nutanix 叢集環境中,提供便利的「allssh」指令,能夠一次管理所有 CVM 主機,以及「hostssh」指令一次管理所有 AHV 虛擬化平台,達到快速管理的目的(如圖 4 所示)。
圖 4、透過 allssh 和 hostssh 一次管理 CVM 或 AHV 虛擬化平台
舉例來說,當管理人員想要查詢目前 Nutanix 叢集中,所有 CVM 主機的 DNS 名稱解析伺服器的組態設定時,只要執行「allssh cat /etc/resolv.conf」指令即可,想要查看所有 AHV 虛擬化平台的 DNS 組態設定時,只要執行「hostssh cat /etc/resolv.conf」指令即可(如圖 5 所示)。
圖 5、快速查詢叢集中 CVM 和 AHV 的 DNS 組態設定內容
設定 DNS 名稱解析伺服器
預設情況下,在多節點 Nutanix 叢集架構中,只要透過「任一台 CVM IP 位址」即可連線 Prism Element(PE)管理介面(後續簡稱為 PE),在登入 PE 管理介面之前,請執行「allssh "netstat -tunpl | grep 9440"」指令,確認所有 CVM 主機的 PE 管理介面服務(Port 9440)已經正常運作。
開啟瀏覽器,鍵入任一 CVM 主機的 IP 位址,例如,https://10.10.75.31:9440,倘若嘗試登入 PE 管理介面時,遭遇「NET::ERR_CERT_INVALID」網頁警告訊息的話,只要在錯誤網頁中空白處,直接鍵入「thisisunsafe」,即可順利看到 PE 管理介面的登入畫面,並使用預設管理帳號「admin」預設密碼「nutanix/4u」,登入後系統便會提示變更管理密碼,變更後會再度回到登入介面以新的管理密碼登入。
倘若,無法順利通過 NEXT Credentials 驗證視窗時,記得檢查在 My Nutanix 帳號中,是否針對 Community Edition 區塊,點選「Activate」鈕進行啟用,或者是多節點 Nutanix 叢集運作環境中,防火牆是否允許 TCP 通訊協定 Port 80 或 8443 網路封包通過,一旦 Pulse 遙測服務順利啟動後,即可看到 PE 儀表板管理介面(如圖 6 所示)。
圖 6、順利登入 Prism Element 儀表板管理介面
預設情況下,叢集採用的 DNS 名稱解析伺服器,為網際網路上的「8.8.8.8 和 8.8.4.4」。本文實作環境中,內部使用的 DNS 名稱解析伺服器為「10.10.75.10」,在進行組態設定之前,請先執行「allssh "nc -vz 10.10.75.10 53"」指令,確認所有 CVM 主機,都能夠和內部 DNS 名稱解析伺服器進行溝通。
確認與 DNS 名稱解析伺服器溝通無誤後,在 PE 管理介面中,依序點選「Settings > Network > Name Servers」後,按下 Add 鈕新增「10.10.75.10」DNS 名稱解析伺服器,並將預設的「8.8.8.8 和 8.8.4.4」刪除(如圖 7 所示),管理人員可以切換到 CVM 主機,執行「ncli cluster get-name-servers」指令,再次確認叢集的 DNS 名稱解析伺服器組態設定是否套用生效。
圖 7、組態設定 Nutanix 叢集 DNS 名稱解析伺服器
事實上,在 PE 管理介面為 Nutanix 叢集,組態設定 DNS 名稱解析伺服器之後,系統將會自動同步套用至所有 AHV 和 CVM 主機中,管理人員可以在 CVM 主機上,執行「allssh "cat /etc/resolv.conf"」指令,可以發現 Nutanix 叢集中,所有 CVM 主機已經自動套用生效,使用指定的內部 DNS 名稱解析伺服器,執行「hostssh "cat /etc/resolv.conf"」指令,同樣可以發現所有 AHV 主機,也自動套用內部 DNS 名稱解析伺服器(如圖 8 所示)。
圖 8、叢集中所有 CVM 和 AHV 主機,自動套用生效使用內部 DNS 名稱解析伺服器
設定叢集名稱和 VIP 位址
在預設情況下,雖然順利部署好 Nutanix 叢集,然而透過執行「ncli cluster info」指令,或登入 PE 管理介面後可以發現,預設的叢集名稱為「Unnamed」,並且也未組態設定叢集的 VIP(Virtual IP)位址,所以只能透過任一台 CVM 主機的 IP 位址,連線及登入至 PE 管理介面。
請在登入 PE 管理介面後,依序點選「Settings > General > Cluster Details」,將 Cluster Name 欄位中的預設值 Unnamed 刪除,鍵入本文實作環境的叢集名稱「ntnx-cluster」,在 Virtual IP 欄位填入「10.10.75.20」叢集 VIP 位址後,按下 Save 鈕存檔(如圖 9 所示)。
圖 9、組態設定叢集名稱和 VIP 位址
一旦組態設定套用生效後,管理人員便可以登出現有採用 CVM IP 位址連線的 PE 管理介面,改為採用叢集名稱搭配 VIP 位址名稱解析的網址登入,本文實作環境請在網址列鍵入「https://ntnx-cluster.lab.weithenn.org:9440」,順利通過使用者身份驗證程序並登入 PE 管理介面後,可以看到叢集名稱也已經套用生效為「ntnx-cluster」(如圖 10 所示)。
圖 10、採用叢集名稱搭配 VIP 位址名稱解析登入 PE 管理介面
值得注意的是,在剛才組態設定叢集資訊頁面中,
FQDN欄位和
VIP 欄位只能
擇一填寫,無法同時使用。簡單來說,當管理人員日後部署 Prism Central(PC)管理平台時,可以部署多台 PC 主機,搭配組態設定
「DNS 名稱解析輪循」(DNS Round-Robin)功能,即可填入 FQDN 欄位達到多台 PC 主機負載平衡的功能,同樣的情境下,採用 VIP 機制時雖然能提供容錯的彈性機制,但卻無法提供負載平衡功能。
設定時區和 NTP 時間校對
預設情況下,叢集的時區組態設定值為「
UTC 格林威治標準時間」,並且在目前的 PE 管理介面中,並沒有提供組態設定叢集時區的部份。請登入任一台 CVM 主機後,執行「
ncli cluster info | grep Timezone」指令,查詢目前單點叢集的時區組態設定,執行「
timedatectl list-timezones | grep Asia/Taipei」指令,確認系統是否支援「
UTC+8」的「
Asia/Taipei」台北時區。
確認系統支援台北時區後,執行「ncli cluster set-timezone timezone="Asia/Taipei"」指令,組態設定叢集為台北時區時,系統會詢問是否要套用新的時區設定,請鍵入「y」確認進行變更,系統提示必須重新啟動 CVM 主機,或是重新啟動叢集所有服務後,新的日誌事件時間才能套用新的時區。
值得注意的是,從
AOS 5.18 和 pc.2020.8版本開始,CVM 主機和 PC 管理平台中的服務日誌時間戳記,仍會強制使用 UTC 時區,即便管理人員變更時區。此外,和設定 DNS 名稱解析伺服器不同的是,時區的組態設定僅會套用至 CVM 主機,而不會套用至 AHV 虛擬化平台中,詳細資訊請參考
Nutanix KB1050 知識庫文章。
由於多節點叢集已經正常運作,採用重新啟動 CVM 主機方式的話,一次只能重新啟動一台 CVM 主機,然後等待資料區塊重新同步完成後,才能再重新啟動另一台 CVM 主機,這樣的處理方式需要等待時間太久,所以改為選擇重新啟動叢集服務方式,請執行「cluster stop」指令,在系統詢問是否確認停止叢集服務時,鍵入「I agree」確認停止所有叢集服務。
待所有 CVM 主機的叢集服務都停止後,執行「cluster status |grep -v DOWN」指令,確認每台 CVM 主機,僅剩下必要的「Zeus、Scavenger、Xmount、VipMonitor」服務為啟動之外,其餘服務皆為停止狀態。
確認無誤後,即可執行「cluster start」指令啟動叢集服務。此時,系統就像在建構叢集服務時一樣的動作,許多的叢集服務依序啟動,直到所有叢集服務啟動完成為止,執行「cluster status |grep -v UP」指令,確認所有 CVM 主機的叢集服務皆已順利啟動,並執行「ncc health_checks system_checks cluster_services_down_check」指令,檢查是否有叢集服務未啟動成功的情況發生(如圖 11 所示)。
圖 11、透過 ncc 指令檢查叢集服務的健康情況
預設情況下,叢集採用的 NTP 時間校對伺服器,為網際網路上的「1.pool.ntp.org 和 0.pool.ntp.org」,本文實作環境中,使用內部的 NTP 時間校對伺服器為「10.10.75.10」,在組態設定之前,請先執行「allssh "nc -vz 10.10.75.10 -u 123"」指令,確認所有 CVM 主機,都能和內部 NTP 時間校對伺服器進行溝通。值得注意的是,nc 指令預設情況下採用「TCP」通訊協定,但 NTP 時間校對伺服器使用「UDP」通訊協定,所以指令必須加上「-u」參數,才能讓 nc 指令使用 udp 協定進行測試作業(如圖 12 所示)。
圖 12、確認所有 CVM 主機能和內部 NTP 時間校對伺服器進行溝通
請在 PE 管理介面中,依序點選「Settings > Network > NTP Servers」,將預設值「1.pool.ntp.org 和 0.pool.ntp.org」NTP 時間校對伺服器刪除,按下 Add 鈕新增內部「10.10.75.10」的 NTP 時間校對伺服器(如圖 13 所示)。
圖 13、組態設定叢集使用內部 NTP 時間校對伺服器
原則上,組態設定完成後,系統便會自動找內部 NTP 時間校對伺服器進行對時作業,倘若管理人員希望立即執行對時的動作,請執行「
allssh "/usr/sbin/ntpdate -t 10 -q 10.10.75.10"」指令,立即和內部 NTP 時間校對伺服器進行時間校對作業,然後執行「
allssh "date"」指令,確認 CVM 主機的時間校對情況,詳細資訊請參考
Nutanix KB4519 知識庫文章。
此時,AHV 虛擬化平台仍為 UTC 時區,管理人員可以執行「hostssh "timedatectl set-timezone Asia/Taipei"」指令,將叢集中所有 AHV 虛擬化平台的時區,組態設定為 Asia/Taipei,然後執行「hostssh "timedatectl"」指令,確認時區組態設定是否套用生效。
變更 AHV 和 CVM 主機名稱
預設情況下,系統自動命名 AHV 主機名稱的格式為「NTNX-<block_serial>-<position-in-block>」,而 CVM 主機名稱則是建構於 AHV 主機名稱之上,會在 AHV 主機名稱結尾加上「-CVM」,以本文實作環境來講,第一台 AHV 主機名稱為「NTNX-da1a87c0-A」,而 CVM 主機名稱為「NTNX-da1a87c0-A-CVM」。
在變更 AHV 主機名稱的部份,請在 CVM 主機上,執行「change_ahv_hostname --host_ip="10.10.75.21" --host_name="NTNX-Node01-AHV"」指令,即可指定將本文實作環境中,第一台 AHV 主機名稱變更為「NTNX-Node01-AHV」,管理人員即可依據同樣的方式,變更叢集中其它台 AHV 主機名稱,變更完成後可以執行「hostssh "hostname"」指令,查看所有 AHV 主機名稱是否套用生效,或在 PE 管理介面中點選「Hardware」項目,即可看到叢集中所有 AHV 主機名稱(如圖 14 所示)。
圖 14、查看叢集中所有 AHV 主機名稱
至於變更 CVM 主機名稱的部份,必須遵照系統命名規則,開頭為「
NTNX-」結尾為「
-CVM」,請執行「
sudo /usr/local/nutanix/cluster/bin/change_cvm_hostname NTNX-Node01-CVM」指令,系統會提醒必須重新啟動才能套用生效,按下 Y 鍵後便會重新啟動,重新啟動後可發現 CVM 主機名稱順利變更為「
NTNX-Node01-CVM」,詳細資訊請參考
Nutanix KB3517 知識庫文章。
然而,管理人員將會發現,雖然 SSH 登入後 CVM 主機名稱已經變更,但是在 AHV 虛擬化平台中,使用指令「virsh list」指令查看 CVM 主機資訊時,或是在 PE 管理介面中,看到的 CVM 主機名稱仍然是未變更前的舊名稱?(如圖 15 所示)
圖 15、在 PE 管理介面中,發現 CVM 主機仍使用未變更前的舊有主機名稱
此時,只要登入別台 CVM 主機,執行「change_cvm_display_name --cvm_ip="10.10.75.31" --cvm_name="NTNX-Node01-CVM"」指令,系統詢問必須重新啟動 CVM 主機才能套用生效,請按下 Y 鍵即可,當 CVM 主機重新啟動完成後,管理人員即可發現,在 AHV 虛擬化平台中查看 CVM 主機資訊時,或是在 PE 管理介面中看到的 CVM 主機名稱,便會是變更後的主機名稱(如圖 16 所示)。
圖 16、在 PE 管理介面中,順利看到變更後的 CVM 主機名稱
變更預設管理密碼
在預設環境下,雖然使用系統預設密碼仍然能正常運作,但是此舉容易導致企業和組織發生資安風險,所以在 PE 管理介面中,倘若管理人員未變更相關預設管理密碼時,那麼在 Critical Alerts 事件中,將會不斷提醒管理人員應該變更預設管理密碼(如圖 17 所示)。
圖 17、系統提醒管理人員應該變更預設管理密碼
- Nutanix Controller VM(CVM):建議變更本機「nutanix」管理帳號的預設密碼。
- Hypervisor :採用 AHV 虛擬化平台時,建議變更本機「root,admin,nutanix」管理帳號的預設密碼,採用 ESXi 虛擬化平台時,建議變更「root」預設密碼,採用 Hyper-V 虛擬化平台時,建議變更「administrator」預設密碼。
- Prism Central :建議變更 Prism GUI 的「admin」帳號預設管理密碼,以及本機「nutanix」管理帳號的預設密碼。
- Out-of-Band Management(IPMI):建議變更遠端管理「ADMIN」帳號預設管理密碼。
- File Server VMs(FSVMs):建議變更本機「nutanix」管理帳號的預設密碼。
那麼多的系統預設管理帳號和密碼,應該如何一次性且快速的進行檢查 ?管理人員可以透過 ncc 指令,搭配「default_password_check,pc_default_password_check,file_server_default_password_check」參數,即可進行快速檢查作業。
舉例來說,管理人員可以在任一 CVM 主機上,執行「ncc health_checks system_checks default_password_check」指令,即可檢查系統中包含 CVM 的管理帳號是否採用預設密碼,系統將會檢查「/etc/shadown」檔案內容,比對並確認是否採用預設密碼。習慣圖形介面操作的管理人員,可以在 PE 管理介面中,依序點選「Health > Actions > Run NCC Checks > All Checks > Run」即可。
那麼該如何快速變更這些系統管理帳號的預設密碼呢 ? 首先,在變更 CVM 本機 nutanix 管理帳號密碼的部份,只要登入其中一台 CVM 管理主機,並且執行「sudo passwd nutanix」指令,在系統提示後鍵入二次新的密碼,那麼叢集中所有的 CVM 主機將會自動同步並採用新的密碼。
在變更 AHV 虛擬化平台中,本機「root,admin,nutanix」管理帳號的預設密碼的部份,官方也提供相關 Script 進行處理,舉例來說,變更「root」密碼時,請在任一台 CVM 管理主機中,執行「echo -e "CHANGING ALL AHV HOST ROOT PASSWORDS.\nPlease input new password: "; read -rs password1; echo "Confirm new password: "; read -rs password2; if [ "$password1" == "$password2" ]; then for host in $(hostips); do echo Host $host; echo $password1 | ssh root@$host "passwd --stdin root"; done; else echo "The passwords do not match"; fi」指令(如圖 18 所示),即可一次變更叢集中所有 AHV 虛擬化平台中本機 root 帳號的預設密碼。
圖 18、一次變更叢集中所有 AHV 虛擬化平台中本機 root 帳號的預設密碼
至於 PE 管理介面 admin 帳號管理密碼的部份,只要登入後依序點選右上角的「admin > Change Password」,然後填入目前的密碼以及二次新的密碼後,按下 Save 鈕即可。倘若,管理人員忘記 admin 帳號的管理密碼,或是密碼錯誤次數太多導致帳號被鎖定時,只要在任一台 CVM 主機中,執行「ncli user reset-password user-name="admin" password="YOUR-NEW-PASSWORD"」指令,即可重設 admin 帳號的管理密碼並解除鎖定狀態。
確認變更所有管理帳號的預設密碼後,請再次執行 ncc 檢查指令,或是在 PE 管理介面再次執行檢查作業,一旦通過檢查作業後,便可以在 PE 管理介面的 Health 健康狀態區塊中,看到顯示為綠色 GOOD 圖示,且原先在 Critical Alerts 區塊中,出現的警告事件也會消失(如圖 19 所示)。
圖 19、PE 管理介面顯示 Nutanix 叢集恢復至健康狀態
PE 外觀設定
在 PE 管理介面外觀組態設定的部份,只要登入後依序點選「Settings > Appearance」即可。首先,在 PE 管理介面操作語系的部份,預設使用 English,並額外支援「簡體中文、日語、韓語」等語系,在 UI Settings 頁面中,可以選擇佈景主題格式,以及組態設定閒置時預設登出時間,值得注意的是,admin 管理帳號的閒置登出時間最大僅能設定「1 hour」(如圖 20 所示),即便設定更久時間仍是無效的,最後在 Welcome Banner 頁面中,企業和組織可以根據需求將歡迎訊息以 HTML 格式貼上,並勾選「Enable Banner」選項後存檔離開即可。
圖 20、組態設定 PE 管理介面預設閒置操作登出時間
結語
透過本文的深入剖析和實戰演練後,企業和組織即便在沒有專屬的 Nutanix 硬體伺服器情況下,也能透過巢狀式虛擬化技術,輕鬆建構出 Nutanix 多節點叢集基礎架構,後續也將和讀者分享部署 Nutanix 管理平台 Prism Central(PC)的最佳作法。