SAN + RHEL: Последовательность нумерации SCSI устройств

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
weih
member
Сообщения: 26
Зарегистрирован: 12 дек 2004, 10:48

SAN + RHEL: Последовательность нумерации SCSI устройств

Сообщение weih » 30 авг 2007, 16:31

Господа!

такая вот проблема:

есть сервер (RHEL4) с 2 SCSI дисками. система проинсталирована на sda, sdb используется для хранения данных. + в сервере есть FC-адаптеры по которым с SAN стораджа презентуются виртуальные диски, которые для сервера видятся как локальные SCSI. И вот ведь какая неприятность: при работе сервера ему презентуется диск, он у него появляется как sdc, мы его размечаем, монтируем, всё пучком. Но вот стоит перезагрузиться и этот sdc становится sda, а системный диск который был sda переезжает на sdb и т.д... последствия очевидны. Я догадываюсь, что это происходит из-за того, что первыми по SCSI инициализируются FC-адаптеры, а только потом уже локальные диски. Что я пробовал:

1) использовать udev для переименовывания дисков. я прописывал в правила (которые шли ДО дефолтных) KERNEL="sd*", BUS="scsi", SYSFS={vendor}="HSV210", NAME="hsv%n" Он работал как то странно - т.е. создавал устройство hsv1 но при этом оставлял sda для диска со стораджа. (хотя я не использовал в правиле SYMLINK)

2) Я пробовал в /etc/modprobe.conf ставить модули локальных SCSI карт в начало, а модули FC-карт в конец списка - не помогло.

кто-нибудь может дать дельный совет?

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 30 авг 2007, 18:11

Смотрите про опцию "persistent binding" для Вашего FC HBA

weih
member
Сообщения: 26
Зарегистрирован: 12 дек 2004, 10:48

Сообщение weih » 31 авг 2007, 10:13

спасибо, уже разобрался.

Для тех кто интересуется решением проблемы
я просто стал использовать не имена дисков при монтировании (всех дисков и локальных и со стораджа), а их ID.
т.е. в /etc/fstab заместо

/dev/sda1   /disk1           ext3    defaults        1 1

я стал использовать

/dev/disk/by-id/scsi-3600508b40010802f0001000000130000-part1            /disk1                       ext3    defaults        1 1

и всё сразу стало на свои места и никуда больше не терялось.

спасибо!

weih
member
Сообщения: 26
Зарегистрирован: 12 дек 2004, 10:48

Сообщение weih » 31 авг 2007, 11:37

НО. тут возникло требование обеспечить отказоустойчивость с помощью программного RAID1 по локальным SCSI sda и sdb.

т.е. в /etc/fstab можно будет монтировать по /dev/mdX и т.д.. но вот ведь проблема:

КАК обеспечить для md привязку к определенным партициям дисков? Ведь если не ошибаюсь mdadm работает с /proc/partition а там не содержится UUID. получается если я сейчас соберу md raid, а потом подключу со стораджа дополнительные диски у моего md raid окажутся неверные партиции.

как с этим побороться?

заранее спасибо!

and3008
Заслуженный сетевик
Сообщения: 1109
Зарегистрирован: 03 янв 2004, 23:30
Откуда: Н.Новгород

Сообщение and3008 » 31 авг 2007, 13:59

Ведь если не ошибаюсь mdadm работает с /proc/partition а там не содержится UUID.
Вот здесь вы ошибаетесь. Все там есть. Делайте, все получится.

weih
member
Сообщения: 26
Зарегистрирован: 12 дек 2004, 10:48

Сообщение weih » 31 авг 2007, 16:07

and3008 писал(а): Вот здесь вы ошибаетесь. Все там есть. Делайте, все получится.
там есть UUID самого md raid. но работает но всё равно с партициями типа /dev/sda1 /dev/sdb2

но я нашел уже решение, спасибо

koliama
Junior member
Сообщения: 6
Зарегистрирован: 08 сен 2005, 16:45
Откуда: СПб

Сообщение koliama » 20 сен 2007, 15:49

1. Linux именует блочные устройства (диски) в порядке их обнаружения при загрузке системы. Т. е. если у вас первым подгружается модуль fc hba - соот-но LUNs, которые выданы с SAN будут именоваться по порядку начиная с первой буквы (sda, sdb и т. п.) Т. о. в вашем случае надо поменять порядок загрузки модулей (/etc/modprobe.conf для RH начиная с 4-ки или /etc/modules.conf для 3-ки)
2. Если вы хотите уйти от привязки к именам устройств в fstab - самый простой путь для этого- использовать LABEL на диске. С помощью parted задаете метки и прописываете их в fstab в виде
LABEL=/boot             /boot                   ext3    defaults        1 2

Удачи :)

Аватара пользователя
CrazyFrog
Advanced member
Сообщения: 210
Зарегистрирован: 16 авг 2005, 23:09
Откуда: Мурманск

Сообщение CrazyFrog » 27 сен 2007, 21:20

Вся драма состоит в том, что mkinitrd по умолчанию добавляет модули всех установленных контроллеров в initrd. И при загрузке они загружаются по алфавиту, так что lpfc.ko от Emulex загружается раньше, чем mpt-xxx.ko от внутренних дисков на LSI logic.

И получается, что при первых ребутах без SAN sda -- это внутренний диск, а после подключения LUN'ов, sda становится диском из массива и все идентификаторы меняются.

Решение - заставить mkinitrd не добавлять в бутархив драйверы FC HBA - lpfc.ko и ql2*.ko.

А mdadm действительно оперирует UUID'ами устройств, просто их явно не видно. Чтобы показать их вместе с остальными метаданными массива, есть опция --examine:
mdadm  --examine /dev/hdb2 | grep UUID
          UUID : 1c8261bf:e7fa5787:f3741843:6a6b4222

koliama
Junior member
Сообщения: 6
Зарегистрирован: 08 сен 2005, 16:45
Откуда: СПб

Сообщение koliama » 28 сен 2007, 14:44

To CrazyFrog
Совершенно точно модули грузятся не по алфавиту :) Смоделируйте ситуацию и убедитесь сами.

Аватара пользователя
CrazyFrog
Advanced member
Сообщения: 210
Зарегистрирован: 16 авг 2005, 23:09
Откуда: Мурманск

Сообщение CrazyFrog » 02 окт 2007, 00:36

Да ну чего спорить? На redhate 4 в /sbin/mkinitrd  первый же вызов sort показывает, что они сортируются по алфавиту  LC_ALL=C.

Другой вопрос, что из-за асинронности между загрузкой модулей HBA и получением ответов на INQUIRY/REPORT LUNS диски не последовательно появляются.

koliama
Junior member
Сообщения: 6
Зарегистрирован: 08 сен 2005, 16:45
Откуда: СПб

Сообщение koliama » 02 окт 2007, 20:09

Не совсем понимаю, причем тут mkinitrd и сортировка при создании загрузочного имиджа..
Еще раз проверил поведение rhel as 4 при разном порядке перечисления модулей в /etc/modprobe.conf
1. cat /etc/modprobe.conf
alias scsi_hostadapter qla2322
alias scsi_hostadapter1 mptbase
alias scsi_hostadapter2 mptscsih
Делаем mkinitrd и перезагружаемся.

#cat /proc/scsi/scsi
Host: scsi3 Channel: 00 Id: 00 Lun: 00
 Vendor: HP       Model: HSV210           Rev: 5110
 Type:   RAID                             ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 01
 Vendor: HP       Model: HSV210           Rev: 5110
 Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 00 Lun: 00
 Vendor: SEAGATE  Model: ST373207LC       Rev: 0003
 Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 02 Lun: 00
 Vendor: SEAGATE  Model: ST373207LC       Rev: 0003
 Type:   Direct-Access                    ANSI SCSI revision: 03

2. cat /etc/modprobe.conf
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptscsih
alias scsi_hostadapter2 qla2322

Делаем mkinitrd и перезагружаемся.

#cat /proc/scsi/scsi

Host: scsi0 Channel: 00 Id: 00 Lun: 00
 Vendor: SEAGATE  Model: ST373207LC       Rev: 0003
 Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 02 Lun: 00
 Vendor: SEAGATE  Model: ST373207LC       Rev: 0003
 Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 00 Lun: 00
 Vendor: SEAGATE  Model: ST373207LC       Rev: 0003
 Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 02 Lun: 00
 Vendor: SEAGATE  Model: ST373207LC       Rev: 0003
 Type:   Direct-Access                    ANSI SCSI revision: 03

Соот-но в первом случае мы видим, что диск /dev/sda указывает на FC LUN, во втором - на локальный HDD. И никакая сортировка тут ни при чем.

Аватара пользователя
CrazyFrog
Advanced member
Сообщения: 210
Зарегистрирован: 16 авг 2005, 23:09
Откуда: Мурманск

Сообщение CrazyFrog » 05 окт 2007, 19:17

у меня они всегда отсортированы. нень разбиратся почему, может потому что ES, а не AS. Но врятли.

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей