服务器硬件-RAID

CPU

RAID

RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。

RAID卡(阵列卡)

用独立的硬件板卡来实现RAID功能的办法,一块自带CPU的RAID卡俨然就是一个小型的计算机系统,有自己的CPU、内存、ROM、总线和IO接口,不过这个系统内的微型计算机专门用于处理RAID运算。
简单来讲就是RAID卡直接管理磁盘,并根据不同的RAID模式生成虚拟磁盘给计算机系统使用。

影响RAID卡的因素

影响 RAID 卡性能的因素很多,其中可调因素主要有 RAID 卡缓存( CACHE )大小、写策略( WRITE POLICY )、读策略( READ POLICY )、条带的大小( STRIPE SIZE )。

HBA卡(直通卡)

一般HBA就是给主机插上后,给主机扩展出更多的接口,来连接外部的设备。
通过简单的磁盘控制器就可以实现稳定高效并且是低成本的SAS和SATA连接服务器的解决方案,可以将磁盘直接传送至OS而无需经过RAID。
HBA卡让计算机系统直接管理磁盘而不是通过虚拟磁盘管理。

使用HBA卡的原因

  1. 高性能传输:HBA卡是一种特殊的硬件,用于在服务器和存储设备之间传输数据。它采用高速传输技术,例如光纤通道(Fibre Channel)或者InfiniBand,能够实现高带宽和低延迟的数据传输。这对于处理大量数据的服务器应用非常重要。
  2. 存储扩展性:HBA卡提供了与存储设备的物理连接,通过可靠的存储网络连接可以实现服务器和外部存储设备的连接。这使得存储系统能够扩展到更大的规模,满足不断增长的存储需求。
  3. 数据保护和冗余:HBA卡通常支持RAID功能,可以在服务器和存储设备之间实现数据冗余和数据保护。通过在多个硬盘之间复制和备份数据,可以防止数据丢失和硬件故障。
  4. 硬件兼容性和稳定性:HBA卡是经过验证和认证的硬件组件,在服务器和存储设备之间提供稳定和可靠的连接。它们通常是与服务器供应商和存储设备供应商合作开发的,并且针对特定的硬件和操作系统进行了优化。
  5. 管理和监控功能:HBA卡通常提供管理和监控功能,可以监控和管理存储系统的性能和健康状态。这使得管理员能够及时发现和解决潜在的问题,并优化系统性能。

FC_HBA卡

FC HBA,即Fibre Channel Host Bus Adapter,光纤通道主机适配器,简称光纤适配器。在FC网络环境中,主机需要和FC网络、FC存储设备(SAN磁盘阵列)连接时需要使用一种接口卡,就如同连接以太网需要以太网卡一样,这种接口卡就叫做FC HBA,简称FC HBA卡。

RAID mode

ACHI

AHCI本质是一种PCI类设备,在系统内存总线和串行ATA设备内部逻辑之间扮演一种通用接口的角色(即它在不同的操作系统和硬件中是通用的)。
AHCI 是** SATA 单盘**用的“高级驱动模式”,能让一块盘发挥 NCQ、热插拔等完整功能.
优点:
1.ACHI支持NCQ技术
2.读写速度更快
3.支持热插拔
(PCI是一种计算机总线标准,现在已逐渐被PCIE取代)
补充:
NCQ是一种新的硬盘技术,简单来说开启它之后从一个程序跳到另一个程序时速度会更快,要实现它首先就要在BIOS里选择AHCI模式,然后在装系统时安装相应的驱动(一般在主板驱动盘里有),安装好系统之后基本上就可以实现了 。

JBOD

JBOD(Just Bundle Of Disks)译成中文可以是“简单磁盘捆绑”,通常又称为Span。
JBOD不是标准的RAID级别,它只是在近几年才被一些厂家提出,并被广泛采用。Span是在逻辑上把几个物理磁盘一个接一个串联到一起,从而提供一个大的逻辑磁盘。Span上的数据简单的从第一个磁盘开始存储,当第一个磁盘的存储空间用完后,再依次从后面的磁盘开始存储数据。其存取性能完全等同于对单一磁盘的存取操作。Span也不提供数据安全保障。它只是提供一种简单利用磁盘空间的方法,Span的存储容量等于组成Span的所有磁盘的容量的总和。
区别:
JBOD和RAID相比,JBOD并没有提高磁盘的读写性能,JBOD无论磁盘数量有多少,其读写性能仅有一块磁盘的读写性能。而RAID 0则随着磁盘的数量越多,其读写性能越强

RAID 0

又称条带卷,是所有RAID中存储能力最强的RAID模式。
实现:
在多个磁盘上分散存取连续的数据,当需要读写时多个磁盘可以并排执行,提高读写速度。
优点:
读写能力提升,最少2块磁盘及以上,生产环境中虽然已经可以一块磁盘单独做一个RAID 0,但其本质并没有提升读写性能,究其原因还是一块磁盘。磁盘利用率100%。
缺点:
无容错能力,RAID 0磁盘阵列中只要有一块磁盘损坏,就意味着数据丢失。因此需要运维工程师做好备份。

RAID 1

又称镜像盘,把一个磁盘的数据镜像到另一个磁盘上,采用镜像容错来提高可靠性,具有raid中最高的数据冗余能力。
实现:
存数据时会将数据同时写入镜像盘内,读取数据则只从工作盘读出。
发生故障时,系统将从镜像盘读取数据,然后再恢复工作盘正确数据。这种阵列方式可靠性极高,但是其容量会减去一半。
优点:
有冗余能力,读性能提升。
缺点:
磁盘利用率只有50%,写性能下降。

RAID 5

实现:
三个磁盘以上。Raid5可以看成是Raid0+1的低成本方案。采用循环偶校验独立存取的阵列方式。将数据和相对应的奇偶校验信息分布存储到组成RAID5的各个磁盘上。当其中一个磁盘数据发生损坏后,利用剩下的磁盘和相应的奇偶校验信息 重新恢复/生成丢失的数据而不影响数据的可用性。磁盘利用率(n-1)/n。
优点:
以上优点,raid5兼顾。任意N-1快硬盘都有完整的数据。
缺点:
只允许单盘故障,一盘出现故障得尽快处理。有盘坏情况下,raid5 IO/CPU性能狂跌,此时性能烂到无以复加。
补充:
盘不多,且对数据安全性和性能提示都有要求的场景,raid5是个不错选择,鉴于出问题的性能,盘多可考虑riad10。
raid5可恢复数据的原理:
XOR校验计算的可逆性.

RAID 6

实现:
RAID 6和RAID 5在存储机制上是类似的,只不过校验信息相比RAID 5要多存储一份,磁盘利用率是(n-2)/n。
优点:
提升读写性能,可用性比RAID 5更强,允许最多2快磁盘损坏。
缺点:
校验信息要多存储一份。磁盘的利用率要比RAID 5方案低。
适用场景:
至少需要四块磁盘,允许两块盘出错,读写性能提升,磁盘利用率(n-2)/n。

RAID 10

实现:
先将多个盘分组做RAID1,再对多个组做RAID0。磁盘利用率50%。
优点:
兼顾安全性和速度。基础4盘的情况下,raid10允许对柜盘2块故障,随着硬盘数量的提示,容错量也会相对应提升。这是raid5无法做到的。
缺点:
对盘的数量要求稍高,磁盘使用率为一半。
建议:
硬盘数量足够的情况,建议riad10.不过raid最重要的指标是可靠性:4盘的raid5,只允许单盘故障,raid10,允许对柜盘2块g故障,可靠性高于raid5,且raid10 可随盘上升提高容错,raid就不行,而且IO和CPU的额外开销还涂增,从可靠性和冗余角度,达到同样的可靠性,raid10写能力高于raid5.
特殊情况下:
有坏盘,无热备radi5 CPU和IO性能狂跌。因为数据不完整,在某特殊软件下,实现即时重构数据进驻内存,保障业务运行,但此生raid5的性能已经烂到无以复加。raid10 是条带化+镜像,坏盘影响读性能,不影响写性能,而且无需重构。此时的raid10完爆raid5。

RAID 60

多块磁盘先实现RAID 5,再组合成RAID 0。磁盘利用率50%。