教程:在独立服务器上使用存储空间启用存储总线缓存
独立服务器的存储总线缓存可以显著提高读取和写入性能,同时保持存储效率和较低的操作成本。 此功能将速度较快的媒体(例如 SSD)与速度较慢的媒体(例如 HDD)绑定在一起来创建层。 有关详细信息,请参阅了解存储池缓存。 默认情况下,只会保留较快媒体层的一部分用于缓存。
复原能力 | 缓存类型 |
---|---|
无(简单空间) | 读取和写入 |
镜像加速奇偶校验 | 读取 |
如果系统不需要复原能力或者具有外部备份,则存储总线缓存支持读取和写入缓存。 对于复原系统,存储总线缓存仅用作读取缓存,你应该选择复原文件系统 (ReFS) 镜像加速奇偶校验来获得卷复原能力。 这种组合提高了随机读取性能,因为数据将从奇偶校验层读取并缓存在较快的镜像层上。 如果“预配模式”设置为“共享”(默认),镜像层还能提供写入缓存功能。
在本教程中,你将学习:
- 什么是存储总线缓存
- 如何启用存储总线缓存
- 在部署后管理缓存
先决条件
如果你的环境符合以下所有特征,则应考虑使用存储总线缓存
- 服务器运行 Windows Server 2022;并且
- 服务器上有 2 种媒体/驱动器类型,其中一种类型必须是 HDD(例如:SSD+HDD 或 NVMe+HDD);并且
- 服务器上安装了故障转移群集功能
如果你的环境符合以下任何特征,则不能使用存储总线缓存
- 服务器运行 Windows Server 2016 或 2019;或者
- 服务器采用全闪存配置;或者
- 服务器是故障转移群集的成员
注意
此功能要求在服务器上安装故障转移群集功能,但服务器不能是故障转移群集的一部分。
功能概述
本部分将解释存储总线缓存的每个可配置字段以及适用的值。
Get-StorageBusCache
未启用时,输出应如以下示例所示:
ProvisionMode : Shared
SharedCachePercent : 15
CacheMetadataReserveBytes : 34359738368
CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly
CachePageSizeKBytes : 16
Enabled : False
注意
对于常规用途,应使用默认设置。 必须在启用存储总线缓存之前进行任何更改。
预配模式
此字段确定是要将较快媒体层用于缓存,还是仅将此层的一部分用于缓存。 启用存储总线缓存后无法修改此字段。 预配模式有两个选项:
- 共享(默认):缓存将只占用较快媒体层的一部分。 确切的百分比可通过“共享缓存百分比”字段配置。
- 缓存:将大部分而不是小部分较快媒体层专用于缓存。 有关详细信息,请参阅了解存储池缓存。
共享缓存百分比
仅当“预配模式”设置为“共享”时,此字段才适用。 默认值为 15%,该字段可设置为 5% 到 90%。 使用镜像加速奇偶校验卷时,不应使用超过 50% 的值,因为缓存与镜像层之间需要平衡。
Enabled
此字段引用存储总线缓存的状态,可为 true 或 false。
高级字段
重要
不建议对这些字段进行更改。 启用存储总线缓存后无法做出调整。
缓存元数据保留字节数:为存储空间保留的磁盘空间量(以字节为单位)。 仅当“预配模式”为“缓存”时,才应用此字段。
缓存模式 HDD:默认设置为允许 HDD 容量设备缓存读取和写入。 对于简单空间,可将此设置指定为“读写”或“只写”。
缓存模式 SSD:此模式供将来支持全闪存系统时使用。 默认设置为允许 SSD 容量设备仅缓存写入。
缓存页大小(KB):此字段可设置为 8、16(默认)、32 和 64。
在 PowerShell 中启用存储总线缓存
本部分提供有关如何在 PowerShell 中为独立服务器启用存储总线缓存的分步指南。
导入模块。
Import-Module StorageBusCache
配置存储总线缓存设置。
应使用默认设置。 如果是这样,请跳过此步骤以使用默认值继续。
重要
如果需要配置,请在启用存储总线缓存之前进行配置。 有关字段的详细信息,请参阅“功能概述”部分。
检查驱动器状态。
Get-PhysicalDisk
输出应如下图所示,其中 Number 列显示了小于 500 的值,CanPool 列对所有非启动驱动器显示了 true。
启用存储总线缓存。
Enable-StorageBusCache
此步骤将会:
- 创建包含所有可用驱动器的存储池。
- 绑定快速和慢速媒体并构成缓存。
- 使用默认设置或自定义设置添加存储总线缓存。
可以运行
Get-StoragePool
以查看存储池的名称,并再次运行Get-PhysicalDisk
以查看启用存储总线缓存的效果。 输出应如下图所示。 Number 列显示了大于 500 的值,这表示存储总线已认领驱动器。 CanPool 列现在对所有非启动驱动器显示了 False。 如果ProvisionMode
在启用之前设置为 Cache,则对于较快的驱动器,Usage 列将显示为 Journal。检查存储总线缓存状态。
检查字段是否正确,以及 Enabled 字段现在是否设置为 true。
Get-StorageBusCache
输出应与下面的示例类似:
ProvisionMode : Shared SharedCachePercent : 15 CacheMetadataReserveBytes : 34359738368 CacheModeHDD : ReadWrite CacheModeSSD : WriteOnly CachePageSizeKBytes : 16 Enabled : True
由于已成功启用存储总线缓存,下一步是创建卷。
创建卷
要创建哪个卷取决于该卷是否具有复原能力。
具有复原能力的卷
以下 PowerShell cmdlet 创建“镜像:奇偶校验”比为 20:80(这是用于大多数工作负载的配置)的 1-TiB 镜像加速奇偶校验卷。 有关详细信息,请参阅镜像加速奇偶校验。
New-Volume –FriendlyName "TestVolume" -FileSystem ReFS -StoragePoolFriendlyName Storage* -StorageTierFriendlyNames MirrorOnSSD, ParityOnHDD -StorageTierSizes 200GB, 800GB
没有复原能力的卷
以下 PowerShell cmdlet 创建 1-TB 简单卷,该卷不能承受任何磁盘故障。 支持读取和写入缓存。
New-Volume -FriendlyName "TestVolume" -FileSystem ReFS -StoragePoolFriendlyName Storage* -ResiliencySettingName Simple -Size 1TB
在启用存储总线缓存后进行更改
运行 Enable-StorageBusCache
后,无法修改“预配模式”、“共享缓存百分比”、“缓存元数据保留字节数”、“缓存模式 HDD”、“缓存模式 SSD”和“缓存页大小”。 可以对物理设置进行有限的更改。 有关详细信息,请参阅以下常见方案。
添加或更换容量驱动器 (HDD)
手动添加驱动器后,运行以下 cmdlet 以完成接入过程。
Update-StorageBusCache
添加或更换缓存驱动器(NVMe 或 SSD)
没有任何 cmdlet 可以取消绑定/重新绑定现有绑定和平衡关系。 以下步骤会导致现有读取缓存丢失。
Remove-StorageBusBinding
New-StorageBusBinding
检查和平衡缓存与容量绑定
使用以下 cmdlet 检查现有的缓存和容量绑定。
Get-StorageBusBinding
在以下示例中,第一列列出了容量驱动器,第三列列出了这些驱动器绑定到的缓存驱动器。 按照“添加或更换缓存驱动器”中的说明进行平衡,以便不会保留现有缓存。
存储总线缓存常见问题解答
本部分解答有关 Windows Server 2022 上的存储总线缓存的常见问题。
当服务器不是故障转移群集的一部分时,为何需要安装故障转移群集功能?
此功能专为独立服务器而设计,但构建在存储空间直通的存储总线层 (SBL) 缓存基础之上。 由于需要群集组件,因此需要安装故障转移群集功能。
存储总线缓存是否适用于全闪存配置?
不可以,仅当有两种媒体类型,并且其中一种类型是 HDD 时,此功能才能正常工作。 此功能不适用于 RAID、SAN 或闪存系统。
如何更改存储总线缓存设置?
请参阅以下示例了解如何将“预配模式”从“共享”(默认)更改为“缓存”。 建议使用默认设置,并且应在启用存储总线缓存之前进行任何更改。
Set-StorageBusCache -ProvisionMode Cache