Почему моя группа томов lvm2 работает только с устройством отображения многолучевого распространения, а не с powerpath?
Мой сервер - Oracle Enterprise Linux 5.4 (RHEL5) на blade-сервере hp (x64) с qlogic HBA, подключенными к SAN-хранилищу EMC clariion.
Мы переходим от многолучевого распространения к PowerPath, потому что EMC и команда хранения компании не будут поддерживать многолучевое распространение.
В настоящее время мои группы томов 3 lvm используют устройства /dev/dm-X, которые создает устройство отображения /multipath:
- vg01 - это один раздел диска на луне 25 ГБ
- vg02 - 3 лун по 16 Гб, без разделов
- vg03 - это 1 тб лун, без разделов.
(эксперимент 1) Я отключаю MultiPath и отключаю его в конфигурации проверки, а затем добавляю следующий фильтр в lvm.conf
,
filter = [ "a|/dev/emc.*|", "a|/dev/cciss.*|", "r/.*/" ]
и когда я перезагружаюсь:
- vg01 не обнаруживается
- vg02 обнаружен успешно
- VG03 обнаружен успешно
vg01 не обнаружен на диске emcpower, хотя я вижу там содержимое заголовка lvm с помощью dd. Два других VG обнаружены просто отлично. также все устройства dm-X все еще находятся в / dev /.
(2) Поэтому я удаляю фильтр и включаю черный список multipath.conf
:
blacklist {
devnode "*"
}
Теперь при перезагрузке больше нет устройств dm-X в / dev /, и vg02 и vg03 обнаружены на их устройствах emcpower, но vg01 все еще не обнаруживается.
(3) Я перезагружаюсь как с фильтром, так и с черным списком, и в результате vg01 не обнаруживается, но с vg02 и vg03 все в порядке.
Может ли кто-нибудь помочь мне выяснить, почему эта группа томов кажется необнаружимой без устройства-сопоставителя / многолучевого распространения?
И кто-нибудь может объяснить, каковы отношения между lvm, device-mapper и multipath?
1 ответ
В настоящее время у меня нет доступа к оборудованию EMC, чтобы проверить это, но мне пришлось настроить его на нескольких предыдущих работах. Если я правильно помню, вы должны были использовать эту строку фильтра: filter = ["r / sd./", "A /./"] Это удаляет все устройства sd (sda, sdb и т. Д.), А затем разрешает все остальное. Конечно, если вы загружаетесь с внутреннего диска, который отображается как / dev / sda, вам придется указать: filter=["r/sd[bz]./", "A /./"] Или что-то в этом роде. аналогичный.
Изменить: я нашел строку конфигурации в моих старых заметок (я думаю, что это было для RHEL 4, но все еще должно работать); Этот фильтр предназначен для сервера HP, который загружается с внутреннего raid-контроллера (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" должна дать вам правильные сопоставления). Надеюсь, это поможет.