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

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

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

Команда mdadm также может использоваться для работы с оборудованием, поддерживающим любое число путей ввода/ вывода к отдельным дискам SCSI LUN. Главным назначением многоканального устройства хранения является обеспечение постоянного доступа к данным в случае сбоя оборудования. Поскольку такая конфигурация содержит несколько путей (каждый из которых действует как независимый виртуальный контроллер), осуществляющих доступ к общему дисковому устройству SCSI LUN, то ядро Linux определяет каждое разделяемое устройство с помощью такого пути. Другими словами, диск SCSI LUN (известный как /dev/sda) может быть доступен как /dev/sdb, /dev/sdc и т.д. в зависимости от конфигурации.

Команда 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.

Из-за избыточной длины командной строки mdadm ее представление разбито на две строки.

В данном примере оборудование содержит один 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
#