原始软件突袭设备或分区上的mkfs

我在CentOS上制作了一个巨大的RAID10设备(8TB)。 我在4个物理硬盘上创build了4个分区,并在这4个分区中创build了RAID设备/ dev / md2。

现在是时候把文件系统放在上面了。 我想知道我是否应该这样做:

mkfs.ext4 /dev/md2 

(我试过了),或者我应该先在该设备上创build一个分区(使用fdisk,gdisk或parted?),占用所有空间,然后在该分区上执行mkfs。

在网上search,我发现另一个人在这里问同样的问题: http : //ubuntuforums.org/showthread.php?t=2174067但是,虽然一个响应者说:

分区放在arrays成员上。
文件系统进入arrays。

当一种方法比另一种方法更受欢迎时,他们没有给出一个明确的,不含糊的答案或解释。

我曾经使用过的唯一方法是对物理磁盘进行分区,然后将分区合并到一个RAID中,并将文件系统(或交换)直接放在md设备上。

据我所知,分区的MD设备是一个function,后来被添加,但从未被广泛使用。

我build议不要尝试直接在物理设备上创buildRAID,而不要先分区。 许多软件都希望硬盘被分区,分区表中包含每个分区的types字段,这会告诉软件读取分区表,该分区是RAID的一部分。

是否在md设备上使用分区表可能是一个问题。 这可能完全是由于历史原因,通常没有完成。 额外的分区表所消耗的额外磁盘空间的微小量当然不是避免它的原因,就像在较低层一样,md设备顶部的分区表将指示期望在内部find什么。

但是,由于能够对md设备进行分区而获得的灵活性,我认为是微不足道的,因为您可以在物理设备上创build多个分区,而创build多个md设备。

没有分区的多个md设备md一个md设备更灵活。 您有更多的自由时间来replace一个底层的媒体,你可以configuration不同的RAID设备具有不同的RAID级别。

例如,如果您有六个磁盘,则可以使/boot成为每个磁盘上都有一个副本的RAID-1。 /可以是在三个磁盘上具有拷贝的RAID-1,而在另外三个磁盘上具有拷贝的RAID-1可以用于交换。 剩余空间可能是所有六个磁盘中的一个大型RAID-6。

正如其他人所说,使用md-RAID元设备的正常做法是直接将文件系统放在上面。 元设备应该只能由分区组成(把RAID设备放在整个磁盘设备上是一种习惯,我发现这种做法常常会让你自己在脚下进行射击),所以你并没有违反你收到的build议。

但是还没有提到的一个选项是,如果你想对RAID设备进行分区,你可以将其分配给LVM,然后使用LVM将设备分成多个分区。 此外,在调整分区大小,分配额外空间等方面,您可以获得LVM方便的优势。

下面是我的一个箱子的例子:

 [root@risby ~]# pvs PV VG Fmt Attr PSize PFree /dev/md127 VolGroup01 lvm2 a-- 1.82t 0 [root@risby ~]# vgs VG #PV #LV #SN Attr VSize VFree VolGroup01 1 4 0 wz--n- 1.82t 0 [root@risby ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert LogVol00 VolGroup01 -wi-ao---- 5.00g LogVol01 VolGroup01 -wi-ao---- 50.00g LogVol02 VolGroup01 -wi-ao---- 1.75t LogVol03 VolGroup01 -wi-a----- 11.02g 

如您所见,有一个RAID元设备,其上有四个独立的分区。 它们对应于swap, / ,一个大的数据分区和一些额外的空间,以防万一需要。