关于硬盘、存储池和NAS--家用存储方案持续折腾记

关于硬盘、存储池和NAS--家用存储方案持续折腾记

393 人赞同了该文章

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小板。

NSC-410 内部
J3455-itx

研究过配置的朋友都知道这一套依然是目前家用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 痛下血本,新玩具到家

新池 HPE MicroServer Gen10

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。随机也会是一坨屎。


网红氦气盘 8T

硬盘就是之前提到很多次的这货。。。代表了机械硬盘的全新审美,整块铝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。

h270m上的0016+850pro 6盘存储池测试结果

这才像话嘛。

Gen10,正式和你说拜拜了。


20171108 关于RAID卡和HBA卡

最新一版存储池:4盘HGST+4盘0016,4SSD加速

前面说到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口,这下巴适了。

富士通的 LSI2008方案通道卡

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之巨!

送礼物用户
送礼物用户
送礼物用户
3 人已送礼物
编辑于 2018-03-26 03:40
理性发言,友善互动

231 条评论
默认
最新
多多猫

看完这个,感觉买台群晖做NAS真的好便宜

2017-11-08
xiaoX
作者
算上时间成本的话,群晖太便宜了。不算时间成本的话,群晖方案还是贵很多的
2017-11-08
xiaoX
其实到最后需求也就这些,win10就是不错的方案,万能。docker+hyper-v还能搞定绝大部分服务,给公司装的openmediavault,自己3台都是win10。
2018-10-05
qwer

“最终摸索的最佳实践是:加入两块SSD到池中,Usage设为Journal,分别创建SSD和HDD tiering,最后创建虚拟磁盘,手动设置WBC为16GB。这样windows会把SSD分为三部分,一部分为WBC,一部分为日志空间,第三部分提供SSD tiering,专门handle那些小文件读写。”


lz能否提供一下创建以上存储池的powershell命令。想学习一下。。

2017-11-07
xiaoX
作者
稍等我更新文章。。。
2017-11-08
王苏橙
华擎主板的问题应该就出在usb系统盘上了,首先u盘设计就不是做高频读写的,你系统跑在上面基本就是非常高频率的读写,也没有缓存,没有散热,你系统重启应该是因为u盘过热了,其次走usb通道的话和sata比本身就多了一道稳定性和速度供电差了一截,所以出问题就是迟早的事了,另外你的读写速度主要限制于磁盘io和cpu,3.5寸盘一般跑满也就100m左右,想要更高不差钱的话推荐用raid卡做,物理raid性能要好于软raid另外即使系统崩了硬raid也不会坏,功耗也更好控制,软raid全靠cpu内存抗,所以你就会觉得cpu不够用了,最后读写速度其实要看瓶颈在哪,你的瓶颈其实就出在机械硬盘上了,三百多兆的读写就是软raid机械盘的上限,而你的ssd对拷单盘速度应该也是这样。不差钱的话可以给ssd做raid5或者10,用pcie转万兆网卡,万兆交换机,可以让你的纯ssd对拷接近1gbyte/s,如果用链路聚合跑多任务可以超过这个值,不过终端设备都是千兆,核心再快外貌似也没用😂,主要可以考虑考虑降延迟
2018-03-25
xiaoX
作者
谢谢指导。不过你说的两点其实都不是我的情况。第一点,我外挂的是ssd不是u盘。我现在工作电脑就是外挂win to go系统盘,7*24从不关机,高负荷使用没有任何问题。第二点,无缓存存储池性能低下跟机械盘速度没有关系,纯粹是因为存储池的实现策略导致。
2018-03-25
那天很美
你这硬盘一会就满了,一会就满了。(借一步说话)
2018-09-05
cybernow

为存储的事折腾了许多

第一代: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盘,换一张卡的话,黑群又未必认卡。。。

2018-04-24
cybernow
P20固件,是认不了…入手9300,今天到还没试
全DIY服务器,刀片玩不起…
估计主板问题,功率省不了
2018-04-26
呵呵呵
哈哈,折腾~我是直接用windows做,用不上群晖那些功能
2019-01-24
永訣

日立著名翻新盘641......不翻车?虽然看见价格我也很想买五六块塞机箱就是了(

2017-11-20
xiaoX
作者
有多稳不好说,但买了7块了,目前还没翻。而且中间涨了一次价,现在跌的超狠……
买第一块就知道是翻新盘,不过日立的盘从不暴毙,组个奇偶校验池问题不大。
2017-11-20
知乎用户EzxBKb

直接入白群晖,真的太明智.....
2017-11-19
xiaoX
作者
如果我直接白群晖,只会烧更多钱……
2017-11-20
田就是力量

最近也在研究,想用如下配置单,不过还没入手~

银欣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盘位吧~

楼主有兴趣也帮忙提提建议哈~

2017-11-08
xiaoX
数据分集就是累点,养成习惯之后才是一劳永逸的治本之法
2021-08-23
xiaoX
8代好像主要是开了核?我主要是用potplayer,硬解的话所有intel的核显都差不太多,有的profile就是解不了,包括地表最强的骷髅峡谷。但是一块1050就已经几乎完美解码所有profile的4k视频了。powerdvd没有实际测试,可能有专用的解码器7代核显有加成。另外,早先我折腾4k的时候发现了一个神器,dp1.2转hdmi2.0主动转换线,支持4k60p,淘宝几十块一根,完美解决主板输出问题,可以不用纠结主板带不带hdmi2.0了。
2017-11-08
海龙道长
太折腾了
2017-11-08
达瓦里氏
噢 dji小标
2017-11-05
点击查看全部评论
理性发言,友善互动