larryexchange 发表于 2017-3-3 21:53

在DELL C6220 II 四子星上搭建分布式存储

本帖最后由 larryexchange 于 2017-3-6 10:03 编辑

原来的发在开箱、装机讨论区的帖子“入手DELL C6220 II 四子星,踏上新的折腾征程”拖了太长时间,已经不能编辑了。但还缺少实现分布式存储的软件部分,加上这个部分不属于开箱或装机的内容,故而发在的存储区。

想了解这套四子星的装机过程可以点击上面的链接。

0.操作系统的准备
--------------
首先在四台上面都安装上Windows Server 2016,并通过在线更新打上所有的补丁(这点很重要,RTM版本对于S2D支持上面有不足)。然后在每个节点上安装下面的组件。
Install-WindowsFeature –Name Hyper-V, File-Services, Failover-Clustering, Data-Center-Bridging -IncludeManagementTools –Restart

1.配置RoCE网络策略
---------------
如果你使用iWARP的RDMA,或者网卡压根不支持RDMA,可以略过这个部分。
New-NetQosPolicy “SMB” –NetDirectPortMatchCondition 445 –PriorityValue8021Action 3
Enable-NetQosFlowControl –Priority 3
Disable-NetQosFlowControl –Priority 0,1,2,4,5,6,7
Enable-NetAdapterQos –InterfaceAlias “SLOT 7","SLOT 7 2"
New-NetQosTrafficClass “SMB” –Priority 3 –BandwidthPercentage 30 –Algorithm ETS

2.添加虚拟交换机
---------------
在每个节点上运行下面的脚本。
New-VMSwitch -Name Internal-Switch -NetAdapterName “SLOT 7","SLOT 7 2" -EnableEmbeddedTeaming $true -AllowManagementOS $false
Add-VMNetworkAdapter -SwitchName Internal-Switch -Name SMB_1 -managementOS
Add-VMNetworkAdapter -SwitchName Internal-Switch -Name SMB_2 -managementOS
Set-VMNetworkAdapterVlan -VMNetworkAdapterName "SMB_1" -VlanId 200 -Access -ManagementOS
Set-VMNetworkAdapterVlan -VMNetworkAdapterName "SMB_2" -VlanId 200 -Access -ManagementOS
Enable-NetAdapterRDMA "vEthernet (SMB_1)","vEthernet (SMB_2)"

3.加入域
----------------
在每个节点上运行下面的脚本,并重新启动
Get-NetIPConfiguration | Set-DnsClientServerAddress -ServerAddresses "192.168.20.3"
$PlainPassword = "password"
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force
$UserName = "infra\administrator"
$domainCred = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $SecurePassword
Add-Computer -DomainName INFRA.LAB -Credential $domainCred

4.安装和配置Storage Space Direct (S2D)群集
----------------------
以域管理员的角色登录到节点一, 运行下面的脚本(只需要在节点一运行):
$nodes = ("SERVER-C6222-1", "SERVER-C6222-2", "SERVER-C6222-3", "SERVER-C6222-4")
$S2DCluster = New-Cluster -Name ECGCAT-R7-C1 -Node $nodes –NoStorage –StaticAddress 192.168.20.48
Enable-ClusterS2D

Get-ClusterNode |% {New-Volume -StoragePoolFriendlyName S2D* -FriendlyName $_ -FileSystem CSVFS_ReFS -Size 600GB -PhysicalDiskRedundancy 2}
New-Volume -StoragePoolFriendlyName S2D* -FriendlyName collect -FileSystem CSVFS_ReFS -Size 110GB -PhysicalDiskRedundancy 1可以对比启用S2D前后从节点一上所看到的磁盘数量的变化。可以发现启用S2D后,节点可以识别出整个群集中所有4块NVMe盘和20块SATA盘。并且自动将NVMe盘作为了缓存来使用,而SATA则作为了持久化存储。


上面脚本的最后两条命令,创建了和节点数量相同的数量的虚拟磁盘(SPACE),容量是600GB一个,每个都采用了3路镜像。另外还创建了一个2路镜像的小虚拟机磁盘用于放置后面的测试工具。下面是运行后从群集管理器中看到结果。




到此为止我们已经有了一台四个节点的超融合分布式虚拟化群集。

larryexchange 发表于 2017-3-3 21:54

利用VM Fleet来进行存储性能测试

本帖最后由 larryexchange 于 2017-3-6 10:04 编辑

对于虚拟化平台来说,用户真正体验到的(也就是作为服务提供者能够交付的)IO是体现在虚拟机内部。从整个系统来说,就是所有虚拟机同时加压时系统支撑的IOPS和吞吐。VM Fleet工具就是这样一个通过创建很多虚拟机,并且在虚拟机内部运行Diskspd来进行存储的性能测试。

下载和安装VM Fleet
--------------------------
可以从https://github.com/microsoft/diskspd下载VM Fleet和Diskspd。这里我将VM Fleet复制到了节点一的D盘,然后安装VM Fleet
D:\VMFleet\install-vmfleet.ps1 -source D:\VMFleet然后将Diskspd.exe复制到文件夹C:\ClusterStorage\Collect\Control\Tools


准备一个虚拟机VHD作为模板
-------------------------
接着将一个事先准备好的Server Core版本的VHD复制到C:\ClusterStorage\Collect。准备的过程:

[*]使用Convert-WindowsImage.ps1 (https://gallery.technet.microsof ... wsImageps1-0fe23a8f)转换Windows Server 2016 WIM镜像为 Server Core VHD.
[*]使用上面的VHD启动一个VM并且设置一个初始密码(我用的是password)
[*]关闭这个虚拟机 (不要做sysprep)



创建和启动VM Fleet
--------------------------
在节点一上运行下面的脚本
C:\ClusterStorage\Collect\Control\create-vmfleet.ps1 -basevhd "C:\ClusterStorage\Collect\VMFleet-ENGWS2016COREG2VM.vhdx" -vms 11 -adminpass password -connectpass password -connectuser "infra\administrator" -nodes "SERVER-C6222-1", "SERVER-C6222-2", "SERVER-C6222-3", "SERVER-C6222-4"
C:\ClusterStorage\Collect\Control\set-vmfleet.ps1 -ProcessorCount 4 -MemoryStartupBytes 12GB -DynamicMemory $false
C:\ClusterStorage\Collect\Control\start-vmfleet.ps1注意这里我在每个节点上创建了11个虚拟机,四个节点一共44个。每个虚拟机4个vCPU,12GB内存,40GB的VHD。测试中VHD都换转换为固定尺寸的VHD,40GB的VHD就真实会占用实际磁盘空间40GB,再加上运行迅即过程中虚拟机内存、CPU寄存器等信息所需的磁盘空间,每个虚拟机会占用52GB多的空间,一个600GB的SPACE空间,也就能够支持11台虚拟机了,毕竟我的配置中磁盘容量是个短板。至于一个节点上所有虚拟机的vCPU数量和内存数量,基本vCPU与每个节点逻辑核数一致,或是每个节点物理核数的2倍为宜。一个节点上所有虚拟机内存的总和不超过该节点物理机的综合。

启动以后,可以运行下面的命令来观察创建过程中全部四台上面发生的IOPS和吞吐。未来真正开始在所有虚拟机中加压时,也可以通过下面的监控窗口观察实时的存储性能。
C:\ClusterStorage\Collect\Control\Watch-Cluster.ps1

根据所创建虚拟机的数量的多少,和磁盘系统的速度,创建VM Fleet的过程可能要花上几个小时。最终创建并启动好以后,从群集管理器中看,是这个样子的。


几种加压的测试用例
------------------------
在上面的所有48个虚拟机都启动完成后,运行下面的命令可以指挥所有的虚拟机执行同一个测试用例。下面是几个测试用例:
      # 4KB, 100% Read, 1 Thread, QD=40C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 1 -o 40 -w 0 -d 300# 4KB, 100% Read, 2 Threads, QD=1C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 2 -o 1 -w 0 -d 300# 4KB, 100% Write, 1 Thread, QD=8C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 1 -o 8 -w 100 -d 300# 4KB, 30% Write, 1 Thread, QD=24C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 4 -t 1 -o 24 -w 30 -d 300# 512B, 100% Read, 1 Thread, QD=1C:\ClusterStorage\Collect\Control\start-sweep.ps1 -b 512 -t 1 -o 1 -w 0 -d 300

然后就可以从上面的Watch-Cluster窗口中观察到实时的测试情况。

qiaopeng1231 发表于 2017-3-3 22:21

4路C6220, 跑VSAN效果如何?
期待楼主出一个VSAN的测试报告。

nighttob 发表于 2017-3-3 22:40

MS的Best Practices直接在2U上面完成了

飞翔的企鹅 发表于 2017-3-4 18:15

github的东西好像很难上去,是被和谐了么?

Pale_Cheung 发表于 2017-3-5 23:05

larryexchange 发表于 2017-3-3 21:54
对于虚拟化平台来说,用户真正体验到的(也就是作为服务提供者能够交付的)IO是体现在虚拟机内部。从整个系 ...

密码最好还是不要显示出来。

虽然对自己可能无所谓,但是“有心”的人会收集到字典了。

万一谁觉得你这个密码“不错”...

Pale_Cheung 发表于 2017-3-5 23:07

飞翔的企鹅 发表于 2017-3-4 18:15
github的东西好像很难上去,是被和谐了么?

不是,电信 限制了海外带宽。

我家里上海电信访问海外明显没有公司的上海电信访问海外 顺畅。

各种海外网站都是。

这年头,大家懂“科学”吧?

larryexchange 发表于 2017-3-6 10:05

Pale_Cheung 发表于 2017-3-5 23:05
密码最好还是不要显示出来。

虽然对自己可能无所谓,但是“有心”的人会收集到字典了。


谢谢提醒,已经都替换为password

priest 发表于 2017-3-21 14:00

请问下楼主PCIe Raiser的支架购买渠道有吗?找遍整个TB只有一家单买6220的Raiser,但是只有板子没有支架,而且150元贼贵

larryexchange 发表于 2017-3-21 14:06

priest 发表于 2017-3-21 14:00
请问下楼主PCIe Raiser的支架购买渠道有吗?找遍整个TB只有一家单买6220的Raiser,但是只有板子没有支架, ...

在另一个帖子里回复你了。

iiiooo 发表于 2017-3-25 00:47

IOPS 50w   节点间带宽跑了多少?

larryexchange 发表于 2017-3-25 08:31

iiiooo 发表于 2017-3-25 00:47
IOPS 50w   节点间带宽跑了多少?

从第二帖最下面图中BW那列,可以看到每个节点的吞吐在500MB/s左右(451-593)。

GreatorK 发表于 2017-3-25 11:51

这才是真正的服务器!!!长见识了!

handspring 发表于 2017-8-21 09:55

qiaopeng1231 发表于 2017-3-3 22:21
4路C6220, 跑VSAN效果如何?
期待楼主出一个VSAN的测试报告。

最近也在考虑用6220 II跑VSAN,但是有几个问题:
1. 默认SATA AHCI不在VSAN的HCL中
2. 如果加装LSI 2008夹层卡,勉强可用,但是这卡也不在HCL中而且占用了双口万兆夹层卡的位置
3. 如果加装LSI 9207i (支持VSAN 6.0 U3的最便宜卡),那就没地方装NVMe了,除非再用Rasied卡

larryexchange 发表于 2017-8-21 14:05

handspring 发表于 2017-8-21 09:55
最近也在考虑用6220 II跑VSAN,但是有几个问题:
1. 默认SATA AHCI不在VSAN的HCL中
2. 如果加装LSI 2008 ...

经过几番调整,最终我选择了如下的搭配:
1. 操作系统盘使用SAMSUNG PM953 960GB,这样可以将前面板的24个硬盘位都留给S2D用,并形成SSD:HDD的1:2的搭配比例。(你用vSAN可以使用Riser卡上的Micro SD卡作为主机系统)
2. 两个SATA3的口用了S3710 400GB作为缓存设备
3. 四个SATA2的口用了DELL 1TB的SATA 15mm厚盘,作为持久化存储层
4. 网卡还是用了Mellanox的刀卡,刷了固件支持万兆RDMA,通过QSFP转SFP+的转接头连接支持PFC的万兆SFP+交换机

至于你的需求,貌似使用LSI 9207-8i再配上INTEL万兆的刀卡比较合理。至于NVMe就不用考虑了。用两块S3710做缓存设备无论可靠性还是性能都超过大多数NVMe的盘。

handspring 发表于 2017-8-22 16:06

larryexchange 发表于 2017-8-21 14:05
经过几番调整,最终我选择了如下的搭配:
1. 操作系统盘使用SAMSUNG PM953 960GB,这样可以将前面板的24 ...

最近在淘宝上发现另一个神器,广达的4子星T41S-2U。
优点:
1. C610,支持E5 v3和v4,DDR4 RDIMM内存
2. 自带LSI 3008 HBA卡,子卡,在vSAN的HCL中
3. 自带双口万兆卡,82599,子卡
4. 最好的优点,还空余1个PCIE 3.0 x16插槽
唯一的缺点:价格价格价格,准系统其实不算贵,但是CPU和内存贵很多,粗略估算了下,要达成和C6220 II接近的性能,内存和CPU的成本翻了一倍都不止
{:1_472:}

nighttob 发表于 2017-8-22 16:41

handspring 发表于 2017-8-22 16:06
最近在淘宝上发现另一个神器,广达的4子星T41S-2U。
优点:
1. C610,支持E5 v3和v4,DDR4 RDIMM内存


珍爱生命

有呆鹅这样的产品还是别考虑什么广达了,等用起来就知道有多糟心了

蜡笔小新 发表于 2017-8-22 17:47

很全的经验教程谢谢楼主的分享{:6_233:}

handspring 发表于 2017-8-22 19:12

nighttob 发表于 2017-8-22 16:41
珍爱生命

有呆鹅这样的产品还是别考虑什么广达了,等用起来就知道有多糟心了


广达没这么悲催吧?传说C6220也是广达代工的呀

nighttob 发表于 2017-8-22 20:15

handspring 发表于 2017-8-22 19:12
广达没这么悲催吧?传说C6220也是广达代工的呀

至少找呆鹅的support要比找广达方便得多
我是经历过被广达放弃治疗的
页: [1] 2
查看完整版本: 在DELL C6220 II 四子星上搭建分布式存储