Windows存储池奇偶hdd&ssd分层存储加速

Windows存储池奇偶hdd&ssd分层存储加速

本文适用:想组奇偶校验用SSD加速的人群。win10我没测试过,但是理论上用这个方法也是可以的,毕竟都是用powershell操作的。

2020/01/22更新日志:因为网友实际操作的时候有疑问,我后来自己在win10上用vhd虚拟了2ssd+5hdd模拟了一下,后面的操作步骤和图片换成win10上的实际操作了,更加直观。

注意事项:

1、操作严格按照我的步骤,以免出错;

2、操作前算好自己有多少硬盘,空间多少,冗余盘需要多少,HDD划分为几组,因为这种模式建的存储空间的容量是固定的,50G的硬件只能建立49.9G的空间,不像默认的空间可以灵活变化,50g的硬件可以建一个500g的虚拟空间,满了再往里加硬盘;

3、一个池里只能建一个分层存储空间,不能建立其他的存储空间;

4、以后调整分层存储空间的大小只能通过powershell,我下文有代码,挺简单的,不能通过windows界面调整。

本人在半年前组装了一台NAS将以前存储数据用的一些硬盘整合起来,因为考虑到易用性还有跑HyperV因此用的Windows。当时手头现成的有8块机械硬盘,想用奇偶(类似raid5),毕竟raid1太浪费空间了,但是奇偶的写入速度又太慢,尤其是小文件,因此我想出了用SSD给奇偶校验加速用。但是当时没有现成的中文教程,因此自己研究了一番,现在详细的整理出来给有需要的人伸手。

这是目前的状态,raid0:ssd2(Intel s4610 480g)+raid5:hdd6(第一组WD红盘2T3+第二组各种混搭3T3)
image.png
读取速度和本身的机械硬盘速度有关
image.png
只要一次性写入量没超过SSD的容量就可以保持满速我这里写入的是50G
image.png
上手前你要了解的东西:

这样的奇偶校验已经和raid5一样了,不像之前可以灵活的添加不同容量不同数量的硬盘进去,这里的硬盘数量是按照组来的,每组多少个盘是在创建的时候就固定好了,后期可以添加新的组进去,每组的每块硬盘的利用空间必须是一样的。

我这里创建的是每组3个HDD,创建的时候是3个,后期又加进去3个。

固态硬盘不建议用民用级的,除非你用的很少,就像我这样偶尔写点东西进去,我买的S4610/480G写入寿命是3PB,民用级的能有十分之一都不错了。

所有代码复制的时候把前面的 # 去掉才能用。

后期调整大小也要用powershell进行,其他的操作,添加删除硬盘可以在图形界面进行。

第一步:

查询已经连接的硬盘并改名(改名可选,但是建议改一下,因为我的硬盘太多了,改成自己想要的名字看着会舒服点,改名后也可以直接通过FriendlyName进行查询和操作)

以管理员身份打开powershell(里面其实不区分大小写)

#Get-PhysicalDisk | ft FriendlyName,DeviceId,BusType,UniqueId,Size,MediaType -auto

这样主要是为了硬盘的Uniqueid

#Set-PhysicalDisk -UniqueId "youruniqueid" -NewFriendlyName "yourname"

根据Uniqueid将硬盘改名成你想要的名字

image.png

如果硬盘类型(HDD/SSD)不对的话这里再更改一下硬盘类型,没问题的话就跳过

image.png

第二步:

创建存储池,并创建HDD层和SSD层

#New-StoragePool -StoragePoolFriendlyName "Pool1" -StorageSubSystemFriendlyName (Get-StorageSubSystem).FriendlyName -PhysicalDisks (Get-PhysicalDisk -CanPool $true) -LogicalSectorSizeDefault 512 -FaultDomainAwarenessDefault PhysicalDisk

下面两步是设置存储池的硬盘数量设置

#Get-Storagepool "Pool1" | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 1

#Get-Storagepool "Pool1" | Set-ResiliencySetting -Name Parity -NumberOfColumnsDefault 5

Mirror层给SSD用的,不用改

Parity层是给HDD用的,就是奇偶校验的意思,我的win10中5块HDD,因此设置的5,这样HDD层的可用空间是4/5;你可以根据你的硬盘数量自行设置,最少是3,最大是8(不建议太大,尤其是容量8t那种大硬盘,重建时间太久,风险较高,超过8块盘的可以组两组,每组4块或者5块都行)
image.png

#New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName SSDTier -MediaType SSD -ResiliencySettingName Mirror -NumberOfColumns 1 -PhysicalDiskRedundancy 1 -FaultDomainAwareness PhysicalDisk

上面创建的是SSD层

#New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName HDDTier -MediaType HDD -ResiliencySettingName Parity -NumberOfColumns 5 -PhysicalDiskRedundancy 1 -FaultDomainAwareness PhysicalDisk

上面创建的是HDD层,注意这里的每组硬盘数量还是跟上面一致!!!

第三步:

建立卷

New-Volume -StoragePoolFriendlyName Pool1 -FriendlyName "VM" -FileSystem ReFS -StorageTierFriendlyName SSDTier, HDDTier -StorageTierSizes 40GB, 200GB

大小可以根据自己的实际情况调整,这样就创建完了,可以下面可以用这条命令看自己的卷是否建成功了(建立的时候不知道什么原因不能一次性选一个大容量,我是了700GB都失败了,所以用了200GB,但是之后可以通过指令调整容量)

image.png
Get-StorageTier | FT FriendlyName, ResiliencySettingName, PhysicalDiskRedundancy, FaultDomainAwareness, NumberOfDataCopies

然后就可以和正常的物理盘一样去创个盘符分配空间了

调整大小(只能大不能小):

Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName "VM-SSDTier") -Size 48GB

Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName "VM-HDDTier") -Size 780GB

image.png
显示的是双向镜像,不用管他,以后添加硬盘还是可以通过这个界面,但是调整容量必须用指令

作者:自我膨胀的Michael
https://www.bilibili.com/read/cv4017897/
出处: bilibili

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×