维塔斯科技

标题: windows server 2012 r2的存储池初步体会教程(更新直通硬盘... [打印本页]

作者: 5g8uph    时间: 2016-3-29 19:21
标题: windows server 2012 r2的存储池初步体会教程(更新直通硬盘...
本人没有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

存储池的配置


作者: tmys0pvy    时间: 2016-3-29 19:21

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

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


作者: mjspm8    时间: 2016-3-29 19:21

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


作者: 91urzo5    时间: 2016-3-29 19:21

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



作者: otkdt5    时间: 2016-3-29 19:21

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


作者: 7jr57zb    时间: 2016-3-29 19:21

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


作者: p0ffz45    时间: 2016-3-29 19:21
我一直想知道这个存储池的镜像能不能和RAID1一样,拆开后数据都在?


作者: 8g4p5ct    时间: 2016-3-29 19:21

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


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


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


作者: rpktply    时间: 2016-3-29 19:21

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


作者: 44g1gvz6    时间: 2016-3-29 19:21
反正软Raid5速度还是不理想啊


作者: 51f5qi9    时间: 2016-3-29 19:21

早就看到你的帖子了,很多英文,累!

我目前用的是双硬盘组的镜像存储池!


作者: wq7dz8    时间: 2016-3-29 19:21

“完全拆除”是个什么概念?把两块拆下来然后随便一块放到另一台机器上,可以直接识别?如果是Intel的PCH,可能可以直接识别Intel的RAID阵列,如果是AMD的就。。。


作者: zuotxs    时间: 2016-3-29 19:21

有冗余的拆开以后可以直接Import到另一个系统上,数据完整。取决于你的冗余度是多少。


作者: tzln6e    时间: 2016-3-29 19:21

求解,冗余度多少是啥意思?


作者: d1q0fyuc    时间: 2016-3-29 19:21
yin19991999 于 2014-4-14 11:43 编辑

Disable the spaceport driver (sc config spaceport start= disabled)

或者HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\spaceport\start
改成4
引用:

存储池出现个感叹号需要重新授权连接,之后再手动连接虚拟磁盘,里面的东西完好无损,但是现在每次开机都要手动连接虚拟磁盘啊,2012不能自动识别虚拟磁盘和加载分区卷,找了很久都找不到解决办法。后来自己解决了,通过修改注册表。在注册表里找HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\spaceport\Parameters里面有硬盘ID,将ID后面的值由1改成0就行了



作者: 59uqsf0v    时间: 2016-3-29 19:21

parity disk应该也能弄tier吧,但SSD的数量应该至少3个。我回去用虚拟机试试看。

“To create a storage space with storage tiers, the virtual disk must use fixed provisioning, and the number of columns will be identical on both tiers (a four-column, two-way mirror with storage tiers would require eight solid-state drives and eight hard disk drives).”


作者: n7d5nzu    时间: 2016-3-29 19:21

google一下没找到什么命令。。。。


作者: 4wlu4h78    时间: 2016-3-29 19:21

可以离线一块这个我知道,就是搞清楚RAID1拆开阵列后2块硬盘上的资料都在,镜像存储池拆了后是否一样!?


作者: bo4lc3s    时间: 2016-3-29 19:21
另外,您在同一个硬盘上既有parity又有simple,而且都是thin的,会不会造成parity空间无法最优利用?如果simpledisk3存放超过1.5T,那个parity大概只有100G的实际空间。而simpledisk4-5可能还是空的。所以弄成column1省心省力,不过ls可能无法接受安全性。


作者: y6ummpi    时间: 2016-3-29 19:21
很专业的感觉,估计研究的人不多


作者: eyxxd9m    时间: 2016-3-29 19:21
我开HYPER-V的虚拟机网卡都是降级的。。。半双工不能开巨帧,传输50-60M,反正够用就不管了~


作者: wct5ws5    时间: 2016-3-29 19:21

大哥,,,有没有简单点说明只给结论的帖子。。。。。哈哈


作者: nsgqoi5    时间: 2016-3-29 19:21

错了,我用主板上的RAID组建的RAID1,我完全拆除后,每一块都能和普通硬盘一样用的,数据都在!


作者: ygdz44k    时间: 2016-3-29 19:21
存储池填了硬盘就不能删,性能又一般,折腾起来不够费劲。
现在是N块独立磁盘,重要数据多盘备份,家用足够了,性能还好些。


作者: w2psz4v    时间: 2016-3-29 19:21

我记得以前在哪看到过现在也找不到了    或者是改注册表还是组策略    绝对是有的


作者: ds1wq4z    时间: 2016-3-29 19:21
看来这里都光玩装机了,玩点技术流什么的还比较少,想做点贡献都没有人看。。。。我对装机有点厌倦了,烧钱不说,还累人。。。


作者: i81tvm9u    时间: 2016-3-29 19:21
yin19991999 于 2014-3-29 09:06 编辑
可以得,我试过,但是需要大数据复制的时候就不管用了,三盘火力全开那噪音赶上以前的老昆屯硬盘


作者: mzlzfw1    时间: 2016-3-29 19:21

好吧,回头google一下什么命令


作者: Saiya    时间: 2017-3-23 11:34
你在建存储池有遇到过提示没有磁盘组的问题吗?

作者: wirron    时间: 2018-10-4 08:27
非常感谢分享!





欢迎光临 维塔斯科技 (http://www.8x6x.com/) Powered by Discuz! X3.2