谈谈HP Gen8 做NAS的一些技能问题-RAID
先上一张一年前的Gen8开箱图

序言

随着现在人们生活水平的不断提高,很多原来不敢想象的事情都成为了现实。记得上世纪90年代到一位初中毕业就去搞网站挣钱不再上学的技能宅大哥家里玩,他跟我感慨现在我这个SCSI接口的2倍速CD刻录机,10年前中科院研究所也想不到能在个人家里随便刻动漫音乐玩。而现在蓝光刻录机也就几百,硬盘单个的都10T容量了,做事器这种东西也开始家用化。像Gen8这种颜值和性价比都相称高的东西更是广受大家欢迎。
但是,做事器毕竟是做事器,个中包含了无数的人类聪慧结晶,也便是技能,而技能并不总是非常亲切的,曾经不胫而走的所谓傻瓜相机,便是由于当年拍照是一个非常专业的事情,一样平常人别说想照出好照片,不曝光过度或者曝光不敷便是一个不随意马虎的事情。底片又不便宜,哪能随便照一堆去练习呢。就算土豪随便照,照完了还要洗出来才能知道结果。
言归正传,我们现在不管是用手机还是数码相机,还是摄像机,产生的大量数字信息须要存储,看病医院给了一堆光盘什么检讨结果之类须要长期保存,电影、音乐、各种数字化信息爆发增长,家里只有一个电脑和几个移动硬盘已经远不能知足我们对付数字化信息的存储需求。那么NAS这种以前紧张是办公环境多人共享文件用的设备也就开始民用化。
这里涉及的技能太多,本篇先不一一先容了,紧张就一个每每只有专业人士才真正明白的存储技能---RAID技能做一些遍及性的先容。由于有人说百度百科之类的地方讲的太专业,一堆术语看不懂。专业人士就不用连续看下去了,我从事干系专业有几年了,也考了一些技能方面的专业认证,勉强算是一个数据中央运维、云打算和系统架构方面的专业人士。只管即便用大家都能明白的措辞比较先容一下RAID到底是什么,各种RAID有什么利害,各种家庭利用场景下用哪种RAID办理方案比较好。
第一节 成品NAS和低廉甜头NAS(包括用Gen8做事器低廉甜头)的差异
成品NAS 张大妈这里的先容非常多,原创区有大量的先容。所谓NAS,实在便是一台小做事器,可以拆解成几个独立的逻辑构造,存储部分、掌握部分、通信部分等,个中存储部分有硬盘多少、硬盘掌握器一枚,掌握部分有CPU、内存、操作系统,通信部分有网卡、无线等,这和一台PC实在没啥差异,只是集成度更高,比较的话实在和手机更像。其余这里面的操作系统一样平常是封闭的,不让我们自己去修正。这样的好处是我们不用关心里面到底用了多少种技能,开启了多少种软件进程,直接按照解释书利用它供应给我们的功能就好了。通过浏览器或者各种客户端图形化操作大略明了。坏处是一旦出了问题,我们除了乞助客服之外很难自己去办理。
系统又稳定,功能又多的要数群晖,这也是为什么那么多黑群的紧张缘故原由。性能更好的freenas功能不亲民,没有手机客户端;功能更全的unix+nappit要自己配置一大堆东西,在linux下面改过各种配置文件的同道都知道这系统有多反人类。如果不是对把统统都掌控在自己手里有非常强烈的需求,实在是没有必要花太多精力在这上面。
现在我们所利用的各种电子设备,里面都是有一个软件的操作系统的,大体分为三类:
一类是基于Unix架构演化的,例如freeBSD,松下等离子电视用的便是这种系统。这种系统小巧,资源占用少,适宜功能比较单一的电子设备。部分NAS也利用这种系统。低廉甜头NAS如果要用ZFS实现非硬件RAID的多盘高性能存储,也要用到这种系统,这个在后面会详细讲解。
二是Linux的各种分支,包括Android,由于免费而被大量的厂商选用。很多成品NAS里面利用的是基于Linux的一些定制版系统。
三是完备自主开拓的系统,这类系统每每用在功能更大略的产品,例如空调、冰箱、洗衣机、非智好手机等等,现在的嵌入式系统大多指代这些,由于现在什么都要跟智能沾边,这种系统已经越来越少了。
既然成品NAS从构造上来说跟PC没什么差异,那么我们自己装一台PC、或者用一个条记本电脑、或者旧手机、树莓派、做事器改造一下当NAS用,是完备没有问题的。差异就在于自己改的想要什么功能都只能自己动手配,架构也要自己设计,本钱每每也要比成品NAS更高。
虽然理论上是这样,但是实际上由于现在做事器也不是什么奇异东西了,只要不是机架式那种完备不考虑噪音、耗电和辐射的产品,价格未必比成品NAS贵,二手的就更便宜了。下面对比一下Gen8和群晖的配置
可以看出紧张的几个硬件参数Gen8是要高于群晖DS416的。价格却比群晖便宜1000块(京东)。那么我们买个Gen8直接黑群,性价比就要高于群晖了。是这样吗?实在未必。用树莓派不是本钱更低?为什么不用呢,由于功能不同,比拟价格必须在实现相同功能的条件下才故意义。试想如果Gen8上面要装一个自己研发的系统,那价格还能跟群晖比较具有上风么?用免费的系统,能实现群晖相同的功能么?至于其余一个差异,便是RAID。
这些构造跟PC相差无几,系统和硬件架构又不见告我们的成品NAS只要不是1盘位的,一样平常都会流传宣传支持RAID。虽然RAID不是什么新技能,但是此RAID和彼RAID还是大大不同的。
第二节 RAID各种类型的差异和实现方法
先说一下RAID的类型和差异,细节百度就有,大家都知道的便是RAID分为0、1、5、6、1E几种基本形式,加上两种形式组合而成的10、50、60,这些都有干系的先容解释,我用大略的措辞描述,便是RAID0是硬盘组个团,读、写、存什么事情大家一起干,谁出问题团队就塌台。RAID1便是两个硬盘干同样的事,一个没弄好还有其余一个。
RAID5比较繁芜,组成RAID5根据掌握器能够支持的不同,从最少3块硬盘到最多12块硬盘,乃至更多的都有。但是不管组多少个,都只能坏一个。RAID6是在RAID5的根本上把可以坏的数量增加了一个,可以坏2个。我刚知道这种技能时只想到又可以有RAID0的快速读写、又可以有RAID1的备份、可用空间还比RAID1的一半要多,这么好干嘛还要有RAID0和1这些呢,全用RAID5不就好了。结果实际用起来创造根本不是那么回事。
我们已知RAID5的可用容量即是RAID内最小的那个硬盘的容量乘以硬盘数-1,RAID6便是-2。实际存数据时,并不是只用到总数-1个硬盘,以常见的4个盘为例,每个硬盘全部容量都是要利用的,只是个中3/4用于存储数据,1/4用于存储其他三块盘产生的校验码数据。当涌现一个盘坏掉的时候,剩下三块盘上面存储的这些校验数据就可以恰好还原出坏掉那块上面的数据。如果再坏一个,剩下的2/4数据就全部塌台了,想要规复就要用一些直接读硬盘磁道的专门软件和设备才能规复出一些文件碎片(没有完全的文件,由于每个文件都是切碎了分散在各个盘上)。这就涌现了一个问题,校验码可不会自动产生,须要在写入的时候先把数据存在缓存里面,通过CPU或者其他运算芯片去打算,算好了之后再写入到硬盘上。这个过程分好几个步骤,每个步骤又涉及很多技能,比如缓存中的数据,一旦在写入的过程中发生断电怎么办?家里可不像机房有双路电源和UPS,那么就要有一块电池,使发生意外断电时缓存中的数据不丢失,软件RAID通过内存来当缓存用,那么同样面临意外断电的问题。校验码打算量不小,如果靠CPU那么CPU的性能、功耗、发热都是要考虑的。或者直接有个专门的芯片卖力干这事,效率就会大大提高,性能也会同样提升。我测试过多种硬盘在没有硬件RAID卡加持的情形下的RAID5性能,大部分的连续写入都只有不到30MB/s,这对付千兆的NAS网络传输是个不小的瓶颈。而且缓存很小或者干脆没有的情形下,校验码的打算和硬盘频繁读写对硬盘的寿命也有不小的压力。不是企业级硬盘的运用处景会使硬盘的寿命很快耗尽。企业级硬盘的噪音和发热都不容忽略。
总之,RAID5是非常好的技能,在很多运用处景下都有很好的效果,但并不适用所有的情形。大部分情形下在NAS中很少追求极致的高性能,以是RAID0的运用处景不多,只有2个盘做RAID0也没什么意思。可以利用JBOD(两个硬盘分成一个区用,数据各存各的)、RAID1(备份)作为大部分情形下的选择。
第三节 各种NAS的RAID功能实现方法和差异
前面解释了各种RAID是怎么实现的,有什么差异,下面谈谈在NAS里面是如何实现类似的功能的。
第一种是本身是做硬盘盒和各种存储干系产品的,用一些廉价的硬件RAID芯片,集成一个NAS操作系统。如果不带NAS操作系统的话便是个支持RAID的硬盘盒了。这类芯片每每都支持RAID0、1、JBOD、单盘等,我们可以自由选用须要的办法,由于RAID0带来的性能提升和可能的风险不成比例(商业运用处景下每每利用10、50、60,而不是纯挚用RAID0)以是很少有利用的,须要备份用RAID1,不须要的用单盘或JBOD。这种情形下如果厂祖传播宣传能够支持RAID5,要么很贵要么很慢。
第二种是通过软件实现RAID功能,由于RAID卡不过便是一个带芯片(CPU)、缓存(内存)、固件(操作系统)的硬件设备,它能干的事情我们的PC都能干。以是完备可以通过软件来实现相同的功能。Windows里面叫动态磁盘,Win8和Win10里面更进一步支持了存储池,Linux里面利用的开源的MDADM软件,Unix里面用ZFS文件系统的RAID-Z等等不一而足。但是这些方法都有一个共性便是性能不敷。实际性能严重依赖于系统的硬件配置。大部分情形下纵然硬件很强(E3 CPU+大内存)RAID5硬盘组的读写参数也很惨(RAIDZ分外,除外)。不过RAID0、1由于不涉及大量打算和缓存,性能和硬件RAID卡相差不大,是最为广泛利用的办法。险些全部的2盘位NAS和大部分家用成品4盘位NAS采取这种方案。
第三种是我们自己配置做事器或者PC DIY成NAS,这种情形下的可玩余地很大,也有多种架构方案可选。可以是软RAID、家用主板通过固件支持的半软RAID和购入RAID卡实现的硬件RAID。先不谈论利用硬件RAID卡的情形,专门说一下HP Gen8的分外情形,Gen8实际上没有硬件RAID卡,有64M缓存但是不能用,没有校验码芯片,以是在硬件的角度完备不支持RAID5,RAID0和1也是通过分外方法实现的,那便是利用Intel的C204南桥支持的半软件RAID,由HP修正了主板BIOS固件,仿照成了HP smartarray B120i RAID掌握器。这样做的好处便是,如果直策应用Intel C204的RAID,是不能支持Linux和ESXi(实际上还是linux)的,配置的各种RAID到系统里面都会还原成单盘。由于Linux系统底层不识别主板层面的仿照RAID,会直接去访问硬盘。而通过HP启动工具光盘安装系统时,是可以识别修正后的B120i RAID掌握器的。这个好处很明显,在不用RAID卡的情形下实现了RAID,便宜又好用。如果我们在系统里面做软RAID,那么RAID的状态监控就只能靠自己配置干系软件了,没有iLO方便。
除了Gen8这种分外的之外,可以自己购买硬件RAID卡实现RAID5,但是一块有缓存、有电池、支持RAID5的卡可不便宜,新的有售后的都要1500-2000,二手的也要好几百,可靠性还不好担保。这种情形一样平常都是有很高需求的组有大量硬盘的存储设备利用。不推举只有4块硬盘的情形下选用。当然壕可以略过这段。
为什么不推举利用Windows或者Linux自带的软RAID功能来实现RAID5呢?紧张有几个方面,第一是RAID对硬盘的相应速率有很高哀求,在配置了RAID的情形下系统会每隔几秒钟对所有硬盘做一次检测,创造有掉队的就把它踢出RAID组。几块新硬盘组起的时候前期运行很正常,过一段韶光就会涌现频繁的掉盘,某块盘由于不能及时相应检测要求而被RAID掌握部分认为是“坏了”,而踢出RAID组,RAID降级,告警,之后就须要重新同步。如果仅仅是这样还好说,怕的是几块盘都是一起买的,到了要坏的时候,一个坏了其他几个也差不多了。纵然没坏,存在一些个别坏道的情形也是很平常的。专业的RAID掌握器每隔一段韶光就会进行通盘数据完全性检讨,及时创造缺点并进行修复,修复不了就急速告警,企业级硬盘上面也有专门应对这种情形的固件设计。这些在家用盘上面都是没有的。例如西数的NAS盘便是在家用盘的根本上增加了一个“不去世”功能,每当掌握器找他的时候先答应一声,再去找数据,避免被掌握器认为是没有应答而踢掉。很难说这种做法是好是坏,须要个人根据自己对数据安全的哀求和预算来定。贵的硬盘是有他贵的道理的。第二是硬盘平时用着都好好的,由于只有部分人会对硬盘做定期通盘备份,坏道这种东西便是平时不用时不知道,坏一块盘须要同步的时候就冒出来,这时便是灾害了,已经踢掉一块,同步时又碰着坏道,全部数据塌台,OVER。而企业级运用有很多专利技能专门应对此类情形,当然也不用除现在的软件越做越精良,在稳定性方面离硬件越来越近,但纵然软件的稳定性不是问题,性能方面也无法和硬件比较。第三便是性能问题,现在的硬盘越来越大,单盘2T已经是标配,4T也不是什么奇异事,8T 12T也有人在用了。取个中间值就算3T把,4块3T容量的硬盘,做软件RAID5,读取100M(千兆网络)写入50M(RAID5性能所限),坏一块盘须要同步的数据有5-8个T,如果按极度一点的情形来算,仅作一次数据备份就要数个小时,再同步个2-3天,这期间不能发生一点问题,只要有一点问题便是全挂,或者重头再来,一样平常人该当都受不了。
第四节 Gen8的推举系统架构方案
Gen8是做事器,以是属于DIY NAS的范畴。可以自己增配一些硬件来实现不同的功能需求,这里从低到高列出几种:
1、标配最低配,2G内存,赛扬G1610T,群晖或者win
这种情形下可选余地不多,最大略的便是仅作NAS利用,直接U盘或TF卡启动装群晖,详细方法张大妈这里有其他朋友写了,我就不再重复了。这样的缺陷是不能兼顾HTPC的需求,不过个人认为做事器那蜗牛一样的启动速率,一样平常都是很少关机的,作为HTPC那硬盘卡卡的噪音和风扇的声音导致只能把这货放在客厅。显卡的性能也很难知足4K或以上高清的播放。加装显卡不才面谈论,装Win系统做HTPC只能说很勉强知足功能需求,实用度还不如NAS加高清盒子或者智能电视。其他装linux之类估计能这么折腾的一样平常都不会仅知足于最低配吧。
2、扩内存,装ESXi或者Linux
内存可以从2G-16G自由选择,一样平常最大到16G,由于官方解释文档写了支持最大8G单条,16G是否支持没说,欢迎有试过的来讲讲能不能支持。ESXi是神器,但是不幸的是用起来并不亲切。很多功能都要理解一堆知识和各种限定条件才行,最基本的配置必须通过客户端这点就很麻烦。装vCenter之类家里实在是没有折腾的必要。不过装了ESXi,就可以在群晖的根本上再做点其他的事情,比如软路由、软交流之类。这些说远了。但是这样做的限定大概多,最紧张的一点便是CPU不支持VT-d,不能硬件直通导致装了ESXi就无法好好的利用RAID和各种硬件,一层系统之上再套一层系统一旦出了问题非常麻烦。
3、既然都扩了内存,干脆也换了CPU吧
换CPU有多种选择,网上有人做了各种测试,限定条件紧张是Gen8的散热器是非标准的,几个稀疏的铝片不带风扇和用于1U做事器的150w小电源让人看着非常捉急,不太敢上性能强劲的志强E3-1230v2,至于E3-1265L价格较贵,最省钱的办法便是上E3-1220L,双核4线程,再把G1610T出掉,几百块可以搞定,虽然性能提升不多,但是支持VT-d便是一个非常主要的变革。支持了VT-d,我们就可以U盘装ESXi,4块仓库盘做两个RAID1,然后在ESXi里面RDM给群晖,其余加一个SSD用来装虚拟机操作系统。这样纵然虚机坏掉了,重新装一个便是分分钟的事情,装好虚机把RDM的RAID卷重新配上急速满血复活。至于RAID安全由HP的RAID掌握器来保障。如果有问题Gen8正面下面那个蓝色灯条会变成赤色闪烁(别问我是怎么知道的)。还不放心可以吧USB3直通进去,然后插上一个移动硬盘,在群晖里面配置部分主要数据的定期备份策略。目前我利用的便是这样一个方案。开了软路由、常用的Linux虚机、一台Win10(ipad上通过微软远程桌面APP上岸利用)、群晖虚机(NAS和VPN)。还可以群晖通过iSCSI功能在反过来映射硬盘给ESXi用来装虚机利用。这些虚机之间的数据通信都是在虚拟交流机下面进行,速率还是比较满意的。
4、加装RAID掌握器或显卡二选一
由于Gen8只有一个PCIe扩展,装了RAID掌握器就不能装显卡了,显卡只能用半高的刀卡,可以知足HTPC和部分游戏的需求,RAID掌握器如果不用外接12盘阵列的情形下实在个人认为没什么必要。4个盘做了RAID5也不会有什么质变,投入产出完备不成正比。加装显卡之后还是有两个选择,可以把显卡直通给win虚机,连续知足NAS和各种多功能利用,也可以直接装Win当作PC利用。
Gen8比自己攒的NAS有什么好处呢?下面上几张图:
通过手机客户端随时访问的温度和阵列状态信息便是选择Gen8的情由之一。
张大妈这里藏龙卧虎,希望在评论区和大家多互换,相互学习。很多涉及技能细节没有展开了说,强烈欢迎拍砖,也希望比我更专业的大牛们多来辅导。感激!









