在Windows Server 2016中引入了一个新存储功能,这个功能非常类似其他的横向扩展存储解决方案,如VMware的VSAN,可以进行存储空间的直连,使用的是存储节点的本地存储,也就是使用每一个存储节点的内部磁盘设备构建HA存储系统连接到单个的存储节点:
所有的节点是利用SMB3来直接与存储空间进行通信:
存储空间无缝集成组成Windows Server的软件定义存储功能,包括横向扩展的文件服务器,群集共享卷,存储空间和故障转移群集。
除此之外按照同样的道理也可以提供给Hyper-V虚拟机进行使用
那么下面我将利用Windows Server 2016 TP4为大家看看微软新服务器操作系统所能带来的类似解决方案是怎样的:
按照微软的要求为简单是至少需要4个第二代的Hyper-V虚拟机完成实验,每个虚拟机至少4个数据磁盘。
(https://technet.microsoft.com/en-us/library/mt126109.aspx)
注意:存储空间直连不支持MPIO哦。
由于测试资源有限,所以这里我准备了3台服务器:1台DC;2台Windows Server 2016的域成员服务器,每台添加了2块10G的磁盘,每台2张网卡,一个对外,一个心跳
下面我们开始为每一个节点安装故障转移群集角色
Install-WindowsFeature –Name File-Services, Failover-Clustering –IncludeManagementTools
下面开始验证群集是否具备创建存储空间直连的先决条件:
选择“仅运行选择的测试”因为我们这里要测试存储空间直连,默认该选项为勾选。
这里我取消勾选了存储,因为我不是测试共享存储,我是要做存储空间直连。
当然也可以用Powershell进行验证,但必须带上-Include参数,带上Storage Spaces Direct值:
Test-Cluster –Node Stor1,Stor2 –Include "Storage Spaces Direct",Inventory,Network,"System Configuration"
验证完成,虽然警告,但还是可以创建的
下面开始创建群集,包含文件服务器
New-Cluster –Name StorCluster –Node Stor1,Stor2 –NoStorage -StaticAddress 192.168.11.153
创建完成后,我们可以查看群集网络
下面启用存储空间直连(Storage Spaces Direct)
这里启用又分为几个类型:
SATA SSD+SATA HDD:Enable-ClusterStorageSpacesDirect
NVMe SSD+ SATA SSD:Enable-ClusterS2D –S2DCacheDevice NVMe
所有的SATA SSD或NVMe SSD来配置SDS:Enable-ClusterS2D -S2DCacheMode Disabled(禁用了S2D缓存)
在SATA SSD+SATA HDD配置中,存储空间使用了SSD的性能+HDD的容量进行分层。
在NVMe SSD+SATA SSD配置中,存储空间使用了NVMe SSD的性能+SATA SSD的容量进行分层。
下面接着创建存储池
创建存储池可以用Powershell进行创建:
New-StoragePool -StorageSubSystemName <FQDN of the subsystem> -FriendlyName <StoragePoolName> -WriteCacheSizeDefault 0 -ProvisioningTypeDefault Fixed -ResiliencySettingNameDefault Mirror -PhysicalDisk (Get-StorageSubSystem -Name <FQDN of the subsystem> | Get-PhysicalDisk)
示例:
New-StoragePool -StorageSubSystemName StorCluster.contoso.com -FriendlyName StorPool -WriteCacheSizeDefault 0 -ProvisioningTypeDefault Fixed -ResiliencySettingNameDefault Mirror -PhysicalDisk (Get-StorageSubSystem -Name StorCluster.contoso.com | Get-PhysicalDisk)
当然也可以用图形化来创建:
指定存储池名称
选择存储池的物理磁盘,以及磁盘模式
这里要用多少块就选多少块,可以理解为2台服务器每台2快硬盘被假设看成一台服务器的4块硬盘构建成了群集存储池
开始创建
完成后可以创建虚拟磁盘
可以看见我们的群集存储池:
开始创建虚拟磁盘
这里为什么是33G呢?4块10G加起来应该是40G对吧
原因在创建了存储池以后,每个磁盘都有一小部分为已占用空间:
如果我们有2中类型的磁盘,那么这里可以创建存储层(分层)
下一步就是出现的隐藏技能了:这个机箱感知还是非常有意思的,可惜资源有限,无法测试了
下面就是选择存储数据布局了:类似于RAID0,RAID1,RAID5
根据选择的布局不同实际可用的大小也不一样。
Simple可用大小为32G
Mirror可用大小为14
Parit可用大小为21
然后选择创建的虚拟磁盘大小(不能大于可用空间容量)
开始创建
完成后就可以开始创建卷了
选择虚拟磁盘
创建卷又从虚拟磁盘中消耗一点空间
分配驱动器和文件夹了,如果我要做共享存储卷那么我这是可以选择不分配驱动器和文件夹的
选择卷的格式是ReFS或NTFS,以及单元大小名称等
创建
创建完成以后可以看到改卷了
这是我们可以把该卷转成群集共享卷了
看到这相信大家明白这里是大家熟悉的功能和原来的味道了
最后再说下存储池的优化部分:
随着时间的推移,物理磁盘的添加或移除或数据覆盖或删除会导致该池的物理磁盘数据分配不均。在这个情况下会出现某些磁盘变满,而有些比较空,因此管理员可以进行优化维护任务。
Optimize-StoragePool <PoolName>
示例:
Optimize-StoragePool StorPool
也可以使用如下PS进行监控优化的进度
Get-StorageJob | ? Name –eq Optimize
如果优化意外停止工作可以进行修复:
Get-VirtualDisk | Repair-VirtualDisk
今天就分享到这,内容信息庞大,还请各位慢慢消化,我都还晕乎乎的,也需要消化消化。特别感谢“隔壁老王”对我的指导才能顺利完成,谢谢。