Windows Server 2016存储空间直连技术的探秘

简介:

关于存储空间直连技术,在本人的之前的博客中小有介绍,其中只是关于这种分布式存储的实现进行了少量延展,这里就把这个技术就我粗浅的研究给感兴趣的朋友介绍一下。首先分布式存储中每个节点都是使用本地的存储的,但是逻辑层却要保证每个节点都能看到所有节点下的存储,这听起来有点不可思议,但其实原来存储厂商提供的存储都有相似的结构,节点机头带本地盘如果多机头节点就要实现磁盘到所有机头的挂接链路。我们这里介绍的Windows Server 2016存储空间直连技术是软件定义存储的范畴,所以首先要引入的一个技术叫做软件存储总线技术。


软件存储总线技术简称就是跨越所有存储集群节点的虚拟存储总线,通过这个虚拟的总线可以让所有集群内的节点看到所有节点下全网状连接的所有本地磁盘。存储总线包含了两个核心组件:ClusPort和ClusBlft,ClusPort实现了一个虚拟的HBA接口,通过这个接口可以实现对所有集群节点下的服务器磁盘设备的连接,而ClusBlft则实现对通过ClusPort连接的所有磁盘设备和机头的虚拟化封装;Windows Server 2016中存储组件堆栈如下,其中绿色的部分为这两个软件存储总线组件。


如上图我们也可以看到软件存储总线通过SMB 3.0和SMB直连技术进行跨集群节点的传输和通信,通过在每个集群节点主机上提供SMB的分层的命名实例,用来提供对SMB的消费者如图中所示的集群共享卷文件系统使用,在上层构建可靠性。在软件存储总线中利用了SMB 3.0提供的多通道及SMB直连技术,关于SMB多通道在本人的博文中介绍过,这个技术可以聚合多个链路用于提高整体带宽并实现透明故障转移;此外对我们实现跨节点连接更直接的核心技术就是SMB直连技术了,SMB直连利用了网卡(iWARP, RoCE或Infiniband)的RDMA直连,有了这个技术我们就可以通过高带宽低延迟的网络连接磁盘设备了,并且减少了对CPU的开销;可以简单的想象一下相当于通过这个直连网络构建的高速虚拟总线连接了跨节点的设备;记得两年前我就曾经参与了在微软技术大会2013上通过SMB直连技术实现秒级别的虚拟机在线迁移演示;当时这个技术的Windows Server 2012 R2中加以利用。


既然叫软件存储总线,那么其中必然有软件定义存储的含义存在;软件存储总线利用了公平连接算法防止某台服务器过渡使用磁盘造成其他服务器无法获得磁盘访问持续处于饥饿状态;而且提供了IO优先级优化算法,例如对于应用的IO优先级(如虚拟机)由于系统IO,当然该算法也要保证适当系统IO需要以避免对系统的影响;还有一个核心优化算法是可以聚合应用(虚拟机)的单独随机IO为聚合的顺序IO以优化对于传统机械硬盘的访问速度。


最后,软件存储总线在每个集群存储节点中都提供了存储总线缓存的缓存优化,这与上层的虚拟磁盘和存储池是无关的;属于底层优化。缓存磁盘为存储节点本地的固态盘,缓存存储通过跨节点镜像实现冗余;与之相对的是本地的大容量SATA机械硬盘作为数据存储盘,本地的数据存储盘以RR轮询的方式在本地缓存磁盘后端,如果缓存节点出现故障将会重新分配缓存磁盘。根据本地磁盘配置,缓存策略选择会有所差异,具体见下表。



储存配置

缓存设备

存储设备

缓存模式

SATA SSD + SATA HDD

所有SATA SSD

所有SATA HDD

读写

NVMe SSD + SATA HDD

所有NVMe SSD

所有SATA HDD

读写

NVMe SSD + SATA SSD

所有NVMe SSD

所有SATA SSD


软件存储总线配置创建的缓存设备会预留32GB存储空间用于上层存储池和虚拟磁盘的元数据创建;同时对于每个节点每TB数据会有10GB内存保留用于数据结构;所以在规划一个超融合结构的时候需要考虑这部分内存空间预留不能作虚拟机节点工作负载使用。










本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/1717511,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Linux Windows
Windows Server 下文件同步
Windows Server 下文件同步
19 0
|
2天前
|
开发框架 .NET 数据库
修改windows server 2008 时间和日期格式
修改windows server 2008 时间和日期格式
|
3天前
|
SQL Windows
保姆级:Windows Server 2012上安装.NET Framework 3.5
保姆级:Windows Server 2012上安装.NET Framework 3.5
|
4天前
|
Apache 项目管理 数据安全/隐私保护
Windows如何安装使用TortoiseSVN客户端并实现公网访问本地SVN Server
Windows如何安装使用TortoiseSVN客户端并实现公网访问本地SVN Server
12 0
|
5天前
|
安全 关系型数据库 虚拟化
WIndows Server 远程桌面服务—RDS
WIndows Server 远程桌面服务—RDS
|
5天前
|
开发框架 JavaScript 安全
WIndows Server 2016 部署 Web服务(简单篇)
WIndows Server 2016 部署 Web服务(简单篇)
|
5天前
|
安全 测试技术 网络安全
WIndows Server 2016 部署 PKI + 证书
WIndows Server 2016 部署 PKI + 证书
|
11天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
|
12天前
|
网络协议 Windows
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
|
17天前
|
SQL 数据管理 关系型数据库
如何在 Windows 上安装 SQL Server,保姆级教程来了!
在Windows上安装SQL Server的详细步骤包括:从官方下载安装程序(如Developer版),选择自定义安装,指定安装位置(非C盘),接受许可条款,选中Microsoft更新,忽略警告,取消“适用于SQL Server的Azure”选项,仅勾选必要功能(不包括Analysis Services)并更改实例目录至非C盘,选择默认实例和Windows身份验证模式,添加当前用户,最后点击安装并等待完成。安装成功后关闭窗口。后续文章将介绍SSMS的安装。
14 0

热门文章

最新文章