Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2. 将 root 文件系统从单一路径设备移动到多路径设备中

如果您在单一路径设备中安装您的系统,并后来在 root 文件系统中添加了另一个路径,则您需要将您的 root 文件系统移动到多路径设备中。本小节记录了从单一路径移动到多路径设备的过程。
安装 device-mapper-multipath 软件包后执行以下步骤:
  1. 执行以下命令创建 /etc/multipath.conf 配置文件,载入多路径模块并为 multipathdchkconfig 设定为 on
    # mpathconf --enable
    有关 mpathconf 命令输出的详情请参考 第 3.1 节 “设置 DM-Multipath”
  2. 编辑 /etc/multipath.conf 文件的 blacklistblacklist_exceptions 部分,如 第 4.2 节 “配置文件黑名单” 所述。
  3. 要确定您正确设定了配置文件,您可以运行 /sbin/multipath 命令,使用 -v3 选项查看该多路径守护进程是否尝试为您的 root 设备创建多路径设备。该命令会失败,因为 root 设备正在使用中,但该命令的输出应该显示该 root 设备所在路径列表。
    您应该可在命令输出中看到有以下格式的行:
    WWID  H:B:T:L devname MAJOR:MINOR
    例如:如果在 sda 或者它的一个分区中设定您的 root 文件系统,您可在输出中看到类似如下的行:
    ===== paths list =====
    ...
    1ATA     WDC WD800JD-75MSA3                           WD-WMAM9F 1:0:0:0 sda 8:0
    ...
    
    在之后的输出结果中,您应该可以看到分配给多路经设备的 root 设备:
    time | devname: ownership set to mpathdev
    
    例如:输出结果显示如下:
    Jun 14 06:48:21 | sda: ownership set to mpatha
    
    您将看到一条说明告诉您无法使用该命令的以下格式创建多路经设备:
    time | mpathdev: domap (0) failure for create/reload map
    
    如上面的示例所示,您可以在命令输出中看到以下行:
    Jun 14 06:48:21 | mpatha: domap (0) failure for create/reload map
    
  4. 要使用 multipath 重建 initramfs 文件系统,请使用附带以下选项的 dracut 命令:
    # dracut --force --add multipath --include /etc/multipath /etc/multipath
  5. 如果您的 root 设备不是 LVM 卷,且使用设备名称挂载,则您需要边界 fstab 文件切换为适当的多路径设备名称。如果您的 root 设备是 LVM 设备或者使用 UUID 或者其它属性挂载,就不需要这个步骤。
    1. 使用第三步中描述的步骤运行代 -v3 选项 /sbin/multipath 命令确定 root 设备的 WWID。
    2. /etc/multipath.conf 文件中为 root 设备设定别名。
      multipaths {
          multipath {
              wwid WWID_of_root_device
              alias rootdev
          }
      }
      
    3. 编辑 /etc/fstab 并使用带这个多路径设备的 root 设备替换旧的设备路径。
      例如:如果您在 /etc/fstab 文件中有以下条目:
      /dev/sda1 /                       ext4    defaults        1 1
      
      您可将该条目更改如下:
      /dev/mapper/rootdev /             ext4    defaults        1 1
      
    如果您要编辑 /etc/fstab 文件,您还需要编辑 /etc/grub/grub.conf 文件,并将 root 参数从 root=/dev/sda1 改为 root=/dev/mapper/rootdev
    您编辑 grub.conf 文件前条目应类似如下。
    title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro root=/dev/sda1 rd_NO_LUKS
    rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us
    console=ttyS0,115200n8 crashkernel=auto
            initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
    
    您编辑 grub.conf 文件后条目应类似如下。
    title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro root=/dev/mapper/rootdev
    rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16
    KEYTABLE=us console=ttyS0,115200n8 crashkernel=auto
            initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
    
  6. 关闭机器。
  7. 配置 FC 开关以便可在该机器中看到其它路径。
  8. 引导机器。
  9. 查看 root 文件系统('/')是否在多路径设备中。