200902112240安裝Windows 2008 Failover Cluster時出現"Fail:Validate SCSI-3 Persistent Reservation"的錯誤!

Microsoft Windows Server 2008推出到現在,相信很多人都試著想在公司舊有或現有的 SAN或是 iSCSI的磁碟儲存陣列上安裝 Windows 2008 Failover Cluster。很多 IT專業人員在早前便已經在 Windows Server 2003上的 MSCS都累積了相當多的安裝經驗,於是便依循之前的經驗及與 Windows 2003 MSCS相同的架構與設備,想要將 Windows 2008 Failover Cluster建置起來。

但是卻常常遇到在安裝容錯移轉叢集中,執行驗證設定精靈時,發生「Fail:Validate SCSI-3 Persistent Reservation」的錯誤,而無法繼續安裝下去。如同下圖所示:

即使是進入看詳細的錯誤資訊,還是不知道是為啥麼錯誤?

和先前的 Windows 2003的叢集 (MSCS)版本相比,Windows Server 2008的容錯移轉叢集 (Failover Cluster)中增強了對共用儲存裝置的整合,提供了更好的功能與可靠性。主要的改進包括了:

  1. 動態新增磁碟資源:資源於線上 (Online)時的資源相依性可以修改,這代表系統管理員可以提供額外的磁碟,而不需要中斷將要使用它的應用程式。
  2. 資料共用儲存裝置的效能和穩定性的改善:Windows Server 2008 包含增強的機制來使用 Persistent Reservations 和一個可管理共用磁碟的全新演算法。它不再使用先前版本所使用的 SCSI Bus Resets,因為這個方式可能中斷以及破壞你的儲存網路環境 (SAN)。透過 Windows Server 2008 中的容錯移轉叢集,磁碟絕不會在未保護的狀態下離線,這代表共用儲存裝置的磁碟區損毀的風險將會降低。容錯移轉叢集也支援改良的磁碟發現和復原方法。所以,Windows 2008的容錯移轉叢集 (Failover Cluster),對共用儲存裝置有下列要求:
    • 僅支援三種共用儲存裝置連線:SAS、iSCSI 和光纖通道 (FC),不再支援傳統的Parallel SCSI。
    • 共用的磁碟儲存陣列必須符合 SCSI-3的規範。
    • 共用的磁碟儲存陣列必須支援"Persistent Reservations"。
    • 所有節點的HBA (Host Bus Adapters)必須使用 Storport模式的驅動程式。
    • 所有儲存廠商的多重路徑軟體必須以 Microsoft MPIO標準為基礎,並且通過叢集認證以及必須被列在 Windows Server Catalog上。
    • 儲存廠商的 Device Specific Module (DSM)模組也通過叢集認證,並且由 DSM來負責處理所有路徑下登錄或未登錄的 Persistent Reservations需求。
  3. 更容易的磁碟維護:「維護模式」已大幅改善,因此系統管理員可以更輕鬆地執行工具來檢查、修復、備份或還原磁碟,而且叢集的損毀率也因此降低了。

那麼啥麼是SCSI-3 Persistent Reservations呢?

Symantec在其文件中有段解釋 (http://sfdoccentral.symantec.com/sf/5.0/solaris64/html/vcs_install/ch_vcs_install_iofence4.html),茲翻譯如下:
SCSI-3持續保留 (SCSI-3 Persistent Reservations)是被用來作為I/O存取的阻絕防護,以及解決在叢集儲存區域網路環境中使用先前 SCSI保留 (reservations)指令所造成的問題。SCSI-3 PR可以使得叢集中的多個節點可以去存取一個共用儲存裝置,並且同時阻斷其他節點的存取。
SCSI-3的保留 (reservations)指令是會持續的橫跨整個 SCSI匯流排重置 (SCSI bus reset)的程序,並且支援從主機到磁碟機的多重路徑存取能力。對比之下,只有唯一一台主機可以在單一路徑下使用早期的 SCSI-2的 (reservations)指令。因為考量到資料的完整性,假如當阻斷一個儲存裝置存取的需求形成時,只有一個節點下的一條路徑可以保持線上運作 (Active)的狀態。於是在多個節點有同時讀取與寫入控制行為的大型叢集架構的要求下,使得不完善的 SCSI-2保留 (reservations)指令被淘汰掉了。

早期的 Windows 2003使用的是 SCSI-2的指令集,而到 Windows 2008時,則進化到使用 SCSI-3的指令集,包含有:

  • Vital product data (VPD) with Identifier Type 2 (EUI-64 based), 3 (NAA), or 8
  • PERSISTENT RESERVE IN Read Keys (00h)
  • PERSISTENT RESERVE IN Read Reservation (01h)
  • PERSISTENT RESERVE OUT Reserve (01h)
    • Scope:  LU_SCOPE (0h)
    • Type:  Write Exclusive – Registrants Only (5h)
  • PERSISTENT RESERVE OUT Release (02h)
  • PERSISTENT RESERVE OUT Clear  (03h)     
  • PERSISTENT RESERVE OUT Preempt  (04h)
  • PERSISTENT RESERVE OUT Register AND Ignore Existing Key (06h) 

所以,SCSI-3持續保留 (SCSI-3 Persistent Reservations)的機制提供了對共享儲存邏輯磁碟區 (LUN)的存取控制與協調的 SCSI-3標準指令集。使得磁碟儲存陣列可以整合到多節點的叢集解決方案中,以增強可用性,擴充性和更好的效能。在業界大多數較先進的叢集系統或叢集軟體早已支援此功能及穩定性較好的 SCSI-3持續保留 (SCSI-3 Persistent Reservations)指令集,如:Tru64的TruCluster、Orcale的Real Application Cluster (RAC),以及 Symantec Veritas Cluster Server等。

這時候可能很多人會說,我詢問過我們公司的磁碟儲存陣列廠商,廠商說公司用的這款磁碟陣列有支援 SCSI-3 PR啊!可是在安裝Windows 2008 Failover Cluster還是會出現「Fail:Validate SCSI-3 Persistent Reservation」的錯誤,而且遍尋不著解決的方法。

會發生這樣的問題,一般而言,可能是你的叢集架構下,共享的磁碟儲存陣列採用的是多重路徑存取機制。我們剛剛有提過 Windows 2008 Failover Cluster下有一些要求,其中有一項便是在 MPIO多重路徑架構下由 Device Specific Module (DSM)模組來負責處理所有路徑下登錄或未登錄的 Persistent Reservations需求。由下面這張圖,大家就可以明白 DSM如何處理 PR的需求。

而 Windows 2008 Failover Cluster也採用了新的叢集架構,如下圖所示:

新的架構最大的變動便是 ClusDisk.sys不再負責邏輯磁碟區 (LUN)的阻斷防護工作。

所以此時各位應該去啟用多重路徑架構的叢集環境中每一個節點的 Device Specific Module (DSM)模組裡的持續保留 (Persistent Reservations)的功能。在這裡以惠普科技的 EVA企業級磁碟儲存陣列來實作說明:

  1. 在每一叢集節點,安裝 HP MPIO DSM for EVA模組,以支援多重路徑存取機制。
  2. 在檔案總管下,至 HP MPIO DSM for EVA模組的安裝路徑下。
  3. 點擊下列的登錄檔 (其路徑取決於節點所安裝的作業系統版本)
    • Windows Server 2008 (32 bit):
      <install dir>\x86\hpeaadsm_pr_on.reg
    • Windows Sever 2008 x64 Edition:
      <install dir>\amd64\hpeaadsm_pr_on.reg
    • Windows Server 2008 IA64 Edition:
      <install dir>\ia64\hpeaadsm.reg
      此處的<install dir>為 HP MPIO DSM for EVA的安裝路徑,預設為:%Program Files%\Hewlett-Packard\HP MPIO DSM\EVA DSM,且在 Windows 2008 Failover Cluster,針對叢集所共享的邏輯磁碟區 (LUN)預設其負載分享政策 (Load balance policy)是啟動的
  4. 修改完登錄值之後,重新開機以套用登錄值。
  5. 重複上述步驟至叢集中每一個節點。

其實這個登錄檔,就是在你的叢集節點的系統上,針對你的儲存系統廠商所提供標準的Microsoft MPIO的 DSM模組,去啟用 SCSI-3持續保留 (Persistent Reservations)的功能,以 HP的 EVA為例,就是在下列的登錄檔路徑中:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hpxpdsm\Parameters]
更改或加入下面的機碼以及機碼值:
"UsePersistentReservations"=dword:00000001
即可啟動 DSM模組裡的 SCSI-3持續保留 (Persistent Reservations)的功能。

如此,你的節點系統便可以通過驗證設定精靈的驗證,順利安裝Windows 2008 Failover Cluster了。

回應

極端情緒的雙魚
一對兒女的拔拔

不夠溫柔的老公
但這就是我

關鍵字
funP哈部落
累積 | 今日
loading......
    沒有新回應!