Назад | Перейти на главную страницу

Почему моя группа томов lvm2 работает только с multipath device mapper, а не с powerpath?

Мой сервер - это Oracle Enterprise Linux 5.4 (RHEL5) на блейд-сервере HP (x64) с HBA-адаптерами qlogic, подключенными к EMC clariion SAN.

Мы переходим с multipath на powerpath, потому что emc и команда компании по хранению данных не будут поддерживать multipath.

В настоящее время мои 3 группы томов lvm используют устройства / dev / dm-X, которые создает device mapper / multipath:

(эксперимент 1) Я выключаю multipathd и отключаю его в конфигурации проверки, затем добавляю следующий фильтр в lvm.conf.

filter = [ "a|/dev/emc.*|", "a|/dev/cciss.*|", "r/.*/" ]

и когда я перезагружаюсь:

vg01 не обнаружен на его диске emcpower, хотя я могу видеть там заголовок lvm с помощью dd. Два других VG обнаруживаются нормально. также все устройства dm-X все еще находятся в / dev /.

(2) Поэтому я удаляю фильтр и включаю черный список всего в multipath.conf:

blacklist {
    devnode "*"
}

теперь при перезагрузке в / dev / больше нет устройств dm-X, а на их устройствах emcpower обнаружены vg02 и vg03, но vg01 все еще не обнаруживается.

(3) Я перезагружаюсь и с фильтром, и с черным списком, и результаты таковы, что vg01 не обнаруживается, но vg02 и vg03 в порядке.

Может ли кто-нибудь помочь мне понять, почему эта группа томов кажется необнаружимой без устройства-сопоставителя / многопутевого режима?

И может кто-нибудь объяснить, каковы отношения между lvm, device-mapper и multipath?

В настоящее время у меня нет доступа к оборудованию EMC, чтобы проверить это, но мне пришлось настраивать его на нескольких предыдущих работах. Если я правильно помню, вы должны были использовать эту строку фильтра: filter = ["r / sd./ "," а /./ "] Это удаляет все устройства SD (sda, sdb и т. Д.), А затем разрешает все остальное. Конечно, если вы загружаетесь с внутреннего диска, который отображается как / dev / sda, вам нужно будет указать: filter = ["r / sd [bz]./ "," а /./ "] или что-то подобное.

Изменить: я нашел строку конфигурации в своих старых заметках (я думаю, что это было для RHEL 4, но все равно должно работать); этот фильтр предназначен для сервера HP, который загружается с внутреннего рейд-контроллера (cciss) и имеет Powerpath для дисков с данными:

filter = [ "a|^/dev/cciss/.*|", "a|^/dev/emcpower.*|", "a|^/dev/loop.*|", "r /.*/" ]

Таким образом, он принимает устройства cciss, emcpower, любое устройство обратной связи и отклоняет все остальное (здесь применяются правила регулярных выражений).

Чтобы ответить на последнюю часть вашего вопроса, когда LVM выполняет сканирование, он ищет в / proc / partitions любое устройство, которое соответствует его фильтрам приема / отклонения, и сканирует эти блочные устройства на предмет заголовков LVM. Первое блочное устройство, которое он находит для конкретного заголовка тома LVM, - это то, что используется. Теперь, с SAN, и / dev / sda, и / dev / sdg (например) сопоставляются с одними и теми же данными, а также / dev / emcpowera (команда «powermt display all» должна предоставить вам правильные сопоставления). Надеюсь, это поможет.