管理 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 会为你创建和管理磁盘。 有关详细信息,请参阅 托管磁盘概述。
非托管磁盘是指以页 blob 形式存储在 Azure Stack 存储帐户的存储容器中的 VHD 文件。 租户创建的页 blob 称为 VM 磁盘并且存储在存储帐户中的容器中。 建议仅对需要与第三方工具兼容(仅支持 Azure 非托管磁盘)的 VM 使用非托管磁盘。
租户指南是将每个磁盘放入单独的容器,以提高 VM 的性能。
- VM 中保存磁盘的每个容器(或页 Blob)被视为拥有此磁盘的 VM 上的附加容器。
- 不保存 VM 中任何磁盘的容器被视为免费容器。
用于释放附加容器上的空间的选项受到限制。 有关详细信息,请参阅 分发非托管磁盘。
重要
建议仅在 VM 中使用托管磁盘,以便更轻松地管理。 在使用托管磁盘之前,无需准备存储帐户和容器。 与非托管磁盘相比,托管磁盘提供等效或更好的功能和性能。 使用非托管磁盘没有优点,它们仅用于向后兼容性。
托管磁盘经过优化,可以更好地放置在存储基础结构中,并显著减少管理开销。 但是,由于托管磁盘实现精简配置,在创建期间无法预测最终的使用情况,因此磁盘的非均衡分配可能会导致卷被过度使用。 操作员负责监视存储容量使用情况并避免此类问题。
有关使用 ARM 模板预配新虚拟机的用户,请参阅 使用 VM 托管磁盘模板 了解如何修改模板以使用托管磁盘。
VM 磁盘作为稀疏文件存储在存储基础结构上。 磁盘具有用户在创建磁盘时请求的预配大小。 但是,只有写入到磁盘的非零页占用基础存储基础结构上的空间。
磁盘通常通过从平台映像、托管映像、快照或其他磁盘复制来创建,快照是从磁盘创建的。 为了增加存储容量的使用并减少复制操作时间,系统使用 ReFS 中的 Blob 克隆。 Blob 克隆是低成本的元数据操作,而不是文件之间的完整字节复制。 源文件和目标文件可以共享相同的范围。 相同的数据不会多次以物理方式存储,从而提高存储容量。
只有在写入磁盘时,容量使用率才会增加,相同的数据才会减少。 删除映像或磁盘时,空间可能不会立即释放,因为可以从该映像中创建的磁盘或快照仍保留相同的数据并占用空间。 如果删除了所有相关实体,空间将变为可用。
blob 和容器
租户用户使用 Azure Blob 存储大量非结构化数据。 Azure Stack Hub 支持三种类型的 Blob:块 Blob、追加 Blob 和页 Blob。 有关不同类型 Blob 的详细信息,请参阅 Understanding Block Blobs, Append Blobs, and Page Blobs(了解块 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 为单位)。
使用管理员门户
云操作员可以使用管理员门户来查看所有卷的存储容量。
登录到 Azure Stack Hub 管理员门户(
https://adminportal.local.azurestack.external
)。选择所有服务>存储>卷打开卷列表,可以在其中查看使用情况信息。
- 总计:卷上可用的空间总量。 此空间用于存储服务维护的数据和元数据。
- 已用:存储租户数据和相关元数据的文件中所有盘区使用的数据量。
存储空间警报
使用管理员门户时,会收到有关卷空间不足的警报。
重要
云操作员应该避免共享达到用完状态。 当存储服务使用率达到 100% 时,该共享的存储服务将不再运行。 若要恢复已 100% 使用的共享上的可用空间和还原操作,请联系 Microsoft 支持部门。
警告:当文件共享使用率超过 90%% 时,会在管理员门户中收到警告通知:
严重:当文件共享资源的使用率超过95%%时,您会在管理员门户中收到严重警报。
查看详细信息:在管理员门户中,可以打开警报的详细信息以查看缓解选项:
卷容量指标
卷容量指标提供了有关不同类型对象的预配容量和使用容量的更详细信息。 指标数据将保留 30 天。 后台监视服务每小时刷新一次卷容量指标数据。
有必要通过主动检查容量指标报告来了解卷的资源使用情况。 若要确定释放空间的相应操作,云服务提供商可以在卷即将满时分析资源类型的分布。 当磁盘预配大小指示卷预配过高时,操作员还可以防止卷被过度使用。
Azure Monitor 提供以下指标来显示卷容量使用情况:
- 卷总容量显示卷的总存储容量。
- 卷剩余容量显示卷的剩余存储容量。
- 卷 VM 磁盘已用容量显示 VM 磁盘相关对象(包括页 blob、托管磁盘/快照、托管映像和平台映像)占用的总空间。 VM 磁盘的基础 VHD 文件可以共享映像、快照或其他磁盘的相同范围(请参阅 磁盘)。 此数字可以小于所有单个 VM 磁盘相关对象的已用容量之和。
- 卷其他已用容量是磁盘以外对象(包括块 Blob、追加 Blob、表、队列和 Blob 元数据)的总已用大小。
- 卷 VM 磁盘预配容量是页 Blob 和托管磁盘/快照的预配总大小。 此大小是特定卷上所有托管磁盘和页 Blob 可以增长到的总磁盘容量的最大值。
若要在 Azure Monitor 中查看卷容量指标:
确认已安装并配置了 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
此命令将在 DashboardGenerator文件夹下创建一个以 DashboardVolumeObjStore 开头的 json 文件。
登录到 Azure Stack Hub 管理员门户(
https://adminportal.local.azurestack.external
)。在仪表板中,选择 上传,然后选择步骤 3 中生成的 JSON 文件:
上传 JSON 后,将定向到新的容量仪表板。 每个卷册都有一个与之对应的图表在仪表板中。 图表数等于卷计数:
通过单击其中一个卷,可以检查详细图表中特定卷的五个容量指标:
卷使用模式
通过检查卷容量指标,云服务提供商能够了解卷的容量使用情况,以及哪些资源类型占用了最多的空间。 空间使用模式分组为以下类型,操作员可以针对每种类型执行不同的操作:
预配不足、备用容量:卷上有足够的可用容量,此卷上所有磁盘的预配容量总量小于可用容量总量。 该卷可供更多存储对象使用,包括磁盘和其他对象(块/追加 blob、表和队列)。 您无需采取任何行动即可调节音量。
过度配置、备用容量:卷的剩余容量较高,但 VM 磁盘预配容量已高于卷总容量。 此卷现在仍有空间用于更多存储对象。 但是,此卷上 VM 磁盘中的数据可能会将此卷填满。 应密切监视此卷的使用趋势。 如果更改为预配过高,容量不足模式,则可能需要采取措施释放空间。
预配过度、容量不足:卷剩余容量较小,VM 磁盘的预配容量和已使用容量均较大。
剩余容量不足表示容量正在接近满负荷使用。 操作员必须立即采取措施释放空间,以防止卷达到 100% 使用率,从而阻止存储服务。 VM 磁盘使用容量高,这显示出大部分卷使用量都是由 VM 磁盘占用的。 请参阅迁移磁盘,将磁盘从完整卷移动到其他可用卷以释放空间。
预配过高,容量不足,块存储使用容量高:卷剩余容量较小,VM 磁盘的预配容量和已使用容量均较大,但其他已使用容量较高。
由于卷有被完全使用的风险,因此操作员应立即采取措施释放空间。 其他已使用容量高表示大部分卷容量由块/追加 Blob 或表/队列占用。 当卷的可用容量小于 20%时,将启用容器溢出,并且不会在此几乎完整的卷上放置新的 Blob 对象。 但是,现有 Blob 可能仍在增长。 若要防止不断增长的 Blob 过度使用容量,可以联系 Microsoft 支持部门查询占用特定卷空间的容器,并确定是否需要租户完成这些容器的清理,以便释放空间。
预配过高,容量不足,块 blob 使用容量高:卷的剩余容量较低,磁盘已用/预配容量以及其他已用容量均较高。 此卷具有磁盘和其他存储对象的高空间使用量。 为了避免卷被完全填满,应释放空间。 建议首先按照迁移磁盘中的说明将磁盘从完整卷移动到其他可用卷。 还可以联系微软支持,查询占用特定卷空间的容器,并决定是否需要由租户清理这些容器以释放空间。
管理可用空间
如果需要释放卷上的空间,请先使用最不侵入性的方法。 例如,在选择迁移托管磁盘之前,请尝试回收空间。
回收容量
可以回收已删除的租户帐户使用的容量。 当达到 数据保留期 时,系统会自动回收此容量,也可以立即回收。
有关详细信息,请参阅 管理 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
开始迁移容器。 迁移是异步的。 如果在第一次迁移完成之前开始迁移另一个容器,请使用作业 ID 跟踪每个容器的状态:
$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>
替换为要检查的作业 ID:$jobId <job_id>
使用作业 ID 检查迁移作业的状态。 容器迁移完成后,MigrationStatus 设置为 完成:
Get-AzsStorageContainerMigrationStatus -JobId $jobId -FarmName $farm_name
可以取消正在进行的迁移作业。 取消的迁移作业以异步方式处理。 可以使用
$jobid
跟踪取消:Stop-AzsStorageContainerMigration -JobId $jobId -FarmName $farm_name
可以再次运行步骤 6 中的命令,直到迁移状态为 Canceled:
移动 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)、虚拟内存页面表、主机 OS 上运行的程序以及空间直通内存缓存使用的内存。 由于此值依赖于主机上运行的不同 Hyper-V 进程使用的内存,因此可能会波动。
- 基础结构服务:构成 Azure Stack Hub 的基础结构 VM。 这需要大约 31 个 VM 占用 242 GB + (4 GB x 节点数)的内存。 随着我们努力使基础结构服务更具可缩放性和复原能力,基础结构服务组件的内存使用量可能会发生变化。
- 弹性预留:Azure Stack Hub 会保留一部分内存,以便在单个主机故障期间维护租户的可用性,并在修补和更新期间确保虚拟机的成功实时迁移。
- 租户 VM:Azure Stack Hub 用户创建的 VM。 除了运行 VM 之外,任何登陆到网络结构的 VM 都会消耗内存。 这意味着处于创建或失败状态的虚拟机,或者从来宾操作系统内部关闭的 VM,仍然会占用内存。 但是,使用 Azure Stack Hub 用户门户、PowerShell 或 Azure CLI 中的“停止解除分配”选项解除分配的 VM 不会消耗 Azure Stack Hub 中的内存。
- 附加功能资源提供程序:为附加功能资源提供程序(如 SQL、MySQL 和应用服务)部署的虚拟机。
可用于 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 使用的操作系统预留量/内存,在此公式中为 0.15
V = 缩放单元中最大的 VM(从内存消耗量看)
Azure Stack Hub 基础结构开销 = 242 GB + (4 GB x 节点数)。 这大约 31 个 VM 用于托管 Azure Stack Hub 的基础结构。
主机操作系统使用的内存 = 主机内存的 15% (0.15)。 操作系统预留值是估计值,根据主机的物理内存容量和常规操作系统开销而有所不同。
规模单元中最大 VM 的值 V是根据部署的最大租户 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 |
利用此信息,您可以计算出具有 12 个节点,每个节点 384 GB (总计 4,608 GB)的 Azure Stack Hub,若最大 VM 拥有 112 GB 内存,则为复原性保留 2,137 GB。
当根据下图向容量边栏选项卡查阅物理内存时,已用值包括复原保留。 此图来自四个节点 Azure Stack Hub 实例:
四个节点上的容量使用情况
规划 Azure Stack Hub 的容量时,请记住这些注意事项。 此外,可以使用 Azure Stack Hub Capacity Planner 工具。
后续步骤
若要详细了解如何向用户提供 VM,请参阅 管理 Azure Stack Hub的存储容量。