维塔斯科技

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

windows server 2012 r2的存储池初步体会教程(更新直通硬盘...

[复制链接]

该用户从未签到

57

主题

388

帖子

851

积分

高级会员

Rank: 4

积分
851
跳转到指定楼层
楼主
发表于 2016-3-29 19:21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人没有raid卡做硬raid,并且硬件raid5以及以上的那个build raid我有体会,公司的刀片机的SAN硬盘坏了, 整整rebuild了一两天,导致上面的虚拟机慢的都无法使用。主板的raid那个叫残废,勉强能用用,但是灵活度不行。
之前尝试过在CentOS下Build了一个ZFS,windows 自带的NFS client MOUNT ZFS NFS,速度只有15M/S, 可能是windows 的mount命令不支持某些特性,比如说异步,也不支持UTF8字符集,放弃,没有深入研究iSCSI/SMB是不是有性能提升,感觉ZFS不够灵活,加一个硬盘什么的还要占位,硬盘还要规格一样。。。

看到微软把windows server 2012 r2的存储池吹的神一样,所以就利用一些时间用虚拟机搭建下环境测试了,共两台虚拟机在一个hyper-v host上,使用Hyper-V internal Switch作为两台虚拟机的网卡(纯虚拟交换机,不经过物理网卡和路由器的折腾,性能应该更好) 1. 虚拟机windows server 2012 r2存储服务器: 用3个fixed VHD文件作为的3个磁盘,每个30GB,vhd文件分别放在不同的物理磁盘上 (2 hdd, 1 ssd) 2. 虚拟机Windows 7: 复制一个5GB的视频文件到存储服务器作为测试,结果如下:

Simple 模式:90MB/S
Mirror 模式: 70-80MB/S
Parity模式 (1个磁盘还是在ssd上的vhd disk): 30-40MB/S

尝试过在物理ssd上新建3个vhd文件做存储池的write back cache,大文件复制性能无改善 当然因为是虚拟机还是vhd disk,而且硬盘没有缓存,性能可能比实际物理硬盘低,测试结果仅供参考 接下去可能测试直接在Windows Server 2012 R2 HyperV Host上建立物理存储池和直接passthrough硬盘给存储虚拟机, 比较一下性能是否有提高, 当然虚拟机环境和存储最好分开,可能没有这个硬件条件搞两台机器

更新:

东芝2t * 3 passthrough到存储虚拟机然后建一个parity disk基本上有50m-60m左右,有时候能上70M,但是写小文件时候出现速度为0,一会又回复正常的情况,不解,3盘全开,咯咯咯咯的噪音不小


硬件:
CPU: E3 1230 V2
Memory: 32GB
Network: 山寨Intel ET Dual Port Server Adapter + Realtek E1000
HD: 浦科特128GB SSD * 1+ 三星830 64GB SSD * 1 + 东芝HDD 2TB * 3 + 250GB 东芝2.5寸HDD * 1 + 1TB WD 3.5寸USB HDD * 1
GPU: AMD HD 7850

主机,Windows 2012 R2 Hyper-V安装在浦科特m5s 128GB SSD上面
如果开一个虚拟机安装windows server 2012 r2 standard做存储池的话,硬盘使用passthrough是不行的,因为做存储池时对虚拟机中的硬盘的改写直接写到直通的硬盘上,重启电脑后,虚拟机会启动不了,因为直通的硬盘被改写了,hyper-v 里面已经识别不了了,在hyper-v主机上打开存储池的管理界面会发现存储池在hyper-v host上。。。

我把INTEL双口网卡做Teaming (sr-iov怎么都无法启用,不知道是山寨网卡的问题还是Z77主板的问题 (VT-D支持),说什么Access Control Service在BIOS没有启用什么的):
存储池中的硬盘: 东芝HDD 2TB * 3 + 三星830 SSD 64GB
1. Parity disk: 1TB at 3 HDD, Thin Provisioning, 放照片等重要的东西,貌似parity disk无法分层,这样没有使用SSD读加速了
2. Simple Disk1(启用存储分层): 40GB at 1 SSD + 210GB at 3 HDD + 4GB Write Back Cache at 1 SSD, Fixed Provisioning, 运行虚拟机用,开读写缓存增加性能
3. Simple Disk2 * 3: 1.82TB at 1 HDD, , Thin Provisioning,存放电影, 要想只在HDD上建立vDisk, 需要ps命令 (大于800GB的都是HDD DISK), 分别对每一个硬盘做一个Virtual Disk, 这样即使每个硬盘坏了,不会影响其他的Virtual Disk上的文件,默认如果使用全部3个HDD的话作为一个Disk的物理盘的话,文件会平均分配到3个硬盘,即使设置NumberOfColumns = 1,一个硬盘挂,文件挂,
4. 在上面建立放电影的disk上开NFS/SMB共享,高清播放器可以播放

在Simple Disk1开一个虚拟机,直通一个250 2.5寸东芝笔记本HDD作下载,下载完转移到1TB 3.5寸西部数据USB硬盘
再在Simple Disk1开一个虚拟机,安装windows 7工作用, windows 7的IE兼容性好,某些政府网站,还有Juniper Networks的远程桌面,你懂的。。。
准备使用几个月后写一些心得。。。写点东西真累,编辑了好多次。。。
贴上PowerShell命令方便大家相互学习:

Windows PowerShell
版权所有 (C) 2013 Microsoft Corporation。保留所有权利。
PS C:\Users\Administrator> Get-StoragePool StorPool1 | New-StorageTier –FriendlyName SSDTier –MediaType SSD

ObjectId             : {1}\\WIN-J2VSFT7VD20\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId="{a
                       ed84446-835a-11e3-80b0-806e6f6e6963}:ST:{a76db742-b032-11e3-80fa-8c89a5daf01c}{a76db75d-b032-11e
                       3-80fa-8c89a5daf01c}"
PassThroughClass     :
PassThroughIds       :
PassThroughNamespace :
PassThroughServer    :
UniqueId             : {a76db75d-b032-11e3-80fa-8c89a5daf01c}
Description          :
FriendlyName         : SSDTier
MediaType            : SSD
Size                 : 0
PSComputerName       :

PS C:\Users\Administrator> Get-StoragePool StorPool1 | New-StorageTier –FriendlyName HDDTier –MediaType HDD

ObjectId             : {1}\\WIN-J2VSFT7VD20\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageTier.ObjectId="{a
                       ed84446-835a-11e3-80b0-806e6f6e6963}:ST:{a76db742-b032-11e3-80fa-8c89a5daf01c}{a76db75e-b032-11e
                       3-80fa-8c89a5daf01c}"
PassThroughClass     :
PassThroughIds       :
PassThroughNamespace :
PassThroughServer    :
UniqueId             : {a76db75e-b032-11e3-80fa-8c89a5daf01c}
Description          :
FriendlyName         : HDDTier
MediaType            : HDD
Size                 : 0
PSComputerName       :

PS C:\Users\Administrator> Get-StoragePool StorPool1 | Get-PhysicalDisk | ? Size -gt 500GB
FriendlyName        CanPool             OperationalStatus   HealthStatus        Usage                              Size
------------        -------             -----------------   ------------        -----                              ----
PhysicalDisk3       False               OK                  Healthy             Auto-Select                     1.82 TB
PhysicalDisk4       False               OK                  Healthy             Auto-Select                     1.82 TB
PhysicalDisk2       False               OK                  Healthy             Auto-Select                     1.82 TB

PS C:\Users\Administrator> $HDDDisks = Get-StoragePool StorPool1 | Get-PhysicalDisk | ? Size -gt 500GB
PS C:\Users\Administrator> Get-StoragePool StorPool1 | New-VirtualDisk -FriendlyName ParityDisk -ResiliencySettingName P
arity –PhysicalDisksToUse $HDDDisks -Size 1TB -ProvisioningType Thin
FriendlyName        ResiliencySettingNa OperationalStatus   HealthStatus        IsManualAttach                     Size
                    me
------------        ------------------- -----------------   ------------        --------------                     ----
ParityDisk          Parity              OK                  Healthy             False                              1 TB

PS C:\Users\Administrator> Get-PhysicalDisk -FriendlyName PhysicalDisk2
FriendlyName        CanPool             OperationalStatus   HealthStatus        Usage                              Size
------------        -------             -----------------   ------------        -----                              ----
PhysicalDisk2       False               OK                  Healthy             Auto-Select                     1.82 TB

PS C:\Users\Administrator> $HDD2 = Get-PhysicalDisk -FriendlyName PhysicalDisk2
PS C:\Users\Administrator> $HDD3 = Get-PhysicalDisk -FriendlyName PhysicalDisk3
PS C:\Users\Administrator> $HDD4 = Get-PhysicalDisk -FriendlyName PhysicalDisk4
PS C:\Users\Administrator> Get-StoragePool StorPool1 | New-VirtualDisk -FriendlyName SimpleDisk2 -ResiliencySettingName
Simple –PhysicalDisksToUse $HDD2 -Size 1.82TB -ProvisioningType Thin
FriendlyName        ResiliencySettingNa OperationalStatus   HealthStatus        IsManualAttach                     Size
                    me
------------        ------------------- -----------------   ------------        --------------                     ----
SimpleDisk2         Simple              OK                  Healthy             False                           1.82 TB

PS C:\Users\Administrator> Get-StoragePool StorPool1 | New-VirtualDisk -FriendlyName SimpleDisk3 -ResiliencySettingName
Simple –PhysicalDisksToUse $HDD3 -Size 1.82TB -ProvisioningType Thin
FriendlyName        ResiliencySettingNa OperationalStatus   HealthStatus        IsManualAttach                     Size
                    me
------------        ------------------- -----------------   ------------        --------------                     ----
SimpleDisk3         Simple              OK                  Healthy             False                           1.82 TB

PS C:\Users\Administrator> Get-StoragePool StorPool1 | New-VirtualDisk -FriendlyName SimpleDisk4 -ResiliencySettingName
Simple –PhysicalDisksToUse $HDD4 -Size 1.82TB -ProvisioningType Thin
FriendlyName        ResiliencySettingNa OperationalStatus   HealthStatus        IsManualAttach                     Size
                    me
------------        ------------------- -----------------   ------------        --------------                     ----
SimpleDisk4         Simple              OK                  Healthy             False                           1.82 TB

PS C:\Users\Administrator> $SSD = Get-StorageTier -FriendlyName SSDTier
PS C:\Users\Administrator> $HDD = Get-StorageTier -FriendlyName HDDTier
PS C:\Users\Administrator> Get-StoragePool StorPool1 | New-VirtualDisk -FriendlyName SimpleDiskHP -ResiliencySettingName
Simple –StorageTiers $SSD, $HDD -StorageTierSizes 40GB, 210GB -WriteCacheSize 4GB
FriendlyName        ResiliencySettingNa OperationalStatus   HealthStatus        IsManualAttach                     Size
                    me
------------        ------------------- -----------------   ------------        --------------                     ----
SimpleDiskHP        Simple              OK                  Healthy             False                            250 GB






ParitySpeed.jpg

Parity最高速度
storPool.jpg

存储池的配置

回复

使用道具 举报

该用户从未签到

65

主题

414

帖子

915

积分

高级会员

Rank: 4

积分
915
沙发
发表于 2016-3-29 19:21:10 | 只看该作者

现在我知道为什么我的帖子不受欢迎了。。。

双硬盘镜像就是离线一块盘。

回复 支持 反对

使用道具 举报

该用户从未签到

67

主题

484

帖子

1055

积分

金牌会员

Rank: 6Rank: 6

积分
1055
板凳
发表于 2016-3-29 19:21:10 | 只看该作者

之前也研究过很久,因为微软吹嘘这货有“最优化的RAID的性能”又“方便”,最后实在受不了了。。。自动化太蠢了,手动微调的费力程度还不如完全手动

回复 支持 反对

使用道具 举报

该用户从未签到

61

主题

456

帖子

995

积分

高级会员

Rank: 4

积分
995
地板
发表于 2016-3-29 19:21:11 | 只看该作者

看我这个帖子:
/thread-947805-1-1.html简单的说就是最多允许几块硬盘离线


回复 支持 反对

使用道具 举报

该用户从未签到

55

主题

354

帖子

783

积分

高级会员

Rank: 4

积分
783
5#
发表于 2016-3-29 19:21:11 | 只看该作者

确实,家用弄个移动硬盘定期备份就好了,玩这个就是研究研究而已

回复 支持 反对

使用道具 举报

该用户从未签到

58

主题

421

帖子

918

积分

高级会员

Rank: 4

积分
918
6#
发表于 2016-3-29 19:21:11 | 只看该作者

Guest OS要支持Jumbo Frame需要Windows Server 2008 R2及以上系统,物理网卡和Guest OS里面都启用Jumbo Frame

回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

419

帖子

932

积分

高级会员

Rank: 4

积分
932
7#
发表于 2016-3-29 19:21:12 | 只看该作者
我一直想知道这个存储池的镜像能不能和RAID1一样,拆开后数据都在?

回复 支持 反对

使用道具 举报

该用户从未签到

79

主题

483

帖子

1061

积分

金牌会员

Rank: 6Rank: 6

积分
1061
8#
发表于 2016-3-29 19:21:12 | 只看该作者

你去掉一块,现在的存储池还一样能用。但硬盘还是在池里,不能随便转换成普通硬盘,因为在逻辑层只能看到在这个池上的卷。同理,如果你想迁移存储池,你只需要一块盘,到新机器上导入存储池就可以用了,不导入之前也没法用。这个和RAID迁移是一样的,换到另一个机器的时候需要先识别RAID。

回复 支持 反对

使用道具 举报

该用户从未签到

49

主题

351

帖子

771

积分

高级会员

Rank: 4

积分
771
9#
发表于 2016-3-29 19:21:12 | 只看该作者
主机,Windows 2012 R2 Hyper-V安装在浦科特m5s 128GB SSD上面
如果开一个虚拟机安装windows server 2012 r2 standard做存储池的话,硬盘使用passthrough是不行的,因为做存储池时对虚拟机中的硬盘的改写直接写到直通的硬盘上,重启电脑后,虚拟机会启动不了,因为直通的硬盘被改写了,hyper-v 里面已经识别不了了,在hyper-v主机上打开存储池的管理界面会发现存储池在hyper-v host上。。。


有命令可以让主机开机不自动挂载存储空间,这样你的目的就可以实现了。

回复 支持 反对

使用道具 举报

该用户从未签到

45

主题

371

帖子

805

积分

高级会员

Rank: 4

积分
805
10#
发表于 2016-3-29 19:21:13 | 只看该作者

我说的完全拆除的意思就是,Ctrl+i进入RAID设置里拆除!

回复 支持 反对

使用道具 举报

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

本版积分规则

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

Archiver|手机版|河北维塔斯科技有限公司 ( 冀ICP备16008275号 )

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