如何将 MDADM RAID 上的现有 /home 添加到基于 LVM 的新操作系统安装中

如何将 MDADM RAID 上的现有 /home 添加到基于 LVM 的新操作系统安装中

拥有(32 位)Centos 5.6 文件服务器,配备 2x1TB HDD/ext3,MDADM RAID-1 如下:

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
Device    Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   fd  Linux raid autodetect
/dev/sda2              14         144     1052257+  fd  Linux raid autodetect
/dev/sda3             145      121601   975603352+  fd  Linux raid autodetect

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
Device    Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          13      104391   fd  Linux raid autodetect
/dev/sdb2              14         144     1052257+  fd  Linux raid autodetect
/dev/sdb3             145      121601   975603352+  fd  Linux raid autodetect

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md2             945048528 295908988 600359380  34% /
/dev/md0                101018     24028     71774  26% /boot
/dev/md1               1052160         -         -    - /swap

使用 LVM/ext4 在单个 128GB SSD 上安装了(64 位)Centos 6,计划用于除之外的所有内容/home,这里使用 1TB RAID-1(不想/home长期保留这些驱动器之外的任何东西)。

/boot令人惊讶的是,没有找到任何使用单驱动器等和 RAID-1 来设置系统的示例/home,本来预计随着 SSD 价格/容量的提高,这种情况会变得更加常见。

似乎将基本数据(在 RAID 中/home)复制到外部备份、在 LVM 下将驱动器重新格式化/重新分区为新的 RAID并将数据复制回来是一种选择,但是有没有更好的方法可以“就地”执行此操作,特别是因为两个系统上/home都没有预先存在的分区?/home

不确定这两个选项缺乏信息是否仅仅是因为这不是个好主意?真的很希望得到一些意见或建议。谢谢。

答案1

CentOS 分区程序可能太笨重,无法将其作为安装的一部分来支持,但理论上没有理由不能告诉它“将这两个设备组装为 MD RAID-1,不要格式化它,然后像/home在新系统中一样安装它”。Debian 安装程序可以很好地处理这个问题,但我一直对 Anaconda 的最佳分区时间的想法感到困惑。

实际上,安装期间我会把 1TB 硬盘放在一边,把所有东西都安装到 SSD 上。然后,一旦完成并完成,配置机器以在 下组装和安装 MD 设备/home。后面的部分很简单,一行fstab; 如何向 CentOS 解释它应该组装 RAID 设备,我将留给读者练习,因为毫无疑问它并不简单或自动化。

备份很重要,以防万一你弄乱了(或者 CentOS 疯狂地清除磁盘),但你没有理由这样做除非发生灾难,否则从备份中恢复。

答案2

最好的答案是复制所有数据并重新安装。您的文件系统直接位于块设备(虚拟或非虚拟,无关紧要)之上。LVM 需要在驱动器的开头留出空间来存放 PV 标签和 VG/LV/PE 元数据。现在尝试设置它会破坏现有文件系统的超级块。即使这不是问题,您也必须重新分区驱动器并移动文件系统映像(或使用三个不同的 PV)。可以缩小文件系统以使其不占用整个卷,然后您必须移动文件系统的所有字节以腾出空间来存放 LVM 元数据。也可以通过移动字节来合并所有分区,但如果没有外部备份,这样做就太疯狂了。

我的建议。

  • 进行完整备份
  • 将两个驱动器重新分区为两个片,一个 256MB 片 + 其余所有内容。
  • 暂时忽略 sdX1,这只是为将来需要将 /boot 放在那里留出空间
  • 在 sd[bc]2 上设置 mdadm
  • 将 /dev/md0 设为 LV PV
  • 将该 PV 添加到 VG
  • 创建一个足够大的主 LV 来容纳您现有的数据(大约 350GB),其余部分不分配用于未来的 LV 或快照。根据需要扩大主 LV,然后在线调整文件系统的大小。

通过该设置,您还可以从 /、交换 /tmp、/var 等创建 LV,并且无需单独的启动盘即可运行。

答案3

您基本上只需要让您的新驱动器可启动,您可以在这里找到有关说明:

http://www.cyberciti.biz/faq/linux-create-a-bootable-usb-pen/ 有关具体步骤的更多详细信息请参见此处: http://wiki.centos.org/HowTos/CentOS5ConvertToRAID

之后,您只需将所需的任何数据复制到何处并设置您的 fstab,因此 / 是您的 SSD,/home 是您的 RAID。

相关内容