添加新硬盘以使用 raid1 镜像现有的 LVM 驱动器

mur*_*d99 6 raid 11.04 hard-drive

我有一个带有 LVM2 卷组的 320GB 硬盘驱动器,该卷组是作为默认安装的一部分创建的。如果我将第二个 320GB 硬盘驱动器放入计算机,我可以使用 Linux 软件 RAID1 或类似软件将第二个驱动器镜像为第一个驱动器吗?我尝试在 Gnome 磁盘实用程序中添加一个新的 RAID 阵列,但它只给了我创建具有两个空分区的阵列的选项。

小智 11

如果有人仍在阅读这个较旧的问题,请注意 raid1 现在已内置到 lvm2 中。要使用 lvm2 在新驱动器上镜像现有的 lv:

  • 安装新驱动器并创建 lvm2 分区(至少与现有驱动器的 lvm 分区大小相同,或者在任何情况下都需要镜像)(使用parted /dev/newdrive或使用sfdisk -d /dev/sda | sfdisk /dev/sdb假设 sdb 是您的新驱动器)
  • 将新分区初始化为 lvm2 pv(s) ( pvcreate /dev/newpartition)
  • 将现有的 lvm2 vg(s) 扩展到新分区 ( )vgextend /dev/myvg /dev/newpartition然后首先检查并确认新驱动器上的区数是否相同或更多 ( pvdisplay) 新驱动器上的可用 PE 应大于 Total PE的旧驱动器。
  • 对于要在新分区上镜像的每个 lv:

    lvconvert -m1 /dev/myvg/existinglv /dev/newpartition
    
    Run Code Online (Sandbox Code Playgroud)

    (即,将我现有的(线性)lv 转换为带有 1 个额外镜像分支的 raid1 镜像 lv,并在给定的新 pv/分区上分配镜像分支所需的新 PE)

  • 请注意,您将需要在现有的和新的 lv 上增加一些空间,因为 lvm2 raid1 镜像段(默认)将它们的日志存储在与镜像分支相同的 pv/segment 上(您需要在两个镜像分支上为每个镜像分支额外 1 个 PE现有的和新的光伏)。

    如果您收到类似这样的错误,1 extents needed, but only 0 available则可能表示创建日志有问题,您可能需要在现有 pv 上创建一些可用空间,可能通过缩小相关 lv 以留出空间 ( lvreduce)。如果这样做,您可能需要事先调整底层文件系统的大小 ( resize2fs))。


mur*_*d99 -1

我通过将所有数据备份到外部驱动器上,将 Ubuntu 重新安装到 raid 阵列上,然后在新文件系统中恢复备份来实现这一目标。具体来说,我遵循了以下步骤:

  1. 使用此论坛帖子中的说明使用命令备份数据

    sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=backup.tgz --exclude=/mnt --exclude=/sys --exclude=/dev --exclude=/etc/fstab --exclude=/etc/mtab --exclude=/boot --exclude=/media /
    
    Run Code Online (Sandbox Code Playgroud)

    将两种情况下的 backup.tgz 替换为备份的位置

  2. 关闭计算机并安装两个硬盘驱动器,其中较小的一个至少为 raid 阵列的大小(可能包括原始硬盘驱动器)

  3. 启动到安装磁盘并运行安装程序。

  4. 使用手动分区,在每个硬盘驱动器中为最终文件系统中的每个分区创建一个分区。例如,如果您希望/home分区为 100 GB,请在每个硬盘驱动器中创建 100 GB 的分区。将属于 RAID 阵列一部分的所有分区设置为 RAID 自动检测 (0xfd)。

  5. 选择制作raid阵列,将每个分区与另一块磁盘上的相应分区放入一个raid阵列。

  6. 正常完成安装并重新启动进入全新的 Ubuntu 安装。

  7. 如果尚未安装外部驱动器,请安装它,并使用以下命令按照上面的论坛主题中的说明恢复备份

    sudo tar xvpfz backup.tgz -C /
    
    Run Code Online (Sandbox Code Playgroud)
  8. 运行sudo update-grub然后重新启动。新的操作系统现在应该和原来的操作系统一模一样。

我更喜欢这种方法有几个原因:

  • 一般来说,制作文件系统级副本而不是磁盘级副本似乎更可取

  • 它不依赖于保持分区结构相同

  • 一旦我弄清楚如何做到这一点,整个过程花费的时间比磁盘级复制花费的时间还要少

  • 它允许安装程序为引导设备和已安装设备创建正确的条目,这些条目需要更改,因为 raid 分区的引用方式与常规分区不同。