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 #