硬盘挖矿时代,挖潜Windows“存储池”中的硬盘容量

创作立场声明:自己设备,自己购买
碰到问题,想方设法
解决问题,总结经验
秉笔直录,大家共享

自从那个用硬盘挖矿的“CHIA”上市以来,硬盘价格就节节攀升,一夜回到解放前;“没货”更令人沮丧!

作为影视爱好者,下载和存储,当然必不可少!之前搭建一台电影下载专用NAS——环保省电:

打造QNAP的TS-551成为极致下载机(上)

打造QNAP的TS-551成为极致下载机(下)

下载导致电影容量”爆仓“,于是又对NAS进行扩容:

下载多了,NAS扩容刻不容缓

为了更好地款待超过300T的电影,特意海淘了一个硬盘“摩天大楼”,准备改善这些大哥哥小姐姐们的居住环境:

硬盘的摩天大楼到位了,那房客在哪里?

然而看看网上节节攀升的硬盘价格,又看看我那空空如也的“摩天大楼”,我仿佛站在了人生的三岔路口!

Windows存储池介绍

除了NAS,Windows存储当然是不二选项。在windows下我常年使用“存储池/Stoage Pool”功能。

在此我先科普一下windows的“存储池/Stoage Pool”和“存储空间/Storage Space”,熟悉的同学请跳过这一段。

“存储池/Stoage Pool”和“存储空间/Storage Space”的概念最早是随Windows8以及Windows Server 2012发布的。我对于这两个概念的理解如下。

若干个硬盘放在一起组成“存储池”。

如果这些硬盘大小不一,那创建的“存储空间”只有一种选择,就是“简单合并”,类似于JBOD。当然不推荐使用。

如果这些硬盘大小一致,那可玩的花样不少。具体请看下图:

“存储池”创建完成后,“存储空间”创建于“存储池”之上。可以将“存储空间”视作虚拟的硬盘。

我常年使用的是“奇偶校验”的“存储池”,相对于RAID5。

网上喷RAID5的文章不少,一搜一大把。主要的指责来自于:当RAID5其中的一块硬盘坏了,当你加入一块新硬盘重建的时候,另外几块硬盘可能不堪重负,精尽而亡,导致整个RAID5数据丢失。

如果RAID5坏一块硬盘导致降级成为RAID0,这时并不着急重建,因为RAID0至少可以坚持一段时间;在此期间你可以决定或者“导出数据”,或者“加一块硬盘重建”。

挖潜存储池

Windows的存储池早就由绿变黄,让添加硬盘。看看网上硬盘的价格,我安慰存储池:咱们再等等!然而今天它终于发飙了——由黄转红——老子不干了!

于是我陷入了沉思:加硬盘——现在没钱也没货?要不删掉一些不喜欢的电影?在近30T的电影文件里转了一天,删除的不超过100G。一筹莫展呀!

正在存储池里瞎转的时候,突然发现一个问题。

为什么存储空间是26T,而包括复原需要39T?这样存储空间的使用率才66.66%,不是说好RAID5的使用率是:
(N-1)/N
我使用5块8T的硬盘,使用率应该是80%,实际可以使用的空间应该是:
(5-1)/5*7.27T*5=29.08T
而现在连26T都没到就显示“无容量”!

于是开始各种搜!关于windows存储池和存储空间的结果不少,不过都是些白开水的文章。根本没有提到“奇偶校验”下容量的设置。

转战英文网页,收获显然大于中文网页!

悉心阅读了好久,才发现原来问题出在这里:
在windows的图形界面下,不管使用多少硬盘创建“单奇偶校验”的存储池时,默认使用3列,就是2/3的使用率,且没有调整的地方。如果希望达到(N-1)/N的使用率,请使用Powershell!

OMG,为什么微软不用中文早说!做一个简单的统计,下图是3到20块硬盘,优化和默认之间使用率的差距。

从中可看到10盘以下“差距”迅速上涨,超过10盘后,“差距”上涨趋缓。

事实真的是这样的吗?如果我们把硬盘容量加入会是怎样呢?我们先看看存储池的总容量:

下图是存储池容量优化与否之差异。20个20T的硬盘组成的存储池,默认设置将造成113T的差异,几乎浪费了5.5个20T硬盘,按现在的市价大概3W软妹币!

当然大家可能觉得20个20T的硬盘太夸张,我们来看看平常人可能造成的损失吧。

看到上面的表格,大家可以注意以下几点:

  • 默认的6列将导致损失一块硬盘的容量。如果去鱼缸里看看现在硬盘的价格,就晓得会有多大的损失!
  • 1T(甚至半T)硬盘的性价比实在太低,硬盘挖矿前肯定没有人用它组“存储池”,现在就不好说了,也许利用手上多余的,可以临时组一个。
  • 之前性价比最高的是8T硬盘,5块8T硬盘可以获得32T的存储池;如果使用Windows默认,将损失5.3T的容量。按照目前的市价,5.3T大概值800块

好!这就是我挖潜存储池的来源!

用好Windows Powershell

“存储池”是否需要拆了重建?答案是“否”!

需要做的是在原有的“存储池”上创建新的“存储空间”,当然还是“单奇偶”。

打开Power shell使用这样的命令:

New-VirtualDisk -StoragePoolFriendlyName Pool4K -ResiliencySettingName Parity -FriendlyName My4K -Size 12TB -ProvisioningType Thin -PhysicalDiskRedundancy 1 -NumberOfColumns 5

加粗部分需要根据自己的环境填入的变量:

-StoragePoolFriendlyName:新的“存储空间/VirtualDisk”创建于哪个“存储池/StoragePool”
-ResiliencySettingName:新的“存储空间/VirtualDisk”属性:Simple, Mirror, 或Parity
-FriendlyName:新的“存储空间/VirtualDisk”自己的名字
-Size:你懂的
-ProvisioningType:Fixed(大小固定)或Thin(大小不定)
-PhysicalDiskRedundancy:冗余硬盘数量,单奇偶就是1,双奇偶就是2
-NumberOfColumns:列,池中共有几个硬盘

新的存储空间创建好了:

接下来就是格式化。随着硬盘越来越大,格式化簇的大小也需要格外注意!

Windows默认NTFS格式的簇为4K,那分区最多支持16TB。如果需要更大的分区,请注意增加簇的大小。

接下来就是漫长的拷贝,即从同一存储池的老存储空间向新存储空间拷贝。30T的数据大概需要2周左右。

需要2周?其根本的原因是Windows存储空间的写入速度慢的令人发指!

使用感受

硬盘挖矿时代,对于硬盘容量,已经没有大手大脚挥霍的本钱,只能挖潜Windows存储池。

通过这次挖潜的经历,进一步加深了我对于Windows单校验存储池的了解。总结其特点如下:

优点:

  • 整合多个硬盘,最好是同样大小,不然以最小的硬盘容量为准
  • 提供一定程度的防护:降级时可以考虑转移数据或者重建
  • 支持存储池在不同机器下转移,只要是Windows8或者Windows Server2012以上都可以自动识别

缺点:

  • 写入速度令人发指
  • 图形界面仅仅支持基本功能,高级操作都需要Powershell完成,命令复杂难以驾驭

本文经“什么值得买”社区作者@粢饭糕授权转载,文章内容仅代表作者观点,与本站立场无关,未经授权请勿转载。



郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

微信号已复制,请打开微信添加咨询详情!
-->