05: 什麼是WSFC以及如何修復ESXi啟動時間長的問題
歡迎轉載,請註明出處!
正文:
Windows ServerFailover Clusters(WSFC),以前稱為MicrosoftCluster Service(MSCS),是Windows Server的一種群集技術,允許在群集配置中運行多個Windows Server。有許多用例可以使用像SQL database,DFS namespace, file server這樣的高可用性配置......當虛擬化沒有像現在廣泛使用時,Windows群集是最常用的方式。你可以在高可用中運行多個物理伺服器,這對於服務來說是很重要的。vSphere已經提供了運行虛擬Windows故障轉移群集節點的可能性,最新版本的vSphere甚至還包括在節點運行時將節點遷移到另一台主機的能力。
在本文中,我們將重點介紹虛擬化Windows群集的存儲方面以及它如何影響ESXi主機的啟動時間。
技術背景
VMFS背景
,在VMFS版本3中,只要虛擬機想要寫入存儲在數據存儲上的磁碟,ESXi主機就會在LUN本身上發出SCSI-3預留,從而阻止任何其他主機同時寫入,從而導致延遲對環境的關注。這種鎖定機制在VMFS 5中被per-vmdk鎖替換,允許多個主機同時寫入同一數據存儲。任何SCSI-3預留命令都將被文件系統(VMFS 5)攔截和刪除。
WSFC / MSCS共享磁碟
,
MSCS的故障轉移機制依賴於對數據使用共享卷和稱為仲裁的較小共享卷,該共享卷用於確定群集的運行狀況。每個群集角色都有一個活動節點,其他是被動節點,等待計劃內或計劃外故障轉移時接管。Windows群集的一個細節是主動節點在共享卷(因此LUN)上保留持久的SCSI-3預留。由於我們在前一章中提到的內容,因此需要在物理模式下使用原始設備映射(RDM)磁碟以允許主動節點鎖定LUN。主動節點運行且LUN被鎖定後,其他主機無法寫入,這是為了防止數據損壞。
ESXi啟動時間問題,
作為其引導過程的一部分,ESXi將掃描存儲並嘗試訪問LUN以收集有關它們的信息。現在,就像我們之前建議的那樣,如果WSFC活動節點當前正在對也提供給引導主機的LUN進行鎖定,則它將無法訪問該LUN並繼續嘗試,直到它決定轉移到下一個LUN。。這裡的問題是,在這樣做之前需要相當長的時間,並且你擁有的WSFC啟用LUN越多,ESXi主機完成其啟動順序所需的時間就越長。使用許多RDM啟動可能需要1個多小時,而沒有配置任何或設置正確的設置幾分鐘(稍後會詳細介紹)。
如果在引導序列期間按ALT + F12以顯示vmkernel日誌,將看到如下消息:
如何解決它
我們需要告訴ESXi,MSCS群集中使用的LUN始終是保留的,因此不會嘗試訪問它們。為此,我們將使用esxcli將LUN標記為「
Perennially reserved
」。
請注意,不應在承載VMFS數據存儲的LUN上啟用此標誌。
Shell / SSH
首先找到LUN的規範名稱(naa。)。使用PowerCLI比使用Web客戶端更容易,因為可以看到連接到虛擬機的硬碟的ScsciCanonicalName屬性。
PS> Get-VMMSCS-Node-1 | Get-HardDisk -DiskType RawPhysical | 選擇scsicanonicalname
ScsiCanonicalName ------ naa.60001xxxxxxxxxxxxxxxxxxxxxxxacbc naa.60001xxxxxxxxxxxxxxxxxxxxxxxacbb naa.60001xxxxxxxxxxxxxxxxxxxxxxxacba naa.60001xxxxxxxxxxxxxxxxxxxxxxxacbd naa.60001xxxxxxxxxxxxxxxxxxxxxxxacb9 naa.60001xxxxxxxxxxxxxxxxxxxxxxxacb8
使用SSH或控制台連接ESXi主機
esxcli存儲核心設備setconfig -d naa.id -perennially-reserved =true
如果只有少數主機具有很少的RDM,這種方法很好,但隨著擴展,它會變得非常麻煩。你還需要確定naa的名字。下一種方法使用PowerCLI,效率更高,更不容易出錯。
PowerCLI
更簡單的方法是使用PowerCLI設置Perennially保留標誌。示例下方提供的功能將RDM Hard Disk對象作為參數,因此不存在選擇託管VMFS數據存儲的LUN的風險。該腳本將負責查找規範名稱並使用Get-EsxCLI -V2cmdlet設置標誌。
例1:
將標誌設置為true在所有vSphere主機上匹配MSCS-Node- *的VM的所有RDM LUN。
PS> Set-PerenniallyReserved -PerenniallyReserved $ True -VMHost(Get-VMHost)-HardDisk(Get-VMMSCS-Node- * | Get-HardDisk -DiskType RawPhysical)
例2:
如果僅將RDM磁碟用於MSCS群集,則很可能希望標記群集中存在的任何RDM磁碟的LUN。以下將在所有主機上的所有RDM磁碟上將該標誌設置為true。
PS> Set-PerenniallyReserved -PerenniallyReserved $ True -VMHost(Get-VMHost)-HardDisk(Get-VM |Get-HardDisk -DiskType RawPhysical)
PowerCLI功能
函數集-PerenniallyReserved{
參數(
[Parameter(Mandatory = $true)] [ValidateSet($ True,$ False)] [string] $ PerenniallyReserved,
[參數(Mandatory = $true)] [VMware.VimAutomation.ViCore.Types.V1.Inventory.VMHost []] $ VMHost,
[參數(Mandatory = $true)] [VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.RawHardDisk []] $ HardDisk )
#循環每個主機foreach($ esx in $ VMHost){
寫輸出「 - 處理$($ esx.name)」
#準備esxcli $ EsxCLI = Get-EsxCli -VMHost $ esx -V2
$ ArgList = $EsxCLI.storage.core.device.list.CreateArgs()$ ArgSet = $ EsxCLI.storage.core.device.SetConfig.CreateArgs()$ ArgSet.perenniallyreserved = $ PerenniallyReserved
#循環當前主機foreach中的每個磁碟($ HardDisk中的$ disk){
$ ArgList.device =$ ArgSet.device = $ disk.ScsiCanonicalName
#檢查是否已處於必需狀態,否則更改它$ ErrorActionPreference =「 SilentlyContinue 」 $ PR = $ EsxCLI.storage.core.device.list.Invoke($ ArgList)$ ErrorActionPreference =「Continue」
if($ PR){
#檢查已經PR $ PR = $ PR.IsPerenniallyReserved
if($ PR -eq $PerenniallyReserved){
寫入輸出「$($disk.ScsiCanonicalName)已經處於$($ esx.name)的預期狀態 - 常年保留:$ PR」
} else {
#在lun上設置保留
$ exec = $EsxCLI.storage.core.device.SetConfig.Invoke($ ArgSet)
$ NewPR = $EsxCLI.storage.core.device.list.Invoke($ ArgList).IsPerenniallyReserved
if($ PR -ne $ NewPR){
寫輸出「$($ esx.name) - $($disk.ScsiCanonicalName)保留狀態已更改:$ PR => $ NewPR」
} else {
寫警告「$($ esx.name) - $($disk.ScsiCanonicalName)保留狀態不變:$ PR => $ NewPR」
}
}
} else {
在$($ esx.name)上找不到寫入警告「$($disk.ScsiCanonicalName)」
} }
}
}
基準
以下測試是在具有MSCS群集配置中使用的10個RDM磁碟的主機上完成的。
Perennially reserved |
Initiate reboot |
Host is not responding |
Established a connection |
Reboot time |
TRUE |
15:01:53 |
15:03:45 |
15:08:49 |
00:05:04 |
FALSE |
10:30:07 |
10:31:44 |
11:05:14 |
00:33:30 |
寫在最後的話
正如你所看到的那樣,主機在標誌關閉時需要超過33分鐘才能重新啟動,並且只需要超過5分鐘,標誌就會超過28分鐘。如果有20個主機逐個修補(需要重啟),這將使該過程快9小時30分鐘!
雖然這個問題已經存在了幾年,但對於我們大多數人來說仍然是一個發現,因為不是每個人都使用或者可以使用RDM磁碟。
TIFY致力於IT行業產品、銷售的學習、討論、分享
感謝您的
關注,
您的每一次
分享
,都是最大的鼓勵
長按下圖識別二維碼進入「
微社區
」參與討論更多
學習資料
,請訪問TIFY官方論壇:
www.tify.club
推薦閱讀:
※在整個宇宙中,時間不復存在?
※提升專註力,解決中斷的四步|閃電時間管理8
※什麼時間可以開始拜太歲?該怎麼拜
※【讀片時間】第0477期:上皮樣血管內皮瘤
※哪些忘記的時間