
假设要写入的数据是{A1,A2,A3,……,A8},那么:
类似的,读取数据需要进行反向转换。
上述提到的这些转换、计算过程,如果由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,这个可以忽略。
