在 Azure Elastic SAN 上部署叢集應用程式
Azure 彈性 SAN 磁碟區可以同時連結至多個計算用戶端,讓您將叢集應用程式部署或移轉至 Azure。 您需要使用叢集管理員來共用彈性 SAN 磁碟區,例如 Windows Server 故障轉移叢集 (WSFC),或是 Pacemaker。 叢集管理員會處理叢集節點通訊和寫入鎖定。 彈性 SAN 本身並不提供可透過 SMB 或 NFS 存取的完整受控文件系統。
當成共用磁碟區使用時,彈性 SAN 磁碟區可以跨可用性區域或區域共用。 將本機備援記憶體 SAN 中的磁碟區跨區域共用會降低效能,因為磁碟區與用戶端之間的延遲增加。
限制
- 彈性 SAN 連線指令碼可用來將共用磁碟區連結至虛擬機器擴展集的虛擬機器,或是可用性設定組中的虛擬機器。 不支援容錯網域對齊。
- 共用磁碟區支援的工作階段數目上限為 128 個。
- 個別用戶端可以針對個別磁碟區建立多個工作階段,藉此提高效能。 例如,如果您在每個用戶端上建立 32 個工作階段,則只有四個用戶端可以連線到單一磁碟區。
如需查看彈性 SAN 的其他限制,請參閱 Azure 記憶體支援功能。
運作方式
彈性 SAN 共用磁碟區採用 SCSI-3 持續性保留,允許啟動器 (用戶端) 控制共用彈性 SAN 磁碟區的存取權。 此通訊協定可讓啟動器保留對彈性 SAN 磁碟區的存取權、限制其他啟動器對寫入 (或讀取) 的存取權,且依預設會將磁碟區上的保留狀態持續到在工作階段存留期之後。
在叢集案例中,SCSI-3 PR 是維護共用磁碟區內資料一致性和完整性的關鍵設定。 叢集中的計算節點可以根據叢集應用程式所選擇的保留,讀取或寫入其連結的彈性 SAN 磁碟區。
持續性保留流程
下圖展示一個 2 個節點的叢集資料庫應用程式範例,該應用程式使用 SCSI-3 PR 來支援從一個節點到另一個節點的容錯移轉。
流程如下︰
- 在 Azure VM1 和 VM2 上執行的叢集應用程式會註冊其意圖,以讀取或寫入彈性 SAN 磁碟區。
- 然後,VM1 上的應用程式執行個體會取得獨佔保留以寫入磁碟區。
- 系統會在您的磁碟區上強制執行此保留,而資料庫此時可獨佔寫入磁碟區。 從 VM2 上的應用程式執行個體進行的任何寫入都會失敗。
- 如果 VM1 上的應用程式執行個體停止運作,VM2 上的執行個體便可起始資料庫容錯移轉並接管磁碟區。
- 系統現在會在磁碟區上強制執行此保留,且不接受來自 VM1 的寫入。 磁碟區只接受來自 VM2 的寫入。
- 叢集應用程式可以完成資料庫容錯移轉,並提供來自 VM2 的要求。
下圖說明另一個常見的叢集工作負載,其中包含多個從彈性 SAN 磁碟區讀取資料以執行平行處理的節點,例如機器學習模型的定型。
流程如下︰
- 在所有 VM 上執行的叢集應用程式會註冊其意圖,以讀取或寫入彈性 SAN 磁碟區。
- 在開啟其他 VM 的磁碟區讀取時,VM1 上的應用程式執行個體會取得獨佔保留以寫入磁碟區。
- 系統會在磁碟區上強制執行此保留。
- 叢集中的所有節點此時都可以從磁碟區讀取。 只有一個節點會代表叢集中的所有節點,將結果寫回磁碟區。
支援的 SCSI PR 命令
彈性 SAN 磁碟區支援下列命令:
若要與磁碟區互動,請從適當的持續性保留動作開始:
- PR_REGISTER_KEY
- PR_REGISTER_AND_IGNORE
- PR_GET_CONFIGURATION
- PR_RESERVE
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE_RESERVATION
在使用 PR_RESERVE、PR_PREEMPT_RESERVATION 或 PR_RELEASE_RESERVATION 時,請提供下列其中一個持續性保留類型:
- PR_NONE
- PR_WRITE_EXCLUSIVE
- PR_EXCLUSIVE_ACCESS
- PR_WRITE_EXCLUSIVE_REGISTRANTS_ONLY
- PR_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY
- PR_WRITE_EXCLUSIVE_ALL_REGISTRANTS
- PR_EXCLUSIVE_ACCESS_ALL_REGISTRANTS
持續性保留類型會決定叢集中每個節點對磁碟區的存取權。
持續性保留類型 | 保留持有者 | 已註冊 | 其他 |
---|---|---|---|
NO RESERVATION (無保留) | N/A | 讀寫 | 讀寫 |
WRITE EXCLUSIVE (獨佔寫入) | 讀寫 | 唯讀 | 唯讀 |
EXCLUSIVE ACCESS (獨佔存取) | 讀寫 | 無存取權 | 無存取權 |
WRITE EXCLUSIVE - REGISTRANTS ONLY (獨佔寫入 - 僅限登錄者) | 讀寫 | 讀寫 | 唯讀 |
EXCLUSIVE ACCESS - REGISTRANTS ONLY (獨佔存取 - 僅限登錄者) | 讀寫 | 讀寫 | 無存取權 |
WRITE EXCLUSIVE - ALL REGISTRANTS (獨佔寫入 - 所有登錄者) | 讀寫 | 讀寫 | 唯讀 |
EXCLUSIVE ACCESS - ALL REGISTRANTS (獨佔存取 - 所有登錄者) | 讀寫 | 讀寫 | 無存取權 |
使用下列類型時,您需要一併提供持續性保留金鑰:
- PR_RESERVE
- PR_REGISTER_AND_IGNORE
- PR_REGISTER_KEY
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE-RESERVATION