硬盘柜(Disk Enclosure)
硬盘柜(Disk Enclosure)可以组织多块硬盘。主要包含以下几个部分:
- 冗余的电源(Power Supply)
- 冗余的风扇(FAN)
- 冗余的链路控制块(Link Control Card,LCC)
- 一个背板(Midplane),用来插硬盘
由于只有背板是只有一个的,别的是冗余的,所以背板容易有单点故障问题,为了减少背板故障概率,一般使用无源背板。
嵌入式系统中的背板是用于连接和支持各种插件模块的基础板:
- 无源背板:不包含任何主动元件(如集成电路或者晶体管),只用作连接和支持插件模块,提供机械支撑和信号传输功能,不涉及信号处理和电源管理,只提供物理连接
- 有源背板:集成了一些主动元件,如电源管理IC、信号处理器、中继器等。可以额外提供信号放大、电源管理、数据处理能力
BASIC模式
最基础的模式,每个硬盘独立,互不相干。以后加了盘可以升级成RAID1或者RAID5。
JBOD (Just a Bundle Of Disks) 模式
简单磁盘捆绑,或者叫磁盘簇。将一堆磁盘串联在一起,组成逻辑上的一个大的磁盘,所以容量就是所有磁盘容量加起来。
优点:
- 简单
- 扩展了容量
缺点:
- 加了FS使用的时候,一个盘写满了顺延写下一张盘,所以前一张盘是满的,满盘负担很大,普通磁盘85%左右就要考虑加盘了,否则影响性能
- 不具备任何ECC/CRC数据校验,没有机制保证数据安全
- 没有提升读写性能
- 由于OS会把分区表放在盘首,所以就是在第一块硬盘上,这个盘如果坏了分区表就没了,整个JBOD无法读取
RAID (Redundant Array of Independent Disks) 模式
独立冗余磁盘阵列,把多个独立的磁盘组合起来形成一个阵列组。
RAID的软硬实现
RAID数据的转换、计算过程,如果由CPU执行硬盘控制器的驱动程序代码完成,就是软RAID;如果由RAID卡上的主控芯片完成,就是硬RAID。
软RAID
由CPU来完成RAID的数据计算,比较常见的是Intel南桥或者AMD南桥所带的RAID功能,以及群晖等NAS系统提供的RAID功能。
软RAID的性能很依赖CPU能力和RAID算法的好坏,如:
- RAID0:需要数据拆分和合并
- RAID1:需要数据复制
- RAID5、RAID6:每次读写都需要XOR异或运算
优点:
- 灵活,如Intel VROC对于RAID0或者RAID1可以较好发挥NVME固态的性能
- 很多NAS系统不支持硬阵列卡
缺点:
- 更多的硬盘需要更多的CPU资源,不仅吃功耗还吃CPU
- 通用CPU进行这些计算的效率比较低(如面对大量XOR),如8盘6T的RAID5一旦坏一块盘,软RAID重建时间需要一周以上
硬RAID
有专用的计算引擎(如XOR运算),效率很高。如8盘6T的RAID5坏一块盘更换后重建时间大概12小时。
RAID0、RAID1、RAID5、RAID10
RAID0和RAID5你们会怎么选? - 网络工程师俱乐部的回答 - 知乎
SHR模式
群晖NAS的智能模式,1块盘时候就是BASIC,2块时候自动升级成RAID1,3块以上自动RAID5。