22.3.2. 使用 mdadm创建多路径设备
除了创建 RAID 阵列外,mdadm 还可用于利用支持单个 SCSI LUN(磁盘驱动器)的多个 I/O 路径的硬件。多路径存储旨在在硬件故障或单个路径饱和时继续数据可用性。由于此配置包含多个路径(每个都充当独立虚拟控制器)访问通用 SCSI LUN(磁盘驱动器),因此 Linux 内核会检测到每个共享驱动器一次"穿过"每个路径。换句话说,称为
/dev/sda
的 SCSI LUN(磁盘驱动器)也可以作为 /dev/sdb
、/dev/sdc
等访问,具体取决于具体配置。
为了提供一个在 I/O 路径失败或饱和时仍然可以访问的单个设备,mdadm 包括了其
级别
选项的额外参数。在出现 I/O 路径失败时,这个参数 多路径
会将 Linux 内核中的 md 层从一个途径重新路由到另一个路径。
要创建多路径设备,请编辑
/etc/mdadm.conf
文件,以定义 DEVICE
和 ARRAY
行的值来反映您的硬件配置。
备注
与前面的 RAID 示例不同(在
/etc/mdadm.conf
中指定的每个设备都必须代表不同的物理磁盘驱动器),此文件中的每个设备都引用相同的共享磁盘驱动器。
用于创建多路径设备的命令与创建 RAID 设备类似 ; 不同之处在于使用
multipath
参数替换 RAID 级别参数:
mdadm -C /dev/md0 --level=multipath --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 Continue creating array? yes mdadm: array /dev/md0 started.
mdadm -C /dev/md0 --level=multipath --raid-devices=4 /dev/sda1 /dev/sdb1
/dev/sdc1 /dev/sdd1
Continue creating array? yes
mdadm: array /dev/md0 started.
由于 mdadm 命令行的长度,它已被分成两行。
在这个示例中,硬件由一个 SCSI LUN 组成,作为四个独立的 SCSI 设备,每个设备都通过不同的途径访问相同的存储。创建多路径设备
/dev/md0
后,引用 /dev/md0 的所有 I/O 操作都定向到 /dev/sda1
、/dev/sdb
1、/dev/sdc1
或 /dev/sdd1
(取决于哪个路径当前处于活动状态且正常运行)。
使用 命令 md adm --detail
/dev/md0
来验证 /dev/md0 的配置实际上是一个多路径设备:
mdadm 的另一个功能是能够强制设备(使其成为 RAID 阵列的成员或多路径配置中的路径)从操作配置中删除。在以下示例中,
/dev/sda1
将标记为故障,然后删除,最后将其重新添加到配置中。对于多路径配置,这些操作不会影响当时发生的任何 I/O 活动: