管理 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 開始時都有一個由市集映像或私人映像建立的 OS 磁碟。 VM 可以連結零個或多個數據磁碟。 Azure Stack 中提供兩種類型的磁碟:
受控磁碟 藉由管理與 VM 磁碟相關聯的記憶體帳戶,簡化 Azure IaaS VM 的磁碟管理。 您只需要指定所需的磁碟大小,Azure Stack Hub 會為您建立和管理磁碟。 如需詳細資訊,請參閱 受控磁碟概觀。
非受管磁碟 是 VHD 檔案,這些檔案儲存在 Azure Stack 儲存帳戶的儲存體容器中作為分頁 Blob。 租用者建立的分頁 Blob 稱為 VM 磁碟,並儲存在儲存體帳戶中的容器中。 我們建議您只針對需要與第三方工具相容的 VM 使用非受控磁碟,而這些工具僅支援 Azure 非受控磁碟。
租使用者的指引是將每個磁碟放入個別的容器,以改善 VM 的效能。
- 每個持有虛擬機所在磁碟或頁面Blob的容器,都被視為與該虛擬機連結的容器。
- 不保存 VM 中任何磁碟的容器會被視為免費容器。
在附加容器上釋放空間的選項有限。 如需詳細資訊,請參閱 分發非受控磁碟。
重要
建議您只在 VM 中使用受控磁碟,以方便管理。 使用受控磁碟之前,您不需要準備記憶體帳戶和容器。 相較於非受控磁碟,受控磁碟提供對等或更好的功能和效能。 使用非管理磁碟沒有優勢,它們僅提供為了向後相容性。
受控磁碟已針對儲存基礎結構中的較佳位置進行優化,並大幅降低管理額外負荷。 但是,由於受控磁碟是精簡布建的,而且最終使用量在建立期間是無法預測的,因此不平衡的磁碟放置可能會導致磁碟區過度使用。 操作員負責監視記憶體容量使用量,並避免這類問題。
如需使用ARM範本布建新虛擬機的使用者,請參閱 使用 VM 受控磁碟範本 瞭解如何修改範本以使用受控磁碟。
VM 磁碟會儲存為儲存基礎架構上的稀疏檔案。 磁碟具有使用者建立磁碟時要求的布建大小。 不過,只有寫入磁碟的非零頁面會佔用基礎記憶體基礎結構上的空間。
磁碟通常是透過從平臺映射、受控映像、快照集或其他磁碟複製而建立,而快照集是從磁碟擷取而來。 為了增加記憶體容量的使用並減少複製作業時間,系統會在 ReFS 中使用 Blob 複製。 Blob 複製是低成本的中繼資料作業,而不是檔案之間的逐位元組複製。 來源檔案和目標檔案可以共用相同的範圍。 相同的數據不會實際儲存多次,可改善儲存容量。
容量使用量只會在寫入磁碟時增加,而且會減少相同的數據。 刪除映像或磁碟時,空間可能不會立即釋出,因為可能有磁碟或快照集從中建立,但仍會保留相同的數據並佔用空間。 如果移除所有相關實體,空間就會變成可用。
Blob 和容器
租用戶使用者會使用 Azure Blob 儲存大量的非結構化數據。 Azure Stack Hub 支援三種類型的 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 會在每個共享上傳回總計、配置和可用空間,以位元組為單位。
- 容量總計:分享上的可用總空間,以位元組為單位。 此空間用於記憶體服務所維護的數據和元數據。
- 使用容量:儲存租用戶數據和相關聯元數據之檔案中所有範圍所使用的數據量,以位元組為單位。
使用系統管理員入口網站
身為雲端操作員,您可以使用系統管理員入口網站來檢視所有共用的記憶體容量。
在
https://adminportal.local.azurestack.external
登入系統管理員入口網站。選取 [[所有服務]>[記憶體]>[檔案分享] 開啟檔案共享清單,您可以在其中檢視使用量資訊。
- 總計:共用上可用的總空間,以位元組為單位。 此空間用於記憶體服務所維護的數據和元數據。
- 使用:檔案中儲存租戶數據及相關元數據的所有區段所佔用的位元組數據量。
使用 Azure PowerShell 或系統管理員入口網站來監視布建和使用容量,並規劃移轉,以確保系統持續正常運作。
監視磁碟區容量有三種工具:
- 適用於目前磁碟區容量的入口網站和PowerShell。
- 儲存空間警示。
- 容量指標。
本節說明如何使用這些工具來監視系統的容量。
使用 PowerShell
身為雲端操作員,您可以使用PowerShell Get-AzsVolume
Cmdlet 來監視磁碟區的儲存容量。 Cmdlet 會傳回每一個磁碟區上以 GB 為單位的總和可用空間。
- 容量總計:以 GB 為單位共用的總可用空間。 此空間用於記憶體服務所維護的數據和元數據。
- 剩餘容量:以GB為單位的可用空間量,用於儲存租戶數據和相關元數據。
使用系統管理員入口網站
身為雲端操作員,您可以使用系統管理員入口網站來檢視所有磁碟區的記憶體容量。
在 [
https://adminportal.local.azurestack.external
] 登入 Azure Stack Hub 系統管理員入口網站。選取 [[所有服務]>[記憶體>磁盘區],以開啟磁碟區清單,您可以在其中檢視使用量資訊。
- 總計:磁碟區上可用的總空間。 此空間用於記憶體服務所維護的數據和元數據。
- 使用:由儲存租戶數據及其相關元數據的檔案中所有區域所使用的數據量。
儲存空間警示
當您使用系統管理員入口時,會收到空間不足的磁碟區警告。
重要
身為雲端操作員,您應該防止資源共享達到完全使用程度。 當共用是 100% 使用時,記憶體服務就不會再針對該共享運作。 若要復原已使用 100 個% 共用的可用空間和還原作業,請連絡Microsoft支持人員。
警告:當檔案共享的使用率超過 90%% 時,您會在管理者入口網站中收到警告通知。
重大:使用檔案共享超過 95% 時,您會在系統管理員入口網站中收到重大警示:
檢視詳細數據:在系統管理員入口網站中,您可以開啟警示的詳細數據來檢視風險降低選項:
容量指標
磁碟區容量計量提供不同物件類型布建容量和使用容量的詳細資訊。 計量數據會保留 30 天。 背景監視服務每小時會刷新磁碟區容量指標數據。
要了解磁碟區的資源使用情況,必須主動檢查容量度量報告。 若要決定釋放空間的對應動作,雲端操作員可以在磁碟區接近滿時分析資源類型分佈。 當磁碟布建大小指出磁碟區已過度布建太多時,操作員也可以防止過度使用磁碟區。
Azure 監視器提供下列計量來顯示磁碟區容量使用量:
- 磁碟區總容量 會顯示磁碟區的總儲存容量。
- 磁碟區剩餘容量 會顯示磁碟區的剩餘儲存容量。
- VM 磁碟區使用容量 顯示 VM 磁碟相關物件所佔用的總空間(包括分頁 Blob、受控磁碟/快照集、受控映像和平臺映像)。 VM 磁碟的基礎 VHD 檔案可以與映像檔、快照或其他磁碟共用相同的區段(請參閱 磁碟)。 這個數位可以小於所有個別 VM 磁碟相關物件的已使用容量總和。
- 磁碟區其他已使用容量 是磁碟以外的物件大小總計,包括區塊 Blob、附加 Blob、數據表、佇列和 Blob 元數據。
- 磁碟區 VM 磁碟布建容量 是分頁 Blob 和受控磁碟/快照集的總布建大小。 此大小是特定磁碟區上所有受控磁碟和分頁 Blob 可成長之磁碟容量總計的最大值。
若要在 Azure 監視器中檢視磁碟區容量計量:
確認您已安裝並設定 Azure PowerShell。 如需設定 PowerShell 環境的指示,請參閱 安裝適用於 Azure Stack Hub 的 PowerShell。 若要登入 Azure Stack Hub,請參閱 設定操作員環境並登入 Azure Stack Hub。
從 GitHub 存放庫下載 Azure Stack Hub 工具,。 如需詳細步驟,請參閱 從 GitHub 下載 Azure Stack Hub 工具。
在 CapacityManagement下執行下列命令,以產生容量儀錶板 JSON 檔案:
.\CapacityManagement\DashboardGenerator\Create-AzSStorageDashboard.ps1 -capacityOnly $true -volumeType object
此命令會建立 json 檔案,其開頭為 dashboardVolumeObjStore DashboardGenerator 資料夾下的。
在 [
https://adminportal.local.azurestack.external
] 登入 Azure Stack Hub 系統管理員入口網站。在儀錶板中,選取 [上傳],然後選取步驟 3 中產生的 JSON 檔案:
上傳 JSON 之後,系統會將您導向至新的容量儀錶板。 每個卷冊在儀錶板中都有對應的圖表。 圖表數目等於卷冊數:
按兩下其中一個磁碟區,您可以在詳細圖表中檢查特定磁碟區的五個容量計量:
磁碟區使用模式
藉由檢查磁碟區容量計量,雲端操作員會瞭解磁碟區的容量使用量,以及哪些資源類型會佔用大部分的空間。 空間使用模式會分組為下列類型,而且運算符可以針對每個類型採取不同的動作:
未布建的備用容量:磁碟區上有足夠的可用容量,且此磁碟區上所有磁碟的布建容量總計小於可用容量總計。 磁碟區可用於更多記憶體物件,包括磁碟和其他物件(區塊/附加 Blob、數據表和佇列)。 您不需要採取任何動作來控制音量。
過度布建、備用容量:磁碟區的剩餘容量很高,但 VM 磁碟布建容量已高於磁碟區總容量。 此磁碟區現在仍有更多儲存對象的空間。 不過,它具有可能性來容納位於此磁碟區的 VM 磁碟中的資料。 您應該密切監視此磁碟區的使用量趨勢。 如果變更為 過度配置的低容量模式,您可能需要採取行動來釋放空間。
過度布建、低容量:磁碟區的剩餘容量很低,且 VM 磁碟的布建和已使用容量都很高。
剩餘容量不足表示磁碟區已達到完整使用量。 操作員必須立即採取行動來釋放空間,以防止容量達到 100%% 用量,這會封鎖存儲服務。 高 VM 磁碟使用容量表示使用量中大部分是 VM 磁碟。 請參閱 移轉磁碟 將磁碟從完整磁碟區移至其他可用磁碟區以釋放空間。
布建不足、容量低、區塊 Blob 高:磁碟區的剩餘容量很低,且 VM 磁碟的布建和已使用容量都很低,但其他已使用容量則很高。
因為儲存空間有完全用完的風險,因此操作員應該立即採取行動來釋放空間。 其他用途高使用率容量表示大多數磁碟空間容量是由區塊/附加 Blob 存儲或資料表/佇列所佔用。 當磁碟區的可用容量小於 20%時,會啟用容器溢位,而且不會在此幾乎完整的磁碟區上放置新的 Blob 物件。 不過,現有的 Blob 可能仍會成長。 若要防止持續成長的 Blob 過度使用容量,您可以連絡Microsoft支援人員查詢佔用特定磁碟區空間的容器,並決定是否需要租使用者清除這些容器才能釋放空間。
過度配置、低容量、高塊狀 Blob:磁碟區的剩餘容量很低,而且磁碟的使用/配置容量以及其他已用容量都很高。 此磁碟區具有磁碟和其他儲存物件的大量空間使用量。 為了避免儲存裝置完全滿,您應該逐步釋放空間。 建議您先遵循 移轉磁碟 中的指示,將磁碟從完整磁碟區移至其他可用的磁碟區。 您也可以連絡Microsoft支援人員查詢佔用特定磁碟區空間的容器,並決定是否需要租使用者完成這些容器的清除,以釋出空間。
管理可用空間
當需要釋放磁碟區上的空間時,請先使用最不具侵入性的方法。 例如,在您選擇移轉受控磁碟之前,請嘗試回收空間。
恢復容量
您可以回收已刪除租用戶帳戶所使用的容量。 當 的數據保留期限達到 時,系統會自動回收此容量,或者您可以立即回收。
如需詳細資訊,請參閱 管理 Azure Stack Hub 儲存體帳戶中的「取回容量」一節。
在磁碟區之間移轉容器
由於租戶的使用模式,不同租戶共用空間的多寡有所不同。 這可能導致某些共用的空間不足,而其他相對未使用的共用則不會。
您可以手動將某些 Blob 資料容器移轉至不同的共用,以釋放使用過度的共用的空間。 您可以將數個較小的容器移轉至具有容量來容納所有容器的單一共享空間。 使用移轉來移動 的免費 容器。 免費容器是不包含 VM 磁碟的容器。
遷移會將容器中的所有 Blob 整合到新的共享上。
- 如果容器進入溢位模式,並將 Blob 放在其他磁碟區上,新的共享必須有足夠的容量來容納您移轉的容器中所有的 Blob,包括溢出的 Blob。
- PowerShell Cmdlet
Get-AzsStorageContainer
只會識別容器初始磁碟區上使用的空間。 Cmdlet 不會識別溢出至其他磁碟區的 Blob 所使用的空間。 因此,容器的完整大小可能並不明顯。 將容器整合至新共用可能導致新共用進入溢位情況,此時會將數據放入其他共用。 因此,您可能需要重新平衡股票。 - 如果您缺少特定資源群組的許可權,且無法使用PowerShell來查詢其他磁碟區是否有溢位數據,請與那些資源群組和容器的擁有者合作,瞭解移轉數據之前要移轉的數據總量。
重要
容器的 Blob 移轉是需要使用 PowerShell 的離線作業。 在移轉完成之前,您要移轉之容器的所有 Blob 都會保持離線狀態,且無法使用。 您也應該避免升級 Azure Stack Hub,直到所有進行中的移轉完成為止。
使用 PowerShell 移轉容器
請確認您已安裝並設定 Azure PowerShell。 如需詳細資訊,請參閱 使用 Azure PowerShell管理 Azure 資源。
檢查容器,以瞭解您打算移轉的共享資源上有哪些數據。 若要識別磁碟區中移轉的最佳候選容器,請使用
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
識別要儲存您要移轉之容器的最佳目的地共用:
$destinationshare = ($shares | Sort-Object FreeCapacity -Descending)[0]
然後,檢查
$destinationshares
:$destinationshares
啟動容器的遷移。 移轉是異步的。 如果您在第一次移轉完成之前開始移轉另一個容器,請使用作業標識碼來追蹤每個容器的狀態:
$jobId = Start-AzsStorageContainerMigration -StorageAccountName $containers[0].Accountname -ContainerName $containers[0].Containername -ShareName $containers[0].Sharename -DestinationShareUncPath $destinationshares[0].UncPath -FarmName $farm_name
然後,檢查
$jobId
。 在下列範例中,將<job_id>
替換為您想要檢查的工作識別碼:$jobId <job_id>
使用作業標識碼來檢查移轉作業的狀態。 當容器移轉完成時,MigrationStatus 設定為 Complete:
Get-AzsStorageContainerMigrationStatus -JobId $jobId -FarmName $farm_name
您可以取消進行中的移轉作業。 取消的移轉作業會以異步方式處理。 您可以使用
$jobid
來追蹤取消記錄:Stop-AzsStorageContainerMigration -JobId $jobId -FarmName $farm_name
您可以再次從步驟 6 執行命令,直到遷移狀態 已取消:
移動 VM 磁碟
管理空間的最極端方法牽涉到移動 VM 磁碟。 因為移動連結的容器(其中一個包含 VM 磁碟)很複雜,請連絡Microsoft支援來完成此動作。
在磁碟區之間移轉受控磁碟
由於租使用者使用模式,某些租使用者磁碟區會使用比其他磁碟區更多的空間。 結論是,有些磁碟區在相對未使用的其他磁碟區之前,就已經變得空間不足。
您可以手動將某些受控磁碟移轉至不同的磁碟區,以釋放過度使用磁碟區的空間。 您可以將數個管理的磁碟移轉至具有足夠容量容納它們的單一磁碟區。 使用遷移來轉移 離線 受控磁碟。 離線受控磁碟是未連結至 VM 的磁碟。
重要
受控磁碟的移轉是需要使用PowerShell的離線作業。 您必須解除分配候選磁碟的擁有者 VM,或在開始移轉作業之前將候選磁碟從其擁有者 VM 中移除(完成移轉作業後,您可以重新分配 VM 或重新連接磁碟)。 在移轉完成之前,您移轉的所有受控磁碟都必須保持保留或離線狀態,且無法使用,否則移轉作業會中止,且所有未分清的磁碟仍位於其原始磁碟區上。 您也應該避免升級 Azure Stack Hub,直到所有進行中的移轉完成為止。
使用 PowerShell 移轉受控磁碟
確認您已安裝並設定 Azure PowerShell。 如需設定 PowerShell 環境的指示,請參閱 安裝適用於 Azure Stack Hub 的 PowerShell。 若要登入 Azure Stack Hub,請參閱 設定操作員環境並登入 Azure Stack Hub。
檢查受控磁碟,以瞭解您打算移轉的磁碟區上有哪些磁碟。 若要識別磁碟區中移轉的最佳候選磁碟,請使用
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
識別要儲存您移轉磁碟的最佳目的地磁碟區:
$DestinationVolume = ($Volumes | Sort-Object RemainingCapacityGB -Descending)[0] $VolumeName = $DestinationVolume.Name.Split("/")[2] $VolumeName = $VolumeName.Substring($VolumeName.IndexOf(".")+1) $MigrationTarget = "\\SU1FileServer."+$VolumeName+"\SU1_"+$DestinationVolume.VolumeLabel
開始移轉受控磁碟。 移轉是異步的。 如果您在第一次移轉完成之前開始移轉其他磁碟,請使用作業名稱來追蹤每個磁碟的狀態:
$jobName = "MigratingDisk" Start-AzsDiskMigrationJob -Disks $Disks -TargetShare $MigrationTarget -Name $jobName
使用作業名稱來檢查移轉作業的狀態。 當磁碟移轉完成時,MigrationStatus 設為 完成:
$job = Get-AzsDiskMigrationJob -Name $jobName
如果您在一個移轉作業中移轉多個受控磁碟,您也可以檢查作業的子工作:
$job.Subtask
您可以取消進行中的移轉作業。 取消的移轉作業會以異步方式處理。 您可以使用作業名稱來追蹤取消,直到狀態確認移轉作業 已取消:
Stop-AzsDiskMigrationJob -Name $jobName
分配非受控磁碟
管理空間的最極端方法牽涉到移動非受控磁碟。 如果租使用者將非受控磁碟新增至一個容器,容器的已使用容量可能會超出容器進入溢位模式之前保留磁碟區的可用容量。 為了避免單一容器耗盡磁碟區的空間,租使用者可以將一個容器的現有非受控磁碟分散到不同的容器。 因為部署包含 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 中的剩餘和已使用記憶體,例如:
下列元件會取用餅圖所使用區段中的記憶體:
- 主機 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 會耗用記憶體。 這表示在 建立 或 失敗 狀態中的虛擬機器,或從客體內部關閉的虛擬機器,仍然會消耗記憶體。 不過,從 Azure Stack Hub 使用者入口網站、PowerShell 或 Azure CLI 使用 [停止解除分配] 選項解除分配的 VM 不會取用來自 Azure Stack Hub 的記憶體。
- 附加元件資源提供者:針對附加元件資源提供者部署的 VM,例如 SQL、MySQL 和 App Service。
用於 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 的基礎架構。
主機操作系統使用的記憶體 = 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 (虛擬機) | 112 |
韌性儲備 | H + R * (N-1) * H) + V * (N-2) |
韌性儲備 | 2137.6 |
透過這項資訊,您可以計算 Azure Stack Hub 系統,其總計 12 個節點,每個主機 384 GB(共 4,608 GB)。若最大的虛擬機器 (VM) 總共有 112 GB 記憶體,則預留 2,137 GB 以確保系統的復原能力。
當您根據下圖查閱實體記憶體的 容量 區段時,已使用的 值包含了彈性保留部分。 此圖表來自四個節點的 Azure Stack Hub 實例:
當您規劃 Azure Stack Hub 的容量時,請記住這些考慮。 此外,您可以使用 Azure Stack Hub Capacity Planner 工具。
後續步驟
若要深入瞭解如何為使用者提供 VM,請參閱 管理 Azure Stack Hub 的記憶體容量。