RAID和Storage Configuration¶
everything411 and LoveCatC
2019年1月1日 0:00:00
RAID¶
RAID(Redundant Array of Independenct Disks)即独立磁盘冗余序列,一般简称为磁盘阵列。这是一种多磁盘管理技术。RAID发展之初的思想是:将多个便宜的硬盘组合起来,成为一个硬盘阵列组,通过并发IO使其性能、容量大小达到甚至超过一个价格昂贵的硬盘。后来,RAID由于自身特点,很快就成为了大型服务器提供高端存储服务的选择。除了性能和存储方面的优势,RAID还可以通过数据冗余技术来保障数据安全。
目前,RAID的关键目标就是提高IO性能和增强数据可靠性。在磁盘阵列中,数据事实上是分散在各个磁盘中的。但在OS看来,RAID整体就像是一个单独的磁盘。其关键概念、技术包括镜像(Mirroring)、数据条带(Data Stripping)和数据校验(Data Parity)。在此我们不做具体的阐述,只对一些常见的RAID类型进行粗略的描述。
常见的RAID类型包括==RAID0、RAID1、RAID3、RAID5、RAID6==。国际机构定义RAID0~6这七个等级为标准RAID等级。它们代表着基本的RAID配置。对于特殊的场景需求,可以使用诸如RAID10的RAID组合等级。下面简要介绍常见的RAID类型。
RAID0是最原始的一类RAID。它事实上不是一类真正的RAID,因为它不提供数据校验的冗余策略。事实上,它做到的仅是允许数据分散储存在组成RAID的磁盘中,而不进行数据校验和冗余。这使得其虽然具有很高的空间利用率(100%)和IO性能,但数据可靠性非常差。
RAID1一般也称作镜像。顾名思义,这类RAID在写入时直接将数据完全一致的写入到工作磁盘和镜像磁盘。所以其空间利用率为50%。RAID1和RAID0处于两个极端。它极端强调数据安全性能,具备完全容错的能力。但实现成本高且空间利用率极低。
RAID3的思路是将磁盘阵列中的一块硬盘作为校验盘,其上存储有校验码。其它的硬盘作为RAID0的方式进行存储。当工作硬盘中的一块出现问题时,可以通过校验码还原受损硬盘中的数据。这种策略在IO性能和空间利用上取得了折中的方案。但缺点在于,一旦校验盘损坏则无法恢复,牵一发而动全身。并这种阵列本身也只允许最多损坏一块硬盘。否则校验码也无法恢复数据。
RAID5同样采取了文件校验码的方式。不同的是,校验码分散开储存在各个阵列中的所有磁盘。这使得其不存在RAID3的致命缺陷。但校验码机制决定了其仍然只允许至多一个硬盘损坏。
RAID6的数据校验,不仅支持“数据的恢复”,还支持“校验数据的恢复”。最常见的方法是,采用两个独立的校验算法,它们可以存储在两个不同的校验盘,或是分散在所有的磁盘中。这种情况下,即使有两个工作磁盘发生错误,也可以通过类似于求解二元方程的方式来同时恢复。缺点在于成本较高。
简介到此。
Storage Configuration¶
一些型号的电脑允许用户修改磁盘控制器模式。如笔者的Dell电脑,在BIOS的SATA Operation中,可以选择SATA的控制模式为AHCI或RAID。其它的一些BIOS可能还支持IDE模式。
IDE、AHCI、NVME,这些都是硬盘的接口标准。其中IDE是一种相对落后的标准。它也可以叫做ATA/PATA。而AHCI则是Intel发明的相对先进的标准。显著的特点之一便是支持热插拔。
接口标准的不同造成的一个重要影响是对应的驱动不同。对于Windows 10而言,虽然其对上述标准都有支持,但在安装过程中,Windows 10安装程序会自动检测硬盘控制模式并==只==安装对应的驱动。这就造成了一个后果——如果用户已安装了Windows 10,但某一次切换了硬盘控制模式,这时就会造成无法引导Windows的情况,并提示:INACCESSIBLE_BOOT_DEVICE。
这种情况下,可以考虑通过以下方式解决:
- 切换回原本的磁盘控制器模式
- 进入系统,保证下一次能够进入安全模式
- 进入安全模式前,切换到需要的新磁盘控制模式
- 进入安全模式,等待驱动安装完成。
事实上,问题的关键就在于在新的磁盘控制模式下进入安全模式。