怎么做

怎么做

我计划购买一个外部 RAID 阵列(硬件 RAID5)。我打算最初为其配备 4 个磁盘,并使用 luks 和 dm-crypt 对其进行加密。我的问题是:我是否能够热插拔磁盘并扩大加密 RAID,再添加一个或两个磁盘,使总数达到 6 个?

我认为没有理由不这样做,但谨慎总比后悔好。那么 dm-crypt 是否能稳定地应对不断增长的分区大小?

答案1

只需进行一些说明,预先咀嚼智慧以防牙齿松动。与许多 Linux 文档一样,本实用教程假定读者比某些普通用户拥有更多的知识。

您可以通过查看 /dev 目录来确定您的 RAID 阵列的名称,它将是 md#,例如 md0 或 md1 等。要获取有关 RAID 阵列的更多详细信息,以便您可以选择正确的阵列,请尝试以下命令:

 mdadm -D /dev/md#

#是数组的编号。它将为您提供如下信息:

Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : we:0  (local to host we)
           UUID : 94777f33ltjj97
         Events : 136

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       1       8       18        1      active sync   /dev/sdb2
       2       8       34        2      active sync   /dev/sdc2
       4       8       50        3      active sync   /dev/sdd2

扩大 RAID 文件系统的命令中没有引号,“-n”指的是阵列中新的驱动器总数。因此,如果您要将 RAID 5 阵列从 4 个驱动器扩展到 5 个驱动器,则可以使用以下命令:

mdadm --grow -n 5 /dev/md2

运行此命令来查看 RAID 合并的进展情况:

cat /proc/mdstat

对于较大的驱动器和较慢的系统,调整 RAID 大小可能需要很长时间,甚至几天。当它达到 100% 时,您就可以进行下一步了。如果您在 LUKS 加密分区上进行 LVM 分区,则首先需要调整加密卷的大小。要弄清楚,您可以查看 /dev/mapper 文件夹。选择加密卷,而不是任何 LVM 逻辑卷。由于我的系统正在运行,我显然不需要执行本教程提供的第一个命令:

  cryptsetup luksOpen /dev/md0 md0_crypt

    *Device md0_crypt already exists*

如果第二个命令有效,它将不会给出任何输出,就像许多 Linux 命令一样:

cryptsetup resize md0_crypt

接下来是调整 LVM 方案的大小。我弄清楚了如何使用以下命令运行 pvresize 命令:pvs -o +tags

pvs -o +tags
  *PV         VG   Fmt  Attr PSize PFree PV Tags
  /dev/dm-0  vg0  lvm2 a--  1.02g    0* 

因此我在物理卷上运行了 pvresize 命令,它告诉我它已成功。

pvresize /dev/dm-0
  *Physical volume "/dev/dm-0" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized*

接下来,使用 lvdisplay 命令决定要扩展哪个逻辑卷。这将告诉您逻辑卷的名称。卷组的名称将位于 /dev 文件夹中。在我的例子中,我使用了:

lvdisplay /dev/vg0

查看显示“LV 名称”的字段,我决定使用此命令将所有新空间添加到我的一个逻辑卷中:

lvresize -l +100%FREE /dev/mapper/vg0-system
  Extending logical volume system to 7.17 GiB
  Logical volume system successfully resized

最后,您可以使用 resize2fs 命令调整 LVM 的大小以使更改生效。

resize2fs /dev/mapper/vg0-system
*resize2fs 1.42.5 (29-Jul-2012)
Filesystem at /dev/mapper/vg0-system is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/vg0-system to 1879040 (4k) blocks.
The filesystem on /dev/mapper/vg0-system is now 1879040 blocks long.*

该过程完成后(可能需要一段时间),您可以使用“df -h”命令查看文件系统的新大小。我发现整个过程有点吓人,所以我想把命令说清楚,以减轻其他人的焦虑。

答案2

是的,你当然可以。

怎么做

首先,我需要使用以下命令将额外的驱动器作为热备用添加到阵列中:

mdadm --add /dev/md2 /dev/sdc3

/dev/md2 是 raid,sdc3 是附加磁盘。

然后我告诉数组增长 [...]:

"mdadm --grow -n 12 /dev/md2".

现在我等待了大约 16 个小时,让阵列重新调整为新的布局。 [...] 检查cat /proc/mdstat以查看进度。

然后我需要告诉加密分区它更大。 [...]

cryptsetup luksOpen /dev/md2 storage
cryptsetup resize storage

“存储” 是加密设备的标签,如/dev/mapper/sotrage

如果这是 LVM 分区,我需要执行pvresize上述操作。最后,我必须增加文件系统的大小。[...]

resize2fs /dev/mapper/storage

执行此操作时会丢失阵列上的任何数据吗?不会,它会保留所有数据。在对其进行重塑之前,我运行了“dd if=/dev/md2 of=/dev/zero”,以确保在重塑之前任何驱动器上都没有任何坏块。运行此类验证可以找到通常不使用的边缘扇区,这是运行 RAID 阵列的重要部分。此外,在运行重塑之前,请确保驱动器没有故障。

其他有用信息:

在 RAID 大小调整完成之前,您无法扩大文件系统。

在设备正在使用时执行 RAID-5 大小调整是否安全?是的,应该是安全的。它旨在跟踪其所在位置,因此您甚至可以在阵列扩大时重新启动,并且它会从中断处继续。

来源:http://www.tummy.com/journals/entries/jafo_20080502_154339

相关内容