本文为友情转发,供读者参考学习,不完全代表编者观点。作者高毅(Jason Gao),IT行业12年技术和培训相关工作经验,曾在Dell等公司任职,目前为微软OEM产品技术专家。
微软新发布的软件定义存储技术:Storage SpacesDirect,集成在Windows Server 2016 数据中心版内,它将连接本地驱动器的标准x86服务器组建成具备高可用、可扩展的软件定义存储,并且成本低于传统SAN或者NAS阵列。同时由于架构简化,并且运用缓存、存储层和纠删码等新功能以及最新的硬件技术(如:RDMA网络、NVMe闪存、Storage Class Memory)实现了更高的存储效率和性能。本文内容就带大家深入了解微软软件定义存储技术产品:Storage Spaces Direct(下文简称S2D)。
部署方案选项:
S2D适用于两种不同的部署方式:
1.融合架构:也称为分离部署。将Hyper-V集群和运行着S2D横向扩展文件服务器分开各自独立,通过SMB3提供NAS文件共享。Hyper-V集群可以扩展到64台服务器,大规模部署建议才用这种部署方案。
2.超融合架构:直接在提供存储的服务器上运行Hyper-V虚拟机。此架构无需配置文件服务访问和权限,降低中小型企业部署的硬件成本。超融合架构是本文介绍的重点。
工作原理:
如上文所提,Storage Spaces Direct是由Storage Spaces演变而来,Storage Spaces最先在Windows Server 2012引入。它利用Windows Server 中已有的许多功能,比如:故障转移集群、集群共享卷(CSV),SMB3.0及存储空间(StorageSpaces)。它还引入一个非常重要的新技术:软件存储总线(Software Storage Bus),下图是S2D技术堆栈概览:
S2D技术主要优势:
| 简单易用:只需要15分钟就可以使用Power Shell命令将运行Windows Server 2016数据中心版的服务器,部署成S2D存储集群。对于System Center用户更加容易,部署S2D知识简单的图形化向导界面。 |
| 高性能:无论是全闪存还是混合磁盘,每个节点都可以轻松达到15万IOPS性能(4K随机读),并且具备较低延迟。一切源于S2D和Hyper-V集成的架构,内置读写缓存,以及对PCIe总线的 NVMe驱动器的支持。 |
| 容错:内置的容错还原功能可以在不影响业务可用性的情况下处理驱动器、服务器或组件的故障。大规模部署还可以配置机箱和机柜的容错,数据校验位存放在不同的机箱或者机柜上,提供跨机箱或者跨机柜的容错。如果硬件发生故障,只需更换发生故障的硬件,而软件会自行复原,不需要复杂的管理步骤。 |
| 提高资源效率:纠删码最多可提高 2.4 倍的存储效率,它采用独特的创新(如LRC和 ReFS 实时层),使效率优势扩展到了硬盘驱动器及热/冷数据层混合工作负载,同时最大程度降低了 CPU 使用率,为最需要的虚拟机提供资源。 |
| 可管理性:适用存储QoS控件,使高负载的虚拟机保持符合每台虚拟机的 IOPS 上限和下限。运行状况服务提供连续的内置监视和警报,并使用新的 API,可在群集范围内轻松收集大量性能和容量指标。 |
| 可扩展性:可扩展从2台到 16 台服务器以及最多416个驱动器,每个群集拥有最高 1 PB (1,000 TB) 的存储。只需添加驱动器或添加更多服务器即可实现扩展,S2D自动载入新的驱动器,并开始使用。存储效率和性能随着扩展而大幅提升。 |
我们已经简要了解S2D的架构、优势和技术堆栈,为了让您更加了解S2D存储运行原理和规划设计注意事项,接下来我们将深入分析S2D技术。(阅读以下内容需要对存储技术有一定基础)
1.了解S2D的缓存技术
S2D具有内置服务器端缓存,以最大限度地提高存储性能。这是一个大型、持久且实时的读取和写入缓存。启用S2D时将自动配置缓存。在大多数情况下,无需任何手动管理。缓存如何工作取决于配置的驱动器类型。
六种组合方式,可以归类为两大类:“全闪存”和“混合”
全闪存部署:3种部署方式,可以最大提升存储性能并优化成本。
混合部署:3种部署方式,平衡性能和容量需求,最大限度提高容量。
在具有多个驱动器类型的部署中,存储空间直通自动将所有“最快”类型的驱动器用于缓存。剩余的驱动器用作容量空间。注意:缓存不构成可用的存储容量,存储在缓存中的所有数据只是暂存,并且所有缓存的数据也会存储在其他的位置,或者取消暂存后存储到其他位置。所以S2D存储的裸容量仅计算容量驱动器的总和,而不计算缓存盘。
| ·大型、持久、实时的读写缓存 (DWPD≥3或者TBW≥4) ·如果使用缓存盘,每台服务器至少2块缓存盘 ·每台服务器至少包含4块容量盘 ·使用经过认证的SAS HBA卡,不支持RAID HBA控制器或 SAN设备 |
比如:同时有NVMe和SSD,NVMe作为SSD的缓存;同时有SSD和HDD,SSD作为HDD的缓存。
1.1自动设置缓存规则:
S2D存储会根据缓存驱动器类型自动配置缓存规则。为固态硬盘提供缓存,比如同时有NVMe和SSD,NVMe只能作为SSD的写入缓存。为HDD提供缓存,比如SSD或NVMe为HDD提供缓存时,可作为读取和写入缓存。
如下表:总结了哪些驱动器用作缓存、哪些驱动器用作容量空间,以及每个部署方式对应于的缓存行为。
部署 | 缓存驱动器 | 容量驱动器 | 缓存行为(默认) |
全SSD 或 全NVMe | 无(可选:手动配置) | SSD 或 NVMe | 只写(如果已配置) |
NVMe + SSD | NVMe | SSD | 只写 |
NVMe + HDD | NVMe | HDD | 读取 + 写入 |
SSD + HDD | SSDSSD | HDDHDD | 读取 + 写入 |
NVMe + SSD + HDD | NVMe | SSD + HDD | 对HDD 为读取 + 写入 对SSD 为只写 |
1.2 驱动器绑定是动态的
缓存驱动器和容量驱动器之间的绑定比率可以是从 1:1 到 1:12 及更高的任意比率。无论是添加还是删除驱动器(例如,纵向扩展或失败后),比率都会自动调节。这意味着,你随时可以独立添加缓存驱动器或容量驱动器。为了对称,我们建议将容量驱动器的数量设置为缓存驱动器数量的倍数。例如:如果你有 4 个缓存驱动器,则使用 8 个容量驱动器(1:2 的比率)。(下图为GIF动画)
1.3 处理缓存驱动器故障
当缓存盘发生故障时,本地服务器将丢失任何尚未取消暂存的写入,这意味着缓存中的数据只存在位于其他服务器的副本中。和其他任何驱动器发生故障后一样,存储空间能够通过正常运行的副本自动恢复。在短时间内,与故障缓存盘绑定的容量驱动器将显示不正常。一旦发生缓存重绑定且完成数据修复,它们将恢复显示为正常(这一切均为自动)。这种情况就是每台服务器需要至少两个缓存驱动器才能保障性能的原因。然后你可以像更换其他驱动器一样更换缓存驱动器。(下图为GIF动画)
2.S2D的容错和存储效率
作为一款软件定义存储产品,除了提供优秀的存储性能和灵活的架构,也要保障存储数据的可靠性。本章节将介绍S2D的容错技术,对不同存储节点数量下可使用的容错能力以及存储效率进行分析。部分容错技术沿用Storage Space技术,您可以直接浏览本文总结部分。
2.1概述
在本质上存储空间提供数据容错功能。实现方式与 RAID 的方式相似,除了S2D是在软件中实现跨服务器实现数据容错。大致可分为两类:“镜像”和“奇偶校验”。
2.2镜像
镜像保留所有数据的多个副本,提供容错。这最接近RAID-1。在 Windows Server 2016 中,存储空间提供两类镜像:“双向”和“三向”。
双向镜像
| 双向镜像为所有数据编写两个副本。存储效率为 50%,即若要写入 1 TB 的数据,需要至少 2 TB 的物理存储容量。同样地,需要至少两节点“容错域”,对存储空间直通而言,这意味着两台服务器。 |
三向镜像
| 三向镜像为所有数据编写三个副本。存储效率为33.3%,即若要写入 1 TB 的数据,至少需要 3 TB 的物理存储容量。对S2D而言,这意味着三台服务器。三向镜像可以安全度过一次至少出现两个硬件(驱动器或服务器)问题。例如,如果你在另一个驱动器或服务器突然发生故障时重新启动一个服务器,则所有数据都将保持安全且可连续访问。 |
2.3奇偶校验
奇偶校验不影响容错的前提下提供更好的存储效率
单奇偶校验
单奇偶校验仅保留一个按位奇偶校验符号,这一次仅对一个失败提供容错。这最接近 RAID-5。若要使用单奇偶校验,需要至少三个硬件容错域,对存储空间直通而言,这意味着三台服务器。因为三向镜像在相同范围内提供更多容错,所以我们不推荐使用单奇偶校验。但是,如果坚持使用,可随时利用,并且完全受支持。
双奇偶校验
双奇偶校验实现 Reed-Solomon 错误更正代码,保留两个按位奇偶校验符号,因此提供与三向镜像提供的相同容错(即最多同时两个失败),但存储效率更高。这最接近RAID-6。若要使用双奇偶校验,需要至少四个硬件容错域,对存储空间直通而言,这意味着四台服务器。在该范围内,存储效率为 50%,即若要写入 2 TB 的数据,需要至少 4 TB 的物理存储容量。
双奇偶校验的存储效率增加了用户所拥有的硬件容错域,即从 50% 增加到最高 80%。例如七台服务器时,效率提高到 66.7%,即若要存储 4 TB 数据,只需 6 TB 的物理存储容量。
本地重建代码LRC
Windows Server 2016 中的存储空间引入了 微软研究院开发的名为“本地重建代码”或 LRC 的高级技术。在大范围内,双奇偶校验使用 LRC 将编码/解码划分为几个较小的组,以减少从失败写入或恢复所需的开销。对于硬盘驱动器 (HDD),组大小为四个符号;对于固态硬盘 (SSD),组大小为六个符号。例如,以下是硬盘驱动器和 12 个硬件容错域(意味着 12 台服务器)布局(即有两组的四个数据符号)的外观。它实现了 72.7% 的存储效率。
总结一下存储空间直通可用的复原类型、使用每种类型的最低范围要求、每种类型可容忍的失败数以及相应的存储效率。
容错功能 | 失败容差 | 所需最少节点数 | 存储效率 |
双向镜像Two-way mirror | 1 | 2 | 50.00% |
三向镜像Three-way mirror | 2 | 3 | 33.30% |
双奇偶校验Dual parity | 2 | 4 | 50.0% - 80.0% |
混合Mixed | 2 | 4 | 33.3% - 80.0% |
所有数据保持联机的示例
这六个示例显示三向镜像或双奇偶校验可以容忍的故障。
离线了一个驱动器(包括缓存驱动器) | 离线一台服务器 |
离线了一台服务器和一个驱动器 | 不同服务器离线了两个驱动器 |
离线了超过两个驱动器,前提是最多两台服务器受影响 | 离线了两台服务器 |
所有数据离线的示例
在生命周期内,存储空间可容忍任何数量的失败,因为如果时间充足,在每个失败后,它都可以还原到完整复原。但是,在任何指定时刻,失败可安全影响最多两个容错域。因此,以下是三向或双奇偶校验无法容忍的失败示例。
三台或更多服务器同时丢失驱动器 | 同时丢失三台或更多服务器 |
3. S2D的硬件要求
本章节介绍测试S2D的最低硬件要求。对于生产环境,我们建议使用Dell S2D Ready Nodes超融合一体机,方案可靠性和兼容性经过验证测试,工作负载和性能可估算,并且包括部署服务和售后服务。
所有系统、组件、设备和驱动程序必须标有“Certifiedfor Windows Server 2016”,可以登陆查询认证信息。
此外对于不同系统和组件有以下具体要求:
系统和组件 | 具体要求 |
服务器 | ·最少2台服务器,最多16台服务器 ·所有服务器应是相同的厂商和型号 |
处理器 |
|
内存 | ·每台服务器应按缓存驱动器每TB容量配4GB内存,以存储S2D元数据。例如:2个1.6TB缓存驱动器,应保留2X1.6X4096MB=13107MB)的供S2D使用的内存。 ·Windows Server、虚拟机等其他应用负载使用的内存。 |
网络 | ·最小 10 GbE 网卡用于超融合群集内通信,推荐25 GbE网卡提高东西流向带宽 ·建议:两个 网卡进行NIC Teaming 用于冗余和提升性能 ·建议:支持远程直接内存访问 (RDMA) 的 网卡(iWARP 或 RoCE) 微软认证网卡:(根据微软测试数据,持续更新中) Mellanox ConnectX Pro 3 (10GbE SFP+) Intel Ethernet Connection X722(10GbE SFP+) Cavium FastLinQ QL41262H(10GbE SFP+ or 25GbE SFP+) Mellanox ConnectX Pro 4LX (25GbE SFP+) |
驱动器 | ·服务器本地驱动器:支持SATA、SAS或NVMe。驱动器支持512n、512e或4Kn。每个驱动器只能物理连接到一台服务器。 ·所有服务器必须配置相同的驱动器类型。建议:相同驱动器配置(型号、容量和固件) ·SSD必须是企业级,具备断电保护功能。 ·建议:缓存驱动器必须具有写入耐用性:每日写入次数DWPD ≥3,日写入量TBW ≥4TB。了解更多DWPD和TBW ·每台服务器至少2块缓存驱动器,按缓存盘倍数添加容量盘。每台服务器至少配4个容量盘。 ·配置专用驱动器或Raid-1用于安装Windows Server 2016操作系统,建议大小200GB以上。 |
存储池 |
|
HBA | ·用于 SAS 和 SATA 驱动器的直通 SAS ·用于 SAS 和 SATA 驱动器的 SCSI Enclosure Services (SES) ·不支持:RAID HBA 控制器或 SAN(光纤通道、iSCSI、FCoE)设备 Dell 认证 HBA卡:HBA330 |
最低驱动器数量
·如果有用作缓存驱动器,则每个服务器必须至少有 2 个缓存驱动器
·每个服务器必须至少有 4 个容量(非缓存)驱动器
存在驱动器类型 | 所需的最小数量 |
所有 NVMe(同一型号) | 4 个 NVMe |
所有 SSD(同一型号) | 4 个 SSD |
NVMe + SSD | 2 个 NVMe + 4 个 SSD |
NVMe + HDD | 2 个 NVMe + 4 个 HDD |
SSD + HDD | 2 个 SSD + 4 个 HDD |
NVMe + SSD + HDD | 2 个 NVMe + 4 个其他 |
4. 管理S2D
本章节将简要介绍S2D的管理。S2D是一个基于Windows Server 的软件定义存储解决方案,管理S2D时,您可以使用 Windows PowerShell、System Center VirtualMachine Manager (VMM) 和 Operations Manager 或者故障转移群集管理器。
用于管理存储空间直通的工具
部署存储后,您将执行某些管理任务,包括监视故障物理磁盘或其他问题、更换故障的磁盘以及更新固件和驱动程序。有关常见的管理选项,请参阅下表。
工具 | 优点 | 缺点 |
Windows PowerShell | - 全面控制存储的所有方面 - 可以通过编写脚本来自动执行 - 有功能强大的示例脚本可用 | - 与视觉监视整体存储运行状况相比更好管理。 - 脚本需要开发和测试。 |
System Center Virtual Machine Manager (VMM) 和 Operations Manager | - 简单易用 - 用于监视多个系统的图形显示 - 常见问题警报 - 用于管理 VM 和存储的常见工具 | - 一些任务需要 Windows PowerShell - 需要 System Center 许可证 - 如果你还没有 System Center 或者你的部署规模大于你的现有部署所能处理的规模,则可能需要额外的基础结构 |
故障转移群集管理器和服务器管理器 | - 简单易用 - 用于监视的图形显示 | - 一些任务需要 Windows PowerShell - 使用存储时在服务器管理器中慢速自动刷新 - 性能和可用性因存在大量对象而降低 |
添加服务器
添加服务器(也称作横向扩展)可增加存储容量、提高存储性能并实现更高的存储效率。如果你的部署是超融合的架构,则添加服务器还可为你的工作负载提供更多计算资源。比如2节点扩展到3节点,可以解锁三向镜像的容错功能,提供更好容错能力。(下图为GIF动画)
通过添加服务器,很容易通过典型部署实现横向扩展。只需两个步骤:
1.使用故障转移群集管理单元或者在 PowerShell 中使用 Test-Cluster命令,运行群集验证向导(以管理员身份运行)。包括你要添加的新服务器。
2.在群集上运行Add-ClusterNode命令以完成服务器添加
添加驱动器
添加驱动器(也称为纵向扩展)将增加存储容量并提高性能。如果你有可用插槽,则无需添加服务器便可将驱动器添加到每个服务器,从而扩展你的存储容量。您可以随时独立添加缓存驱动器或容量驱动器,但请注意确保所有服务器具有相同的驱动器配置。在短时间内,符合条件的驱动器将自动被“存储空间直通”识别并添加到存储池,卷将自动跨所有驱动器均匀地重新分发。此时,你已完成操作并准备扩展现有卷或创建新卷。(下图为GIF动画)
扩展S2D中的卷
扩展服务器节点或者添加驱动器,都将扩大存储池,本章节您将了解如何调整卷大小。
在调整卷大小之前必须确认,请确保存储池中有足够的容量,以容纳其新的、更大占用空间。例如,将三向镜像卷的大小从 1 TB 调整为 2 TB 时,其占用空间将从 3 TB 增长到 6 TB。要成功调整大小,存储池中将至少需要 (6 - 3) = 3 TB 的可用容量。
在S2D中,每个卷都由以下对象堆叠组成:群集共享卷 (CSV)(这是一个卷)、分区、磁盘(这是一个虚拟磁盘)以及一个或多个存储层(如果适用)。若要调整卷的大小,你将需要调整其中一些对象的大小。
调整卷大小的两步骤:
第 1 步 - 调整虚拟磁盘的大小:当调整虚拟磁盘大小时,磁盘也会自动跟着调整大小。
第 2 步 - 调整分区大小: 当调整分区大小时,卷和CSV也会自动跟着调整大小。
S2D节点维护性离线
在日常使用中,有时候需要停机维护操作,执行此操作需要暂停(挂起)你所要脱机的服务器,将角色移动到群集中的其他服务器,并验证所有数据在群集中的其他服务器上可用,以便数据在整个维护过程中保持安全和可访问。
暂停并清空服务器:重启或关闭服务器之前,请暂停并清空(移除)任意角色(例如,在服务器上运行的虚拟机)。要在故障转移群集管理器中执行此操作,请转到节点,右键单击该节点,然后依次选择暂停 > 清空角色。
正在关闭服务器:服务器完成清空后,它将在故障转移群集管理器和PowerShell 中显示为暂停。现在,你可以像往常一样安全重启或关机。
恢复服务器:当准备好将服务器再次开始托管工作负载时,可以恢复它。要在故障转移群集管理器中执行此操作,请转到节点,右键单击该节点,然后依次选择恢复 > 故障回复角色。
重新同步存储:服务器恢复时,需要重新同步在暂停时(当其驱动器不接收存储 IO 时)发生的任何新写入。此过程自动发生。这一过程可能需要数分钟才能完成,具体取决于服务器暂停的时间和写入的新数据量。
简单易用、高可靠性的S2D存储
通过本章节对S2D介绍,相信您对S2D存储架构,硬件配置要求,磁盘性能及容错技术等都有了深入的了解。通过S2D技术,能为您提供高性能、低延迟、简单易管理的软件定义存储。同时结合微软先进的Hyper-V虚拟化技术和网络控制器SDN技术,为用户构建灵活的超融合架构。特别适用于Hyper-V虚拟化,VDI,SQL Server等业务场景使用。
作者介绍:
| 高毅 Jason Gao Email:Ja IT行业12年技术和培训相关工作经验,曾在Dell等公司任职,目前为微软OEM产品技术专家。丰富的项目管理和数据中心方案构架经验,熟悉数据中心硬件架构,以及SDDC解决方案。 |