为什么要为 mdadm/raid 创建分区?

为什么要为 mdadm/raid 创建分区?

我有 4 个磁盘,sd[a,b,f,g],大小各异,我想将它们“合并”在一起。我使用 mdadm 来实现这一点。

我的问题是,这两者有什么区别——

mdadm --create /dev/md0 --level=linear --raid-devices=4 /dev/sda /dev/sdb /dev/sdf /dev/sdg

mdadm --create /dev/md0 --level=linear --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdf1 /dev/sdg1

什么时候两者都有效?出于某种原因(如果有人能解释一下,那就太好了),当我查看 /dev/md0 时,我丢失了很多磁盘空间,但如果我创建分区,然后创建线性 raid,我最终会丢失更多的空间。

那么为什么要创建分区呢?即使我没有这个设置,只想使用磁盘,我是否可以只执行 mkfs.ext3 /dev/sda ?


附加内容 - 这是 /proc/partitions -

8 0 244140625 sda
8 1 244139008 sda1
8 16 244140625 sdb
8 17 244139008 sdb1
8 80 39063024 sdf
8 81 39061504 sdf1
8 96 156290904 sdg
8 97 156289024 sdg1

为什么我的分区大小比上面列出的磁盘小?

答案1

为什么要进行分区

如果要将驱动器的一部分用于特定阵列的 RAID,则需要分区。使用更多分区也可以提高灵活性。

例子:

1 TB 硬盘 #1:SDA1(500 MB)SDA2(490 MB)
1 TB 硬盘 #2:SDB1(500 MB)SDB2(490 MB)
1 TB 硬盘 #3:SDC1(500 MB)SDC2(500 MB)

我可以将 sda1、sdb1 和 sdc1 添加到条带中以提高性能,
将 sda2 和 sdb2 添加到镜像中以提高安全性,
而将 sdc2 添加到普通磁盘中。

如果我使用整个驱动器,我就无法做到这一点。

就您而言,您似乎只想要一个大型设置,这意味着您采用哪种方式进行设置并不重要。

答案2

我知道这是一个非常老的问题,但是有一个很好的理由使用带有 MDADM 的分区,特别是在使用 RAID5 或 RAID1 配置时(因此在 OP 情况下不是):

对于 RAID5,如果磁盘发生故障,为了使重建过程能够进行,替换磁盘的大小必须与原始磁盘完全相同。由于不同制造商的硬盘容量并不完全相同,因此当您混合使用不同制造商生产的磁盘时可能会遇到问题。这非常不方便。为了解决这个问题,您可以使用分区,并在每个磁盘的末尾留出一小块空间(例如每个 100 MB),这样就可以使分区在所有不同的硬盘型号上具有完全相同的大小。

使用 RAID1 时也存在类似情况,因为在这种情况下,镜像磁盘需要具有完全相同的大小。在这种情况下,使用物理磁盘代替分区也会导致问题,因为制造商之间的大小并不完全相同。

然而,对于简单的 RAID0 配置,实际上没有理由使用分区而不是物理磁盘。

如需进一步了解,请参阅RAID - Arch Wiki

相关内容