首先硬盘的基本参数包括容量,转速,平均访问时间,传输速率,缓存等六个主要参数。市面上常见的硬盘有固态硬盘、机械硬盘、混合硬盘。从硬盘的组成介质上来看,固态硬盘采用闪存颗粒来存储,机械硬盘采用磁性碟片来存储,混合硬盘是把磁性硬盘和闪存集成到一起的一种硬盘。
其次市面上流行的硬盘是机械硬盘HDD跟固态硬盘SSD两种,HDD硬盘的主要是价格便宜,固态硬盘SSD跟机械硬盘比起来具有轻便,防震抗摔性,数据存储速度快,功耗低,噪音小,容量大,使用寿命较长等优势,而混合硬盘综合了两种硬盘的优势,最大的问题是价格昂贵。
最后,由于固态硬盘是目前性价比最高的硬盘,因此固态硬盘受到大多数企业的偏爱。选择服务器时,尽可能选择固态硬盘跟机械硬盘组合的形式或者全部固态硬盘,这样可以确保服务器的高性能,才能更好地满足用户需求。
1、主板:超微X10DRL-i2、CPU:E5 2650L v3*22、内存:4*8g DDR4 REG ECC(SK Hynix HMA41GR7MFR8N-TF)4*16g DDR4 REG ECC(Samsung M393A2G40DB0-CPB)3、阵列卡:LSI 9208-8i IT模式(共有两块,只使用了一块)4、硬盘:8*日立HUS72302CLAR20005、电源:长城巨龙EPS1000DA6、机箱:TT W200(对硬盘散热使用了7把12cm风扇保证散热)软件平台:系统:Ubuntu Server 20.04.1 LTSzfs阵列使用OpenZFS on linux v2.0.4其余raid阵列使用mdadm创建测试脚本:本次测试均使用script命令记录测试结果创建mdadm阵列使用如下脚本:mdadm --create --verbose /dev/md1 -level=$level --raid-devices=$i --chunk=$chunk /dev/sd$j其中$level与$chunk对应raid类型和chunk大小(条带大小),$i和$j则因为有部分测试只使用4块硬盘测试,使用md1因为操作系统安装在由两块ssd(sda、sdb)以raid1组成的md0阵列上创建文件系统,使用ext4文件系统:mkdir -p /pool_0yes | mkfs.ext4 -F /dev/md1yes | mount -t ext4 /dev/md1 /pool_0清理阵列:mdadm --stop /dev/md1mdadm --misc --zero-superblock /dev/sd$j创建zfs阵列使用如下脚本:zpool create pool_0 $raid-level /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj或zpool create pool_0 $raid-level /dev/sdc /dev/sdd /dev/sde /dev/sdf $raid-level /dev/sdg /dev/sdh /dev/sdi /dev/sdj第二种方式用于组建如raidz0等跨越阵列时使用因为zfs自动创建挂载点,故测试时直接使用默认挂载点测试清理阵列:zpool destroy pool_0sgdisk --zap-all /dev/sd$j测速命令:dd if=/dev/zero of=/pool_0 bs=$bs count=10000$bs为块大小,分别测试了512,4k,8和1m下的速度命令重复5次,去掉最大值和最小值计算平均值作为最终结果另外还进行了每块硬盘单独测速,同样使用ext4文件系统测试结果各硬盘测试结果虽然这批硬盘都是二手贴标盘,但是测试速度还是可以的,除了作为二手盘的一些毛病外(之后会提到)。接下来是阵列速度的测试,以下测试中,以8块硬盘或4块硬盘使用mdadm创建了raid0,5,6,10和使用zfs创建raid z1,z2,z3,2*z1,strip(等于raid0),mirror+strip(等于raid10),分别测试了mdadm设置不同chunk大小对速度的影响(不带chunk的则为zfs阵列),以及使用不同bs大小测试阵列在不同块大小下速度表现。阵列测速 block size = 512这次测试设置的最小块大小为512,此时速度受影响最大的是使用zfs创建的各个阵列,全部只有60m/s出头的速度,而最高速度梯队均被8盘raid0占据,但速度只有140-150,与单盘相比只有不到一倍的提升,迷惑的是chunk大小对应的速度顺序十分混乱,几乎无法总结出规律。阵列测速 block size = 4k4k速度领先的仍然是raid0,zfs的各个阵列排在中间,最低的则变成了4盘组的raid10,速度甚至低于单盘速度,可谓惨不忍睹,而我常用的raid5速度在350左右,只有不到2倍提升。阵列测速 block size = 8k8k速度比较有意思,raid0速度仍然占据前列,而zfs的速度明显提升,尤其是raidz1*2和使用zfs创建的raid10,这两个都是我曾经选择过的方案(raid10使用了16盘)阵列测速 block size = 1M最终来到1M块大小的测试,这次变化比较大,速度最高的是8盘使用zfs创建的raid0,速度达到了1100+,而实际上,我测试12盘速度时,这种方式创建的阵列速度可以到达1300+,而其余成绩几乎没有什么出乎预料的地方,只有上面提到的zfs下raidz1*2和raid10的排名继续上升总结说一下我的感觉,在做这次测试之前我也预料到测试结果就是如此惨淡,因为平时我使用情况便是桌面机和服务器之间使用万兆网卡相连,通过smb共享文件,不过文件性能实在不是很满意,从桌面机的ssd拷贝文件到服务器上速度只有400出头,而且遇到大量零碎文件时响应相当慢,一直以来我便考虑是smb的问题还是磁盘性能就是这样,这个测试说出了答案。测试中,速度最快的无疑是raid0,只不过应该不会有人选择,其余比较有价值的选择分别是raid5和2*raid z1,这两个选项都有不错的性能,也分别有1盘和2盘的冗余,当初我选择使用2t磁盘,便是考虑到在损坏1块硬盘时,2t硬盘重组阵列还是相对安全的,基本上一天以内阵列就恢复同步,当然我更偏向使用zfs,尤其是我最开始选择这套配置便是奔着freenas去的,而且raid z2和raid z3虽然性能不足,但是安全性绝对是更高的,只不过8盘位下,这两个选择明显没有优势。对于条带大小,实在是认识有限,之前一直使用默认参数,而网络上没有找到有用的资料,只能说是瞎子过河,用我自己的理解去测试,结果是无功而返。后记这个测试差不多在一个多月前做的,现在才发纯粹因为懒癌犯了,第一次在b站发文章,文案啰嗦得把自己也难受到了,还是感谢能看到这里,之后也许还会总结一些我之前的经验,我会多多努力。发文的时候我的配置已经做了一个大的调整,也乘着这次矿潮,把之前的设备卖了,还得了一笔不小的差价,而目前硬件涨价实在厉害,还好我在涨价前购入了一块12t硬盘,跟之前用来冷备的另一块12t硬盘组一起,现在数据暂且存在这两块硬盘上,对nas的进一步改造只能留在将来了。说到之前设备的缺点,只能说现实总是事与愿违,一开始我选择2t sas做阵列,主要是几方面,一是价格,二是容量,三是速度。最开始我的群晖nas上选择了两块6t和两块3t硬盘分别组raid1,光是硬盘价格就接近四千,而nas价格是三千出头。而换成自组的nas和二手硬盘,价格只要一半多点,还能拥有8盘位和万兆网络,价格便是最大的优势。而2t硬盘前面提到了,我认为这个容量还是比较适合阵列掉盘后重建的,成功率和速度都能预测得到,而有了盘位优势,容量便不是问题。至于速度,相比4盘位,8盘位优势理所当然是更大。而实际上,二手硬盘由于质量参差不齐,有一些盘用了很久依然坚挺,而有一些在使用两三个月内就会出现问题,导致其成了消耗品,而为了安全性,我把盘位一步步提高,曾试过12盘和16盘,做了更高级别的raid如raidz3和2*raidz2,而代价是性能不升反降,而且一个大问题暴露出来了,这些硬盘本来功耗就不小,而我使用的环境没有机房那样的稳定温度,导致硬盘发热严重,而且电费也猛然飙升,最终只能下决定放弃,也意识到这个方案在我目前情况下不可行。在测试结束后,我意识到这次测试并不太严谨,首先我只测试了写入速度没有测试读取速度,原因是没有找到合适的测试方法,在某些测试中,会因为缓存原因导致测出的速度发生明显错误,而我测试的数据也没有与其他人对比过,实际这个速度是否合格纯粹是我个人的主观判断。并且,在创建文件系统时,我并没有注意到有block的参数,而在后来发现这个参数也许会影响到结果。最后一个大问题是,在测试前后我都对硬盘进行过坏道测试,结果发现sdh盘,也就是那块型号不同的,实际上是同型号的HP贴标盘,在测试后出现了三个连续坏道,而由于第二次坏道测试是在我转让硬盘前做最后测试时发现的,不确定坏道是否在此过程中出现,所以这次的测试,只能以极其不严谨的标志定义,在将来我有机会再次测试时,定要以严谨为首要,以弥补这次的遗憾。欢迎分享,转载请注明来源:夏雨云
评论列表(0条)