RAID-1 卷中的磁盘可以独立访问吗?

RAID-1 卷中的磁盘可以独立访问吗?

我想使用 Debian 6 创建 RAID-1 阵列。该阵列将包含 6 个磁盘,其中 3 个用于操作系统,3 个镜像。

我以前用过这个 RAID,但在 Windows 上,也许我做得不太好,因为我可以看到 3 个不同的磁盘,但只有一个用于操作系统。有没有一种方法可以让操作系统将 3 个磁盘视为一个磁盘?或者他们会像不同的单位?

答案1

据我了解,您创建了 3 个 raid 阵列,每个阵列都附加了一面镜子。您可以将每对“一半”安装为普通磁盘,但不建议在阵列运行且两个“一半”都处于活动状态时这样做,因为这会导致副本不同步并破坏阵列。但如果出现故障,它们会单独存在,并且如果您将其用于目录,例如/boot任何本身不理解 raid 的进程,只会将它们视为相同的副本,我使用带有 raid-1 的小分区和许多驱动器来确保无论哪个操作系统驱动器挂掉,机器都保持可启动。

尽管这除了基本的硬件冗余之外没有任何好处,并且需要额外的维护(需要处理 3 个阵列),并且驱动器是隔离的。

如果你这样做是为了性能原因你想要最多 IOPS(例如对于数据库服务器)你最好使用raid 1+0.这基本上是 3 个驱动器的条带(大约是单个磁盘的读/写速度的 3 倍)以及该阵列与另外 3 个驱动器的镜像。当前的MD驱动程序本身支持此功能,您不需要单独管理 raid-1 和 raid-0 阵列,而是创建单个 raid 设备:

mdadm --create /dev/md0 -v --raid-devices=6 --level=raid10 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1

这意味着您获得的总阵列大小为 3 个磁盘的总和。此设置的问题是 2 个驱动器的故障可能会毁坏全部您的数据如果是同一个驱动器镜像,则“减半”在 2 个副本中。这些驱动器的寿命可能相同,这意味着它们大约在同一时间开始出现故障。而另一“半”的重建压力会显着增加失败的可能性:

根据您的设置,raid-1+0 的数据丢失生存概率如下所示:

1 drive fail  = 100%
2 drives fail =  80%
3 drives fail =  40%
4 drives fail =   0%

如果你觉得没问题平衡的 IOPS/速度存储容量对于 6 个磁盘,如果您创建所有设备的 raid-6,您将获得更好的恢复能力:

Probability of data loss in a 3 year span:
RAID5  - 0.0125 % (1 in 80)
RAID6  - 0.0005 % (1 in 1982)

但是由于您需要一个引导分区(引导加载程序不能跨磁盘进行条带化),因此您需要 2 个阵列,其中一个小的阵列可以说 256Mb,其余的一起,您应该使用 fdisk 或 cfdisk 创建此方案,并确保标志bootable是设置为小数组。如果驱动器大小完全相同,则可以使用 sfdisk 将分区表从一个磁盘复制到另一个磁盘:

sfdisk -d /dev/sda | sfdisk /dev/sdb

然后创建 2 个数组:

mdadm --create /dev/md0 -v --raid-devices=6 --level=mirror /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm --create /dev/md1 -v --raid-devices=6 --level=raid6 /dev/sda2 /dev/sdb2 /dev/sdc3 /dev/sdd4 /dev/sde5 /dev/sdf6

操作系统安装程序可以为您处理这个问题,但只需确保标记要使用的第一个阵列即可/boot

这样,您就可以赢回 1 个驱动器的存储空间(总容量 = 驱动器容量 * 4) 该阵列可以在 2 个驱动器出现故障时幸存下来,如果它们不同时出现故障,您也有足够的时间和数学机会来重建这个数组。

需要记住的一件事是,根据当前的消费者质量(读取错误率约为 10^14/错误)和驱动器大小 (>=2Tb),您应该绝不用于raid-5关键数据,因为发生故障时重建该阵列的机会低于 50%。

答案2

这里有些东西没有意义。

RAID1 阵列由 2 个或更多磁盘组成,所有磁盘都具有相同的内容。因此,如果您制作一个 6 磁盘 RAID1 阵列,您将拥有五个镜像,而不是三个。

你可能的意思是让RAID1 阵列,每个阵列由两个磁盘组成。然后您将可以md访问三种不同的设备。这不会隐藏磁盘/dev/sd[a-f],但当它们是 RAID 阵列的一部分时,您通常不会直接访问它们上的数据。 (您仍然可以直接访问它们以进行诸如 之类的操作smartctl。)

您还可以制作一个 6 磁盘 RAID10 阵列,这将为您提供一个md用于所有六个磁盘的设备,并且实际上具有三个镜像。也会更快。

Debian 安装程序可以为您设置所有这些(我很确定它知道 RAID10,如果不知道,您将必须切换到 alt-f2 并直接使用 mdadm 来创建 RAID10)。

通常,您在分区而不是整个磁盘上运行 Linux 软件 RAID。另外,如果您使用 1 以外的 RAID 级别,我建议创建两个分区:每个磁盘上一个 256MB 的小分区,RAID1,/boot然后是包含磁盘其余部分的第二个分区,无论您想要什么 RAID 级别。 GRUB2 对 RAID1 有很好的支持,但对其他方面的支持就不太好。所以/boot通常最好采用 RAID1。

请注意,如果您的 BIOS 中有板载 RAID,那么它可能是 fakeraid,您应该使用 Linux 软件 RAID 来代替 — 至少如果这是一个新安装并且机器将仅支持 Linux。您应该将 BIOS 配置为在 AHCI 模式下运行,而不是在 RAID 模式下运行。

(如果您在实际的硬件 RAID 控制器上花费了 400 多美元,请检查其文档以了解如何配置它。它可能会将磁盘隐藏在其后面,并且仅公开您导出的卷。)

相关内容