Паника ядра в Solaris бывает очень редко, но… всякое бывает. А если вы сами пишете драйвера или экпериментируете с OpenSolaris, то может это событие и нередкое ;) Итак, сервер сбросил корку (/var/crash/`hostname`/unix.* и /var/crash/`hostname`/vmcore.*)
Что использовать для анализа дампа памяти после паники?

Инструмент Комментарии
mdb (Solaris Modular Debugger) Уже установлен в Solaris. Пакеты SUNWmdbr,SUNWmdb
MDeBug: An MDB-Based Debugging Tool for the Solaris 8 and 9 OS Скрипт, выполняющий стандартный набор запросов к mdb. Работает в режиме диалога.
ACT — «crash dump analyzer». Находится на EIS-DVD. Немножко бестолково генерит информацию. Позволяет разделить информацию, на несколько файлов (threads, summary, biowait итд ) Запускается /opt/CTEact/bin/act -s /tmp/my_analyze -n unix.0 -d vmcore.0
SolarisCAT Инструмент суперский, отлично задокументирован, на каждую команду написан подробнейший хелп. Из дампа можно выжать все, что только можно представить. Делали разработчики ядра Solaris, поддерживает различные фенички Solaris10, типа zones итд

Несколько ссылок в тему:

UPD: 20090709

Обновлено!
На сайте Symantec появился инструмент для поиска по номеру ошибок

В последних версиях Veritas volume manager ошибки имеют нумерацию типа V-5-X-XXXX. Поиск описания ошибки просто по коду обычно не приносит результата ;) Список ошибок был найден здесь, вместе с различными ссылками на документы по vxvm. Но, как мне кажется, лучше искать ошибки по нижеприведенной табличке.

Читать полностью »

Управлять ленточными приводами и роботом ленточной библиотеки под управлением NetBackup можно с помощью команд vmoprcmd и robtest. Например, воспользуемся библиотекой, чтобы считать информацию с ленточки из под ОС.

посмотреть статус ленточных приводов
vmoprcmd -dp

опустить привод под номером 10 (NetBackup не будет его использовать)
vmoprcmd -down 10

robtest
( выбрать библиотеку )
s p ( смотреть статус ленточек в mailslot )
s d ( смотреть статус ленточек в приводах )
s s ( смотреть статус ленточек в слотах библиотеки )
m p1 d3 (переместить ленту из mailslot 1 в привод номер 3)
q (выйти из robtest)

Внимание! Не оставляйте запущенную утилиту robtest, она мешает нормальной работе NetBackup. Обязательно выходите из нее.

выполняете с ленточкой команды из-под под ОС
mt -f /dev/rmt/6cbn rewind
tar xf /dev/rmt/6cbn

# отключаете использование ленточки в ОС
mt -f /dev/rmt/6cbn offline

снова через robtest переносите ленточку и возвращаете снова привод под управление NetBackup.
поднять привод под номером 10 (NetBackup будет его использовать дальше)
vmoprcmd -up 10

Ссылки по теме:
Supplemental Information to Media Manager System Administrator’s Guide for Automated Cartridge System Library Software

Обязательно устанавливайте Array Support Library (ASL) и Array Policy Module (APM, когда он есть) в vxvm для всех используемых массивов. Зачем это нужно? Дело в том, что эти модули используется для повышения надежности доступа к массивам. В частности, vxdmp определяет тип доступа к массиву (active-active, active-passive), для наиболее надежного соединения, скорости переключения при отказе одного из каналов, балансировки нагрузки.
Еще одна причина — информация о дисковой группе хранится не на всех дисках, а по умолчанию — на 10-20% дисков, и vxvm старается раскидать по принципу наибольшей надежности их по разным контроллерам-массивам, а если тип массива не установлен — то информация будет сохраняться без учета особенностей сети хранения данных.

Итак, пример из жизни, реальная ситуация (сбой кластера): не установлена ASL, все тома отзеркалены на разные массивы, оба массива определелись как jbod-ы. В результате все конфигурационные копии попали на ОДИН массив, который, неожиданно отказал. Таким образом получилось, что есть копии всех томов, но дисковую группу импортировать нельзя, так как недоступны все конфигурационные копии.
Читать полностью »

Вообще, инкапсулировать загрузочные диски под управление vxvm следует только, если вы собираетесь их зазеркалить. Если же, такой цели не стоит (например, есть в наличии аппаратный raid-контроллер на внутренние диски), то не стоит городить огород.

Инкапсуляция (rootability, как это теперь называется) запускается командой
# vxdiskadm
Читать полностью »

Как разобраться, хватает ли нам процессорных мощностей и где тот параметр, который нам укажет, что процессора не тянут те задачи, которые мы им вешаем?
Читать полностью »

Очень часто смотришь на текст какого-нибудь awk или sed скрипта и понимаешь, что ничего в нем не понимаешь ;) Куча каких-то непонятных предопределеннх переменных, неадекватный синтаксис… Чтобы быть во всеоружии — нужно под рукой всегда иметь шпаргалку ;)
Очень полезные шпаргалки по awk и sed. Взяты отсюда.

Ну и в догонку — отличная подборка односточников на awk [локальная копия]. В комплекте со «шпаргалкой по AWK» получается отличный набор продвинутого awk-программера ;)

Достаточно часто приходится генирировать последовательности в shell. Например, создать 10 файлов с разными именами, или переименовать, или добавить в vxvm диски, присвоив им новые имена, или отформатировать последовательно диски с командной строки на дисковом массиве, ну и т.д. Самый простой и правильный способ — это использовать команду seq, но к сожалению, ее в solaris по умолчанию нет.
Итак, несколько примеров, как напечатать цифры от 1 до 10:

Эти генерилки работают везде
$ i=0; while [ $i -lt 11 ]; do echo $i; i=`expr $i + 1` ; done
$ for i in  1 2 3 4 5 6 7 8 9 10; do echo $i; done
$ perl -e 'print "$_\n" foreach(1..10)'

Эта работает только в bash
$ for (( i = 1; i < 11; i++ )); do echo $i; done

а эта только в linux
$ seq 1 10

Для повышения надежности сетевых соединений в Solaris можно использовать link aggregations или IPMP. Ниже по тексту — шпаргалка по IPMP.
Читать полностью »

Для повышения надежности сетевых соединений в Solaris можно использовать «link aggregations» или IPMP. Ниже по тексту — шпаргалка по «link aggregations».

В Solaris 10 появилась возможность объединять физические интерфейсы в один логический интерфейс (link aggregations). Tочнее, эта возможность была и ранее, но использовался дополнительный продукт — SunTruncking, теперь эта возможность есть по умолчанию. Для чего это нужно:

  • Увеличивается пропускная способность
  • Load balancing
  • Повышается надежность за счет резервных сетевых интерфейсов
  • Упрощается администрирование
  • Уменьшается пул необходимых ip-адресов

Необходимые условия для организации link aggregations:

  • сетевые коммутаторы должны поддерживать link aggregation control protocol (LACP). Смотрите документацию по по вашим коммутаторам.
  • на сервере могут объединяться интерфейсы с поддержкой GLDv3. Сейчас это интерфейсы xge, e1000g, и bge. (здесь список более полный)
  • все интерфейсы должны быть в full duplex mode и работать с одной скоростью.
  • переменная obp local-mac-address? должна быть установлена в true ( # eeprom local-mac-address?=true )

Читать полностью »