看360 看360看360

软 RAID 和硬 RAID 各有什么优劣?

以下是为大家精心整理的"软 RAID 和硬 RAID 各有什么优劣?"相关知识及问题的最佳答案:

软 RAID 和硬 RAID 各有什么优劣?

假设要写入的数据是{A1,A2,A3,……,A8},那么:

对于RAID1来说,需要做这样的转换: +--+--+--+--+--+--+--+--+ +-->|A1|A2|A3|A4|A5|A6|A7|A8| +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ |A1|A2|A3|A4|A5|A6|A7|A8|-->| Disk0 +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ RAID 1 +-->|A1|A2|A3|A4|A5|A6|A7|A8| +--+--+--+--+--+--+--+--+ Disk1对于四盘RAID0来说,需要做这样的转换: +--+--+ +-->|A1|A5| | +--+--+ | Disk0 | +--+--+ +-->|A2|A6| +--+--+--+--+--+--+--+--+ | +--+--+ |A1|A2|A3|A4|A5|A6|A7|A8|-->| Disk1 +--+--+--+--+--+--+--+--+ | +--+--+ RAID 0 +-->|A3|A7| | +--+--+ | Disk2 | +--+--+ +-->|A4|A8| +--+--+ Disk3对于四盘RAID10来说,需要做这样的转换: +--+--+--+--+ +-->|A1|A3|A5|A7| | +--+--+--+--+ | Disk0 | +--+--+--+--+ +-->|A1|A3|A5|A7| +--+--+--+--+--+--+--+--+ | +--+--+--+--+ |A1|A2|A3|A4|A5|A6|A7|A8|-->| Disk1| +--+--+--+--+--+--+--+--+ | +--+--+--+--+ RAID 10 +-->|A2|A4|A6|A8| | +--+--+--+--+ | Disk2 | +--+--+--+--+ +-->|A2|A4|A6|A8| +--+--+--+--+ Disk3对于四盘RAID5来说,需要做这样的转换(其中B7、B8、Q3需要先从硬盘读出,P1、P2、P3需要进行计算): +--+--+------+ +-->|A1|A4|B7->A7| | +--+--+------+ | Disk0 | +--+--+------+ +-->|A2|A5|Q3->P3| +--+--+--+--+--+--+--+--+ | +--+--+------+ |A1|A2|A3|A4|A5|A6|A7|A8|-- | Disk1(P3=B7 XOR A7 XOR B8 XOR A8 XOR Q3) +--+--+--+--+--+--+--+--+ | +--+--+------+ RAID 5 +-->|A3|P2|B8->A8| | +--+--+------+ | Disk2(P2=A4 XOR A5 XOR A6) | +--+--+ +-->|P1|A6| +--+--+ Disk3(P1=A1 XOR A2 XOR A3)

类似的,读取数据需要进行反向转换。

上述提到的这些转换、计算过程,如果由CPU执行硬盘控制器的驱动程序代码完成,就是软RAID;如果由RAID卡上的主控芯片完成,就是硬RAID。

有的服务器虽然没有RAID卡,但是主板板载RAID控制芯片完成上述转换,也是硬RAID。家用级主板,某些低端的扩展卡所提供的RAID功能,是由CPU执行驱动程序的相关代码实现上述转换,都是软RAID。

某些操作系统的文件系统/块设备驱动本身也可以实现类似功能,例如Windows动态磁盘实现的镜像卷/带区卷/RAID5卷以及存储空间、Linux的DM、BtrFS、BSD/Solaris的ZFS,与硬件无关,更自然都是软RAID了。

很显然,对于软RAID来说,这些操作需要占用一定的CPU资源,尤其是RAID5。但题主的情况对性能要求不高,这个可以忽略。

至于安全性和便利性方面,安全性方面,只要RAID级别相同,并没有太大区别。非要说区别的话,主要看RAID管理器是否提供校验/修复功能,是否支持自动定期校验/修复。

便利性方面,主要看RAID管理器提供的功能。例如是否可以动态扩展逻辑驱动器,动态升级RAID级别,或者增加SSD缓存加速读写性能等。如果软RAID是Intel芯片组提供的话,Intel的RST是支持这几个功能的。其它硬RAID或者软RAID方案,就要看具体的RAID管理器文档了。

需要提一下的是,从上述转换过程,很明显RAID5的写入操作很复杂。所以如果不开启写入缓存(例如RAID卡设置为WriteThrough模式),RAID5的写入性能会非常低下。如果开启回写缓存(RAID卡设置WriteBack模式),则一旦发生系统崩溃、电源故障等情况,可能会导致数据丢失,硬件RAID卡一般会有电池单元给缓存供电,系统重启/电源恢复的时候可以把缓存中未写入硬盘的数据写入硬盘。RAID6同理,不过题主只是做RAID1,这个可以忽略。


软 RAID 和硬 RAID 各有什么优劣?

假设要写入的数据是{A1,A2,A3,……,A8},那么:

对于RAID1来说,需要做这样的转换: +--+--+--+--+--+--+--+--+ +-->|A1|A2|A3|A4|A5|A6|A7|A8| +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ |A1|A2|A3|A4|A5|A6|A7|A8|-->| Disk0 +--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+ RAID 1 +-->|A1|A2|A3|A4|A5|A6|A7|A8| +--+--+--+--+--+--+--+--+ Disk1对于四盘RAID0来说,需要做这样的转换: +--+--+ +-->|A1|A5| | +--+--+ | Disk0 | +--+--+ +-->|A2|A6| +--+--+--+--+--+--+--+--+ | +--+--+ |A1|A2|A3|A4|A5|A6|A7|A8|-->| Disk1 +--+--+--+--+--+--+--+--+ | +--+--+ RAID 0 +-->|A3|A7| | +--+--+ | Disk2 | +--+--+ +-->|A4|A8| +--+--+ Disk3对于四盘RAID10来说,需要做这样的转换: +--+--+--+--+ +-->|A1|A3|A5|A7| | +--+--+--+--+ | Disk0 | +--+--+--+--+ +-->|A1|A3|A5|A7| +--+--+--+--+--+--+--+--+ | +--+--+--+--+ |A1|A2|A3|A4|A5|A6|A7|A8|-->| Disk1| +--+--+--+--+--+--+--+--+ | +--+--+--+--+ RAID 10 +-->|A2|A4|A6|A8| | +--+--+--+--+ | Disk2 | +--+--+--+--+ +-->|A2|A4|A6|A8| +--+--+--+--+ Disk3对于四盘RAID5来说,需要做这样的转换(其中B7、B8、Q3需要先从硬盘读出,P1、P2、P3需要进行计算): +--+--+------+ +-->|A1|A4|B7->A7| | +--+--+------+ | Disk0 | +--+--+------+ +-->|A2|A5|Q3->P3| +--+--+--+--+--+--+--+--+ | +--+--+------+ |A1|A2|A3|A4|A5|A6|A7|A8|-- | Disk1(P3=B7 XOR A7 XOR B8 XOR A8 XOR Q3) +--+--+--+--+--+--+--+--+ | +--+--+------+ RAID 5 +-->|A3|P2|B8->A8| | +--+--+------+ | Disk2(P2=A4 XOR A5 XOR A6) | +--+--+ +-->|P1|A6| +--+--+ Disk3(P1=A1 XOR A2 XOR A3)

类似的,读取数据需要进行反向转换。

上述提到的这些转换、计算过程,如果由CPU执行硬盘控制器的驱动程序代码完成,就是软RAID;如果由RAID卡上的主控芯片完成,就是硬RAID。

有的服务器虽然没有RAID卡,但是主板板载RAID控制芯片完成上述转换,也是硬RAID。家用级主板,某些低端的扩展卡所提供的RAID功能,是由CPU执行驱动程序的相关代码实现上述转换,都是软RAID。

某些操作系统的文件系统/块设备驱动本身也可以实现类似功能,例如Windows动态磁盘实现的镜像卷/带区卷/RAID5卷以及存储空间、Linux的DM、BtrFS、BSD/Solaris的ZFS,与硬件无关,更自然都是软RAID了。

很显然,对于软RAID来说,这些操作需要占用一定的CPU资源,尤其是RAID5。但题主的情况对性能要求不高,这个可以忽略。

至于安全性和便利性方面,安全性方面,只要RAID级别相同,并没有太大区别。非要说区别的话,主要看RAID管理器是否提供校验/修复功能,是否支持自动定期校验/修复。

便利性方面,主要看RAID管理器提供的功能。例如是否可以动态扩展逻辑驱动器,动态升级RAID级别,或者增加SSD缓存加速读写性能等。如果软RAID是Intel芯片组提供的话,Intel的RST是支持这几个功能的。其它硬RAID或者软RAID方案,就要看具体的RAID管理器文档了。

需要提一下的是,从上述转换过程,很明显RAID5的写入操作很复杂。所以如果不开启写入缓存(例如RAID卡设置为WriteThrough模式),RAID5的写入性能会非常低下。如果开启回写缓存(RAID卡设置WriteBack模式),则一旦发生系统崩溃、电源故障等情况,可能会导致数据丢失,硬件RAID卡一般会有电池单元给缓存供电,系统重启/电源恢复的时候可以把缓存中未写入硬盘的数据写入硬盘。RAID6同理,不过题主只是做RAID1,这个可以忽略。


软 RAID 和硬 RAID 各有什么优劣?

不太同意楼上大部分的回答,

OS崩溃,嵌入式系统就不叫OS?当然lsi 很多都是Power的CPU,有CPU就得有系统。FPGA也一样。单细胞动物就不是动物?病毒就不是生物?

OS崩溃,Raid就Over,请问是否Raid卡挂了,你整个Raid就Over? 那太不稳定了吧?Raid信息既然有保护的作用,由此可得,信息存储应该是存储在硬盘上。

Raid 1+0 软硬raid 差别不大,甚至硬raid控制器的吞吐量不如x86的系统,从而吞吐量会比不上软Raid。

Raid 5,6则是硬raid完胜。why?

(当然这个前提不包括Solaris ZFS文件系统,以及使用Linux 3.09之后的内核的相关系统)

简单通过Raid5来进行比较。Raid 5基本原理是异或运算来实现。

XOR (0, 1) = 1

XOR (1, 0) = 1

XOR (0, 0) = 0

XOR (1, 1) = 0

硬盘1 硬盘2 硬盘3

| 101 | 010 | 011 |

XOR (101, 010, 011) = 100

过程如下:

XOR (101,010) = 111 , XOR (111, 011) = 100

校验盘P

| 101 | 010 | 011 | 100 |

| 101 | 挂了 | 011 | 100 |

还原010

XOR (101, 011, 100) = 010

当然实际过程比这个要复杂的多的多。

Raid 5读写数据流程是,读写也是基于Raid stripe size, 相当于是一个数据快是Raid最小基础单元。像人体细胞一样。

Raid5 写一份数据,需要下列操作,普通硬盘只要1次写操作。

控制器读取旧的数据块,

读取旧的校验块。

并和新计算出来的进行比对,如果有修改,则要改写旧块为新块(数据快和校验块)。

如果只是同等内容修改,没有用到新的块。就到此为止了。

简单的例子是,我新建一个文本文档,只有一个字符A,没有空格,空行,tab。我修改A为B,然后保存,文件大小是不变的。如果我把A改成两个字母“AB”,再保存。相当于申请新的空间来保存另外一个字符B。(此例子只能用来理解,不能代表100%Raid控制器和文件系统是这样存储数据)

如果有追加的数据

则还要写入新的数据块和新的校验块。这一段参考wiki,但是它没有写出追加和修改的区别,我这里写出来了。

所谓硬件Raid控制器也是一套私有系统,自己的CPU,内存,以及存储数据的单元。只是很小,根据LSI的文档,同一代高中低端的芯片也是这样划分的。根据CPU,内存频率,当然也有软件算法升级和以及某些功能license。其实和intel,nvidia没啥区别。

注意cache的速度比硬盘快很多。100倍或更多。当然和硬件有关。

硬件raid控制器优势,有电池或者SLC的SSD来对cache进行保护。(不清楚有没有无良厂商使用MLC的),相当于给你的台式机内存加装电池,或者类似win7的关机休眠功能,关机后,内存仍可以得到供电。重新开机后,打开的程序都还在。所以有了电池或者SSD作为cahce,所以硬件raid控制器可以把上述Raid5频繁读写操作往cache里面塞,主要针对读写量不连续磁盘块的写操作和以及校验操作,如果够大的话,会预读一部分校验数据到缓存里面。顺序读写磁盘速度是可以接受的(相对来说,极少磁盘额外寻道时间)。所以,我写10次校验数据不连续的写操作,可能都是写到带电池的高速缓存中,同样连续的写操作,cache会保存校验数据,但是个人觉得连续写操作不经过cache效率会更高。

同样,软raid,控制调度是OS内核,Xeon E5 E7怎么都比Power 800要牛B的多吧,注意注意,高速cache不是内存哦。因为你的服务器内存木有电池哦,所以软Raid则会使用同步IO操作(带fsync, O_SYNC标志的操作)。结果就是相当于没有内存,因为每次要等磁盘确认响应,相当于你把你的硬Raid控制器调整为write through模式。相当于你的Raid没有那块高速cache。

于是,校验写一次,虽然经过内存,但是kernel要求要求软raid驱动给一个数据写入的确认,软raid驱动会把这个请求仍给硬盘,要求我(软raid驱动)刚才写入1,2,3,4号盘的数据是不是都写入了。如果写入了给一个确认。它会等到最后才执行完的那块硬盘给出确认后,再回复kernel,啊,数据写完了。

废话这么多,硬件raid可以在高速缓存中合并非连续写和校验写为连续的写操作。

软件raid则要确认每一次数据和校验写是否都写入到磁盘上去了,还要额外附加一些读操作,7200或者15000的磁头要转啊转,延时啊。

所以软Raid用来做Raid 1+0 或者Raid 1是和硬件Raid没有太多区别,可能性能会更好。

但是用来做有校验的Raid 4,5,6. 则会导致写性能瓶颈。

当然如果你做Raid4,校验盘用一块同容量SSD来替代,也是不错的。哈哈。

在来一个例子理解,比如软raid要出差,目前在帝都北京,但是明天要去武汉,后天又要回北京,最后还要去深圳,去完了还要返回北京,客户都约好了,不能改时间。

但是硬raid比较灵活,提前和客户排好了班,先去深圳,再去武汉,最后回北京。

虽然OS自己有自己的IO调度队列,但是被fsync,O_SYNC这种同步IO标志限制了,没办法必须写到此盘,因为没有带电池的内存。(不带电存储的高速cache)

但是Linux 3.09之后,情况不是这样了,3.09引入dm-cache,3.10引入bcache

简单而言,就是可以使用一个block device块设备,作为另一个块设备的write back cache。

也就是说,我用一块高速SSD + 若干的硬盘做软raid,也有高速写cache了。

硬件raid慢慢要失去优势了。后续我也看好btrfs加入raid5,6的支持,当然在没有raid7,8出现的情况下。

之前还提到了Sun的存储,Sun有一个系列Sun ZFS Storage

为什么Sun的SAN存储都是软Raid + SSD,就可以实现和硬Raid匹敌的速度呢?

因为ZFS里面或者说Solaris内核里面,早就实现了linux 3.10的bcache的功能。

所以SUN真是先驱者。确认了用更廉价的硬件是可以搭建出和硬件raid匹敌的硬件。

本人非硬件驱动,电子电路工程师,少部分只是看程序YY的答案,回答难免有误。

欢迎大婶指正。


软 RAID 和硬 RAID 各有什么优劣?

不太同意楼上大部分的回答,

OS崩溃,嵌入式系统就不叫OS?当然lsi 很多都是Power的CPU,有CPU就得有系统。FPGA也一样。单细胞动物就不是动物?病毒就不是生物?

OS崩溃,Raid就Over,请问是否Raid卡挂了,你整个Raid就Over? 那太不稳定了吧?Raid信息既然有保护的作用,由此可得,信息存储应该是存储在硬盘上。

Raid 1+0 软硬raid 差别不大,甚至硬raid控制器的吞吐量不如x86的系统,从而吞吐量会比不上软Raid。

Raid 5,6则是硬raid完胜。why?

(当然这个前提不包括Solaris ZFS文件系统,以及使用Linux 3.09之后的内核的相关系统)

简单通过Raid5来进行比较。Raid 5基本原理是异或运算来实现。

XOR (0, 1) = 1

XOR (1, 0) = 1

XOR (0, 0) = 0

XOR (1, 1) = 0

硬盘1 硬盘2 硬盘3

| 101 | 010 | 011 |

XOR (101, 010, 011) = 100

过程如下:

XOR (101,010) = 111 , XOR (111, 011) = 100

校验盘P

| 101 | 010 | 011 | 100 |

| 101 | 挂了 | 011 | 100 |

还原010

XOR (101, 011, 100) = 010

当然实际过程比这个要复杂的多的多。

Raid 5读写数据流程是,读写也是基于Raid stripe size, 相当于是一个数据快是Raid最小基础单元。像人体细胞一样。

Raid5 写一份数据,需要下列操作,普通硬盘只要1次写操作。

控制器读取旧的数据块,

读取旧的校验块。

并和新计算出来的进行比对,如果有修改,则要改写旧块为新块(数据快和校验块)。

如果只是同等内容修改,没有用到新的块。就到此为止了。

简单的例子是,我新建一个文本文档,只有一个字符A,没有空格,空行,tab。我修改A为B,然后保存,文件大小是不变的。如果我把A改成两个字母“AB”,再保存。相当于申请新的空间来保存另外一个字符B。(此例子只能用来理解,不能代表100%Raid控制器和文件系统是这样存储数据)

如果有追加的数据

则还要写入新的数据块和新的校验块。这一段参考wiki,但是它没有写出追加和修改的区别,我这里写出来了。

所谓硬件Raid控制器也是一套私有系统,自己的CPU,内存,以及存储数据的单元。只是很小,根据LSI的文档,同一代高中低端的芯片也是这样划分的。根据CPU,内存频率,当然也有软件算法升级和以及某些功能license。其实和intel,nvidia没啥区别。

注意cache的速度比硬盘快很多。100倍或更多。当然和硬件有关。

硬件raid控制器优势,有电池或者SLC的SSD来对cache进行保护。(不清楚有没有无良厂商使用MLC的),相当于给你的台式机内存加装电池,或者类似win7的关机休眠功能,关机后,内存仍可以得到供电。重新开机后,打开的程序都还在。所以有了电池或者SSD作为cahce,所以硬件raid控制器可以把上述Raid5频繁读写操作往cache里面塞,主要针对读写量不连续磁盘块的写操作和以及校验操作,如果够大的话,会预读一部分校验数据到缓存里面。顺序读写磁盘速度是可以接受的(相对来说,极少磁盘额外寻道时间)。所以,我写10次校验数据不连续的写操作,可能都是写到带电池的高速缓存中,同样连续的写操作,cache会保存校验数据,但是个人觉得连续写操作不经过cache效率会更高。

同样,软raid,控制调度是OS内核,Xeon E5 E7怎么都比Power 800要牛B的多吧,注意注意,高速cache不是内存哦。因为你的服务器内存木有电池哦,所以软Raid则会使用同步IO操作(带fsync, O_SYNC标志的操作)。结果就是相当于没有内存,因为每次要等磁盘确认响应,相当于你把你的硬Raid控制器调整为write through模式。相当于你的Raid没有那块高速cache。

于是,校验写一次,虽然经过内存,但是kernel要求要求软raid驱动给一个数据写入的确认,软raid驱动会把这个请求仍给硬盘,要求我(软raid驱动)刚才写入1,2,3,4号盘的数据是不是都写入了。如果写入了给一个确认。它会等到最后才执行完的那块硬盘给出确认后,再回复kernel,啊,数据写完了。

废话这么多,硬件raid可以在高速缓存中合并非连续写和校验写为连续的写操作。

软件raid则要确认每一次数据和校验写是否都写入到磁盘上去了,还要额外附加一些读操作,7200或者15000的磁头要转啊转,延时啊。

所以软Raid用来做Raid 1+0 或者Raid 1是和硬件Raid没有太多区别,可能性能会更好。

但是用来做有校验的Raid 4,5,6. 则会导致写性能瓶颈。

当然如果你做Raid4,校验盘用一块同容量SSD来替代,也是不错的。哈哈。

在来一个例子理解,比如软raid要出差,目前在帝都北京,但是明天要去武汉,后天又要回北京,最后还要去深圳,去完了还要返回北京,客户都约好了,不能改时间。

但是硬raid比较灵活,提前和客户排好了班,先去深圳,再去武汉,最后回北京。

虽然OS自己有自己的IO调度队列,但是被fsync,O_SYNC这种同步IO标志限制了,没办法必须写到此盘,因为没有带电池的内存。(不带电存储的高速cache)

但是Linux 3.09之后,情况不是这样了,3.09引入dm-cache,3.10引入bcache

简单而言,就是可以使用一个block device块设备,作为另一个块设备的write back cache。

也就是说,我用一块高速SSD + 若干的硬盘做软raid,也有高速写cache了。

硬件raid慢慢要失去优势了。后续我也看好btrfs加入raid5,6的支持,当然在没有raid7,8出现的情况下。

之前还提到了Sun的存储,Sun有一个系列Sun ZFS Storage

为什么Sun的SAN存储都是软Raid + SSD,就可以实现和硬Raid匹敌的速度呢?

因为ZFS里面或者说Solaris内核里面,早就实现了linux 3.10的bcache的功能。

所以SUN真是先驱者。确认了用更廉价的硬件是可以搭建出和硬件raid匹敌的硬件。

本人非硬件驱动,电子电路工程师,少部分只是看程序YY的答案,回答难免有误。

欢迎大婶指正。


软 RAID 和硬 RAID 各有什么优劣?

建议你使用软RAID。

现在的硬件跑软件RAID 1/0/1+0基本都没问题。

不要认为你芯片组自带的RAID功能就是“硬RAID”。因为实质上,芯片组提供的RAID功能需要靠CPU进行计算,和操作系统的软RAID相同,都是软RAID。

真正的硬RAID是有专门的处理器处理信息的。

你这需求直接上软RAID就行,至于RAID信息,无论是硬RAID还是软RAID都是存放在硬盘头几个扇区的。根本就不存在“重装系统后所有资料消失”的情况。

PS:如果你要上RAID5等RAID类型,强烈建议你用硬RAID,毕竟硬RAID的RAID卡具有自己的处理器(计算校验值时不会占用主机CPU资源),还有缓存,写入速度不至于太难看。

PSS:软RAID可以使用INTEL RST提供的(BIOS中设置),也可以用Windows的动态磁盘/存储空间,OS X磁盘工具中提供的软RAID,(Linux没玩过,不清楚)。


软 RAID 和硬 RAID 各有什么优劣?

建议你使用软RAID。

现在的硬件跑软件RAID 1/0/1+0基本都没问题。

不要认为你芯片组自带的RAID功能就是“硬RAID”。因为实质上,芯片组提供的RAID功能需要靠CPU进行计算,和操作系统的软RAID相同,都是软RAID。

真正的硬RAID是有专门的处理器处理信息的。

你这需求直接上软RAID就行,至于RAID信息,无论是硬RAID还是软RAID都是存放在硬盘头几个扇区的。根本就不存在“重装系统后所有资料消失”的情况。

PS:如果你要上RAID5等RAID类型,强烈建议你用硬RAID,毕竟硬RAID的RAID卡具有自己的处理器(计算校验值时不会占用主机CPU资源),还有缓存,写入速度不至于太难看。

PSS:软RAID可以使用INTEL RST提供的(BIOS中设置),也可以用Windows的动态磁盘/存储空间,OS X磁盘工具中提供的软RAID,(Linux没玩过,不清楚)。


软 RAID 和硬 RAID 各有什么优劣?

简单的盘的 RAID, 比如 0/1/10 或者 JBOL 走 md/LVM 的软问题是不大的.

但是复杂的 RAID, 比如双 U.2, 或者一堆 SAS 盘走 5/6/50/60, 基本需要硬 RAID.

硬RAID 的好处是

不吃 CPU 资源

配合电池的情况下对于 DRAM Cache 有着更强的控制和掉电保护能力

控制的粒度更高

优秀的固件对于健康监控, 计划任务(扩容, 备份替换)等工作更加方便

主板的 RAID 其实也算是硬 RAID, 但是功能相比专用 RAID 卡会比较有限.

以及越新的芯片组的 RAID 更加完善. 早年主板 RAID 因为南桥发热和散热的关系, 很容易造成控制器崩溃.


软 RAID 和硬 RAID 各有什么优劣?

简单的盘的 RAID, 比如 0/1/10 或者 JBOL 走 md/LVM 的软问题是不大的.

但是复杂的 RAID, 比如双 U.2, 或者一堆 SAS 盘走 5/6/50/60, 基本需要硬 RAID.

硬RAID 的好处是

不吃 CPU 资源

配合电池的情况下对于 DRAM Cache 有着更强的控制和掉电保护能力

控制的粒度更高

优秀的固件对于健康监控, 计划任务(扩容, 备份替换)等工作更加方便

主板的 RAID 其实也算是硬 RAID, 但是功能相比专用 RAID 卡会比较有限.

以及越新的芯片组的 RAID 更加完善. 早年主板 RAID 因为南桥发热和散热的关系, 很容易造成控制器崩溃.


软 RAID 和硬 RAID 各有什么优劣?

如果对性能不高,就用硬件RAID就可以了。如果是高速存储设备,譬如NVMe SSD,我现在还没看到过能扛得住的硬件RAID方案。单SSD差不多80万IOPS/读3GB每秒/写1.6GB每秒,两块卡读就是6GB每秒(注意是Bytes, 不是bits)的吞吐量峰值,160万次IO每秒,硬件RAID卡直接就成为性能瓶颈了。

还是那句话,如果对性能要求不高,而且板载的RAID控制器靠谱的话,就用板载的吧,越简单越好。


软 RAID 和硬 RAID 各有什么优劣?

如果对性能不高,就用硬件RAID就可以了。如果是高速存储设备,譬如NVMe SSD,我现在还没看到过能扛得住的硬件RAID方案。单SSD差不多80万IOPS/读3GB每秒/写1.6GB每秒,两块卡读就是6GB每秒(注意是Bytes, 不是bits)的吞吐量峰值,160万次IO每秒,硬件RAID卡直接就成为性能瓶颈了。

还是那句话,如果对性能要求不高,而且板载的RAID控制器靠谱的话,就用板载的吧,越简单越好。