共用 Azure 受控磁碟

適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集 ✔️ 統一擴展集

Azure 共用磁碟是 Azure 受控磁碟的功能,可讓您同時同時將 Azure 管理的磁碟連結到多部虛擬機器 (VM)。 將受控磁碟連結到多部 VM 可讓您部署新的或移轉現有叢集應用程式到 Azure。

共用磁碟需要叢集管理員 (例如 Windows Server 容錯移轉叢集 (WSFC) 或 Pacemaker) 來處理叢集節點通訊,以及寫入鎖定。 共用的受控磁碟本身並不提供可以使用 SMB/NFS 來存取的完全受控檔案系統。

運作方式

叢集中的 VM 可以根據使用 SCSI 持續保留 (SCSI PR) 的叢集應用程式所選擇的保留,來讀取或寫入其連結的磁碟。 SCSI PR 是一種業界標準,可供在內部部署的存放區域網路 (SAN) 上執行的應用程式使用。 在受控磁碟上啟用 SCSI PR 可讓您依情況將這些應用程式移轉至 Azure。

共用的受控磁碟提供可從多個 VM 存取的共用區塊存放裝置,這些儲存體會公開為邏輯單元編號 (LUN)。 然後,LUN 會從目標 (磁碟) 呈現給啟動器 (VM)。 這些 LUN 看起來像是直接連接存放裝置 (DAS) 或 VM 的本機磁碟磁碟機。

限制

一般限制

無論磁碟類型為何,共用磁碟都有適用於全部共用磁碟的一般限制。 以及僅適用於特定共用磁碟類型的其他限制。 下列清單是一般限制的清單:

  • 目前,只能使用 Ultra 磁碟、進階 SSD v2、進階 SSD 和標準 SSD 作為共用磁碟
  • 共用磁碟可以連結至個別虛擬機器擴展集,但無法在虛擬機器擴展集模型中定義或自動部署
  • 共用磁碟無法展開,而不需要解除分配磁碟所連結的全部 VM,或將磁碟與全部這些 VM 中斷連結
  • 共用磁碟不支援寫入加速器
  • 共用磁碟不支援主機快取

每個已啟用共用磁碟的受控磁碟也會受限於下列限制,以下依磁碟類型分類:

Ultra 磁碟

Ultra 磁碟有著與共享磁碟無關的個別限制清單。 如需 Ultra 磁碟限制的資訊,請參閱使用 Azure Ultra 磁碟

在共用 Ultra 磁碟時,它們有著下列額外限制:

進階 SSD v2

進階 SSD v2 受控磁碟有所屬的個別限制清單,與共用磁碟無關。 若要了解這些限制,請參閱進階 SSD v2 限制

在共用進階 SSD v2 磁碟時,其具有下列額外限制:

進階 SSD

標準 SSD

作業系統需求

共用磁碟支援數個作業系統。 請針對所支援的作業系統來參閱 WindowsLinux 小節。

計費影響

當您共用磁碟時,計費可能會因為兩種不同的方式而受到影響 (視磁碟類型而定)。

對於共用的進階 SSD 磁碟,除了磁碟層級的成本之外,還有額外費用會隨著掛接 SSD 的每個 VM 而增加。 如需詳細資訊,請參閱受控磁碟定價

每個掛接 Ultra 磁碟的 VM 不會有額外費用。 這些磁碟會以磁碟設定的 IOPS 和 MB/s 總數來計費。 一般而言,Ultra 磁碟有兩個效能節流,用來決定其 IOPS/MB/s 總數。 不過,當設定為共用 Ultra 磁碟時,則會另外公開兩個效能節流 (總計為四個)。 這兩個額外的節流可透過增加費用來提高效能,而且每個計量都有預設值,這會增加磁碟的效能和成本。

共用 Ultra 磁碟具備的四個效能節流是 diskIOPSReadWrite, diskMB/sReadWrite, diskIOPSReadOnly 及 diskMB/sReadOnly。 每個效能節流都可以設定以變更磁碟的效能。 共用 Ultra 磁碟的效能會以下列方式計算:已佈建的 IOPS 總計 (diskIOPSReadWrite + diskIOPSReadOnly),以及佈建的輸送量 MB/s 總計 (diskMB/sReadWrite + diskMB/sReadOnly)。

一旦您決定佈建的 IOPS 總計和佈建輸送量總計之後,就可以用來在定價計算機中判斷 Ultra 共用磁碟的成本。

磁碟大小

目前只有 Ultra 磁碟、進階 SSD v2、進階 SSD 和標準 SSD 可以啟用共用磁碟。 不同的磁碟大小可能會有不同的 maxShares 限制,您在設定 maxShares 時無法超過此值。

針對每個磁碟,您可以定義 maxShares 值,其代表可同時共用磁碟的節點數目上限。 例如,如果您打算設定有 2 個節點的容錯移轉叢集,您會設定 maxShares=2。 最大值是向上的最大限值。 只要節點數目低於指定的 maxShares 值,節點就可以加入或離開叢集 (掛接或卸載磁碟)。

注意

只有在磁碟從所有節點中斷連結時,才能設定或編輯 maxShares 值。

進階 SSD 範圍

下表說明了進階 SSD 的允許最大 maxShares 值,以大小區分:

磁碟大小 maxShares 限制
P1、P2、P3、P4、P6、P10、P15、P20 3
P30、P40、P50 5
P60、P70、P80 10

磁碟的 IOPS 和頻寬限制不會受到 maxShares 值的影響。 例如,P15 磁碟的最大 IOPS 是 1100,不論 maxShares = 1 或 maxShares > 1 都一樣。

標準 SSD 範圍

下表說明了標準 SSD 的允許最大 maxShares 值,以大小區分:

磁碟大小 maxShares 限制
E1、E2、E3、E4、E6、E10、E15、E20 3
E30、E40、E50 5
E60、E70、E80 10

磁碟的 IOPS 和頻寬限制不會受到 maxShares 值的影響。 例如,E15 磁碟的最大 IOPS 是 500,不論 maxShares = 1 或 maxShares > 1 都一樣。

Ultra 磁碟範圍

maxShares 的最小值為 1,maxShares 的最大值為 15。 Ultra 磁碟沒有任何大小上的限制,任何大小的 Ultra 磁碟都可以針對 maxShares 設定任何值,直到並包含最大值。

進階 SSD v2 範圍

maxShares 的最小值為 1,maxShares 的最大值為 15。 進階 SSD v2 磁碟沒有任何大小上的限制,任何大小的進階 SSD v2 磁碟都可以針對 maxShares 設定任何值,直到並包含最大值。

範例工作負載

Windows

Windows Server 2008 和更新版本支援 Azure 共用磁碟。 大部分以 Windows 為基礎的叢集建置於 WSFC 上,可處理叢集節點通訊的所有核心基礎結構,讓您的應用程式能夠利用平行存取模式。 WSFC 會根據您的 Windows Server 版本,啟用 CSV 和非 CSV 的選項。 如需詳細資訊,請參閱建立容錯移轉叢集

WSFC 上執行的一些熱門應用程式包括:

Linux

Azure 共用磁碟支援用於:

Linux 叢集可以使用叢集管理員,例如 Pacemaker。 Pacemaker 是以 Corosync 為基礎,可針對部署在高可用性環境中的應用程式啟用叢集通訊。 一些常見的叢集檔案系統包括 ocfs2gfs2。 您可以使用 SCSI 持續性保留 (SCSI PR) 和/或 STONITH 區塊裝置 (SBD) 型叢集模型,以仲裁磁碟的存取權。 在使用 SCSI PR 時,您可以使用公用程式 (例如 fence_scsisg_persist) 來操作保留和註冊。

持續性保留流程

下圖說明一個範例 2 節點的叢集資料庫應用程式,它使用 SCSI PR 來啟用從一個節點到另一個節點的容錯移轉。

由 Azure VM1、VM2 和兩者之間共用的磁碟組成的兩個節點叢集。在叢集上執行的應用程式會處理對磁碟的存取。

流程如下︰

  1. 在 Azure VM1 和 VM2 上執行的叢集應用程式會註冊其意圖,以讀取或寫入磁碟。
  2. 然後,VM1 上的應用程式執行個體會取得獨佔保留以寫入磁碟。
  3. 系統會在您的 Azure 磁碟上強制執行此保留,而資料庫此時可獨佔寫入磁碟。 從 VM2 上的應用程式執行個體進行的任何寫入都不會成功。
  4. 如果 VM1 上的應用程式執行個體停止運作,VM2 上的執行個體此時可以起始資料庫容錯移轉和磁碟的接管。
  5. 此保留專案此時已在 Azure 磁碟上強制執行,且磁碟將不再接受來自 VM1 的寫入。 如此只會接受來自 VM2 的寫入。
  6. 叢集應用程式可以完成資料庫容錯移轉,並提供來自 VM2 的要求。

下圖說明另一個常見的叢集工作負載,其中包含多個從磁碟讀取資料以執行平行處理的節點,例如機器學習模型的定型。

四個節點 VM 叢集,每個節點註冊意圖寫入,應用程式接受獨佔保留以正確處理寫入結果

流程如下︰

  1. 在所有 VM 上執行的叢集應用程式會註冊其意圖,以讀取或寫入磁碟。
  2. 在開啟其他 VM 的磁碟讀取時,VM1 上的應用程式執行個體會取得獨佔保留以寫入磁碟。
  3. 系統會在您的 Azure 磁碟上強制執行此保留。
  4. 叢集中的所有節點此時都可以從磁碟讀取。 只有一個節點會代表叢集中的所有節點,將結果寫回磁碟。

Ultra 磁碟和進階 SSD v2 保留流程

Ultra 磁碟和進階 SSD v2 受控磁碟都提供兩個額外的節流,每個節流總共提供四個節流。 因此,保留流程可以如先前章節中所述的方式來執行,也可以便更精確地調節和散發效能。

數據表的影像,描述保留持有者、已註冊和其他專案的 『ReadOnly』 或 'Read/Write' 存取權。

效能節流

進階 SSD 效能節流

使用進階 SSD 時,會有固定的磁碟 IOPS 和輸送量,例如 P30 的 IOPS 是 5000。 不論是跨 2 部 VM 還是 5 部 VM 來共用磁碟,此值都會一樣。 您可以從單一 VM 達到磁碟限制,也可以跨兩部以上的 VM 來達到此限制。

Ultra 磁碟和進階 SSD v2 效能節流

Ultra 磁碟和進階 SSD v2 受控磁碟都有獨特的功能,可讓您藉由公開可修改的屬性並允許您修改它們來設定效能。 根據預設,只有兩個可修改的屬性,但共用的 Ultra 磁碟和共用進階 SSD v2 受控磁碟還有兩個屬性。 Ultra 磁碟和進階 SSD v2 會跨每個連結的 VM 分割這些屬性。 如需此容量、IOPS 及輸送量分佈運作方式的一些範例,請參閱範例一節。

屬性 描述
DiskIOPSReadWrite (讀取/寫入磁碟 IOPS) 所有 VM 上允許的 IOPS 總數,以寫入權限掛接共用磁碟。
DiskMB/sReadWrite (讀取/寫入磁碟輸送量) 所有 VM 上允許的總輸送量 (MB/s),以寫入權限掛接共用磁碟。
DiskIOPSReadOnly* (唯讀磁碟 IOPS) 將共用磁碟掛接為 ReadOnly 的所有 VM 允許的 IOPS 總數。
DiskMB/sReadOnly* (唯讀磁碟輸送量) 將共用磁碟掛接為 ReadOnly 的所有 VM 允許的總輸送量 (MB/s)。

* 僅適用於共用 Ultra 磁碟和共用進階 SSD v2 受控磁碟

下列公式說明如何設定效能屬性,因為這些是使用者可修改的屬性:

  • DiskIOPSReadWrite (讀取/寫入磁碟 IOPS):
    • 對於 100 GiB 及更小的磁碟,基準最小 IOPS 為 100。
      • 對於大於 100 GiB 的磁碟,您可以為每個 GiB 設定的基準最小 IOPS 增加 1。 因此,您可以為 101 GiB 磁碟設定 DiskIOPSReadWrite 的最低值為 101 IOPS。
    • 您可以設定此屬性的最大值取決於磁碟大小、公式為 300 * GiB,最多 400,000 個。
  • DiskMB/sReadWrite (讀取/寫入磁碟輸送量)
    • 此屬性的最小輸送量 (MB/秒) 是由您的 IOPS 決定,公式為每 IOPS 每秒 4 KiB。 因此,如果您有 101 IOPS,您可以設定的最小 MB/秒為 1。
    • 您可以設定此屬性的最大值取決於您設定的 IOPS 數量,公式為每 IOPS 每秒 256 KiB,最多 10,000 MB/秒。
  • DiskIOPSReadOnly (唯讀磁碟 IOPS)
    • 此屬性的最小基準 IOPS 為 100。 針對 DiskIOPSReadOnly,基準不會隨著磁碟大小而增加。
    • 您可以設定此屬性的最大值取決於磁碟大小、公式為 300 * GiB,最多 400,000 個。
  • DiskMB/sReadOnly (唯讀磁碟輸送量)
    • 此屬性的最小輸送量 (MB/秒) 為 1。 針對 DiskMB/sReadOnly,基準不會隨著 IOPS 而增加。
    • 您可以設定此屬性的最大值取決於您設定的 IOPS 數量,公式為每 IOPS 每秒 256 KiB,最多 10,000 MB/秒。

範例

下列範例說明一些示範節流如何與共享的 Ultra 磁碟具體搭配使用的案例。

使用叢集共用磁碟區的兩個節點叢集

以下是使用叢集共用磁碟區的 2 節點 WSFC 範例。 使用此設定時,這兩個 VM 會同時對磁碟進行寫入存取,這會導致兩個 VM 上的 ReadWrite 節流被分割,而未使用 ReadOnly 節流。

CSV 兩個節點 Ultra 範例

沒有叢集共用磁碟區的 2 節點叢集

以下是未使用叢集共用磁碟區的 2 節點 WSFC 範例。 使用此設定時,只有一個 VM 具有磁碟的寫入存取權。 這會導致主要 VM 僅使用 ReadWrite 節流,而只有次要資料庫才使用 ReadOnly 節流。

CSV 兩個節點沒有 csv Ultra 磁碟範例

4 節點的 Linux 叢集

以下範例是具有單一寫入器和三個向外延展讀取器的 4 節點 Linux 叢集。 使用此設定時,只有一個 VM 具有磁碟的寫入存取權。 這會導致只有主要 VM 使用 ReadWrite 節流,而次要的 VM 會分割 ReadOnly 節流。

四個節點 Ultra 節流範例

共用 Ultra 磁碟和進階 SSD v2 定價

共用 Ultra 磁碟和共用進階 SSD v2 受控磁碟都是依據佈建的容量、佈建的 IOPS 總計 (diskIOPSReadWrite + diskIOPSReadOnly) 和佈建的輸送量 MB/秒總計 (diskMB/sReadWrite + diskMB/sReadOnly) 定價。 每個額外的 VM 掛接則不會再收費。 例如,具有下列設定的共用 Ultra 磁碟 (diskSizeGB:1024、DiskIOPSReadWrite:10000、DiskMB/sReadWrite:600、DiskIOPSReadOnly:100、DiskMB/sReadOnly:1) 會收取 1024 GiB、10100 IOPS 和 601 MB/s 的費用 (不論其掛接到兩部 VM 還是五部 VM)。

下一步

如果您有興趣啟用和使用受控磁碟的共用磁碟,請繼續閱讀啟用共用磁碟一文

如果您有其他問題,請參閱常見問題的共用磁碟一節。