Pull to refresh

Решение проблемы установки RHEL 4.6 в multipath-режиме

Multipath — это технология, которая позволяет соединить процессор и устройство хранения данных с помощью нескольких контроллеров. Примером может послужить такая схема.

image

Сегодня, с современными версиями RHEL 5.5, сложностей в установке системы в режиме multipath нет, но в более старых системах, таких как RHEL 4.6, проблема стоит достаточно остро.


В RHEL 5.5 же достаточно перед установкой ввести команду linux text mpath или linux mpath. После установки наше дисковое пространство будет «видно» под двум путям.

/sbin/multipath -ll
mpath1 (36001438005dec9060000500000370000) dm-7 HP,HSV450
[size=100G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
\_ 1:0:0:2 sdd 8:48 [active][ready]
\_ round-robin 0 [prio=10][enabled]
\_ 0:0:0:2 sdb 8:16 [active][ready]
mpath0 (36001438005dec9060000500000230000) dm-0 HP,HSV450
[size=70G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
\_ 0:0:0:1 sda 8:0 [active][ready]
\_ round-robin 0 [prio=10][enabled]
\_ 1:0:0:1 sdc 8:32 [active][ready]


При отказе одно из контроллеров ОС будет продолжать работать без сбоев, используя другой path к диску.

Но с RHEL 4.6. все не так просто. Команда linux text mpath в этой версии еще не работает, и система ставиться просто на обычное блочное устройство /dev/sda. Иначе после установки система монтируется в Read-Only mode. Хотя наша задача установить ее на multipath-устройство для того, чтобы система имела бОльшую отказоустойчивость.

Итак приступим. В начале всех начал мы должны сделать backup всех файлов, которые будут подвергаться изменению.

#cp /etc/fstab /etc/fstab.bak
#cp /etc/multipath.conf /etc/multipath.conf.bak


Забегая наперед, скажу, что для того, чтобы правильно собрать все воедино, необходим правильный mkinitrd, собирающий *.img с поддержкой mpath. Скачать его можно по этой ссылке

Файл mkinitrd.mp копируем в /usr/local/sbin для нашего же удобства.

cp ./mkinitrd.mp /usr/local/sbin/mkinitrd.mp

Далее нам необходимо получить wwn устройства для того, чтобы добавить его в конфиг и создать для него alias.

#scsi_id -g -s /block/sda
3600508b4000ce22900015000042c0000


Теперь редактируем файл /etc/multipath.conf

Закомментируем

#devnode_blacklist {
# devnode «*»
#}

Раскомментируем

multipaths {
multipath {
wwid 3600508b4000ce22900015000042c0000 ß наш wwid
alias os
}
}

и

defaults {
udev_dir /dev
polling_interval 10
selector «round-robin 0″
path_grouping_policy multibus
getuid_callout «/sbin/scsi_id -g -u -s /block/%n»
prio_callout /bin/true
path_checker readsector0
rr_min_io 100
rr_weight priorities
failback immediate
no_path_retry fail
user_friendly_names yes
}


Редатируем /etc/fstab
Исходное:
LABEL=/ / ext3 defaults 1 1
LABEL=/data /data ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults 1 2
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=/usr /usr ext3 defaults 1 2
LABEL=/var /var ext3 defaults 1 2
/dev/sdb2 swap swap defaults 0 0


/etc/fstab после редактирования (LABEL и /dev/sd* меняем на dm-multipath устройства)

/dev/mapper/os1 / ext3 defaults 1 1
/dev/mapper/os7 /data ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
/dev/mapper/os6 /home ext3 defaults 1 2
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/mapper/os5 /usr ext3 defaults 1 2
/dev/mapper/os3 /var ext3 defaults 1 2
/dev/mapper/os2 swap swap defaults 0 0


Собираем img с поддержкой dm-multipath

mkinitrd.mp /boot/initrd-2.6.9-67.ELlargesmp-with-Qlogic-MP.img 2.6.9-67.ELlargesmp


Создаем новую точку входа в /boot/grub/grub.conf

title Red Hat Enterprise Linux AS-with-Qlogic-MP (2.6.9-67.EL)
root (hd0,0)
kernel /boot/vmlinuz-2.6.9-67.ELlargesmp ro root=/dev/mapper/os1 rhgb quiet
initrd /boot/initrd-2.6.9-67.ELlargesmp-with-Qlogic-MP.img


Перезагружаемся и проверяем.

/sbin/multipath –ll
os (3600508b4000ce22900015000042c0000)
[size=50 GB][features="0"][hwhandler="0"]
\_ round-robin 0 [prio=1][active]
\_ 0:0:0:1 sda 8:0 [active][ready]
\_ round-robin 0 [prio=1][enabled]
\_ 1:0:0:1 sdb 8:16 [active][ready]
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.