网云科技
标题:
用三台GEN8打造一个分布式分层存储-软件篇
[打印本页]
作者:
s4lovik
时间:
2016-3-29 20:26
标题:
用三台GEN8打造一个分布式分层存储-软件篇
如果说硬件是躯干的话,那软件就是灵魂了。继“用三台GEN8打造一个分布式分层存储-硬件篇”(/thread-1212326-1-1.html)之后,先奉上真正将一堆硬件转化为真正的分布式分层存储。
分布式存储的方案很多,有swift这样的对象存储,也有cinder(https://wiki.openstack.org/wiki/Cinder)这样的块存储。这里我将用新一代Windows Server(codename: Threshold)中内置的分布式存储功能(Shared Nothing Storage)来打造。
下面是软硬件及网络的简单介绍
--------------------------------
硬件部分:三台GEN8,每台配置如下:
CPU: E3-1230V2
内存: 16GB
系统盘: Seagate Pulsar.2 200GB
SSD层:LSI Nytro WrapDrive 400GB PCIe SSD (100GB x 4)
HDD层:Seagate 7200转 2TB HDD x 2
网络:Netgear JGS524E 24口简单网管交换机,具备端口聚合能力。
软件部分:Windows Server Threshold Technical Preview
概念和逻辑架构
-----------------
下面是这个分布式存储的概念示意图:
上面图中的三个方框就是三台GEN8啦,红框框之上的就是使用这个存储的应用或者虚拟化软件了。示意图中每个节点有两块磁盘但通过个部署Shared Nothing Storage的群集,每个节点的Storge Space的存储池中都能看到这个群集中所有节点上的所有磁盘,从而形成一个软件的共享存储总线(Windws Server 2012 R2或更早的版本都要求硬件共享存储)。然后在这个存储池中可以建立一个或多个虚拟磁盘。这些虚拟磁盘对外提供的服务事实上有很多种,包括SMB文件共享、iSCSI等等。
安装和配置步骤
-----------------
首先当然是在三台GEN8上都安装上Windows Server Threshold的操作系统软件,Windows Server的系统相信傻瓜都会安装。一路下一步就对了。不过作为Windows故障转移群集需要加入域工作,这点不要忘记。
此时查看每台GEN8上的服务器管理器还只能看到本机的4块SSD和2块HDD
接着在每台GEN8上安装文件服务器角色和故障转移群集角色。并按照要求重启服务器。然后就是创建群集了。这里为了方便我用PowerShell命令行描述省得要做很多截屏。
#Create cluster
New-Cluster –Name CLUSTER-MSG8-1 –Node server-msg8-1,server-msg8-2,server-msg8-3 –NoStorage
# Set cluster properties
(Get-Cluster).DASModeEnabled=1
复制代码
此时,打开每台GEN8的服务管理器,可以看到三台GEN8上面所有的12块SSD和6块HDD。
接着我们就可以创建存储池了。
#Create storage pool and define storage tiers
New-StoragePool -StorageSubSystemFriendlyName *clustered* -FriendlyName Pool1 -EnclosureAwareDefault $true -AutoWriteCacheSize $true -ProvisioningTypeDefault Fixed -ResiliencySettingNameDefault Mirror -PhysicalDisk (Get-PhysicalDisk | ? CanPool -eq $true)
复制代码
然后创建SSD和HDD的分层
New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName SSDTier -MediaType SSD
New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName HDDTier -MediaType HDD
复制代码
当然你也可以通过图形化界面来创建上面的存储池,如下面的步骤:
不过如果你是通过图形化界面创建的存储池,还需要在PowerShell命令行中运行下面的命令来设置一些界面上没有的属性。
Get-StoragePool -FriendlyName pool1 | Set-StoragePool -EnclosureAwareDefault $true -AutoWriteCacheSize $true -ProvisioningTypeDefault Fixed -ResiliencySettingNameDefault Mirror
复制代码
创建好的存储是长这个样子的
如果看物理磁盘的那页能看到所有的18块磁盘
有了存储池以后就是在上面创建虚拟磁盘了。
#Set ReFS Format Version
invoke-command -ComputerName server-msg8-1,server-msg8-2,server-msg8-3 {REG ADD HKLM\System\CurrentControlSet\Control\FileSystemUtilities /v RefsFormatVersion /t REG_DWORD /d 2 /f}
#Create virtual disks
$ssd = Get-StorageTier -FriendlyName SSDTier
$hdd = Get-StorageTier -FriendlyName HDDTier
New-Volume -StoragePoolFriendlyName Pool1 -FriendlyName VD1 -PhysicalDiskRedundancy 1 -FileSystem CSVFS_REFS -StorageTiers $ssd, $hdd -StorageTierSizes 340GB, 3800GB
#Disable ReFS Integrity Streams
set-fileintegrity C:\ClusterStorage\Volname1 –Enable $false
复制代码
程序执行完以后的截图
此时看群集管理器中,可以看到新建的虚拟磁盘。从下面的图中我们能够看到这个虚拟磁盘采用的是镜像,Column是2,条带是256KB。
更多有关该虚拟磁盘的详细信息可以通过PowerShell命令行看到。
我们还能看到这块虚拟磁盘SSD层和HDD层中的空间大小
到此为止我们已经有了一部分布式的剧本冷热数据分层的存储。
后续有时间的时候我还会再奉上应用篇及性能测试。不过那个部分同2012和2012 R2上的Storage Space就没有大的分别了。
作者:
fzh4p8
时间:
2016-3-29 20:26
对楼主的应用环境很感兴趣
作者:
oj4bk4x
时间:
2016-3-29 20:27
谢谢回复!统一存储又多了一个选择方案。
这个真的和VSAN有很多类似特性,但是VSAN结合了DSR和HA两大特性,还有丰富的策略选择。基于linux内核,我还是会选择VSAN方案。
再次感谢,有空再去看看微软的技术白皮书。
作者:
lwdfqgu
时间:
2016-3-29 20:27
支持这样的帖子
作者:
3mhrtyv
时间:
2016-3-29 20:27
没接触过这种分布式技术呢。那数据寸到各节点的分配逻辑是怎样的呢?挂掉硬盘或者节点掉了是怎么处理的呢?
作者:
zj89fuk
时间:
2016-3-29 20:27
优势在硬件篇开头提过。
/thread-1212326-1-1.html
作者:
45bbbrp
时间:
2016-3-29 20:27
很专业!看不懂英文的!
作者:
ntx89fq
时间:
2016-3-29 20:27
Windows Server(codename: Threshold)这个倒是了解不多。
1 这个实例做了SDD、HDD层,请问SDD能作为HDD层的cache吗?
2 实例中虚拟磁盘是镜像模式,请问是三个集群互为镜像?column2是容错值(两个磁盘)?请说明容错的策略。
3 磁盘的IOPS能负载均衡吗?
4 请问有跟VSAN的性能对比吗?
作者:
bllx8sl
时间:
2016-3-29 20:27
# Set cluster properties
(Get-Cluster).DASModeEnabled=1
http://msdn.microsoft.com/en-us/library/aa371422(v=vs.85).aspx
这个命令好像在 技术预览版中是不支持的。。
好像楼用主用到的部分,并不是 新版中的特性呢。。
作者:
1j5ps98
时间:
2016-3-29 20:27
12块ssd做完阵列只有340G?
作者:
bbhuy4d
时间:
2016-3-29 20:27
我也只是看到文档里说,不支持的。可能是说功能上的吧。。
但不会有错误。。
有没有在 2012 R2中测试过?
测试预览版里写的是增加2个新功能(存储部分),
一个是QOS,服务质量管理,用来针对不同请求,提供处理优先级。
另一个是叫SR的数据复制服务,是一种容灾方案,即将节点A的磁盘内容 复制到 节点B中,也是在群集里,但可以不再一个地理位置。
这两部分都没用上,这个功能可能之前版本就有的吧?
群集共享卷这个东西是我之前看Hyper-V 资料看到的,
记得是2.0 版本中吧,需要CSV,而CSV必须将存储放到外部机箱里,同时链接不同服务器,查了一下,这个方案非常麻烦,首先就机箱非常难弄到,其次,硬盘必须是SAS的,才能同时连接2个不同设备。
所以,预订使用的备用方案是iSCSI。
之后,Hyper-V3.0 中添加新功能,支持SMB3.0 作为存储盘,不需要CSV 了,所以也么这么麻烦了。
这个就是强制直接开启DAS模式来工作吧?不过,这样一来,扩容也比较容易了,可以组多个超低功耗的平台,比如 ATOM 的服务器版子
作者:
11pf1fgk
时间:
2016-3-29 20:27
楼主是什么行业的,IT培训业?
作者:
qppxpg6
时间:
2016-3-29 20:27
请问,这样做的好处是什么?
作者:
em040xql
时间:
2016-3-29 20:27
1 这个实例做了SDD、HDD层,请问SDD能作为HDD层的cache吗?
可以作为写缓存,大小你可以设置,如果不设置就想我这里,默认是1GB。
2 实例中虚拟磁盘是镜像模式,请问是三个集群互为镜像?column2是容错值(两个磁盘)?请说明容错的策略。
三个节点在一个群集中,但数据我选择的只留两个副本,所以数据是散列在三个节点中。但能够保证的是,同一份数据的两个副本一定不会出现在同一个节点。
Column是说一份数据能够散列在几块磁盘上。理论上这个值越大性能越好。详见http://social.technet.microsoft. ... ide_how_many_to_use
3 磁盘的IOPS能负载均衡吗?
能,纯从性能角度,我现在的配置可以设置为Column=6 (取决于数量最少的那层硬盘数量)。相当于同时读写6块磁盘,也就是效果等同于6块磁盘做了RAID0。但那样也就没有容错了。
4 请问有跟VSAN的性能对比吗?
VSAN了解不多,只知道处于某些原因,他的默认column数量是1。
作者:
g0nzosh
时间:
2016-3-29 20:27
在预览版中就支持。
作者:
7t1b2q5w
时间:
2016-3-29 20:27
群集共享卷是这个分布式存储之上的功能,看你的需求可以启用也可以不用。
作者:
9qum5l22
时间:
2016-3-29 20:27
看着只有膜拜的份了...
作者:
qeyfg82
时间:
2016-3-29 20:27
数据寸?这个名词我很陌生。它的英文是什么?
简单来说Storage Space对于数据的分布也采用同RAID类似方式,条带,镜像,奇偶校验。不过更加灵活(可以通过不同参数的调整找到适合自己的搭配,还可以将不同容量的盘放在一个池子中,不仅能用还能最大限度利用其容量,扩容也容易,只要是以Column数量的整数倍增加磁盘就可以实现在线扩容,等等还有很多)和可以跨服务器。
至于它的容错能力见下面的链接。
http://social.technet.microsoft. ... Enclosure_Awareness
作者:
d0ulbw
时间:
2016-3-29 20:27
写错了 是存~
性能如何呢?
作者:
p0ffz45
时间:
2016-3-29 20:27
我只能说楼主亮瞎了我的狗眼,够专业,其实普通用户更关心的是实现了哪些直观的功能。不过楼主帖子质量各方面很高。
作者:
zlmlihr
时间:
2016-3-29 20:27
LZ估计是运维~~~~~
作者:
hsuefi2o
时间:
2016-3-29 20:27
哇塞,chh是不是专业论坛啊?
作者:
p687hv3
时间:
2016-3-29 20:27
诶iii
Win Server10 预览版都用上了? 没注意到这功能。
实际上是建立 群集卷吗?
不过,可以不用外部共享 箱体,太爽了。
作者:
ezt5d6cg
时间:
2016-3-29 20:27
gyc 于 2015-1-8 18:00 编辑
第三点的那个,补充一个中文链接
http://social.technet.microsoft. ... ide_how_many_to_use
英文不好勉强翻译的。虽然找了2个校验,但也草草就结束了。
就我看过的资料来说, 系统会自动轮询数据,
确保数据都分散到每个硬盘上,对于这里,开启箱体意识,应该是会按不同机箱进行分类,避免都在同一个机箱里的情况。
作者:
zl2g19
时间:
2016-3-29 20:27
非也,只是测试时选了两个数字作为例子而已。
SSD实际容量可用容量应该是92GB X12/2 = 552GB。下面我用550GB SSD层和5400GB HDD层重新建了一个虚拟磁盘。见下面的截图。
作者:
mjspm8
时间:
2016-3-29 20:27
lz不只是豪,还是有文化的豪,再次膜拜
作者:
x1fixo
时间:
2016-3-29 20:27
如果是企业级的应用,可能会这么用。家用还是太折腾。DS414虽然性能差点,弄个raid 5也足够家用了。
欢迎光临 网云科技 (http://www.8x6x.com/)
Powered by Discuz! X3.2