Почему моя группа томов 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" должна дать вам правильные сопоставления). Надеюсь, это поможет.

Другие вопросы по тегам