среда, 5 ноября 2008 г.

HP-UX. Mirroring Logical Volumes

Для создания зеркал разделов требуется наличие продуктов:
#swlist -l fileset -a state LVM.LVM-MIRROR-RUN
#swlist -l fileset -a state LVM-MirrorDisk.LVM-MIRROR
или же должно быть установлено HP-UX Enterprise или Mission Critical OE
Итак делаем зеркало для тома данных (как пример):
1. Находим свободный диск и создаем физический том:
#pvcreate -f /dev/rdisk/diskB
2. Расширяем группу этим диском:
#lvextend vg00 /dev/disk/diskB (именно disk а не rdisk, нам тут уже работать надо с блочными устройствами)
3. Создадим пока не зеркалированый том datavol:
#lvcreate -L 32 -n datavol vg00
#newfs -F vxfs /dev/vg00/rdatavol (а тут символьное устройство - r)
#mkdir /data
#mount /dev/vg00/datavol /data (а тут блочное устройство)
4. Посмотрим количество логических блоков (logical extents):
#lvdisplay -v /dev/vg00/datavol
тут смотрим LV и оно должно быть таким же как LE и PE.
5. Зеркалируем:
#lvextend -m -l /dev/vg00/datavol /dev/disk/diskB (используем блочные устройства)
6. Снова смотрим:
#lvdisplay -v /dev/vg00/datavol
Тут количество LE останется неизменым а вот количество PE должно удвоиться.
Если мы будем потом расширять наш том datavol, то он автоматически будет зеркалиться

Также можно и разобрать зеркало. Но хитро.
#lvsplit /dev/vg00/datavol
#vgdisplay -v vg00

Мы получим два тома: datavol и datavolb (имена ОС присвоит)
а далее как обычно:
#mkdir -p /backup/data
#fsck -F vxfs /dev/vg00/rdatavolb
#mount -o ro /dev/vg00/datavolb /backup/data

Тут у нас получилось разобранное зеркало на две части и одну мы используем как и ранее а вторую можем использовать для резервного копирования или для тестов.
Ну а когда наигрались, вернём назад зеркало:
#umount /backup/data
#lvmerge /dev/vg00/datavol /dev/vg00/datavolb
ОЙ! Не работает! И правильно! Нельзя соединить в таком виде. Мы указали что datavolb будет основным. А в это время datavol еще смонтирован в /data!
Нужно поменять местами!
#lvmerge /dev/vg00/datavolb /dev/vg00/datavol
#lvdisplay -v /dev/vg00/datavol

Выносим зеркало:
#lvreduce -m 0 /dev/vg00/datavol /dev/disk/diskB
#umount /data
#lvremove /dev/vg00/datavol
#vgreduce vg00 /dev/disk/diskB

Кстати, мы можем иметь до трёх зеркал - при создании зеркала в ключике -m указать 2. То есть к существующему добавить пару.

И насущный пример - зеркалим системную группу.
резервируем место для загрузочной области (около 2Мб, это делаем ключ -B)
#pvcreate -fB /dev/rdsk/cytydy (это наш свободный новый дисочек)

#vgextend vg00 /dev/dsk/cytydy

Создадим загрузочную область (мы ранее её зарезервировали)
#mkboot /dev/dsk/cytydy

Установим AUTO (это особенность процесса загрузки HP-UX). -lq значит подниматься даже без кворума (логично, коли один диск вышел из строя то кворума и нету)
#mkboot -a "hpux -lq" /dev/rdsk/cytydy

а на нашем текущем диске поправим файл AUTO для того же.
#mkboot -a "hpux -lq" /dev/rdsk/cxtxdx

посмотрим на наш файл AUTO:
#lifcp /dev/rdsk/cytydy:AUTO - (минус в конце - это stdout)

Если нам хватит зеркала только для однопользовательского режима то так:
#lvextend -m 1 /dev/vg00/lvol1 - это /stand
#lvextend -m 1 /dev/vg00/lvol2 - это swap
#lvextend -m 1 /dev/vg00/lvol3 - это корень

А если надо для многопользовательской то так:
#for i in 1 2 3 4 5 6 7 8; do lvextend -m 1 /dev/vg00/lvol$i; done

Далее:
#lvlnboot -r /dev/vg00/lvol3 - это восстановит указатель на корень
#lvlnboot -s /dev/vg00/lvol2 - восстановит указатель на primary swap
#lvlnboot -b /dev/vg00/vlol1 - восстановит указатель на /stand
#lvlnboot -R /dev/vg00 - это обновит ссылки

Далее посмотрим на пути загрузки.
#setboot
И установим в верные:
#setboot -a - тут есть три пути Primary, HA, Secondary. Нужно выставить правильные пути по физическим адресам дисков (пути ищем так ioscan -fnC disk). Тип пути указывается разными ключами

Ну и для SD-UX добавим строчку в /etc/bootconf:
l /dev/dsk/cytydy

А если зеркало погибло по какой-то причине, его надо восстановить:
Грузимся без коврума в однопользовательский режим
ISL>hpux -lq -is

теперь работаем:
Наш новый диск cytydy
#vgcfgrestore -n vg00 /dev/rdsk/cytydy

Делаем группу активной:
#vgchange -a y /dev/vg00

Синхронизируем зеркала:
#vgsync vg00

Создаём LIF:
#mkboot /dev/dsk/cytydy

Установим AUTO-файл:
#mkboot -a "hpux -lq" /dev/dsk/cytydy

Восстановим указатели:
для корня
#lvlnboot -r /dev/dsk/vg00/vlol3

для swap
#lvlnboot -s /dev/dsk/vg00/vlol2

для /stand
#lvlnboot -b /dev/dsk/vg00/vlol1

Комментариев нет: