如何在使用 mdadm 扩展 raid5 时创建分区

如何在使用 mdadm 扩展 raid5 时创建分区

我有 4 个驱动器,2 个 640GB 和 2 个 1TB 驱动器。我的阵列由四个 640GB 分区和每个驱动器的开头组成。我想用 1TB 驱动器替换两个 640GB。我知道我需要 1) 使磁盘故障 2) 用新磁盘替换 3) 分区 4) 将磁盘添加到阵列

我的问题是,当我在新的 1TB 驱动器上创建新分区时,我是否创建 1TB“Raid Auto Detect”分区?还是我创建另一个 640GB 分区并稍后扩大它?

或者也许可以表述相同的问题:更换驱动器后,如何扩大 640GB 的 raid 分区以填充 1TB 驱动器的剩余部分?

fdisk 信息:

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe3d0900f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       77825   625129281   fd  Linux raid autodetect
/dev/sdb2           77826      121601   351630720   83  Linux

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xc0b23adf

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       77825   625129281   fd  Linux raid autodetect
/dev/sdc2           77826      121601   351630720   83  Linux

Disk /dev/sdd: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x582c8b94

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1       77825   625129281   fd  Linux raid autodetect

Disk /dev/sde: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbc33313a

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1       77825   625129281   fd  Linux raid autodetect

Disk /dev/md0: 1920.4 GB, 1920396951552 bytes
2 heads, 4 sectors/track, 468846912 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000

答案1

我的问题是,当我在新的 1TB 驱动器上创建新分区时,我是否创建一个 1TB 的“Raid 自动检测”分区?

你可以,但你不会立即获得任何好处。

或者我是否应该创建另一个 640GB 的分区并在以后扩大它?

是的。

分区 RAID 有其用途,但当您在伪存储池设置中使用驱动器时,有时最好使用“整个驱动器”而不是“分区”RAID 成员。指定整个驱动器(即 /dev/sdc 而不是 /dev/sdc1)具有隐式告诉 RAID 机制将使用整个驱动器的优势,因此不需要创建/扩展/移动/执行任何分区。这会将硬盘驱动器变成或多或少可互换的“存储砖”,但需要注意的是,“砖组”中最大的“块大小”将是组中最小的驱动器(即,如果您有 40gb、80gb 和 2x 120gb,RAID 机制将使用 4x 40gb,因为它无法在最小驱动器上获得更多空间)。请注意,此答案适用于 Linux 软件 RAID(mdadm),可能适用于或不适用于其他环境。

缺点是,如果您需要 RAID 配置的灵活性,您将失去这种能力,因为整个驱动器将被声明。但是,您可以通过使用 LVM-on-RAID 来弥补这种损失。整个驱动器 RAID 的另一个问题是,某些恢复过程需要更多思考,因为它们通常假设存在分区。如果您使用需要分区表的工具,它可能会拒绝驱动器。


未经请求的建议(仅此而已,如果它坏了,你保留两块,等等):

最好的办法是按照自己的喜好设置 RAID 阵列,使用“整个驱动器”技术,然后使用 LVM 来管理分区。这样既能提供 RAID 的少量容错能力,又能提供动态大小分区的灵活性。还有一个额外的好处:如果您使用 Ext3(可能 Ext2 也支持这一点,不确定),您可以在挂载“分区”时调整它们的大小。能够在挂载点处于“热”状态时调整挂载点的大小是一项很棒的功能,我建议考虑一下。


进一步的后续行动:

我收到一条评论说 Ext2 不支持热调整大小。实际上,它支持,但仅限于大小增加。您可以在此链接在这里我自己已经做过几次了,我可以说这是可行的,确实有效,而且可以节省你的时间。

相关内容