啟用 Azure 受控磁碟的共用磁碟

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

本文說明如何啟用 Azure 管理磁碟的共用磁碟功能。 透過 Azure 共享磁碟,你可以同時將一個管理磁碟連接到多個虛擬機(VM),從而部署或遷移叢集應用程式到 Azure。

如果你想了解啟用共享磁碟的管理磁碟概念,請參考 Azure 共享磁碟。

必要條件

本文中的指令碼和命令需要:

  • 6.0.0 版或更新版本的 Azure PowerShell 模組。

或

  • 最新版的 Azure CLI。

限制

一般限制

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

  • 目前,只能使用 Ultra 磁碟、進階 SSD v2、進階 SSD 和標準 SSD 作為共用磁碟
  • 共用磁碟可以連結至個別虛擬機器擴展集,但無法在虛擬機器擴展集模型中定義或自動部署
  • 共用磁碟不支援寫入加速器
  • 共用磁碟不支援主機快取

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

Ultra Disks

超強光碟有其獨立的限制清單,與共享光碟無關。 關於 Ultra Disk 的限制,請參考 Using Azure Ultra Disks。

在共享超光碟時,它們有以下額外限制:

進階 SSD v2

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

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

進階 SSD

標準 SSD

受支援的作業系統

共用磁碟支援數個作業系統。 關於支援的作業系統,請參閱概念文章中的 Windows 與 Linux 章節。

磁碟大小

目前僅有超強磁碟、高級 SSD v2、高級 SSD 及標準 SSD 能啟用共用磁碟。 不同的磁碟大小可能會有不同的 maxShares 限制,您在設定 maxShares 時無法超過此值。

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

注意

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

進階 SSD 範圍

下表說明了 Premium 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 Disk 範圍

maxShares 的最小值為 1,maxShares 的最大值為 15。 超大磁碟沒有大小限制,任何尺寸的超大磁碟都可以使用任何值, maxShares最高可達最大值。

進階 SSD v2 範圍

maxShares 的最小值為 1,maxShares 的最大值為 15。 Premium SSD v2 沒有大小限制,任何尺寸的 Premium SSD v2 都可以使用任何值, maxShares最高可達最大值。

部署一顆高級 SSD 作為共用磁碟

若要部署啟用共享磁碟功能的管理磁碟,請將屬性設定 maxShares 為大於 1。 這個設定讓硬碟可以在多個虛擬機間共享。

重要

共用式磁碟不支援主機快取。

只有在從所有 VM 卸載磁碟後,才能設定或變更 maxShares 的值。 請參閱磁碟大小以查看maxShares的允許值。

  1. 登入 Azure 入口網站。

  2. 搜尋並選擇 磁碟。

  3. 選擇 + 建立 以建立新的受控磁碟。

  4. 在 基本 窗格中,選取 區域,然後選取 變更大小。

    建立受管磁碟基礎窗格的截圖,區域設為美國西部,可用性區域設為無,變更大小被高亮標示。

  5. 選擇你想要的高級 SSD 尺寸和 SKU,然後選擇 確定。

    磁碟 SKU 清單截圖,Premium SSD 在本地冗餘儲存和區域冗餘儲存區中被標示出來。

  6. 繼續進行部署,直到您進入 [進階] 窗格為止。

  7. 在啟用 共享磁碟時,選擇 「是」,然後選擇 最大份額數值。

    這是共用磁碟設定的截圖,啟用共用磁碟設定為「是」,最大共享設定為 2。

  8. 選擇 評論 + 創建。

部署標準 SSD 作為共享磁碟

若要部署啟用共享磁碟功能的管理磁碟,請將屬性設定 maxShares 為大於 1。 這個設定讓硬碟可以在多個虛擬機間共享。

重要

共用式磁碟不支援主機快取。

只有在從所有 VM 卸載磁碟後,才能設定或變更 maxShares 的值。 請參閱磁碟大小以查看maxShares的允許值。

  1. 登入 Azure 入口網站。

  2. 搜尋並選擇 磁碟。

  3. 選擇 + 建立 以建立新的受控磁碟。

  4. 在 基本 窗格中,選取 區域,然後選取 變更大小。

    建立受管磁碟基礎窗格的截圖,區域設為美國西部,可用性區域設為無,變更大小被高亮標示。

  5. 選擇你想要的標準 SSD 尺寸和 SKU,然後選擇 確定。

    磁碟 SKU 清單的螢幕擷取畫面,其中已醒目標示本機備援儲存體和區域備援儲存體下的標準 SSD。

  6. 繼續進行部署,直到您進入 [進階] 窗格為止。

  7. 在啟用 共享磁碟時,選擇 「是」,然後選擇 最大份額數值。

    這是共用磁碟設定的截圖,啟用共用磁碟設定為「是」,最大共享設定為 2。

  8. 選擇 評論 + 創建。

部署超級磁碟作為共享磁碟

若要部署已啟用共用磁碟功能的受控磁碟,請將 maxShares 參數變更為大於 1 的值。 這可讓磁碟跨多個 VM 共用。

重要

只有在從所有 VM 卸載磁碟後,才能設定或變更 maxShares 的值。 請參閱磁碟大小以查看maxShares的允許值。

  1. 登入 Azure 入口網站。

  2. 搜尋並選擇 磁碟。

  3. 選擇 + 建立 以建立新的受控磁碟。

  4. 在 基礎 面板中,選擇 「變更大小」。

  5. 請選擇超高效能磁碟作為 磁碟 SKU。

    已選取本機備援儲存下 Ultra Disk 的磁碟 SKU 清單螢幕擷取畫面。

  6. 選取您想要的磁碟大小,然後選取 [確定]。

  7. 繼續進行部署,直到您進入 [進階] 窗格為止。

  8. 在啟用 共享磁碟時,選擇 「是」,然後選擇 最大份額數值。

  9. 選擇 評論 + 創建。

    進階窗格截圖,啟用共享磁碟設定為「是」,最大共享值設為 2,超強磁碟效能值,邏輯扇區大小設為 4096 位元組。

共用現有的磁碟

若要共用現有磁碟或更新可掛載的虛擬機數量,請使用 Azure PowerShell 或 Azure CLI 設定maxShares參數。 要關閉分享,請設 maxShares 為 1。

重要

共用式磁碟不支援主機快取。

只有在從所有 VM 卸載磁碟後,才能設定或變更 maxShares 的值。 請參閱磁碟大小以查看maxShares的允許值。 在拆卸磁碟前,先記錄 LUN ID,以便重新接上。

Azure PowerShell

以下 Azure PowerShell 指令會更新現有磁碟的共享設定。

$datadiskconfig = Get-AzDisk -DiskName "mySharedDisk"
$datadiskconfig.maxShares = 3

Update-AzDisk -ResourceGroupName 'myResourceGroup' -DiskName 'mySharedDisk' -Disk $datadiskconfig

Azure CLI

以下 Azure CLI 指令會更新現有磁碟的共享設定。

#Modifying a disk to enable or modify sharing configuration

az disk update --name mySharedDisk --max-shares 5 --resource-group myResourceGroup

在你的虛擬機中使用 Azure 共享磁碟

部署共用 maxShares > 1磁碟後,你可以將該磁碟掛載到一個或多個虛擬機上。

注意

共用式磁碟不支援主機快取。

如果你要部署超光碟,務必確保它符合必要需求。 詳情請參見 使用 Azure Ultra 磁碟 。

以下 Azure PowerShell 指令會建立虛擬機,並將共享磁碟附加為資料磁碟。


$resourceGroup = "myResourceGroup"
$location = "WestCentralUS"

$vm = New-AzVm -ResourceGroupName $resourceGroup -Name "myVM" -Location $location -VirtualNetworkName "myVnet" -SubnetName "mySubnet" -SecurityGroupName "myNetworkSecurityGroup" -PublicIpAddressName "myPublicIpAddress"

$dataDisk = Get-AzDisk -ResourceGroupName $resourceGroup -DiskName "mySharedDisk"

$vm = Add-AzVMDataDisk -VM $vm -Name "mySharedDisk" -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0

update-AzVm -VM $vm -ResourceGroupName $resourceGroup

支援 SCSI 持久保留指令

當你將共享磁碟掛載到叢集中的虛擬機後,你可以透過小型電腦系統介面(SCSI)的持久保留(PR)指令建立法定人數並讀寫磁碟。

以下 SCSI 持久保留指令在使用 Azure 共享磁碟時可用:

  • 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

當你使用 PR_RESERVE、PR_REGISTER_AND_IGNORE、PR_REGISTER_KEY、 PR_PREEMPT_RESERVATIONPR_CLEAR_RESERVATION或 PR_RELEASE_RESERVATION時,也需要提供持久的預留金鑰。

下一步

如果你還有更多問題,請參考常見問題中的 共用磁碟 區。