vSphere架構下的vCenter Server,就如同Active Directory網域環境中的Domain Controller,能夠集中管理虛擬化平台中的網路、叢集、主機、資料存放區、虛擬機器、資源集區,所以在多點分支營運的企業網路中必須確保其不間斷運行,為此本文將介紹分支與熱備援管理實戰。
相信只要有在系統整合的資訊公司從事過工程師的工作,就會經常聽到客戶有單一登入的系統整合需求,而且這些客戶不限於企業、公家機關或是學校,幾乎稍有規模的各行各業IT環境都會有這樣的需求。
為何單一登入的整合需求如此眾多呢?其實原因很簡單,主要是組織IT環境中長久以來累積的應用系統相當多,而且每一套系統通常都採用自家資料庫的認證機制,如此一來,使用者就必須牢記多套系統的帳號與密碼,若這些系統還有一些強制性的密碼原則,那麼對於用戶所造成的困擾可能更大。
在過去,為了解決單一登入的需求問題,許多IT部門會要求新應用系統的規格,必須支援Active Directory或OpenLDAP的認證功能,如此便能大幅減少使用者需要牢記多組帳密的問題,不過這並無法解決主機端資源集中管理的問題,例如想要迅速完成ERP與CRM的資源配置異動。
如今系統開發應用設計的範圍相當廣泛,若只是解決單一登入的管理問題,肯定無法滿足大型企業的IT架構設計,因此必須把過去、現在以及未來的應用系統,選擇全部部署在以虛擬化平台為基礎的雲架構中,這樣一來無論應用系統是選擇運行在虛擬機器(VM)或容器(Container)中,IT人員都可以輕易地進行資源的集中化調配,包括CPU、RAM、儲存區、網路等等。
在VMware vSphere架構中,若採用獨立主機的運行模式,是無法享有資源、帳號、密碼、群組、權限集中控管的功能,也無法部署vSphere HA、DRS、FT、vSAN等進階功能,因此vCenter Server便成為了vSphere在集中管理功能時的必要伺服器。
相較於Active Directory的架構,vCenter Server集中控管的不僅有帳號、密碼、群組、權限、原則等配置,還有各項資源使用的調配。如果vCenter Server因硬體故障或網路發生中斷,可能導致運行中的各項功能無法正常運行,並且也會讓管理員無法連線登入使用vSphere Client網站。為此,必須進一步考量在分支辦公室網路部署vCenter Server的必要性,以及vCenter Server備援方式的選擇。
分支vCenter Server部署
現今許多企業的IT環境都有部署Active Directory的網域架構,它除了用來集中管理帳號、密碼、權限以及群組原則的配置外,還可能用來與其他系統進行整合管理,常見的有Exchange Server、SharePoint Server等等,因此若Active Directory架構中的網域控制站發生故障,將可能直接導致這些應用系統無法正常運行。
為了避免發生上述的意外事件,除了需要定期做好網域控制站主機的備份外,還可以選擇在相同網域內部署多台的網域控制站,以避免單點故障的問題發生時,Active Directory還能夠正常運行。對於在其他分支辦公室中的子網路,則可以安裝一台專屬的網域控制站主機,以作為該子網路中所有Windows網域電腦的近端網路驗證主機。
同樣的部署概念若套用在vSphere架構中也是一樣的,因為vCenter Server就如同Domain Controller,同樣可以安裝多台在vSphere SSO網域中,以作為分支辦公室網路的就近連線登入使用。如圖1所示,便是部署vCenter Server過程中的「SSO Configuration」設定頁面,在此只要選取「Join an existing SSO domain」並完成現行vCenter Server連線資訊的設定,就可以完成在現行的vSphere SSO網域中加入新vCenter Server的部署。
完成新vCenter Server的部署後,如圖2所示,在vSphere Client主機與叢集管理頁面中就可以查看vcsa01.lab02.com與vcsa02.lab02.com這兩台vCenter Server,不僅讓分支辦公室的IT人員能夠管理自己vCenter Server下的所有ESXi主機相關資源,還能讓總公司最高權限的IT人員隨時因應管理需求,在不同的vCenter Server之間遷移虛擬機器,例如讓某一個已經在總公司完成測試的應用系統,透過移轉(vMotion)功能遷移至分公司網路中運行。
而對於接下來準備於總公司部署vCenter Server HA的需求,由於必須將現行vCenter Server所在的ESXi主機加入叢集內,因此便可以透過分支辦公室的vCenter Server連線登入,來完成這一項位置移動任務。如此便可以完成在vCenter Server HA架構中,所有vCenter Server節點都必須存在於相同叢集的準備條件。
vCenter HA部署準備
如同過去介紹過的虛擬機器備援方式,針對vCenter Server的備援方式,一樣可以選擇採用熱備援或冷備援。所謂的熱備援,就是採用接下來所要實戰講解的vCenter Server HA架構,至於冷備援,則是透過第三方的虛擬機器備份系統來定期完成每天vCenter Server Appliance的備份,以因應vCenter Server系統發生故障而無法正常運行時,能夠復原最近一次的虛擬機器備份。
冷備援vCenter Server的做法僅適用於IT規模較小的組織,因為對於中大型的IT網路而言,肯定無法等待vCenter Server從備份中執行復原與重新上線的漫長時間。此時,就得選擇進一步部署vCenter Server HA的熱備援架構,才能夠滿足組織對於私有雲的SLA(Service-Level Agreement)要求。
一旦有了vCenter Server HA架構後,還需要定期備份vCenter Server Appliance嗎?答案是需要的,因為兩者所面對的情境截然不同,完整備份可以因應重大事故發生後的復原工作,因此妥善保存備份檔案是相當重要的任務。
關於vCenter Server HA的架構部署,主要是藉由三種不同的vCenter Server伺服器角色來完成,分別是主動節點(Active Node)、被動節點(Passive Node)以及見證節點(Witness Node)。其中,見證節點便是讓自動容錯備援機制能夠成功運行的關鍵角色,而主動節點與被動節點則會自動完成雙方PostgreSQL資料庫的複寫同步、組態設定檔的同步,以便隨時可以經由HA的容錯機制,切換至另一台vCenter Server的運行,而不會有資料或組態不一致的問題發生。
啟用vCenter HA功能的方法相當簡單,全程皆只要在vSphere Client網站的操作介面中就可以完成,但在開始動手之前有幾項必要條件需要預先準備好,分別說明如下:
‧所有vCenter Server角色皆必須是採用靜態IP配置。
‧vCenter Server Appliance必須已加入vCenter Server的管理,不能夠是在獨立運行的狀態下。
‧所有vCenter Server節點都必須存在於相同的叢集中,並且叢集狀態必須處於狀況良好。
‧目標vCenter Server與來源vCenter Server必須放置在相同目錄位置。
‧為主要vCenter Server Appliance所在的ESXi主機,以及準備用來運行被動節點、見證節點的ESXI主機皆安裝好一張專屬網卡,以作為vCenter HA連接網路的使用。
‧vCenter Server必須已啟用SSH服務功能,若過去在部署時沒有啟用它,也可以到vCenter Server Appliance網站上進行啟用。如圖3所示,便是從「存取」頁面中所進一步開啟的「編輯存取設定」頁面,在此可以開啟「啟用SSH登入」設定。
‧成為主動節點的vCenter Server必須是連接管理自己所屬的ESXi主機和本身的虛擬機器。
‧後續連接vCenter HA中的三個節點網路皆必須採用靜態IP位址配置。
除了上述注意事項外,還必須留意目前vCenter HA的部署,是無法設定虛擬磁碟位於多個資料存放區的vCenter Server。因此,若現行的vCenter Server已有像這樣的配置方式,那麼在執行vCenter HA部署的過程中可能會因為出現錯誤訊息而無法完成。
vCenter Server健康狀態檢測
當分支辦公室的網路都有安裝一台專屬的vCenter Server後,接下來就可以為僅有一台vCenter Server的總公司網路進一步部署vCenter Server HA架構,一旦完成部署任務後,在叢集中將會分別有主動節點(Active)、被動節點(Passive)、見證節點(Witness)這三台vCenter Server,其中主動節點為原有vCenter Server,而被動節點與見證節點則是經由系統所自動複製產生。
既然被動節點與見證節點是經由系統所自動複製產生,那麼在開始建立vCenter Server HA之前,肯定得先確認現行vCenter Server的健康無虞後再進行相關操作。
針對vCenter Server的各項健康狀態檢視,最簡單的做法就是開啟網頁瀏覽器連線登入vCenter Server管理網站,若是習慣使用命令工具的操作,則可以善用vCenter Server Appliance Command。
圖4所示便是以網頁瀏覽器連線登入vCenter Server管理網站,預設開啟的「摘要」頁面。在此除了可以檢視到主機名稱與版本相關資訊外,還能查看到「健全狀況狀態」,裡面包括了整體健全狀況以及CPU、記憶體、資料庫、儲存區、交換的個別健康狀態。至於在「Single Sign-On」區域內的「狀態」資訊,則必須始終處於「執行中」,才能保證vSphere Client網站的登入沒有問題。
想透過vCenter Server Appliance的命令模式查詢記憶體、儲存區、交換以及系統整體健康狀態,只要先SSH連線登入,再依序執行mem.health.get、storage.health.get、swap.health.get、softwarepackages.health.get、system.health.get等命令即可。
除了基本健康狀態的檢視外,如圖5所示,管理員最好能夠進一步查看在「服務」頁面中,是否有預設已設定為「自動」啟動類型的服務,且目前的「狀態」資訊呈現為「已停止」。如果發現這類的服務,立即選取該服務後,再點選「啟動」超連結來嘗試啟動它。
針對vCenter Server服務的管理,若是選擇透過SSH工具連線登入vCenter Server Appliance,可以直接在「Command>」命令提示字元下,如圖6所示執行「service-control --status」命令參數,即可查看到目前所有已啟動與已停止的服務。
上述範例是針對所有服務狀態的檢視,如果只想要檢視某一個選定的服務狀態(例如vstats),則可以參考如圖7所示輸入「service-control --status vstats」命令參數即可得知。若想要停止此服務的執行,可輸入「service-control --stop vstats」命令,而對於此服務的啟動,輸入「service-control --start vstats」命令參數。若想重新啟動此服務,則輸入「service-control --restart vstats」命令。
配置vCenter HA網路
vCenter HA正式部署前的首要工作,除了必須先確認現行vCenter Server的健康狀態外,還要幫vCenter HA架構中的每一台節點主機安裝配置好專用的網路,以便處理vCenter HA運行過程中的各項資料與組態的同步,而不影響其他功能運行中的網路連線。
接下來,先登入到vSphere Client網站中,查看現行vCenter Server所在的ESXi主機已準備好的網路實體介面卡。如圖8所示,在此主機的「設定」→「網路」→「實體介面卡」頁面中,可以發現其中的vmnic2裝置目前尚未連接任何的交換器,點選「新增網路」超連結繼續。
如圖9所示,在「選取連線類型」頁面中,由於目前要建立的是負責處理虛擬機器流量的網路,因此選取「標準交換器的虛擬機器連接埠群組」,然後按下〔下一頁〕按鈕。來到「選取目標裝置」頁面後,不選取現有的標準交換器,而是改選「新增標準交換器」,以便讓vCenter HA的複寫同步以及監視的網路流量能夠獨立運行,而不影響其他現行功能運行所連接的網路。接著,再按下〔下一頁〕按鈕繼續設定。
在「建立標準交換器」頁面中,預設不會有任何已指派的介面卡。點選新增小圖示來加入尚未被指派的網卡,也就是在前面步驟中預先準備好的實體介面卡,讓它成為「作用中介面卡」即可,如圖10所示。值得注意的是,若擔心因實體網卡故障而導致vCenter Server無法連線,可以考慮在「待命介面卡」區域中再添加更多網卡,如此一來,即便發生作用中介面卡故障,待命介面卡也會自動銜接上並繼續運行。設定完畢,按下〔下一頁〕按鈕。
在「連線設定」頁面中,則輸入一個易於識別的網路標籤(例如vCenter HA Network),以防未來被不同用途需求的虛擬機器配置所使用。至於VLAN識別碼,可選擇不輸入或使用一組專屬的識別碼來運行。按下〔下一頁〕按鈕,來到在「即將完成」頁面,如圖11所示,確認上述步驟設定無誤後按下〔完成〕按鈕。
完成此虛擬機器網路的建立後,就會看到多了一個vSwitch來供它與實體介面卡的連接,以本次範例來說,就是如圖12所示的vSwitch2,往後如果需要修改部分設定,只要在此頁面中點選「編輯」超連結即可。最後,記得在其他兩台準備好的ESXi主機上也完成相同的設定。
啟用vCenter HA配置
完成vCenter HA架構中所有主機節點的網路配置後,接下來就可以啟用vCenter HA的熱備援功能。如圖13所示,在vCenter Server節點的「設定」→「vCenter HA」頁面中,按下〔設定VCENTER HA〕按鈕。
如圖14所示,在「資源設定」區域中,先為主動節點設定好vCenter HA網路,也就是透過點選「瀏覽」超連結,從如圖15所示的「選取網路」頁面挑選前面步驟中所建立新的網路。完成vCenter HA網路的選取後,再勾選「自動建立被動和見證節點的複製品」設定,然後按下被動節點區域中的〔編輯〕按鈕。
接著,開啟「被動節點資源設定」頁面,可自訂此虛擬機器的名稱與置放的資料夾。如圖16所示,其中的「虛擬機器名稱」建議採用系統預設的命名即可,因為會自動添加「被動」的字眼在虛擬機器的名稱中,最後按下〔下一步〕按鈕。
在「計算資源」頁面中,選取將用來運行被動節點虛擬機器的ESXi主機,請勿挑選與其他兩個節點相同的ESXi主機,以免增加高可用性的運行風險。設定好了之後,按下〔下一步〕按鈕。
如圖17所示,在「儲存區」頁面中,建議選擇ESXi主機的本地儲存區即可,當然若要選擇網路共用的儲存區也可行。無論如何,切勿挑選與其他兩個vCenter Server節點相同的儲存區。
按下〔下一步〕按鈕,來到「網路」頁面,如圖18所示,選擇所要使用的管理網路和vCenter HA網路,再按下〔下一步〕按鈕。最後,在「檢閱」頁面中確認上述步驟設定無誤後,按下〔完成〕按鈕即可。
在部署vCenter HA的被動節點設定時,剛完成「網路」設定並按下〔下一步〕按鈕時,可能會出現如圖19所示的錯誤訊息,分別是「指定的參數不正確:spec.pool」以及「資源集區和主機不屬於相同的計算資源」。會出現這兩個錯誤訊息的原因是,目前vCenter Server所在的ESXi主機,並未與其他兩個節點的ESXi主機相同的叢集中。該如何解決呢?
基本上,解決上述問題的方法有兩種,必須先確認現行的架構是哪一種,即可選擇套用。首先,第一種是已在相同的vSphere SSO網域內部署了兩台或更多台的vCenter Server,在這種情境下,管理員只須在另一台vCenter Server的vSphere Client網站中,直接將準備要部署vCenter HA伺服器所在的ESXi主機,拖曳到與主動節點的ESXi主機相同的叢集中即可。
至於第二種情境,則是在目前的vSphere SSO網域中僅有一台vCenter Server。此時,只要採用複製虛擬機器的方式,將現行的vCenter Server Appliance虛擬機器先複製到叢集中選定的ESXi主機內運行,再將原vCenter Server Appliance虛擬機器關機與刪除,即可在不停機的狀態下順利完成新增vCenter Server Appliance虛擬機器至叢集的操作。
再次回到「vCenter HA」設定頁面後,將可以查看到目前已經完成了主動節點與被動節點的配置。如圖20所示,繼續按下「見證節點」區域內的〔編輯〕按鈕。在開啟見證節點資源設定頁面中,同樣依序完成名稱和資料夾、計算資源、儲存區設定,其中計算資源以及儲存區的設定,也請勿與其他兩個vCenter Server節點設定相同。
緊接著,在「網路」頁面中,如圖21所示將會發現僅須選取「vCenter HA網路」設定,這是因為它主要是用來監視主動與被動節點主機的運行狀態,以便在任一節點發生故障而無法正常連線時自動執行容錯移轉任務,讓vCenter Server服務的運行可以持續進行。
在完成主動節點、被動節點以及見證節點主機的配置後,最後便可以進入到vCenter HA的下一步頁面中,如圖22所示,完成各節點主機的固定IP位址、子網路遮罩以及預設閘道位址的設定,其中「預設閘道」是一項選用的設定,建議保留空白即可,最後按下〔完成〕按鈕。
移除失敗的vCenter HA配置
當執行vCenter HA部署的過程中發生失敗,將會在如圖23所示的頁面中出現「vCenter HA具有無效的組態。移除vCenter HA以銷毀目前的叢集組態並重新設定vCenter HA」的錯誤訊息。
造成上述錯誤訊息發生的可能性有很多,包括網路連線、資料存放區、ESXi主機狀態、服務狀態以及主機負載等問題,皆有可能導致vCenter HA部署過程中被迫中斷。
筆者就曾經在自己的vSphere實驗室中,由於各主機之間採用了無線網路的連線方式,可能因頻寬問題造成在複製虛擬機器的階段中被迫中斷。最後,改採有線網路的連線方式後,才得以讓vCenter HA重新部署成功。
該如何重新部署?在上一步驟的頁面中按下〔移除VCENTER HA〕按鈕,執行之後,如圖24所示,勾選「刪除被動和見證節點虛擬機器」設定,然後按下〔確定〕按鈕。完成移除任務後,將不會從主動節點中移除第二張網卡,直到下一次重新設定vCenter HA時會再繼續使用。
測試vCenter HA容錯移轉
初步完成vCenter HA的部署,並確認三個節點伺服器角色都在「已啟動」狀態,而且沒有出現已降級的情況下,便可以進行容錯移轉測試,以確認它們之間的連線運作是沒有問題的,如此才能夠確保萬一真的發生主動節點的vCenter Server無法運行時,被動節點會自動接替vCenter Server的服務,繼續維持vSphere架構的正常運行。
在vCenter Server節點的「設定」→「vCenter HA」頁面中,按下〔起始容錯移轉〕按鈕來開啟如圖25所示的頁面。在此除了直接按下〔起始容錯移轉〕按鈕來立即啟動容錯移轉測試外,還可以選擇在啟動之前先勾選下方的強制容錯移轉選項,讓容錯移轉測試的任務無須等待主動與被動節點之間的資料同步。
關於vCenter Server系統的容錯移轉任務,需要花費幾分鐘的時間來進行vCenter Server角色的切換,因此整個容錯移轉過程將會讓vSphere Client暫時無法連線。此外,若在上一個步驟的設定中,沒有勾選強制容錯移轉的選項設定,則系統便需要等待主動節點與被動節點的資料同步後,才會自動接著進行故障移轉任務。
當再一次回到vCenter Server節點的「設定」→「vCenter HA」頁面中,如圖26所示便會發現主動節點與被動節點的vCenter HA網路IP已經不同,原來的被動節點(192.168.8.2)已經變成主動(作用中)節點,這表示這兩個節點的角色完成了交換。至於角色交換與恢復上線的速度,則取決於虛擬機器的運行效能。
通過了基本的故障移轉測試後,建議安排離峰的時間進行實際的熱備援操演,也就是直接對於目前擔任主動節點的vCenter Server虛擬機器強制關機,並觀察是否能夠同樣完成故障移轉任務,以及計算復原過程所需花費的時間。
其實,在vCenter HA叢集下無論是哪一個節點無法連線,都會在vCenter Server的「監控」→「問題和警示」→「觸發的警示」頁面中,如圖27所示出現「vCenter HA叢集健全狀況警示」訊息,其中的內容說明便是「vCenter HA cluster state is currently degraded」,也就是vCenter HA目前已處於降級狀態。
除了觸發的警示訊息外,當再次回到vCenter HA的頁面時,也會如圖28所示看到降級狀態下的相關錯誤訊息。這些訊息包括了vCenter HA叢集已遺失節點、PostgreSQL複寫不在進行中、應用裝置configuration處於not replicating。在上述的狀態下,vCenter HA將無法進行自動和手動的容錯移轉。
以下說明不同節點發生失敗時所造成的降級狀態:
‧當主動節點失敗:此時系統將自動與被動節點進行容錯移轉,讓被動節點成為主動節點來繼續運行。在修復好的節點恢復上線上後,將會自動成為被動節點繼續同步運行。
‧當被動節點失敗:雖然主動節點會繼續運行,但已無法進行容錯移轉,只要被動節點再度恢復上線狀態,將會自動連接主動節點並恢復同步狀態。
‧當見證節點失敗:如圖29所示,此節點的失敗,僅會讓系統無法進行容錯移轉,但是主動節點和被動節點之間的複寫任務還會繼續執行。
如果只是發生PostgreSQL資料庫複寫不在進行中的錯誤,則管理員仍可以透過手動方式來執行容錯移轉,至於可能的原因是,被動節點目前無法經由vCenter HA網路來連接,此時需要檢查的就是被動節點的虛擬機器是否正在啟動狀態下,以及它與主動節點的網路連線是否正常,包括網路回應的延遲時間必須低於10毫秒(ms)。一旦主動節點與被動節點恢復資料同步,vCenter HA叢集會便回到健全運行狀態。
無論是發生被動節點,還是見證節點的遺失,只要該虛擬機器已經完全無法正常啟動時,管理員便可以在vCenter HA的頁面中,針對所遺失的叢集節點來點選「重新部署」超連結。以見證節點的遺失為例,執行後將會開啟「重新部署見證節點」頁面,如圖30所示,接著只要依序完成名稱和資料夾、計算資源、儲存區以及網路的設定,便可以迅速完成此節點的重建任務。
變更vCenter HA運行狀態
在vCenter HA正常運行的狀態下,主動節點與被動節點之間的資料庫以及組態設定檔案將進行同步與複寫,並且會在主動節點發生故障時自動進行伺服器角色的交換,也就是讓被動節點的vCenter Server開始進行相關服務的啟動,然後再次恢復上線狀態。在容錯執行的過程中,管理員會發現vSphere Client網站暫時無法連線使用,直到vCenter Server的相關必要服務啟動完成為止。
除了自動與手動的容錯移轉外,在某些時候可能需要將vCenter HA設定進入維護模式,例如vCenter Server主機硬體的升級或韌體更新。當vCenter HA進入維護模式狀態下,主動節點與被動節點將不會在此期間自動進行伺服器角色的交換,即使被動節點與見證節點無法正常連線,主動節點的服務仍可繼續正常運行。
如何變更vCenter HA的運行狀態呢?很簡單,只要在vCenter Server管理節點的「設定」→「vCenter HA」頁面中按下〔編輯〕按鈕,即可如圖31所示在「編輯vCenter HA」頁面中,點選「維護模式」並按下〔確定〕按鈕。
除了維護模式外,還可以依照實際現況的需要來選擇「停用vCenter HA」配置,一旦成功完成停用後,系統將繼續保存目前的vCenter HA設定,但不會提供複寫同步與故障移轉功能。
結語
任何網路系統的架構只要談論到有關於帳號、密碼以及資源的集中控管,就需要有一台負責集中控管的伺服器,否則帳號、密碼、資源以及各項政策的管理就沒有一個專門處理的資料庫與服務。vCenter Server就如同Windows網路中的AD網域控制站一樣,在中大型以上的網路中確實需要部署多台主機,除了可解決即時備援的問題外,對於擁有多點分支營運的企業網路來說,還可以解決在地就近連線管理與分權維運的需求。
此外,對於企業IT的管理員而言,若進一步也讓vCenter Server加入Active Directory的網域中,在平日的vSphere維運工作中,就能夠直接使用Active Directory帳號來連線登入管理整個vSphere的所有ESXi主機、叢集、網路、儲存區以及虛擬機器等資源,即便未來發生vCenter Server與Active Directory的連線故障問題,依舊可以使用vSphere本身的管理帳號,繼續管理虛擬化平台中的所有運行功能。
<本文作者:顧武雄,Microsoft MVP 2004-2016、MCITP與MCTS認證專家、台灣微軟Technet、TechDays、Webcast、MVA特約資深顧問講師、VMware vExpert 2016-217、IBM Unified Communications/Notes/Domino/Connections Certified。>