⑴ 八盘位NAS上几个硬盘能达到万兆
1、主板:超微X10DRL-i
2、CPU:E5 2650L v3*2
2、内存:4*8g DDR4 REG ECC(SK Hynix HMA41GR7MFR8N-TF)
4*16g DDR4 REG ECC(Samsung M393A2G40DB0-CPB)
3、阵列卡:LSI 9208-8i IT模式(共有两块,只使用了一块)
4、硬盘:8*日立HUS72302CLAR2000
5、电源:长城巨龙EPS1000DA
6、机箱:TT W200(对硬盘散热使用了7把12cm风扇保证散热)
软件平台:
系统:Ubuntu Server 20.04.1 LTS
zfs阵列使用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_0
yes | mkfs.ext4 -F /dev/md1
yes | mount -t ext4 /dev/md1 /pool_0
清理阵列:
mdadm --stop /dev/md1
mdadm --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_0
sgdisk --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 = 4k
4k速度领先的仍然是raid0,zfs的各个阵列排在中间,最低的则变成了4盘组的raid10,速度甚至低于单盘速度,可谓惨不忍睹,而我常用的raid5速度在350左右,只有不到2倍提升。
阵列测速 block size = 8k
8k速度比较有意思,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贴标盘,在测试后出现了三个连续坏道,而由于第二次坏道测试是在我转让硬盘前做最后测试时发现的,不确定坏道是否在此过程中出现,所以这次的测试,只能以极其不严谨的标志定义,在将来我有机会再次测试时,定要以严谨为首要,以弥补这次的遗憾。
⑵ 硬盘阵列模式RAID 0,RAID 1,RAID 5,RAID 10是什么意思
RAID是磁盘冗余阵列简称磁盘阵列,具体区别如下:
RAID 0:
最少需要两块磁盘;数据条带式分布;没有冗余,性能最佳(不存储镜像、校验信息);不能应用于对数据安全性要求高的场合。
RAID 1:
最少需要两块磁盘;提供数据块冗余;性能好。
RAID 5:
最少需要三块磁盘;数据条带形式分布;以奇偶校验作冗余;适合多读少写的情景,是性能与数据冗余最佳的折中方案。、
RAID 10(又叫RAID 1+0):
最少需要四块磁盘;先按RAID 0分成两组,再分别对两组按RAID 1方式镜像;兼顾冗余(提供镜像存储)和性能(数据条带形分布);在实际应用中较为常用。
(2)硬盘it模式扩展阅读
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
⑶ 直通卡和阵列卡的区别
阵列卡就是英语中的raid卡,直通卡就是HBA卡,HBA卡有两种模式,IT模式和IR模式,IR模式的直通卡不是硬阵列卡!别拿IR模式的直通卡说是硬阵列卡!这是张冠李戴了。 HBA卡就是一个通道卡,它的作用是让计算机能够对磁盘进行存取操作,一般都是针对sas硬盘的,可以看成是sas控制器,类似南桥的SATA控制器。但是HBA卡的HBA芯片也是有CPU的,也分为IT模式和IR模式,IT模式下所连接的磁盘对系统是透明的,由系统直接识别和管理,而IR模式下磁盘由HBA控制器控制然后模拟磁盘给系统使用,虽然类似阵列卡(和南桥的raid模式是一个道理),但是不能说是硬阵列卡。IR模式下的HBA卡可以组建raid0,raid1甚至raid5,但是raid5的写入性能还不如单个硬盘,我一直觉得IR模式的HBA卡就是废物,基本找不到什么用途会特别需要这种卡。后来想想应该是厂商拿来骗钱的。 硬阵列卡其实可以看做一个微型计算机系统,阵列卡通过一个ROC(raid-on-chip)芯片来完成对存储设备的管理,并按需模拟磁盘给计算机使用,存储设备本身对操作系统不透明,由阵列卡管理。ROC芯片中有通用CPU,一般是mips,powerpc或者arm架构,用来通用计算,还有内存控制器为这个CPU提供内存,还有xor引擎,专门用来加速raid5,raid6等等。 简单的识别方式就是没有内存颗粒作为阵列卡缓存的就是HBA卡或者说直通卡,而有内存颗粒作为阵列卡缓存的就是硬阵列卡,做raid5或者raid6速度是有保障的。IR模式的直通卡,即使做raid5,也是聋子的耳朵-摆设,毫无实用价值。