据初步分析,红帽ovirt超融合目前的架构应该是要和raid卡配合用才能达到理想的效果。ovirt超融合支持raid卡的JBOD(直通模式)、raid5、raid6、raid10模式,针对每一种模式ovirt在gluster这个层面做了性能优化(具体细节还不得知),这也是为什么ovirt超融合部署时要正确的选择对应硬件raid卡配置的模式。
ovirt超融合支持全SSD、全HDD、HDD+SSD缓存这三种存储配置模式,用raid卡将所有磁盘组成一个盘暴露给gluster创建成存储卷进行管理,当然也可以建多个raid实现三种模式的共存,原版默认情况下是只能启用其中一种(我们先遵循这种方式),ovirt中是在一个盘上创建多个存储卷。
ovirt超融合的思路应该是尽可能用raid卡去管理磁盘、用gluster去管理节点,raid卡负责本机节点上的磁盘层面上的高可用,gluster利用副本负责集群中本节点的高可用,如此一来就简单多了:
1、我们重点关心节点而不是每个磁盘,降低管理磁盘的复杂度,扩容盘、替换盘这些让raid卡去干(要求raid卡要支持在线扩容,即使raid卡支持扩容还需要ovirt做对应的工作,目前是不支持的);
2、不再为磁盘个数纠结,只需要能够满足做raid的数量要求即可(当然要兼顾性能需求),盘数灵活;
3、数据盘可以是单块直通、做raid0或多块做raid5、6、10,系统盘可以是单块直通、做raid0或用两块做raid1,缓存盘可以是单块直通、做raid0或两块做raid1,根据这种情况我们制定几个推荐配置即可,比如安全要求高的就系统盘、缓存盘都做raid1,普通测试场景就可以单盘不做raid(不带raid卡的机器也可以用);
4、ovirt超融合gluster虽然是三副本,但有一个副本是起仲裁作用,几乎不占空间,所以在空间占用上是相当于两副本(另外现在支持压缩去重功能,存储空间的问题能够得到改善);
5、目前我们还是要先按官方推荐,3节点起步,3节点扩展;
6、关于磁盘状态监测我们通过raid卡的接口来做,没有raid卡则不支持此功能。
总体来说就是磁盘管理交给raid卡,gluster集群负责节点的高可用。
关于raid卡和JBOD:
有多种解释和理解,我总结了下:
1、JBOD类似于raid0,可以将多块盘组成一个,但是是顺序写入(一块盘写满写另一块),而不是raid0的分布式写入,所以性能上不如raid0;
2、某些raid卡中,JBOD就代表直通模式,可以每块磁盘都配成JBOD直通使用,也可以多块磁盘配成一个大盘直通使用。lsi的卡是这样,但有些oem它的厂商写的是non-raid,例如dell服务器。non-raid也代表直通模式。一般JBOD和其它raid模式不能同时用。
3、某些raid卡中,hba模式就是直通模式,adaptec的卡是这样,oem它的厂商例如dell也是这样叫的,另外adaptec有的卡是支持raid和hba直通同时用的。
4、raid卡厂商主要有lsi和Adaptec(被pmc收购了)两家,大部分服务器厂家都是oem它们的卡或用的它们的芯片,包括超微和浪潮。
你提的问题,不具体。。没有告知牌子,型号。这样我法解答的。 我给你几款常见牌子的 *** 作步骤给你看看。
所有阵列卡,包括主板集成的,都会有单独的设置BIOS。但一定要先按卡的组合键,才能进入BIOS。开机的时候都会有提示的(一般一过主板信息,就会出现)
一、各牌子阵列卡进入BIOS设置,按键。
1、Promise:按Ctrl+F 进入卡的BIOS设置界面,进入第二项define Array 里面做阵列,选择好阵列模式与硬盘后,按Ctrl+Y保存设置。
2、Highpoint:按Ctrl+H进入卡的BIOS设置界面,先要选择最后一项Initialization,初始化硬盘,否则做阵列时,是认不到硬盘。然后再选择第一项Create 创建阵列。
3、SYBA:按Ctrl+S或F4 进入卡的BIOS界面,选择第一项Create Array做阵列。
4、LSI: 按Ctrl+M 进入Configuration RAID 选项,做阵列。
5、ADAPTEC: 按Ctrl+A进入设置选项,要先进第三项Initialization Disk,初始化硬盘,然后再返回主菜单,选择第一项Configuration Array 做阵列。
1、主板:超微X10DRL-i
2、CPU:E5 2650L v32
2、内存:48g DDR4 REG ECC(SK Hynix HMA41GR7MFR8N-TF)
416g DDR4 REG ECC(Samsung M393A2G40DB0-CPB)
3、阵列卡:LSI 9208-8i IT模式(共有两块,只使用了一块)
4、硬盘:8日立HUS72302CLAR2000
5、电源:长城巨龙EPS1000DA
6、机箱:TT W200(对硬盘散热使用了7把12cm风扇保证散热)
软件平台:
系统:Ubuntu Server 20041 LTS
zfs阵列使用OpenZFS on linux v204
其余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 | mkfsext4 -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,2z1,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的速度明显提升,尤其是raidz12和使用zfs创建的raid10,这两个都是我曾经选择过的方案(raid10使用了16盘)
阵列测速 block size = 1M
最终来到1M块大小的测试,这次变化比较大,速度最高的是8盘使用zfs创建的raid0,速度达到了1100+,而实际上,我测试12盘速度时,这种方式创建的阵列速度可以到达1300+,而其余成绩几乎没有什么出乎预料的地方,只有上面提到的zfs下raidz12和raid10的排名继续上升
总结
说一下我的感觉,在做这次测试之前我也预料到测试结果就是如此惨淡,因为平时我使用情况便是桌面机和服务器之间使用万兆网卡相连,通过smb共享文件,不过文件性能实在不是很满意,从桌面机的ssd拷贝文件到服务器上速度只有400出头,而且遇到大量零碎文件时响应相当慢,一直以来我便考虑是smb的问题还是磁盘性能就是这样,这个测试说出了答案。
测试中,速度最快的无疑是raid0,只不过应该不会有人选择,其余比较有价值的选择分别是raid5和2raid 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和2raidz2,而代价是性能不升反降,而且一个大问题暴露出来了,这些硬盘本来功耗就不小,而我使用的环境没有机房那样的稳定温度,导致硬盘发热严重,而且电费也猛然飙升,最终只能下决定放弃,也意识到这个方案在我目前情况下不可行。
在测试结束后,我意识到这次测试并不太严谨,首先我只测试了写入速度没有测试读取速度,原因是没有找到合适的测试方法,在某些测试中,会因为缓存原因导致测出的速度发生明显错误,而我测试的数据也没有与其他人对比过,实际这个速度是否合格纯粹是我个人的主观判断。并且,在创建文件系统时,我并没有注意到有block的参数,而在后来发现这个参数也许会影响到结果。最后一个大问题是,在测试前后我都对硬盘进行过坏道测试,结果发现sdh盘,也就是那块型号不同的,实际上是同型号的HP贴标盘,在测试后出现了三个连续坏道,而由于第二次坏道测试是在我转让硬盘前做最后测试时发现的,不确定坏道是否在此过程中出现,所以这次的测试,只能以极其不严谨的标志定义,在将来我有机会再次测试时,定要以严谨为首要,以弥补这次的遗憾。
以上就是关于oVirt超融合的设计分析(gluster和raid)全部的内容,包括:oVirt超融合的设计分析(gluster和raid)、阵列卡怎么设置要详细!、八盘位NAS上几个硬盘能达到万兆等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)