В Solaris 11 появилась новая система управления пакаджами IPS (Image Packaging System) .
Смысл такой — есть хранилище в котором находится образ системы (ну точнее пакаджей, из которых она состоит). Обновить систему можно только из хранилища.

Если нужно быстро обновить систему из iso-шки
mount -F hsfs {full_path_to}/sol-11-1111-sruN-incr-repo.iso /mnt
pkg set-publisher -G '*' -g file:///mnt/repo solaris
pkg update
umount /mnt

Если у нас несколько систем, то логично создать хранилище
Читать полностью »

MPxIO может использовать load-balance алгоритмы
round-robin
logical-block
none
Обычно, включается опция load-balance=»round-robin» в файле /kernel/drv/scsi_vhci.conf .
На массивах Hitachi USP, USPV, VSP (и других работающих в active-active режиме) это приводит к тому, что каждая scsi-команда отрабатывает на следующем контроллере, при этом происходит задержка (rotational delay на диске, система ждет пока диск сделает оборот). Особенно заметно это на последовательных операциях ввода-вывода и на страйпированых томах vxvm или svm со страйпом 16кб.
Чтобы этого избежать,
Читать полностью »

Смотри также
Когда навалом процессоров… Часть 1
Когда навалом процессоров… Часть 2
Когда навалом процессоров… Часть 3

Сегодня учимся определять процессор, который обслуживает прерывания устройств ввода-вывода. Раньше пытались определять это анализируя вывод команды intrstat, но, оказывается, что есть команда pcitool.
С ее помощью можно посмотреть, какие процессора обрабатывают прерывания с каких устройств и переместить обработку прерываний на другой процессор.

Итак, определим, на какой шине pci расположены адаптеры qlc :
# cat /etc/path_to_inst |grep \"qlc\"
"/pci@400/pci@2/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0" 3 "qlc"
"/pci@400/pci@2/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0,1" 4 "qlc"
"/pci@400/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0" 7 "qlc"
"/pci@400/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0,1" 8 "qlc"
"/pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0" 2 "qlc"
"/pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0,1" 11 "qlc"
"/pci@500/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0" 5 "qlc"
"/pci@500/pci@2/pci@0/pci@2/pci@0/pci@2/SUNW,qlc@0,1" 6 "qlc"
"/pci@500/pci@1/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0" 9 "qlc"
"/pci@500/pci@1/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0,1" 10 "qlc"
"/pci@700/pci@2/pci@0/pci@3/pci@0/pci@2/SUNW,qlc@0" 0 "qlc"
"/pci@700/pci@2/pci@0/pci@3/pci@0/pci@2/SUNW,qlc@0,1" 1 "qlc"

Смотрим, какой процессор обрабатывает прерывания устройств на шине /pci@600
# pcitool /pci@600 -i
ino 6 mapped to cpu aa
Device: /pci@600/pci@1/pci@0/pci@4
Driver: pcieb, instance 42
ino 7 mapped to cpu 87
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0
Driver: qlc, instance 2
ino 8 mapped to cpu 86
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0
Driver: qlc, instance 2
ino 9 mapped to cpu 85
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0,1
Driver: qlc, instance 11
ino a mapped to cpu 84
Device: /pci@600/pci@1/pci@0/pci@4/pci@0/pci@2/SUNW,qlc@0,1
Driver: qlc, instance 11
...

номер прерывания (ino) и номер процессора (cpu) в шеснадцатеричном виде.

Перенесем прерывание ino 7 с процессора 87 на процессор ff
# pcitool /pci@600 -i ino=7 -w cpu=ff
Interrupts on ino 7 reassigned: Old cpu:87, New cpu:ff

Ну и далее — переносим все прерывания устройств ввода-вывода на один или несколько выделенных процессоров и объединяем их в процессорный сэт ( psrset ).

С недавнего времени в horcm конфигах (файлах, описывающих репликацию ShadowImage, COW или TruCopy) теперь очень просто описать Command device:

#dev_name dev_name dev_name
\\.\CMD-99999:/dev/rdsk/

Где 99999 — серийный номер вашего массива.
В более ранних версиях требовалось указывать конкретные LUN-ы, на которых располагались Command devices, что вызывало проблемы при переезде путей в SAN или, например, замене HBA. Теперь, при замене HBA, изменении номера контроллера после перезагрузки или проведении динамической реконфигурации итд — репликация продолжает работать.

  1. luxadm. Часть 1. Посмотреть
  2. luxadm. Часть 2. Сделать

Что можно сделать с помощью команды luxadm

При мультипатинге STMS(MPXIO) переключение пути с primary на secondary (на дисковых массивах в режиме active-passive). Посмотреть какие пути primary/secondary с помощью luxadm display /dev/rdsk/c14t6d0s2
# luxadm failover secondary /dev/rdsk/c14t6d0s2
Error: Device does not support failover
# luxadm failover primary /dev/rdsk/c14t6d0s2
Error: Device does not support failover

Переинициализировать порт hba (погасить и зажечь порт). Помогает при залипаниях и добавлении новых дисков со стороны массива.
# luxadm -e forcelip /dev/cfg/c3
# tail -100 /var/adm/messages
Oct 26 17:32:22 pioneer emlxs: [ID 349649 kern.info] [ 5.05F1]emlxs1: NOTICE: 730: Link reset. (Resetting link...)
Oct 26 17:32:22 pioneer emlxs: [ID 349649 kern.info] [ 5.031F]emlxs1: NOTICE: 710: Link down.
Oct 26 17:32:22 pioneer emlxs: [ID 349649 kern.info] [ 5.0631]emlxs1: NOTICE: 730: Link reset.
Oct 26 17:32:24 pioneer emlxs: [ID 349649 kern.info] [ 5.0549]emlxs1: NOTICE: 720: Link up. (4Gb, fabric, initiator)

Перевести устройство в offline (полезно при удалении определенных LUNов с массивов)
# luxadm -e offline /dev/rdsk/c14t6d0s2

Перевести устройство в online
# luxadm -e online /dev/rdsk/c14t6d0s2

Послать устройству команду reset
# luxadm -e dev_reset /dev/rdsk/c14t6d0s2

Зажечь или погасить лампочку на диске (работает только на некоторых устройствах)
# luxadm led /dev/rdsk/c14t6d0s2
# luxadm led_on /dev/rdsk/c14t6d0s2
# luxadm led_off /dev/rdsk/c14t6d0s2
# luxadm led_blink /dev/rdsk/c14t6d0s2

Обновить прошивку на hba (лучше пользоваться загрузчиком из firmware патча)
# luxadm fcode_download -d /path_to_firmware

  1. luxadm. Часть 1. Посмотреть
  2. luxadm. Часть 2. Сделать

Команда luxadm используется для работы с различными fc устройствами. Создавалась она для администрирования внутренних дисков серверов sf880 и fc-al, а в дальнейшем добавился функционал и эта утилита стала основной при работе с fc (в Solaris 10 появились команды fcinfo и mpathadm ). Синтаксис у команды непростой, но попробую ее причесать.
Итак, какие аргументы можно использовать
физический путь к fc портам hba или контроллеру (типа /devices/pci@700/pci@0/pci@c/SUNW,emlxs@0,1/fp@0,0:devctl или /dev/cfg/c6 )
WWN массива (типа 10000000c98b08d3)
путь к диску или ленте (/dev/rdsk/c6t1d0s2 или /dev/rmt/2)
Читать полностью »

На серверах c ILOM (это сервера Sun/Oracle T5x40, T3-x, T4-x, X22x0 итд ) можно смотреть и администрировать сообщения fma (Fault Management) как из Solaris (команды fmadm, fmdump, итд), так и из ILOM.  Если вдруг после сбоя система не грузится, то диагностировать можно с системного контроллера:
Читать полностью »

Начиная с solaris10 9/10 crash дампы системы сохраняются в упакованном виде:

# ls -la /var/crash/`hostname`
total 38124595
drwx------ 2 root root 12 Oct 11 13:21 .
drwxr-xr-x 3 root root 3 Oct 4 14:09 ..
-rw-r--r-- 1 root root 2 Oct 11 13:21 bounds
-rw-r--r-- 1 root root 315686912 Oct 10 11:56 vmdump.0

Размер дампа при этом значительно меньше, а скорость его создания — значительно выше.

Для того, чтобы проанализировать дамп, можно восстановить его в привычном виде:
Читать полностью »

Итак, помним о том что TIMEZONE — это только переменная среды и относится к локальному времени в текущей сессии. Время самого сервера идет в UTC и можно установить в текущей сессии время Australia/Sydney а в другой сессии Europe/Moscow.
Например:
# date
Wed Oct 5 16:38:33 MSD 2011
# export TZ=Asia/Phnom_Penh
# date
Wed Oct 5 19:38:39 ICT 2011

Все  TIMEZONE  описываются достаточно простыми правилами и легко могут быть исправлены и перекомпилированы. Т.к. для Беларуси еще нет нового патча TIMEZONE, то попробуем исправить эту ситуацию (эээ, ну все делается только на свой страх и риск, я ни за какие последствия не отвечаю :)

Проверяем, что проблема еще существует:
Читать полностью »

Переходы на зимнее-летнее время в России нынче отменяются, и вот под Solaris наконец появился патчик 146470-04. Так что всем быстро качать-ставить, а то меньше месяца осталось до часа X.
Если версия ядра 142909-17 и старше , то можно обойтись без перезагрузки — установили патч и запустить команду /usr/sbin/tzreload , если же ОС старая, то придется перезагрузиться.
Проверка :
# zdump -v Europe/Moscow |grep 2011
Europe/Moscow Fri Sep 30 13:15:29 2011 UTC = Fri Sep 30 17:15:29 2011 MSD isdst=1
Europe/Moscow Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0
Europe/Moscow Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSD isdst=1
Europe/Moscow Sat Oct 29 22:59:59 2011 UTC = Sun Oct 30 02:59:59 2011 MSD isdst=1
Europe/Moscow Sat Oct 29 23:00:00 2011 UTC = Sun Oct 30 02:00:00 2011 MSK isdst=0
# patchadd 146470-04
# tzreload
# zdump -v Europe/Moscow |grep 2011
Europe/Moscow Fri Sep 30 13:15:08 2011 UTC = Fri Sep 30 17:15:08 2011 MSK isdst=0
Europe/Moscow Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0
Europe/Moscow Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0

К сожалению, для Украины и Беларуси, которые также отменили переходы на летнее-зимнее время патчей еще нет ;(