维塔斯科技

 找回密码
 立即注册
查看: 5785|回复: 26
打印 上一主题 下一主题

用三台GEN8打造一个分布式分层存储-软件篇

[复制链接]

该用户从未签到

63

主题

468

帖子

1017

积分

金牌会员

Rank: 6Rank: 6

积分
1017
跳转到指定楼层
楼主
发表于 2016-3-29 20:26:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果说硬件是躯干的话,那软件就是灵魂了。继“用三台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就没有大的分别了。


回复

使用道具 举报

该用户从未签到

64

主题

425

帖子

938

积分

高级会员

Rank: 4

积分
938
沙发
发表于 2016-3-29 20:26:59 | 只看该作者
对楼主的应用环境很感兴趣

回复 支持 反对

使用道具 举报

该用户从未签到

55

主题

382

帖子

835

积分

高级会员

Rank: 4

积分
835
板凳
发表于 2016-3-29 20:27:00 | 只看该作者

谢谢回复!统一存储又多了一个选择方案。

这个真的和VSAN有很多类似特性,但是VSAN结合了DSR和HA两大特性,还有丰富的策略选择。基于linux内核,我还是会选择VSAN方案。

再次感谢,有空再去看看微软的技术白皮书。

回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

504

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
地板
发表于 2016-3-29 20:27:00 | 只看该作者
支持这样的帖子

回复 支持 反对

使用道具 举报

该用户从未签到

55

主题

375

帖子

825

积分

高级会员

Rank: 4

积分
825
5#
发表于 2016-3-29 20:27:00 | 只看该作者
没接触过这种分布式技术呢。那数据寸到各节点的分配逻辑是怎样的呢?挂掉硬盘或者节点掉了是怎么处理的呢?

回复 支持 反对

使用道具 举报

该用户从未签到

60

主题

431

帖子

938

积分

高级会员

Rank: 4

积分
938
6#
发表于 2016-3-29 20:27:01 | 只看该作者

优势在硬件篇开头提过。
/thread-1212326-1-1.html

回复 支持 反对

使用道具 举报

该用户从未签到

67

主题

485

帖子

1055

积分

金牌会员

Rank: 6Rank: 6

积分
1055
7#
发表于 2016-3-29 20:27:01 | 只看该作者
很专业!看不懂英文的!

回复 支持 反对

使用道具 举报

该用户从未签到

54

主题

391

帖子

854

积分

高级会员

Rank: 4

积分
854
8#
发表于 2016-3-29 20:27:01 | 只看该作者
Windows Server(codename: Threshold)这个倒是了解不多。

1 这个实例做了SDD、HDD层,请问SDD能作为HDD层的cache吗?
2 实例中虚拟磁盘是镜像模式,请问是三个集群互为镜像?column2是容错值(两个磁盘)?请说明容错的策略。
3 磁盘的IOPS能负载均衡吗?
4 请问有跟VSAN的性能对比吗?


回复 支持 反对

使用道具 举报

该用户从未签到

64

主题

438

帖子

964

积分

高级会员

Rank: 4

积分
964
9#
发表于 2016-3-29 20:27:01 | 只看该作者
# Set cluster properties
(Get-Cluster).DASModeEnabled=1

http://msdn.microsoft.com/en-us/library/aa371422(v=vs.85).aspx

这个命令好像在 技术预览版中是不支持的。。

好像楼用主用到的部分,并不是 新版中的特性呢。。

回复 支持 反对

使用道具 举报

该用户从未签到

71

主题

421

帖子

933

积分

高级会员

Rank: 4

积分
933
10#
发表于 2016-3-29 20:27:02 | 只看该作者
12块ssd做完阵列只有340G?

回复 支持 反对

使用道具 举报

发表回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

    移动客户端:
    关注我们:
  • 手机客户端:
  • 安卓版
  • 扫描二维码下载

Archiver|手机版|邢台网云科技有限公司 ( 冀ICP备16008275号 )

快速回复 返回顶部 返回列表