Red Hat Training

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

22.3.2. Создание многоканального устройства с mdadm

In addition to creating RAID arrays, mdadm can also be used to take advantage of hardware supporting more than one I/O path to individual SCSI LUNs (disk drives). The goal of multipath storage is continued data availability in the event of hardware failure or individual path saturation. Because this configuration contains multiple paths (each acting as an independent virtual controller) accessing a common SCSI LUN (disk drive), the Linux kernel detects each shared drive once "through" each path. In other words, the SCSI LUN (disk drive) known as /dev/sda may also be accessible as /dev/sdb, /dev/sdc, and so on, depending on the specific configuration.
Команда mdadm включает дополнительный параметр опции level для определения отдельного устройства, которое будет доступным в случае сбоя пути ввода/ вывода. Параметр multipath задает слой md ядра Linux для перенаправления запросов ввода/ вывода от одного пути к другому.
Для создания устройства с несколькими путями задайте значения DEVICE и ARRAY в файле /etc/mdadm.conf.

Примечание

В отличие от предыдущего примера RAID, где каждое устройство, заданное в /etc/mdadm.conf, представляет физический диск, в данном примере все устройства относятся к тому же разделенному диску.
Команда создания многоканального устройства аналогична команде создания RAID устройства с единственной разницей — параметр уровня RAID будет замещен параметром multipath.
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.
Due to the length of the mdadm command line, it has been broken into two lines.
В данном примере оборудование содержит один SCSI LUN, представленный как 4 отдельных устройства SCSI, каждое из которых получает доступ к устройству хранения через свой путь. После создания многоканального устройства /dev/md0 все операции ввода/ вывода, адресующие /dev/md0, будут направлены к /dev/sda1, /dev/sdb1, /dev/sdc1 или /dev/sdd1 (в зависимости от активного пути в заданный момент времени).
Конфигурация /dev/md0 может быть изучена более подробно. Выполните команду mdadm --detail /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 отмечено как ошибочное, затем оно будет удалено, а потом обратно добавлено к конфигурации. Для многоканальной конфигурации выполнение этих действий не вызовет изменений ввода/ вывода:
# 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
#