Windows存储池的创建、扩容、灾难恢复,带SSD性能层分层存储

您所在的位置:网站首页 win10怎么管理存储 Windows存储池的创建、扩容、灾难恢复,带SSD性能层分层存储

Windows存储池的创建、扩容、灾难恢复,带SSD性能层分层存储

2024-07-09 16:15| 来源: 网络整理| 查看: 265

本文基于Windows Server2022,理论上也支持win10和win11,演示代码使用2个SSD+2个HDD组raid windows存储池的空间利用率可以媲美群晖SHR,合理的配置甚至可以超越

Windows自带模式以及不推荐的原因

简单卷:就是平常用的一个盘一个卷 跨区卷:把多个空闲磁盘合并为一个盘 带区卷:就是raid0,raid的磁盘空间大小必须一致 镜像卷:就是raid1 RAID-5卷:和名字一样,raid5 不推荐理由:系统的异常重启之类会导致重新同步(我就因为组了镜像卷踩坑了),一直占满了磁盘IO

存储模式介绍

windows存储池有3种模式 Simple:简单,就是JBOD,比如2块10G的,最后合成一个20G的,没有容错空间 Parity:奇偶校验,3块盘起步,可自由指定n块硬盘的容错(比如raid5就是允许1块盘的容错) Mirror:镜像,又分为双向镜像和三向镜像,硬盘大小不需要一致 ·双向镜像:就是raid1,允许1个盘损坏而数据不丢失 ·三向镜像:3个盘进行raid1,允许2个盘损坏而数据不丢失 三向镜像存储模式类似如图三向镜像

创建存储池

windows存储池下有存储层,存储层可以创建为虚拟磁盘,虚拟磁盘可创建磁盘卷进行使用 创建一个名为NAS的存储池,名字支持中文,如果不想起名NAS,下面参数里所有的的-StoragePoolFriendlyName后的NAS都改为你的存储池名称 网上教程很多,怎么创建我就不写了

创建存储层+虚拟磁盘

指令都是在PowerShell里执行,存储层一旦创建好,后期就无法更改了(比如存储模式、列数,允许损坏数),所以一定要提前规划好

常用参数介绍

下方指令会用到的参数解释,可根据个人情况调整 -StoragePoolFriendlyName:存储池的名称 -PhysicalDiskRedundancy:硬盘允许损坏的个数,不能随便填,一般填1就行,除非磁盘很多,可以填更高 -ResiliencySettingName:存储模式,填上面的Simple、Mirror、Parity中的一个 -ProvisioningType:磁盘类型,Fixed为固定,还有个动态扩展 -FriendlyName:存储层名称?本文不建议更改 -NumberOfColumns(重要):阵列列数,默认3,这个参数的填写决定了存储池的空间利用率。 -Interleave:交织值,比如在填写128KB+单奇偶校验+磁盘数3/5/9盘+磁盘大小一致时?,NTFS格式化时设置分配单元大小=交织值x(n-1),也就是256/512/1024KB。可最大化空间利用+写入性能 GUI界面是无法设置阵列列数和交织值的!

阵列列数如何填写

注:下文的硬盘数不包括SSD的数量,仅为HDD的数量 1、在硬盘大小相同的情况下,列数=硬盘数 2、在硬盘大小不同的情况下,列数为n-1,然后容量能被n-1整除就是最高利用率

假设硬盘为3个10T2个15T,那么列数为n-1就是4列,总容量60可以整除4,那利用率就是最高的

由于后续可能会新加硬盘进来,新加硬盘的利用率就不高了,所以windows存储池适合后续不会扩容硬盘的情况

查询并修改磁盘属性

查询磁盘属性,主要看最后的MediaType列,如果不是HDD或SSD则需要修改

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

设置正确的磁盘类型(可加个-NewFriendlyName "名字"把FriendlyName参数也改了,方便识别)

Set-PhysicalDisk -UniqueId "上面查出来的UniqueId" -MediaType "HDD(或者SSD)"

方式2:计算机管理-磁盘管理,右键添加进来

创建SSD存储层

注:不打算使用分层的(只有HDD盘的)可以跳过这2个创建存储层的部分,直接到[创建虚拟磁盘]开始执行代码 这里仅为最基础版本,对2个SSD创建镜像,详细的可以根据上面的常用参数进行新添和修改 SSD最好买企业版的,作为存储池的一部分,我只推荐使用Mirror模式提升稳定性

New-StorageTier -StoragePoolFriendlyName NAS -FriendlyName SSDTier -MediaType SSD -ProvisioningType Fixed -ResiliencySettingName Mirror 创建HDD存储层

由于我只有2个同大小硬盘,所以使用了Mirror

New-StorageTier -StoragePoolFriendlyName NAS -FriendlyName HDDTier -MediaType HDD -ProvisioningType Fixed -ResiliencySettingName Mirror

一般来说应该使用奇偶校验,并设置阵列列数 创建奇偶校验层样例:

New-StorageTier -StoragePoolFriendlyName NAS -FriendlyName HDDTier -MediaType HDD -ProvisioningType Fixed -ResiliencySettingName Parity -PhysicalDiskRedundancy 1 -NumberOfColumns 上文计算出的列数 创建虚拟磁盘 创建带SSD性能分层的虚拟磁盘

指令一条条输入

20G表示缓存的大小,平时从U盘读文件开始很快后面很慢就是用到了缓存,这里的大小设置为5G之类的都行,够用了,改缓存大小要同步改第3、5条的指令

0.95我也不知道什么玩意,应该是给点冗余,比如512G硬盘买来只能用465G这样,可以从1慢慢往下降,直到运行不报错

如果报错提示存储池容量不符合要求,那就一点点降低0.95这个值

$SSD = Get-StorageTier -FriendlyName SSDTier $HDD = Get-StorageTier -FriendlyName HDDTier $SSDSIZE = (Get-StorageTierSupportedSize -InputObject $SSD).TierSizeMax*0.95 -20GB $HDDSIZE = (Get-StorageTierSupportedSize -InputObject $HDD).TierSizeMax*0.95 New-VirtualDisk -StoragePoolFriendlyName NAS -FriendlyName "NAS虚拟磁盘" -StorageTiers @($SSD,$HDD) -StorageTierSizes @($SSDSIZE,$HDDSIZE) -WriteCacheSize 20GB 创建普通的虚拟磁盘(无SSD)

不带SSD层的创建较为简单,示例代码为创建20G的3列的奇偶校验的虚拟磁盘

New-VirtualDisk -StoragePoolFriendlyName NAS -FriendlyName "NAS虚拟磁盘" -ProvisioningType Fixed -ResiliencySettingName Parity -Sizw 20GB -NumberOfColumns 3

然后右键虚拟磁盘扩容到最大容量

创建完成后刷新一下虚拟磁盘就出来了 如何刷新

添加虚拟磁盘到本机

上一步创建虚拟磁盘后进行右键联机,可以在存储池界面也可以在计算机管理界面 联机

随后右键新建卷就可以创建磁盘了,存储池界面进行创建有点繁琐并且不支持ReFS格式的创建,推荐去计算机管理-磁盘管理,右键创建,我使用ReFS格式,与NTFS的优劣自行查询

新添磁盘

1、新磁盘插入电脑 2、详见上文的[查询并修改磁盘属性],确保正常显示HDD或SSD 3、右键存储池-添加物理磁盘 4、PowerShell执行存储池优化命令(不执行会降低磁盘利用率,NAS为你的存储池名称),比较费时,耐心等待

Optimize-StoragePool NAS

5、扩容存储层 查询HDD存储层空闲容量(只能大概估算),由于除了1GB,所以结果是GB单位

(Get-StorageTierSupportedSize -FriendlyName HDDTier).TierSizeMax/1GB

假设查出来有15T的空间,原本虚拟磁盘大小10T,那实际大小就是25T 所以用指令设置大小为25T(单位支持TB,GB,MB?(没试过))

Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName HDDTier) -Size 25TB

然后就会发现报错了,因为显示15T不是说真的就能加15T上去,一点点降低后面的大小,直到不报错

6、扩容虚拟磁盘 右键虚拟磁盘,新大小输入最大大小即可

磁盘故障后的灾难恢复

注:win10上的恢复似乎有所不同 1、添加新硬盘,容量必须大于等于坏掉的盘 2、详见上文的[查询并修改磁盘属性],确保正常显示HDD或SSD 3、右键存储池-添加物理磁盘 4、使用2行指令停用故障盘

$FailedDisk = Get-PhysicalDisk | Where-Object -Property HealthStatus -ne Healthy $FailedDisk | Set-PhysicalDisk -Usage Retired

5、右键虚拟磁盘点击修复,比较耗时 6、右键虚拟磁盘旁的物理磁盘,删除故障盘

其他想说的

1、并不是每个人都会时刻去关注硬盘是不是坏了,所以推荐安装一个软件Hard Disk Sentinel,设置好硬盘损坏会直接提示,可设置邮件发送提醒 2、嫌windows存储池麻烦可以Hyper-V弄个群辉或者其他NAS系统专门用来管理

参考文献: https://www.bilibili.com/video/BV13A4m1V7ig https://www.bilibili.com/video/BV1vu4y1n7sB https://www.bilibili.com/read/cv27307913 https://www.bilibili.com/read/cv16124712 https://www.bilibili.com/read/cv29170783



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3