关于硬盘、存储池和NAS--家用存储方案持续折腾记
20171106 题图更新:目前的6盘混合池持续写入。
这里的存储池指的是微软存储空间功能(Microsoft Storage Space),是windows server上的主力存储软件解决方案,借鉴了LVM的逻辑与物理卷分开的方式管理存储系统。 --题记
本篇流水账没有涉及黑群晖/白裙/Qnap等相关内容,也没有涉及freeNAS/zfs/LVM等开源存储方案,逻辑卷管理作为底层技术,可以支持今后的IPFS应用。
20171001 开篇
写这篇文章的目的是记录一下这项占用了我相当多时间的项目:搭建家用文件存储系统。
入坑要从两年前说起。
那时候入手了小米路由1TB。虽然路由器做的确实是一坨屎,但是内置了1TB的机械硬盘,可以充当NAS。
NAS的好处就在那时体会到了:所有终端共享存储,本地映射,手机/平板/电视/笔记本电脑/台式机都可以访问NAS上的电影和照片。
忍受了1年的小米路由R1D之后,忍无可忍的我,搭建了我的第一台NAS(划掉) 买了第二台小米路由R2D......
R2D当时的固件算是能用了,于是我换掉了内置的硬盘,换成了一块疑似翻新的西数红盘3T(当时并不知道)。那块红盘至今仍作为老池Vault01的一部分默默服务着。
然而,3TB很快就被电影塞满了。必须开始搭建我的第一台NAS了(划掉) 于是我将暂时不看的电影都上传了百度云......就这样又熬了几个月。
半年后,国内免费网盘市场被基本消灭,我开始认真考虑组一台NAS。当时没考虑多久,就下单了万由的4盘位n410。搭配华擎的J3455小板。
研究过配置的朋友都知道这一套依然是目前家用NAS DIY的主流。
然鹅,从到家那天起,j3455这套方案就没让我省过心。在此规劝各位有意自组NAS的朋友谨慎选择j3455。
首先介绍一下为什么j3455作为nas方案能火。首先功耗低,TDP 10W。自带4个SATA,满足一般需求。自带HDMI2.0,音频io口很丰富,给人以HTPC的YY空间。为什么说是YY,后面会讲。
机箱,电源,主板,内存都有了,不要命的在淘宝选了4块红盘。这一次鬼使神差搜了搜翻新盘,一看真假对比就吓尿了,买的4块盘每一条都对的上。于是赶紧退货。卖家问为什么要退货,我说,看到标签上的字迹糊在了一起,怀疑是翻新盘。商家二话没说直接同意了退货退款,搞得我拿到闪退款的时候还心有余悸......
然而经不住低价的诱惑,最终买了3块日立企业级HUS724030ALE641的......翻新盘。
好了,我的第一台NAS终于攒齐了。
--TBC--
20171005 上回说到,我终于攒齐了第一台NAS。
这也是我悲惨经历的开始。
相信很多人跟我一样,入坑前都不会在意硬盘主板cpu特别细致的参数的。我们的需求很简单,就是有个地方放自己的那些个文件,这么简单的需求,一定有什么一劳永逸的实现方案吧(产品经理的不屑.jpg)?
具体来说,就是前期一次性投入,免维护,功耗低,偶尔客串其他角色(HTPC),可扩展,百年之后空间不足了还能轻松扩容。
然而越是往存储的深坑中沦陷,无力感越是充斥着我的内心。存储系统看起来像是固定资产投资,其实是持续投资。本质是你用金钱购买人类技术的结晶去对抗这个熵增的世界。如果不再投入,用不了多久,你的资料数据也将回归无序态本源,变得不再可读。
说回这第一台NAS吧。
跑了windows server 2016,头两个星期都献给hyper-v跑黑群晖上了。试了七八个版本,6.0的版本会一直卡死在安装步骤中,其他版本安装完,都需要添加硬盘。然鹅我的四块盘都做了微软存储池,就此作罢。Quick-connect也都没有折腾了。
这时候我发现存储池写入非常慢。顺序写入40~50MBps,跑不满千兆带宽。搜索到了几个讨论,分别提到了日志盘、write-back cache、分层存储。一头雾水。
大概搞清楚这些概念以及他们的关系之后,发现上SSD似乎是唯一的选择。
顺便一提:SSD作为日志盘加入存储池时必须最少有2个盘做RAID1,这是微软的安全策略限制。
最终摸索的最佳实践是:加入两块SSD到池中,Usage设为Journal,分别创建SSD和HDD tiering,最后创建虚拟磁盘,手动设置WBC为16GB。这样windows会把SSD分为三部分,一部分为WBC,一部分为日志空间,第三部分提供SSD tiering,专门handle那些小文件读写。
PowerShell 指令大致如下:先新建一个池,加入4块HDD,然后按照如下命令新建。池和VDisk的名称改成自己的。
$SSDs = Get-PhysicalDisk | Where-Object CanPool -eq $True
Add-PhysicalDisk -StoragePoolFriendlyName "Pool01" `
-PhysicalDisks $SSDs -Usage Journal
Get-StoragePool -FriendlyName "Pool01" `
| Get-PhysicalDisk `
| ? MediaType -eq SSD `
| Set-PhysicalDisk -Usage Journal
New-StorageTier -StoragePoolFriendlyName "Pool01" `
-FriendlyName SSD_Tier `
-MediaType SSD
New-StorageTier -StoragePoolFriendlyName "Pool01" `
-FriendlyName HDD_Tier `
-MediaType HDD
New-VirtualDisk -StoragePoolFriendlyName "Pool01" `
-FriendlyName VDisk01 `
-UseMaximumSize `
-ResiliencySettingName Parity `
-NumberOfColumns 4 `
-WriteCacheSize 16GB加入SSD时遇到了万由+j3455方案的第一个大瓶颈:只有4个SATA,还有两个需要用PCIE x1外扩,这样加起来也才6个,没地方插系统盘了。
于是我只能用WTG把系统装到了USB SSD上。这样nas机箱外就拖了条尾巴,看着随时有被拽掉的危险。
无论如何还是跑起来了,2SSD+4HDD 2tier storage space,写入和4k终于能看了。
20171012 j3455方案始乱终弃,NAS小机箱硬上i7
改造后的存储池,虽然拖着条尾巴,但读写总算能跑满千兆网口了。但这会是甜蜜生活的开始吗?
两天之后,NAS离线了。检查了各种情况,没有找到原因。可能是中途停电了?
又过了两天,又离线了。然后每隔两三天都会离线。进一步观察发现,离线只是表象,无故重启才是原因,有时重启能成,有时重启不成功就一直黑屏卡在那儿。
换了内存,把系统盘插回sata,甚至因为怀疑是散热原因加了风扇,重启如故。重启前,系统会变得异常缓慢,system占用99% cpu,但是j3455性能真的很差,经常开个界面cpu就会跑满,而且由于未知原因,cpu功耗似乎被限定在4W......说好的10W TDP呢,4W能搞个球?
就这样经历过几次拷贝大量文件中途NAS重启失败之后,j3455上了我的咸鱼货架。惨不忍睹的性能、可怜的PCIE通道数、用料可疑的主板让我最终放弃了它。而那个作为决定性卖点的HDMI2.0,由于j3455忽略不计的核显性能,自始至终都没有派上用场。
获得教训后的我,选择了华擎的H270m-itx,6SATA+m.2 nvme,刚好一个6盘存储池的最小系统。直接装上了台式机上的i7 6700、PC300 NVMe SSD和16G DDR4。
这用料,一下子让我回到了现代社会。
这套方案一直用到了现在。
20171104 痛下血本,新玩具到家

h270这套讲真没啥可挑的。然而,我的6盘池这下又满了。
原本就有i7功耗高的错觉+手痒Gen8的企业级仪式感+池子满了反正要买新硬件的三重蛊惑下,剁手小一万买了4块8T氦气盘+2块850pro+新出的MicroServer Gen10.
4块st8000nm0016+2块850pro 256G组成混合存储池,可用空间调了半天只调到21.82TB。
HPE MicroServer Gen10,双核x3216低配的。做存储池有时cpu占用会彪的很高。Micro Server Gen10这一代,大家也都看到了,其实不算Gen8真正的接班人。取消了ILO,增加了核显,而且硬解4k,双DP,一看就是奔着HTPC去的。另外这一代cost down意图太过明显,整体质感比不上Gen8,但毕竟是大厂,在可选的范围内设计和做工肯定都是比较好的。
比较蛋疼的是,Gen10正式版把SATA6取消了(只留了焊盘),只有5个SATA,其中一个还得插系统盘。而我的6盘存储池就尴尬了。不加SSD缓存的话,4盘Parity写入性能低下,只有大概60Mbps。随机也会是一坨屎。
硬盘就是之前提到很多次的这货。。。代表了机械硬盘的全新审美,整块铝CNC出来的盘体,上盖超声焊接密封,防止氦气泄漏。
外观上已经和ssd无异。拿手上能玩一年。
发热和震动都较HGST非氦气企业盘要低,功耗更低,4块盘能低8~10W,同样散热条件下温度低2°。对于NAS应用来说,这两点都非常加分。
下次屯盘,打算选HGST的氦气盘,到时候做个比较。
功耗方面:新池子低负载下45w左右,最高65w。老池60w。
20171105 Gen10 SATA6把SATA座焊上了。
然而也确认了不能认盘,BIOS里就已屏蔽,除非能刷测试版的BIOS,不然SATA6看来是用不了了。真不爽。
20171105 到底还是把Gen10拆了。
为了6盘系统还得上块HBA卡,让我十分不爽。如果SATA6能用上,我打算用回usb系统盘,2块SSD插SATA5和SATA6,4块0016插热插拔位,形成一个“最小系统”,功耗会很好看。
虽然插着LSI9211,全系统all functional无读写功耗也才45w,但心里总是不舒服。
最主要的,是我买Gen10 的初衷,就是为了完整感。现在这样的状态,我不甘心。
于是全拆了,8块HDD连通道卡,插H270m上,4张SSD接SATA,这样SATA口还余2个。
开机两个存储池都挂上了。有点惊喜的发现,无读写功耗还算好,75W。
随手测了下性能,下巴掉了下来。
两个池对拷测试,平均300MB/s不到,功耗达到134W。
这才像话嘛。
Gen10,正式和你说拜拜了。
20171108 关于RAID卡和HBA卡

前面说到8块硬盘全部挂在了HBA卡上,其实这也是性能提升的一个原因:原生sata接SSD,获得4k性能接近原生SSD的水准,HBA卡通过IT模式直通硬盘,8块HDD盘共享PCIE x8的带宽,也不会存在瓶颈。
这里的HBA卡或者说通道卡,指的是什么呢?
HBA卡其实就是不具备复杂RAID功能(RAID5/RAID6)的阵列卡。因为不需要异或计算,HBA卡是没有缓存的,如果工作在直通模式下(IT模式),其实相当于PCIE转sata转接卡,只不过性能相比一般的此类转接卡好很多,毕竟是x8的带宽。
HBA卡这东西我一开始也是不知道的,为了扩充SATA口花大几百买了一块MB5015 PCIE 3.0的阵列卡。拿到手发现我擦系统是不能直接认盘的,必须在阵列卡里组好RAID之后才能挂到系统里。当然,速度真不是盖的,基本发挥了硬盘的全部性能,甚至有那么一会儿,我想就用阵列卡算了吧,不折腾存储池了,还省俩SSD。
直到我瞄了一眼功耗,才发现一块MB5015阵列卡就吃掉了20多瓦的功耗。。。一下子就从犯懒的美梦中惊醒,老老实实研究怎么挂存储池。
然后我才发现了通道卡这个东西,最便宜的150块,LSI2008的方案,可以刷固件变成直通。到手实测功耗在5W以下,扩充8个SATA口,这下巴适了。
wired up all over again.
下一步就是把这坨东西塞到盒子里。
--TBC--
20171110 12盘系统的安身之所
众所周知(并没有),我深圳家里很小,服务器的理想放置地点是电视柜--其实是两张宜家已经停产了的壁柜,放在地上就成了电视柜。在上面的照片里可以瞅见他们的身影。
其实就是4个30cm见方的格子。
在所有可搜索到的成品机箱当中,8盘位(再加4*2.5盘位)的体积没有能控制在30cm*30cm*30cm(27升)以内的。因为要考虑到震动/散热的实际问题,这个要求确实高了点。不过在咸鱼找到一个玩存储的哥们,diy了一个机箱,这是他的图片:
下层放硬盘,上层放主板,也算简单粗暴。
于是愉快的拍下来,等快递。
20171114 没有一劳永逸,只有永远的折腾
新机箱到了,不愧是DIY,光拆顶上4颗自攻螺钉就拆了10分钟,拆完四壁就向四边散开了。
走线也是个问题,cpu 8pin差点够不到主板接口,下层俩风扇总是打到电源线和sas线。
另外由于机箱上没有卡扣,硬盘笼的锁紧功能丧失了,不装硬盘会自己滑落下来。
不过我也习惯了,这一路都是这么折腾下来,基本没有一帆风顺过......经过卓绝的努力,终于以238mm*268mm*268mm的完成态再度点亮了Tesseract(划掉)存储池,风扇声有点大......
20171116 关于硬盘休眠
目前我的存储池,其实是两个池。新池是4*0016+2*850pro,老池是3*HUS7230+1*WD red+2*s3700.
有了新池之后,我就对我的所有文件进行了划分:热文件和冷文件。热文件是指那类一周之内至少会有1次访问的文件类型,比如虚拟机的虚拟盘文件,热备文件夹,下载文件夹等等;冷文件则是各种存档,在需要的时候读取,一般几个月或更长时间才会用到,但是也包括一部分热文件的冷备份。
这样划分好了以后,我把两类文件分别存入两个池,新池功耗低性能好,存热文件,老池功耗高性能差,存冷文件。实际上如果划分合理整理得当,老池可以不需要SSD了,也可以使用转速更低故障率也更低的仓库盘。
前面不是说过么,没有一帆风顺的故事。
整理完之后的老池(E盘),不手动触发的话几乎不会有任何活动,我设置了硬盘自动休眠(10分钟),但是半个小时过去了,功率表度数没有什么变化,依然能听到老池硬盘转动的声音。
我盯着任务管理器里的4个0陷入了沉思......
网上有种说法是,企业盘不会进入休眠。这当然是不对的,硬盘休眠是信号控制的,我的一块行货企业盘装在路由器里,每5分钟无活动就会休眠。
还有一种说法是,组了存储池的硬盘,每一块都无法休眠。这我没法证实,也没法证伪,但倾向于认为是错的。存储池不仅仅是企业应用,家用版Windows也是内置的,没理由在整个池都无活动的情况下阻止硬盘休眠。
由于我有特殊的搜索技巧,让我找到了可能的原因和解决方案。
最终问题还是在通道卡上。虽然是直通模式,但LSI的通道卡方案默认是会阻止硬盘休眠的。因为通道卡/RAID卡默认是应用在服务器上。通过修改注册表参数,开启了LSI9211的硬盘休眠开关,重启,再等个十分钟,功率表度数终于下降到了58W。
--TBC--
20171207 关于功耗
作为搭建过程中持续关注的指标,功耗是一套NAS方案的核心要素之一。从一开始尝试j3455方案的一大目的就是控制功耗。
但这里面是存在很多误区以及神坑的。
目前调教好的8盘位待机功耗表现如下,还是比较满意的。
1,应当关注什么工况?
最重要的工况就是待机工况,家用NAS不会有大量同步任务,绝大多数时间都处于待机工况。
2,标压不带T的处理器比带T的处理器更耗电?
前面说过,这是幻觉。待机工况下,65w tdp的i7 7700与35w tdp的i5 7500t没有一丁点区别。满载下差别约为20w。
3,sata卡的功耗高吗?
市面上买到的一般研祥方案的PCIEx1 sata扩展卡、marvell 9215/9230方案的PCIEx2 sata扩展卡几乎都没有什么功耗,LSI2008方案的阵列卡在IT模式下功耗小于5w,带raid5功能带缓存的阵列卡普遍15w以上。
4,不同的主板功耗表现有区别吗?
区别可能大到超乎想象。除了目前这一套h270m-itx外,我手头还有一块msi b250m mortar.这块微星主板做工优秀,用料良心,接口完美,各方面来说都是一块好板子,只不过是matx 25*25的版型。但我曾将h270m上的东西原样替换到b250m mortar上,功耗瞬间高出25w之巨!









看完这个,感觉买台群晖做NAS真的好便宜
“最终摸索的最佳实践是:加入两块SSD到池中,Usage设为Journal,分别创建SSD和HDD tiering,最后创建虚拟磁盘,手动设置WBC为16GB。这样windows会把SSD分为三部分,一部分为WBC,一部分为日志空间,第三部分提供SSD tiering,专门handle那些小文件读写。”
lz能否提供一下创建以上存储池的powershell命令。想学习一下。。
为存储的事折腾了许多
第一代:ORICO硬盘架/硬盘柜 USB3.0,问题多多,不稳定,不认盘,认乱码
第二代:D525带黑群晖,稳定性还行,本来用着好好的,速度也不错,手贱弄第三代
第三代:
硬件:E5-2660v2/C602/32G ECC/双9211-8i/3U 16盘位/240G ssd
4*8T(美亚希捷拆盘)+4*4T(希捷酷狼)+4*2T
软件:ESXi底层,硬盘直通黑群晖每4盘一组RAID5,windows 2016通过iSCSI扩展空间
磁盘稳定性不如第二代,速度不如第二代,就是为了一机多用
待机功耗180W,满载功耗250W。。。醉了
这都不是问题,最大问题是虽然是直通,但群晖看不到硬盘SMART信息,然后最近又手贱买了4个6T的HP SAS盘,来回捣腾就是认不出来,有说是9211-8i不支持6T。。。最后昨晚群晖提示,8T盘组3个,2T盘组1个有问题,困了没处理,今天下班回去还得抽出来一个个接电脑看SMART。。。
看到这文章后,想,如果所有硬盘由windows的存储池管理,又会是怎样。。。
毕竟,如果真的9211-8i不认6T SAS盘,换一张卡的话,黑群又未必认卡。。。
全DIY服务器,刀片玩不起…
估计主板问题,功率省不了
日立著名翻新盘641......不翻车?虽然看见价格我也很想买五六块塞机箱就是了(
买第一块就知道是翻新盘,不过日立的盘从不暴毙,组个奇偶校验池问题不大。
直接入白群晖,真的太明智.....
最近也在研究,想用如下配置单,不过还没入手~
银欣DS380机箱,7个3.5盘位(本来8个,PCIE插东西的话只能7个了),4个2.5盘位
华擎Z270 Gaming-ITX/ac主板,6SATA,1PCIE,支持HDMI2.0和5.1
电源银欣SFX600W
i7-7700t
2个DDR4 2400 16GB
960evo500g做系统盘
2个酷狼4T组软raid1放重要文件
4个酷鱼4T单盘放影音文件
容量不够再扩充的话,就把PCIE插上阵列卡连上4个2.5盘位的
主要用途当htpc+nas,不玩太大的游戏而且7700t的核显估计也还行,暂时不搞显卡了,留着扩展装那4个2.5盘位吧~
楼主有兴趣也帮忙提提建议哈~