红帽企业 Linux 4: 用于 IBM® S/390® 和 IBM® eServer™ zSeries® 体系的安装指南 | ||
---|---|---|
后退 | 附录 F. 为 S/390 和 zSeries 系统用户提供的附加信息 | 前进 |
和其他在 raidtools 程序包中的工具一样,可以使用 mdadm 命令来执行所有与管理多设备相关的功能。这一章会解释如何使用 mdadm:
创建 RAID 设备
创建多路径设备
创建 RAID 设备:编辑 /etc/mdadm.conf,设置适当的 DEVICE 和 ARRAY 的值:
DEVICE /dev/sd[abcd]1 ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1 |
在这个例子中,DEVICE 行使用传统的全局文件名(详细信息参看 glob (7)文档)来定义以下的 SCSI 设备:
/dev/sda1
/dev/sdb1
/dev/sdc1
/dev/sdd1
ARRAY 行定义了一个 RAID 设备(/dev/md0),它是由被 DEVICE 行定义的 SCSI 设备组成的。
在建立或使用任何 RAID 设备以前,/proc/mdstat 文件不包括任何激活的 RAID 设备。
Personalities : read_ahead not set Event: 0 unused devices: <none> |
接下来,使用以上的设置和 mdadm 命令来建立一个 RAID 0 阵列。
mdadm -C /dev/md0 --level=raid0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 \ /dev/sdd1 Continue creating array? yes mdadm: array /dev/md0 started. |
一旦它被建立,RAID 设备的状态信息可以在任何时候被查询到。以下的例子显示了 mdadm --detail /dev/md0 命令的输出结果:
/dev/md0: Version : 00.90.00 Creation Time : Mon Mar 1 13:49:10 2004 Raid Level : raid0 Array Size : 15621632 (14.90 GiB 15.100 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Mon Mar 1 13:49:10 2004 State : dirty, no-errors Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Chunk Size : 64K Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1 2 8 33 2 active sync /dev/sdc1 3 8 49 3 active sync /dev/sdd1 UUID : 25c0f2a1:e882dfc0:c0fe135e:6940d932 Events : 0.1 |
除去建立 RAID 阵列,mdadm 还可以用来实现硬件支持的多 I/O 路径指向单 SCSI LUNs (磁盘驱动器) 的功能。多路径存储是为了实现当有硬件损坏或是单 SCSI LUNs (磁盘驱动器) 饱和时,仍然可以对数据进行访问。由于这个设置中包括了多路径(每个路径做为一个独立的虚拟控制器) 对一个公用的 SCSI LUN (磁盘驱动器) 的访问,Linux 内核会通过每个路径检测到每个共享的驱动器。换句话说,根据相关的配置,名为 /dev/sda 的 SCSI LUN (磁盘驱动器) 可以被做为 /dev/sdb, /dev/sdc 或其它名字来访问。
一个设备需要在一个 I/O 路径出现故障的时候仍然可以被访问到。mdadm 提供了一个––level 选项的参数来实现这个功能。如果一个 I/O 路径出现故障,这个参数— multipath —会指示 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 的命令行比较长,它被分为了两行
在这个例子中,硬件中包括了一个由 SCSI LUN 来代表的 4 个独立的 SCSI 设备,每个设备都使用自己不同的路径来访问同一个存储设备。当多路径设备 /dev/md0 建立好后,所有指向 /dev/md0 的 I/O 操作都会被指向 /dev/sda1,/dev/sdb1,/dev/sdc1,或 /dev/sdd1 (取决于当前哪个路径是可以正常运行并且是被激活的)
你可以用 mdadm --detail /dev/md0 命令检查 /dev/md0 的配置,来验证现在是一个多路径设备。
/dev/md0: Version : 00.90.00 Creation Time : Tue Mar 2 10:56:37 2004 Raid Level : multipath Array Size : 3905408 (3.72 GiB 3.100 GB) Raid Devices : 1 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue Mar 2 10:56:37 2004 State : dirty, no-errors Active Devices : 1 Working Devices : 4 Failed Devices : 0 Spare Devices : 3 Number Major Minor RaidDevice State 0 8 49 0 active sync /dev/sdd1 1 8 17 1 spare /dev/sdb1 2 8 33 2 spare /dev/sdc1 3 8 1 3 spare /dev/sda1 UUID : 4b564608:fa01c716:550bd8ff:735d92dc Events : 0.1 |
mdadm 的另一个功能是从操作配置中强制删除一个设备 (这个设备是 RAID 阵列中的一部分或是多路径设置中的一部分)。在下面的例子中,/dev/sda1 被标识为故障,然后被删除掉,最后又被再次添加到配置中。对于一个多路径的配置,这些行动不会影响到当前正在进行的 I/O 操作。
# mdadm /dev/md0 -f /dev/sda1 mdadm: set /dev/sda1 faulty in /dev/md0 # mdadm /dev/md0 -r /dev/sda1 mdadm: hot removed /dev/sda1 # mdadm /dev/md0 -a /dev/sda1 mdadm: hot added /dev/sda1 # |