WSFC2012 爲什麼網絡名稱聯機失敗

各位朋友可能在WSFC2012上面安裝羣集角色時經常會碰見網絡名稱聯機失敗的問題,導致羣集應用沒有配置成功,最終應用不會正常對外提供服務,例如SQL Server,DTC,一些時候即便是重裝也不能解決,那麼到底爲什麼會產生這個問題,今天我們就來從頭分析


SQL Server Setup Error

The cluster resource ‘SQL Server’ could not be brought online due to an error bringing the dependency resource ‘SQL Network Name ’ online.


提到這個典型錯誤,如果想徹底理解,就不得不從CNO,VCO講起,本文老王將把這些概念再串起來講一次,力圖讓管理員能夠徹底理解


高可用羣集的一個最關鍵特點,就是要持續對外提供服務,因此需要實現一個邏輯對外名稱,背後由羣集邏輯進行協調,如果當前正在對外提供服務的某節點宕機,自動將用戶對邏輯對外名稱的訪問請求轉移至其它活着的節點上提供,讓用戶始終以爲羣集應用是活着的


這個邏輯對外名稱在微軟WSFC體系中實現爲客戶端訪問點,客戶端訪問點,通常有DNS,CNO,VCO三部分,DNS記錄用於客戶端訪問解析羣集及羣集應用,CNO用於支持羣集連接,羣集Kerberos驗證,VCO用於幫助特定羣集應用實現節點導向


對於一個羣集來說,完整的客戶端訪問點包括羣集DNS記錄+羣集CNO名稱,如果僅使用DNS記錄,例如工作組羣集,多域羣集,將不支持Kerberos驗證。

對於一個羣集應用來說,完整的羣集應用訪問點,包括應用DNS記錄+應用VCO名稱,具體採用什麼級別的應用訪問點,視應用情況而定,例如有的羣集應用可以共用羣集DNS+羣集CNO,則不需要再創建應用訪問點,或者僅需要DNS記錄,或者創建完整應用訪問點,如果羣集應用是完整的應用訪問點,那麼應該是羣集應用在身份驗證,或者故障轉移導向上面有所要求,需要使用單獨的計算機對象實現。


  CNO   Cluster Name Object於WSFC 2008被引入


  1.作爲羣集訪問標識的一部分,管理員或應用可以連接到CNO訪問羣集

  2.負責管理VCO 虛擬機計算機對象的創建,密碼同步,VCO DNS記錄創建維護。

  3.CNO創建完成VCO後會在VCO ACL裏面寫入CNO的權限

  4.CNO會被寫入特定的SPN,應用程序會通過CNO來和羣集完成Kerberos驗證

  5.CNO會被創建和VCO之間的關聯關係,在羣集節點註冊表中可以得到查看

  6.誤刪CNO或VCO對象會導致羣集無法正常聯機,應用無法和羣集進行Kerberos驗證



簡單看了下概念之後下面我們通過實際案例進一步理解,爲什麼網絡名稱無法聯機在WSFC 2008時代很少見,而在WSFC 2012經常看到


最關鍵的答案是CNO對象創建位置原則


在WSFC 2008時代,不論我們的羣集節點計算機對象,在那個OU下面,羣集CNO對象和VCO對象,都只會被創建在默認Computer容器下,除非我們提前在其它OU下面預置了CNO,VCO對象


如圖所示,我已經按照規劃把羣集計算機節點放置在單獨OU下

2018-05-30_211918.png

但是當安裝羣集的時候,WSFC 2008依然會把CNO VCO放置在默認Computers容器2018-05-30_223820.png


又因爲默認計算機容器每個對象都有權創建計算機對象,因此只要創建羣集的賬戶具備Computers的創建計算機對象 及 讀取所有屬性權限 ,CNO對象和VCO對象就可以被正常創建出來,即使CNO已移到不同的OU,VCO還是會在默認計算機容器創建


因此,WSFC 2008時代基本上不會碰見網絡名稱無法聯機的問題,網絡名稱無法聯機,該問題通常就是指CNO或VCO對象,無法在AD中被正常創建,權限不足


爲什麼 WSFC 2012之後經常遇見這個錯誤,答案就是CNO對象創建位置原則發生了改變


最關鍵的兩點


  1. WSFC 2012開始CNO對象將跟隨羣集計算機對象在同一個OU下創建

  2. CNO將跟隨VCO對象在同一個OU下創建

2018-05-30_221748.png

規則改變後帶來什麼影響,好的一面是可以幫助AD計算機對象規範化,不好的一面就是帶來了額外的權限授予工作


設想一下,WSFC 2012中,如果我們將羣集節點計算機對象移到一個新OU下,那麼羣集CNO也將在該OU創建


創建CNO的工作由羣集安裝賬戶完成,因此需要確保羣集安裝賬戶對節點所在OU具備創建計算機對象 及 讀取所有屬性權限  或直接加入domain admins組


CNO創建完成後,緊接着我們需要在上面跑羣集應用,創建VCO,而VCO是由CNO負責創建維護,但是由於不是默認計算機OU,所以CNO對於節點所在OU並沒有權限,因此創建VCO過程會失敗,進而羣集顯示網絡名稱無法聯機。


錯誤呈現如下


2018-05-30_221233.png


2018-05-30_221315.png


解決辦法,針對單獨規劃的羣集OU,添加CNO計算機權限 創建計算機對象讀取所有屬性權限 ,不論是規劃好的全新安裝,或是先安裝好了羣集,然後CNO對象和羣集計算機對象移到了其它OU,都在當前CNO對象所在OU執行此操作。


2018-05-30_221458.png


2018-05-30_221509.png


權限授予完成後,再次啓動羣集角色,問題可解,羣集應用正常聯機


2018-05-30_221550.png


2018-05-30_221612.png


要規避此問題,解決辦法有二


  1. 不做規劃,羣集節點計算機就在默認計算機OU下,這樣CNO和VCO就可以正常聯機,也無需添加CNO權限

  2. 通常情況下企業裏面計算機對象很多,都放在默認計算機OU下面也不好看,不便於管理,因此老王建議爲羣集節點創建單獨OU是應該的,CNO,VCO對象會被創建在關聯的節點OU中也很好,唯獨就是安裝羣集角色時需要單獨授予CNO對象對於OU的權限,如果該OU下面會有很多個羣集的話,老王建議您可以創建一個CNO計算機對象組,將所有剛安裝好的羣集CNO對象都自動加入到組裏面,然後針對於OU授予CNO組的權限,這樣每當創建應用的時候權限都是準備完好的


還有一個問題,羣集名稱資源在DNS中註冊失敗,出於以下原因,羣集網絡名稱資源'SQL Network Name(VirutalClusterName)'註冊一個或多個關聯的DNS名稱失敗


出現這個問題,是因爲CNO對象對於DNS服務器沒有權限而導致,因爲CNO對象負責維護VCO計算機對象和DNS記錄,因此VCO的DNS記錄也將由CNO對象去DNS中註冊創建,出現這個錯誤,就是CNO對象對於DNS區域沒有權限


手動爲CNO添加對DNS區域的 修改權限 創建權限即可,添加完成後,再次脫機聯機羣集角色,問題可解

wKioL1nLfVeC7CBdAAA3SWp8t9o810.png


小技巧,在WSFC中,如果我們刪除羣集角色,則該VCO對象會變成禁用,銷燬羣集,CNO對象會變成禁用,如果我們規劃好羣集OU,看見禁用的CNO和VCO對象,就可以知道,它們是已經被刪除的羣集角色或羣集,可以直接刪除,默認情況下GUI界面銷燬羣集CNO對象爲禁用,如果使用命令Remove-Cluster -CleanupAD銷燬,則可以銷燬過程直接刪除CNO


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章