суботу, 30 травня 2009 р.

Тестуємо MirrorDisk/UX (програмний RAID) на HP-UX

Нещодавно стикнувся із цікавим завданням - показати замовникові, що зеркалювання дисків на сервері HP rp3440 (платформа PA-RISC) під управлінням HP-UX [HP Release B.11.11] працює коректно, і при виході з ладу одного з дисків система коректно працюватиме. Що ж, розібрався, і завдяки HP Solution Center витратив на це небагато часу (Thanks to Frederic Holler) ;)

Як поставити продукт і налаштовувати MirrorDisk/UX я описувати не буду (якщо комусь дуже цікаво - свистіть, напишу), лише як перевірити коректність роботи ;) І кілька порад, що зробити, щоб не мати проблем при виході одного із дисків з ладу.

Отже, спочатку перевіряємо, що продукт встановлено:
# swlist |grep Mirror
Очікуваний результат схожий на:
B5403BA MirrorDisk/UX …номер версії….
дослівно не скажу, не зберіг виводу цієї команди, але загальний принцип простий - перевіряємо, що продукт встановлено
Далі дивимось, які диски у нас пристуні у системі:
# ioscan -fnC disk

Class I H/W Path Driver S/W State H/W Type Description

=========================================================================
disk 0 0/0/2/0.0.0.0 sdisk CLAIMED DEVICE _NEC DVD+-RW ND-6650A

/dev/dsk/c0t0d0 /dev/rdsk/c0t0d0

disk 1 0/1/1/0.0.0 sdisk CLAIMED DEVICE HP 73.4GST373455LC

/dev/dsk/c2t0d0 /dev/rdsk/c2t0d0

disk 2 0/1/1/0.1.0 sdisk CLAIMED DEVICE HP 73.4GST373455LC

/dev/dsk/c2t1d0 /dev/rdsk/c2t1d0

#
Запам’ятовуємо, які диски у нас присутні у системі, і звіряємо з тим, що ми бачили при старті системи
Processor Speed State CoProcessor State Cache Size
Number State Inst Data

——— ——– ——————— —————– ————

0 800 MHz Active Functional 67108864 67108864
1 800 MHz Idle Functional 67108864 67108864

Central Bus Speed (in MHz) : 200

Available Memory : 8388608 KB

Good Memory Required : Not initialized. Defaults to 32 MB.
Primary boot path: 0/1/1/0.0

Alternate boot path: 0/0/2/0.0

Console path: 0/7/1/1.0

Keyboard path: 0/0/4/0.0
Processor is booting from the first available device.
To discontinue, press any key within 10 seconds.
Звідси нас цікавлять два “пункти”, а саме первинний та альтенативний шляхи завантаження системи, як видно з виводу, альтернативний шлях завантаження вказує на диск, якого у системі немає ;) А мав-би вказувати не на 0/0/2/0.0, а на 0/1/1/0.1 (забув сказати, але читач, якому це буде справді цікаво напевне у курсі, що для того, щоб побачити це меню, підключатись необхідно до консолі використовуючи RS232 чи Ethernet-порт (якщо налаштовано iLO ;))



Щоб виправити альтернативний шлях завантаження, використовуємо команду setboot з ключом -a (цей ключ вказує, що ми встановлюємо альтернативний шлях):
# setboot –a /dev/rdsk/c2t1d0

або


# setboot –a 0/1/1/0.1
(читаємо з виводу команди ioscan -fnC disk)

Далі, перевіряємо, що наші файлові системи зеркалюються і засинхронізовані:
# vgdisplay

— Volume groups —

VG Name /dev/vg00

VG Write Access read/write

VG Status available

Max LV 255


Cur LV 8

Open LV 8

Max PV 16

Cur PV 2

Act PV 2

Max PE per PV 4384

VGDA 4

PE Size (Mbytes) 16

Total PE 8748


Alloc PE 8372

Free PE 376

Total PVG 0

Total Spare PVs 0

Total Spare PVs in use 0
— Logical volumes —

LV Name /dev/vg00/lvol1

LV Status available/syncd


LV Size (Mbytes) 304

Current LE 19

Allocated PE 38

Used PV 2
LV Name /dev/vg00/lvol2

LV Status available/stale


LV Size (Mbytes) 16096

Current LE 1006

Allocated PE 2012

Used PV 2
………
LV Name /dev/vg00/lvol8


LV Status available/stale

LV Size (Mbytes) 16608

Current LE 1038

Allocated PE 2076

Used PV 2
— Physical volumes —


PV Name /dev/dsk/c2t0d0

PV Status available

Total PE 4374

Free PE 188

Autoswitch On
PV Name /dev/dsk/c2t1d0


PV Status available

Total PE 4374

Free PE 188

Autoswitch On
У виводі команди нас цікавсять настіпні параметри LV Status (вказує статус логічного розділу) та Used PV (вказує, на скілької фізичних розділах присутній наш логічний розділ. В ідеалі, повинно бути Used PV 2 та LV Status available/syncd (доступний, синхронізований).

Якщо на одному чи декількох розділах available/stale, то необхідно синхронізувати копії (чомусь це не відбулось автоматично, якщо нещодавно ви витягувати один з дисків, то цілком можливо прямо зараз відбувається автоматична синхроніація ;))

Вручну засинхронізувати диски досить просто:

bash-3.2# vgsync vg00

Resynchronized volume group /dev/vg00
Resynchronized logical volume “/dev/vg00/lvol1″.
Resynchronized logical volume “/dev/vg00/lvol2″.
Resynchronized logical volume “/dev/vg00/lvol3″.
Resynchronized logical volume “/dev/vg00/lvol4″.
Resynchronized logical volume “/dev/vg00/lvol5″.
Resynchronized logical volume “/dev/vg00/lvol6″.
Resynchronized logical volume “/dev/vg00/lvol7″.
Resynchronized logical volume “/dev/vg00/lvol8″.
Resynchronized volume group “vg00″.

bash-3.2#
Далі перевіряємо LIF на нашому диску:
# lifcp /dev/rdsk/c2t1d0:AUTO /tmp/AUTO
# more /tmp/AUTO
(тут /dev/rdsk/c2t1d0 - альтернативний диск, у вашому випадку шлях може відрізятись, перевіряємо за допомогою ioscan -fnC disk)
При правильно налаштованому мірорингу, вивід останньої команди повинен бути hpux -lq /stand/vmunix, якщо він відрізняється (наприклад немає ключа -lq), встановлюємо команду завантаження:

# mkboot -a “hpux -lq /stand/vmunix” /dev/rdsk/c2t1d0
(про /dev/rdsk/c2t1d0 ви напевне в курсі ;))

Теоретично цього достатньо - можна перевіряти працездатність ;)

Вимикаємо машинку, витягуємо другий (альтернативний) диск, включаємо, і йдемо покурити… повернуємось через 10хв і бачимо Kernel panic :(

Чого і слід було очікувати, оскільки ми завантажились без -lq (-lq = switch off quorum). Перезавантажуємось, чекаємо моменту

Processor Speed State CoProcessor State Cache Size

Number State Inst Data

——— ——– ——————— —————– ————

0 800 MHz Active Functional 67108864 67108864

1 800 MHz Idle Functional 67108864 67108864
Central Bus Speed (in MHz) : 200


Available Memory : 8388608 KB

Good Memory Required : Not initialized. Defaults to 32 MB.
Primary boot path: 0/1/1/0.0

Alternate boot path: 0/0/2/0.0

Console path: 0/7/1/1.0

Keyboard path: 0/0/4/0.0

Processor is booting from the first available device.
To discontinue, press any key within 10 seconds.
не пізніше ніж за 10 секунд тиснемо будь-яку клавішу (я зазвичай полюбляю пробіл ;)), отримуємо меню завантаження:
Boot terminated.
—- Main Menu —————————————————————
Command Description

——- ———–

BOot [PRI|ALT|

] Boot from specified path

PAth [PRI|ALT] [

] Display or modify a path

SEArch [DIsplay|IPL] [

] Search for boot devices
COnfiguration menu Displays or sets boot values

INformation menu Displays hardware information


SERvice menu Displays service commands
DIsplay Redisplay the current menu

HElp [



|] Display help for menu or command

RESET Restart the system

—-

Main Menu: Enter command or menu >

Ок, вибираємо головний шлях завантаження (для цього можна набрати у командній стрічці boot pri, bo pri, або за допомогою команди sea знайти доступні пристрої, найшвидший спосіб - bo pri)
Main Menu: Enter command or menu > bo pri
Interact with IPL (Y, N, or Cancel)> y

На зпитання інтерактивності відповідаємо ствердно, і у командній стрічці IPL даємо команду на завантаження із ключем -lq:
IPL> hpux -lq
Усе, працює.

Наступний тест - спробуємо завантажитись із альтернативного диску, для цього (при викненому сервері) витягуємо основний диск, включаємо машинку. Шляхів завантаження у нас є декілька - ручний (аналогічно завантаженню із основого диску, за виключенням bo alt, замсть bo pri), або автоматичний - просто вмикаємо машинку, і чекаємо - при відсутності осноного шляху завантаження, система спробує звантажитись із альтернативного, а якому у нас уже прописана команда hpux -lq /stand/vmunix у файлі LIF.

Після завершення усіх тестів, не забудьте перевірити статус розділів за допомогою vgdisplay та при потребі синхронузувати розділи (vgsync).

Також читайте:

- інші статті по темі HP-UX;
- статті про linux/unix на особистому блозі;
- статті про нетбуки та linux на них;
- статті про FreeBSD авторства Андрія Поданенка @podarok

Немає коментарів:

Дописати коментар