管理 Azure Stack Hub 的儲存體容量

如果您是 Azure Stack Hub 雲端操作員,您可以使用本文來了解如何監視和管理 Azure Stack Hub 部署的儲存體容量。 您可以使用本指南來了解使用者 VM 的可用記憶體。 Azure Stack Hub 儲存體基礎結構會配置 Azure Stack Hub 部署的總儲存體容量子集,以便用於「儲存體服務」。 儲存體服務會將租用戶的資料儲存在磁碟區上對應到部署節點的共用中。

身為雲端操作員,您可以使用的儲存體數量有限。 您實作的解決方案會定義儲存體數量。 當您使用多節點的解決方案時,解決方案是由 OEM 廠商所提供,或由您安裝 Azure Stack 開發套件 (ASDK) 的硬體所提供。

Azure Stack Hub 僅支援藉由新增額外的縮放單位節點來擴充儲存體容量。 如需詳細資訊,請參閱在 Azure Stack Hub 中新增縮放單位節點。 將實體磁碟新增至節點不會擴充儲存體容量。

請務必監視可用的儲存體,以確保維持效率的作業。 當磁碟區的剩餘可用容量有限時,請規劃管理可用空間,以免共用用完容量。

管理容量的選項包括:

  • 回收容量。
  • 移轉儲存體物件。

當物件存放磁碟區已使用 100% 時,儲存體服務就不再對該磁碟區有作用。 若要取得還原磁碟區作業的協助,請連絡 Microsoft 支援服務。

了解磁碟、容器和磁碟區

租用戶使用者會在 Azure Stack Hub 儲存體服務中建立磁碟、Blob、資料表和佇列。 這些租用戶資料會放在可用儲存體上方的磁碟區中。

磁碟

VM 會儲存並操作虛擬磁碟上的資料。 每個 VM 一開始會包含從 Marketplace 映像或私人映像建立的 OS 磁碟。 VM 可以連結零個或多個資料磁碟。 Azure Stack 中提供兩種類型的磁碟:

受控磁碟會管理與 VM 磁碟相關的儲存體帳戶,從而簡化 Azure IaaS VM 的磁碟管理。 您只需要指定您需要的磁碟大小,Azure Stack Hub 就會替您建立和管理磁碟。 如需詳細資訊,請參閱受控磁碟概觀

非受控磁碟是 VHD 檔案,會以分頁 Blob 的形式儲存在 Azure Stack 儲存體帳戶的儲存體容器中。 租用戶建立的分頁 Blob 就是 VM 磁碟,並且會儲存在儲存體帳戶的容器中。 建議只在 VM 需要與協力廠商工具相容而只支援 Azure 非受控磁碟的情況下,使用非受控磁碟。

指引租用戶將每個磁碟放入不同的容器,以改善 VM 效能。

  • 每個保存 VM 中磁碟或分頁 Blob 的容器,都會被視為擁有此磁碟 VM 所連結的容器。
  • 未保存 VM 中任何磁碟的容器則會被視為可用的容器。

用於在連結的容器上釋放空間的選項有限。 若要深入瞭解,請參閱散發非受控磁碟

重要

建議只在 VM 中使用受控磁碟,以便更輕鬆地進行管理。 您不需要先準備儲存體帳戶和容器就可以使用受控磁碟。 相較於非受控磁碟,受控磁碟提供同等或更好的功能和效能。 使用非受控磁碟沒有任何好處,其只是為了回溯相容性而提供。

受控磁碟已經過最佳化,可更妥善地放置在儲存體基礎結構中,並大幅降低管理額外負荷。 但由於受控磁碟為精簡佈建,且最終使用率在建立時無法預期,因此有可能因為不對稱的磁碟放置而導致磁碟區過度使用。 操作員會負責監視儲存體容量使用量,並避免發生這類問題。

若為使用 ARM 範本佈建新虛擬機器的使用者,請使用下列文件來了解如何修改範本以使用受控磁碟:使用 VM 受控磁碟範本

VM 磁碟會以疏鬆檔案的形式儲存在儲存體基礎結構中。 磁碟已佈建使用者在建立磁碟時所要求的大小。 不過,只有寫入磁碟的非零頁面會佔用底層儲存體基礎結構上的空間。

Example: Sparse disk on storage volume.

磁碟通常是從平台映像、受控映像、快照集或其他磁碟複製建立而來。 而快照集是從磁碟建立而來。 為了提高儲存體容量的使用率並減少複製作業時間,系統會使用 ReFS 中的區塊複製。 Blob 複製是低成本的中繼資料作業,而不是檔案之間的完整逐位元組複製。 來源檔案和目標檔案可以共用相同的範圍,相同的資料不會實際儲存多次,因此會改善儲存體容量。

Example: Share extent on storage volume.

容量使用量只有在寫入磁碟時才會增加,且相同的資料會減少。 刪除映像或磁碟時,由於可能會有從中建立的磁碟或快照集仍保留相同的資料並佔用空間,因此可能不會立即釋放空間。 只有在移除所有相關的實體之後,該空間才會變成可用。

Example: Extent after disk deletion.

Blob 和容器

租用戶使用者使用 Azure Blob 來儲存大量的非結構化資料。 Azure Stack Hub 支援三種類型的 Blob:區塊 Blob、附加 Blob 及分頁 Blob。 如需不同 Blob 類型的相關詳細資訊,請參閱了解區塊 Blob、附加 Blob 及分頁 Blob

租用戶使用者可建立容器,接著用來存放 blob 資料。 雖然使用者會決定要放置 Blob 的容器,但儲存體服務會使用演算法來判斷哪個磁碟區要放置容器。 此演算法通常會選擇具有最多可用空間的磁碟區。

將 blob 置於容器之後,該 Blob 可以成長以使用更多空間。 隨著您新增 Blob 且現有的 Blob 成長,磁碟區中保存該容器的可用空間會縮減。

容器不限於單一磁碟區。 當容器中合併的 blob 資料成長而使用 80% 或更多的可用空間時,容器會進入「溢位」模式。 處於溢位模式時,在該容器中建立的任何新 blob 會配置給具有足夠空間的不同磁碟區。 經過一段時間,溢位模式中的容器可以將 blob 分散於多個磁碟區。

使用磁碟區中 90% (而後使用 95%) 的可用空間時,系統就會在 Azure Stack Hub 管理員入口網站中引發警示。 雲端操作員應該檢閱可用的儲存體容量,並規劃重新平衡內容。 使用 100% 的磁碟時,儲存體服務會停止運作,而且沒有引發任何其他警示。

磁碟區

儲存體服務會將可用的儲存體分割成個別的磁碟區,繼而經由配置用來保存系統和租用戶資料。 磁碟區會結合存放集區中的磁碟機,而導入儲存空間直接存取的容錯、延展性和效能等效益。 如需 Azure Stack Hub 中磁碟區的詳細資訊,請參閱管理 Azure Stack Hub 的儲存體基礎結構

物件存放磁碟區會保存租用戶資料。 租用戶資料包括分頁 blob、區塊 blob、附加 blob、資料表、佇列、資料庫和相關中繼資料存放區。 物件存放磁碟區的數目等於 Azure Stack Hub 部署中的節點數目:

  • 在包含四個節點的部署中,有四個物件存放磁碟區。 在多重節點的部署上,如果節點已移除或運作失常,磁碟區數目並不會縮減。
  • 如果您使用 ASDK,則會有含單一共用的單一磁碟區。

物件存放磁碟區由儲存體服務獨家使用。 您不能直接修改、新增或移除磁碟區上的任何檔案。 只有儲存體服務應處理這些磁碟區中儲存的檔案。

因為儲存體物件 (Blob 等) 都各自包含在單一磁碟區中,所以每個物件的大小上限不能超過磁碟區的大小。 新物件的大小上限取決於建立新物件時,在磁碟區中仍未使用的空間容量。

當物件存放磁碟區的可用空間不足,且回收空間的動作不成功或無法使用時,Azure Stack Hub 雲端操作員可以將儲存物件從一個磁碟區移轉到另一個。

如需租用戶使用者如何使用 Azure Stack Hub 中 blob 儲存體的詳細資訊,請參閱 Azure Stack Hub 儲存體服務

監視儲存體

使用 Azure PowerShell 或系統管理員入口網站來監視共用,以便了解可用空間何時受限。 當您使用入口網站時,您會收到有關共用空間不足的警示。

使用 PowerShell

身為雲端操作員,您可以使用 PowerShell Get-AzsStorageShare Cmdlet 來監視共用的儲存體容量。 此 Cmdlet 會傳回每個共用上總計、已配置和可用的空間 (以位元組為單位)。

Example: Return free space for shares.

  • 容量總計:共用上可用的空間總計 (以位元組為單位)。 此空間用於儲存體服務所維護的資料和中繼資料。
  • 已使用容量:存放租用戶資料和相關中繼資料的檔案所使用的資料數量 (以位元組為單位)。

使用管理員入口網站

身為雲端操作員,您可以使用管理員入口網站來檢視所有共用的儲存體容量。

  1. 登入管理員入口網站 https://adminportal.local.azurestack.external

  2. 選取 [所有服務][儲存體][檔案共用] 以開啟檔案共用清單,您可以在其中檢視使用量資訊。

    Example: Screenshot of storage file shares in Azure Stack Hub administrator portal.

    • Total:共用上可用的空間總計 (以位元組為單位)。 此空間用於儲存體服務所維護的資料和中繼資料。
    • 已使用:存放租用戶資料和相關中繼資料的檔案所使用的資料數量 (以位元組為單位)。

使用 Azure PowerShell 或管理員入口網站來監視佈建和使用容量,並規劃移轉以確保系統持續正常運作。

有三種工具可用來監視磁碟區容量:

  • 適用於目前磁碟區容量的入口網站和 PowerShell。
  • 儲存體空間警示。
  • 磁碟區容量計量。

在本節中,我們將介紹如何使用這些工具來監視系統的容量。

使用 PowerShell

身為雲端操作員,您可以使用 PowerShell Get-AzsVolume Cmdlet 來監視磁碟區的儲存體容量。 此 Cmdlet 會傳回每個磁碟區上的總計和可用空間 (GB)。

Example: Return free space for volumes.

  • 總容量:共用上可用的總空間,以 GB 為單位。 此空間用於儲存體服務所維護的資料和中繼資料。
  • 剩餘容量:儲存租用戶資料和相關聯中繼資料的可用空間量,以 GB 為單位。

使用管理員入口網站

身為雲端操作員,您可以使用管理員入口網站來檢視所有磁碟區的儲存體容量。

  1. 登入Azure Stack Hub 系統管理員入口網站 (https://adminportal.local.azurestack.external)。

  2. 選取 [所有服務]>[儲存體]>[磁碟區] 以開啟磁碟區清單,您可以在其中檢視使用量資訊。

    Example: Screenshot of storage volumes in Azure Stack Hub administrator portal.

    • Total:磁碟區上的可用空間總計。 此空間用於儲存體服務所維護的資料和中繼資料。
    • 已使用:存放租用戶資料和相關中繼資料的檔案所使用的資料數量。

儲存體空間警示

當您使用管理員入口網站時,您會收到有關磁碟區空間不足的警示。

重要

身為雲端操作員,您應該防止共用達到完全使用狀態。 當共用的使用率為 100% 時,儲存體服務便無法再對該共用運作。 若要在已 100% 使用的共用上復原可用空間及還原作業,您必須連絡 Microsoft 支援服務。

  • 警告:當檔案共用使用超過 90% 時,您會在管理員入口網站中收到「警告」警示:

    Example: Screenshot of warning alert in the Azure Stack Hub administrator portal

  • 重大:當檔案共用使用超過 95% 時,您會在管理員入口網站中收到「重大」警示:

    Example: Screenshot of critical alert in the Azure Stack Hub administrator portal

  • 檢視詳細資料:在系統管理員入口網站中,您可以開啟警示的詳細資料,以檢視風險降低選項:

    Example: Screenshot of viewing alert details in the Azure Stack Hub administrator portal

磁碟區容量計量

磁碟區容量計量為您提供更多有關不同類型物件的佈建容量和使用容量詳細資訊。 此計量資料會保留 30 天。 背景監視服務會每小時重新整理磁碟區容量計量資料。

請務必主動檢查容量計量報告,以了解磁碟區的資源使用狀況。 雲端操作員可在磁碟區將滿時分析資源類型分佈,以決定對應動作來釋放空間。 操作員也可以在佈建的磁碟大小指出磁碟區已過度佈建太多時,防止磁碟區過度使用。

Azure 監視器提供下列計量來顯示磁碟區容量使用率:

  • 磁碟區總容量會顯示磁碟區的總儲存體容量。
  • 磁碟區剩餘容量會顯示磁碟區的剩餘儲存體容量。
  • 磁碟區 VM 磁碟使用容量會顯示 VM 磁碟相關物件 (包括分頁 Blob、受控磁碟/快照集、受控映像和平台映像) 所佔用的總空間。 VM 磁碟的基礎 VHD 檔案可以與映像、快照集或其他磁碟共用相同範圍 (請參閱磁碟)。 此數目可能小於所有個別 VM 磁碟相關物件的使用容量總和。
  • 磁碟區其他使用容量是磁碟以外物件 (包括區塊 Blob、附加 Blob、資料表、佇列和 Blob 中繼資料) 的使用大小總計。
  • 磁碟區 VM 磁碟佈建容量是分頁 Blob 和受控磁碟/快照集的佈建大小總計。 此大小是特定磁碟區上所有受控磁碟和分頁 Blob 其總磁碟容量可增加的最大值。

Example: Volume capacity metrics.

若要在 Azure 監視器中檢視磁碟區容量計量:

  1. 確認您已安裝並設定 Azure PowerShell。 如需設定 PowerShell 環境的指示,請參閱安裝 Azure Stack Hub 的 PowerShell。 若要登入 Azure Stack Hub,請參閱設定操作員環境並登入 Azure Stack Hub

  2. GitHub 存放庫下載 Azure Stack Hub 工具。 如需詳細步驟,請參閱從 GitHub 下載 Azure Stack Hub 工具

  3. 執行 CapacityManagement 下的 DashboardGenerator,以產生容量儀表板 JSON。

    .\CapacityManagement\DashboardGenerator\Create-AzSStorageDashboard.ps1 -capacityOnly $true -volumeType object
    

    在 DashboardGenerator 資料夾下,有一個名稱開頭為 DashboardVolumeObjStore 的 JSON 檔案。

  4. 登入Azure Stack Hub 系統管理員入口網站 (https://adminportal.local.azurestack.external)。

  5. 在儀表板頁面中,按一下 [上傳],然後選取在步驟 3 中產生的 JSON 檔案。

    Example: Upload dashboard json.

  6. 上傳 JSON 之後,系統會將您導向至新的容量儀表板。 每個磁碟區在儀表板中都有對應的圖表。 圖表數目等於磁碟區計數:

    Example: Volume capacity dashboard.

  7. 只要按一下其中一個磁碟區,您就可以在詳細的圖表中查看特定磁碟區的五個容量計量:

    Example: Detailed capacity metrics.

磁碟區使用模式

藉由查看磁碟區容量計量,雲端操作員就能了解磁碟區的容量使用量,以及哪一種資源類型佔用大部分的空間使用量。 空間使用模式可以分組為下列類型,而操作員應該針對每種類型採取不同的動作:

Example: Volume usage pattern.

低度佈建的備用容量:磁碟區上有足夠的可用容量,且位於此磁碟區的所有磁碟總佈建容量會小於總可用容量。 磁碟區可容納更多儲存體物件,包括磁碟及其他物件 (區塊/附加 Blob、資料表和佇列)。 您不需要採取任何動作來操作磁碟區。

過度佈建的備用容量:磁碟區的剩餘容量很高,但 VM 磁碟佈建容量已超過磁碟區總容量。 此磁碟區目前仍有空間,可容納更多儲存體物件。 不過,可能會填入位於此磁碟區上 VM 磁碟中的資料。 您應該仔細監視此磁碟區的使用量趨勢。 如果變更為過度佈建的低容量模式,您可能需要採取動作來釋放空間。

過度佈建的低容量:磁碟區的剩餘容量很低,且 VM 磁碟佈建容量和 VM 磁碟使用容量都很高。

剩餘容量很低表示磁碟區即將用完。 操作員必須立即採取動作來釋放空間,以防止磁碟區的使用率達到 100% 而封鎖儲存體服務。 VM 磁碟使用容量很高顯示大部分的磁碟區使用量是來自 VM 磁碟。 您應該參閱移轉磁碟的指示,將磁碟從已滿的磁碟區移至其他可用的磁碟區,以釋放空間。

低度佈建、低容量的高區塊 Blob:磁碟區的剩餘容量很低,且 VM 磁碟佈建容量和 VM 磁碟使用容量都很低,但其他使用容量則很高。

磁碟區有用完的風險,因此操作員應該立即採取動作來釋放空間。 其他使用容量很高表示大部分的磁碟區容量是由區塊/附加 Blob 或資料表/佇列所佔用。 當磁碟區的可用容量小於 20% 時,就會啟用容器溢位,且新的 Blob 物件不會放在此幾乎已滿的磁碟區上。 但現有的 Blob 仍可增加。 為了避免持續增加的 Blob 過度使用容量,您可以連絡 Microsoft 支援服務來查詢正在佔用特定磁碟區空間的容器,並決定租用戶是否必須清除這些容器以釋放部分空間。

過度佈建、低容量的高區塊 Blob:磁碟區的剩餘容量很低,且磁碟使用/佈建容量及其他使用容量都很高。 此磁碟區有很高的空間使用量是來自磁碟及其他儲存體。 您應該釋放空間,以避免磁碟區全滿。 建議先遵循移轉磁碟的指示,將磁碟從已滿的磁碟區移至其他可用磁碟區。 在其他情況下,您可以連絡 Microsoft 支援服務來查詢正在佔用特定磁碟區空間的容器,並決定租用戶是否必須清除這些容器以釋放部分空間。

管理可用的空間

必須釋放磁碟區上的可用空間時,請先使用最不具侵略性的方法。 例如,嘗試在選擇移轉受控磁碟區之前回收空間。

回收容量

您可以回收已刪除的租用戶帳戶所使用的容量。 當資料到達保留期時,系統會自動回收此容量,或者您可以採取動作立即將它回收。

如需詳細資訊,請參閱管理 Azure Stack Hub 儲存體帳戶的「回收容量」一節。

在磁碟區之間移轉容器

此選項僅適用於 Azure Stack Hub 整合式系統。

有些租用戶共用會因為租用戶使用模式,而使用比其他共用更多的空間。 這可能會導致在相對未使用的其他共用之前,有些共用的空間不足。

您可將某些 Blob 容器手動遷移到不同的共用,以在過度使用的共用上釋放空間。 您可以將數個較小容器移轉至有容量可保存所有容量的單一共用。 使用移轉作業來移動「可用」容器。 可用容器是不包含 VM 磁碟的容器。

移轉會合併新共用上的所有容器 Blob。

  • 如果容器已進入溢位模式且 Blob 已置於其他磁碟區上,則新的共用必須有足夠容量可保存屬於您所移轉容器的所有 Blob,包括溢位的 Blob。

  • Get-AzsStorageContainer 只會識別容器的初始磁碟區上使用中的空間。 此 Cmdlet 不會識別溢位到其他磁碟區的 Blob 所使用空間。 因此,容器的完整大小可能不明顯。 新共用上的容器彙總可能會使該新共用進入溢位狀況,以將資料置於其他共用。 因此,您可能需要重新平衡共用。

  • 如果您缺少某些資源群組的權限,且無法使用 PowerShell 來查詢溢位資料的其他磁碟區,請與這些資源群組和容器的擁有者合作,以在遷移該資料之前,了解要遷移的資料總數量。

重要

容器的 Blob 移轉是需要使用 PowerShell 的離線作業。 在移轉完成前,您所遷移容器的所有 Blob 會保持離線狀態且無法使用。 您也應該避免在所有進行中的移轉完成之前升級 Azure Stack Hub。

使用 PowerShell 來遷移容器

  1. 確認您已安裝並設定 Azure PowerShell。 如需詳細資訊,請參閱使用 Azure PowerShell 來管理 Azure 資源

  2. 檢查容器以了解您打算移轉的共用上有哪些資料。 若要識別可在磁碟區中移轉的最佳候選容器,請使用 Get-AzsStorageContainer Cmdlet:

    $farm_name = (Get-AzsStorageFarm)[0].name
    $shares = Get-AzsStorageShare -FarmName $farm_name
    $containers = Get-AzsStorageContainer -ShareName $shares[0].ShareName -FarmName $farm_name
    

    接著,檢查 $containers:

    $containers
    

    Example: $containers

  3. 找出最佳目的地共用以保存您所遷移的容器:

    $destinationshare = ($shares | Sort-Object FreeCapacity -Descending)[0]
    

    接著,檢查 $destinationshares:

    $destinationshares
    

    Example: $destination shares

  4. 開始移轉容器。 移轉不是同步進行。 如果您在第一次移轉完成之前開始移轉其他容器,請使用作業識別碼來追蹤每個容器的狀態。

    $job_id = Start-AzsStorageContainerMigration -StorageAccountName $containers[0].Accountname -ContainerName $containers[0].Containername -ShareName $containers[0].Sharename -DestinationShareUncPath $destinationshares[0].UncPath -FarmName $farm_name
    

    接著,檢查 $jobId。 在下列範例中,以您想要檢查的作業識別碼取代 d62f8f7a-8b46-4f59-a8aa-5db96db4ebb0

    $jobId
    d62f8f7a-8b46-4f59-a8aa-5db96db4ebb0
    
  5. 使用作業識別碼來檢查移轉作業的狀態。 當容器移轉完成時,MigrationStatus 會設定為 Complete

    Get-AzsStorageContainerMigrationStatus -JobId $job_id -FarmName $farm_name
    

    Screenshot that shows the migration status.

  6. 您可以取消進行中的移轉工作。 已取消的移轉作業會以非同步方式處理。 您可以使用 $jobid 追蹤取消作業:

    Stop-AzsStorageContainerMigration -JobId $job_id -FarmName $farm_name
    

    Example: Rollback status

  7. 您可以再次執行步驟 6 中的命令,直到移轉狀態為「已取消」 為止:

    Screenshot that shows an example of a canceled migration status.

移動 VM 磁碟

此選項僅適用於 Azure Stack Hub 整合式系統。

最極端的管理空間方法會牽涉到移動 VM 磁碟。 因為移動所連結的容器 (包含 VM 磁碟的容器) 很複雜,請連絡 Microsoft 支援服務以完成此動作。

在磁碟區之間移轉受控磁碟

此選項僅適用於 Azure Stack Hub 整合式系統。

有些租用戶磁碟區會因為租用戶使用模式,而使用比其他共用更多的空間。 結果可能是在相對未使用的其他磁碟區之前,空間不足的磁碟區。

您可以手動將一些受控磁碟移轉到其他磁碟區,以釋出過度使用磁碟區上的空間。 您可以將數個受控磁碟移轉至有足夠容量可容納其全部的單一磁碟區。 使用移轉來移動「離線」的受控磁碟。 離線受控磁碟是指未連結至 VM 的磁碟。

重要

受控磁碟的 blob 移轉是需要使用 PowerShell 的離線作業。 開始移轉作業前,您必須先解除候選磁碟的擁有者 VM 配置,或從其擁有者 VM 中斷候選磁碟的連結 (完成移轉作業後,您可以重新配置 VM 或重新連結磁碟)。 在移轉完成之前,所有您要移轉的受控磁碟都必須保持保留或離線狀態,且無法使用,否則,移轉作業會中止,且所有未移轉的磁碟仍在其原始磁碟區上。 您也應該避免在所有進行中的移轉完成之前升級 Azure Stack Hub。

使用 PowerShell 移轉受控磁碟

  1. 確認您已安裝並設定 Azure PowerShell。 如需設定 PowerShell 環境的指示,請參閱安裝 Azure Stack Hub 的 PowerShell。 若要登入 Azure Stack Hub,請參閱設定操作員環境並登入 Azure Stack Hub

  2. 檢查受控磁碟,瞭解您打算移轉的磁碟區上有哪些磁碟。 若要找出磁碟區中可移轉的最佳候選磁碟,請使用 Get-AzsDisk Cmdlet:

    $ScaleUnit = (Get-AzsScaleUnit)[0]
    $StorageSubSystem = (Get-AzsStorageSubSystem -ScaleUnit $ScaleUnit.Name)[0]
    $Volumes = (Get-AzsVolume -ScaleUnit $ScaleUnit.Name -StorageSubSystem $StorageSubSystem.Name | Where-Object {$_.VolumeLabel -Like "ObjStore_*"})
    $SourceVolume  = ($Volumes | Sort-Object RemainingCapacityGB)[0]
    $VolumeName = $SourceVolume.Name.Split("/")[2]
    $VolumeName = $VolumeName.Substring($VolumeName.IndexOf(".")+1)
    $MigrationSource = "\\SU1FileServer."+$VolumeName+"\SU1_"+$SourceVolume.VolumeLabel
    $Disks = Get-AzsDisk -Status OfflineMigration -SharePath $MigrationSource | Select-Object -First 10
    

    接著,檢查 $disks:

    $Disks
    

    Example: $Disks

  3. 找出用來存放您所移轉磁碟的最佳目的地磁碟區:

    $DestinationVolume  = ($Volumes | Sort-Object RemainingCapacityGB -Descending)[0]
    $VolumeName = $DestinationVolume.Name.Split("/")[2]
    $VolumeName = $VolumeName.Substring($VolumeName.IndexOf(".")+1)
    $MigrationTarget = "\\SU1FileServer."+$VolumeName+"\SU1_"+$DestinationVolume.VolumeLabel
    
  4. 開始移轉受控磁碟。 移轉不是同步進行。 如果您在第一次移轉完成之前開始移轉其他磁碟,請使用作業名稱來追蹤每個磁碟的狀態。

    $jobName = "MigratingDisk"
    Start-AzsDiskMigrationJob -Disks $Disks -TargetShare $MigrationTarget -Name $jobName
    
  5. 使用作業名稱來檢查移轉作業的狀態。 當磁碟移轉完成時,MigrationStatus 會設定為完成

    $job = Get-AzsDiskMigrationJob -Name $jobName
    

    Example: Migration status

    如果您要在單一移轉作業中移轉多個受控磁碟,您也可以檢查作業的子工作。

    $job.Subtasks
    

    Example: Migration sub task status

  6. 您可以取消進行中的移轉工作。 已取消的移轉作業會以非同步方式處理。 您可以使用工作名稱來追蹤取消,直到狀態確認移轉作業取消為止:

    Stop-AzsDiskMigrationJob -Name $jobName
    

    Example: Canceled status

散發非受控磁碟

此選項僅適用於 Azure Stack Hub 整合式系統。

最極端的管理空間方法會牽涉到移動非受控磁碟。 如果租用戶增加一個容器的非受控磁碟數目,則在該容器進入「溢位」模式之前,該容器總使用容量可能會超過其所在磁碟區的可用容量。 若要避免單一容器耗盡磁碟區的空間,租用戶可以將一個容器的現有非受控磁碟散發到其他容器。 因為散發所連結的容器 (包含 VM 磁碟的容器) 很複雜,請連絡 Microsoft 支援服務來完成此動作。

VM 的可用記憶體

Azure Stack Hub 是以計算和儲存體的超融合式叢集形式建立。 融合可讓您共用硬體,稱為縮放單位。 在 Azure Stack Hub 中,縮放單位可提供資源的可用性和延展性。 縮放單位包含一組 Azure Stack Hub 伺服器,稱為主機或節點。 基礎結構軟體均託管在一組 VM 中,並且和租用戶 VM 共用相同的實體伺服器。 所有 Azure Stack Hub VM 會接著由縮放單位的 Windows Server 叢集技術和個別 Hyper-V 執行個體管理。 縮放單位可簡化 Azure Stack Hub 的取得和管理。 縮放單位也允許在 Azure Stack Hub、租用戶和基礎結構之間移動及調整所有服務。

您可以在管理入口網站中檢閱圓形圖,其中顯示 Azure Stack Hub 中可用和已使用的記憶體,如下所示:

physical memory on Azure Stack Hub

下列元件會取用圓形圖中使用區段的記憶體:

  • 主機 OS 的使用或保留:這是主機上作業系統 (OS)、虛擬記憶體分頁表、主機 OS 上所執行處理序及空間直接存取記憶體快取所使用的記憶體。 此值相依於主機上執行中的不同 Hyper-V 程序所使用的記憶體,因此會有變動。
  • 基礎結構服務:這些是構成 Azure Stack Hub 的基礎結構 VM。 這需要大約 31 個 VM,共佔用 242 GB + (4 GB x 節點數目) 的記憶體。 我們一直在努力讓基礎結構服務變得更具擴充性和復原性,因此基礎結構服務元件的記憶體使用量可能會變更。
  • 復原保留:Azure Stack Hub 會保留一部分的記憶體,以在單一主機失敗期間維持租用戶可用性,以及在修補和更新期間讓 VM 順利地進行即時移轉。
  • 租用戶 VM:這些是 Azure Stack Hub 使用者所建立的 VM。 除了執行 VM 以外,任何在網狀架構上登陸的 VM 也會取用記憶體。 這表示處在建立中失敗狀態的 VM,或是從客體系統中關機的 VM,都會耗用記憶體。 不過,已從 Azure Stack Hub 使用者入口網站、PowerShell 和 Azure CLI 使用「停止解除配置項目」選項來解除配置的 VM,則不會從 Azure Stack Hub 中取用記憶體。
  • 附加元件資源提供者:針對附加元件資源提供者 (例如 SQL、MySQL 和 App Service) 部署的 VM。

Capacity used in a blade on a four node Azure Stack Hub

VM 放置的可用記憶體

身為 Azure Stack Hub 的雲端操作員,沒有自動化方式可檢查為每個 VM 配置的記憶體。 您可以存取使用者 VM,並手動計算配置的記憶體。 不過,配置的記憶體不會反映實際使用狀況。 此值可能會低於配置的值。

若要計算 VM 的可用記憶體,請使用下列公式:

VM 放置的可用記憶體 = Total Host Memory--Resiliency Reserve--Memory used by running tenant VMs - Azure Stack Hub Infrastructure Overhead

復原保留 = H + R * ((N-1) * H) + V * (N-2)

其中:

H = 單一主機記憶體大小

N = 縮放單位大小 (主機數目)

R = 主機 OS 所使用的作業系統保留/記憶體,在此公式中為 .15

V = 縮放單位中最大的 VM (記憶體方面)

Azure Stack Hub 基礎結構額外負荷 = 242 GB + (4 GB x 節點數目)。 這需要使用大約 31 個 VM 來裝載 Azure Stack Hub 的基礎結構。

主機 OS 所使用的記憶體 = 主機記憶體的 15% (0.15)。 作業系統保留值為估計值,會因為主機的實體記憶體容量和一般作業系統的額外負荷而異。

V 值 (縮放單位中最大的 VM) 會根據所部署的最大租用戶 VM 而動態改變。 例如,最大 VM 值可能是 7 GB 或 112 GB,或是 Azure Stack Hub 解決方案中任何其他支援的 VM 記憶體大小。 我們在這裡選擇最大的 VM 大小以保留足夠記憶體,因此這個大型 VM 的即時移轉不會失敗。 變更 Azure Stack Hub 網狀架構上最大的 VM 除了會導致 VM 本身的記憶體增加外,也會增加復原保留量。

例如,使用 12 個節點的縮放單位時:

戳記詳細資料
sts (N) 12
每部主機的記憶體 (H) 384
縮放單位的總記憶體 4608
OS 保留 (R) 15%
最大的 VM (V) 112
復原保留 = H + R * ((N-1) * H) + V * (N-2)
復原保留 = 2137.6

因此,您可以使用上述資訊進行計算,如果最大的 VM 具有 112 GB 的記憶體,則每部主機有 12 個 384 GB 節點 (總計 4,608 GB) 的 Azure Stack 會保留 2,137 GB 進行復原。

當您參考 [容量] 刀鋒視窗中的實體記憶體 (如下所示) 時,[已使用] 值會包含復原保留。 該圖表是來自 Azure Stack Hub 執行個體的四個節點。

Capacity usage on a four node Azure Stack Hub

規劃 Azure Stack Hub 的容量時,請記住這些考量。 此外,您可以使用 Azure Stack Hub Capacity Planner

後續步驟

若要深入了解如何為使用者提供 VM,請參閱管理 Azure Stack Hub 的儲存體容量