При выполнении сложных работ, в результате которых могут быть потеряны данные или нарушена работа приложений можно воспользоваться отключением «подзеркала» томов в VxVM, в случае проблем можно затем быстро подняться с оторванного подзеркала. В случае, когда объемы данных значительны, а окно для выполнения работ ограничено, то восстановление из бэкапа может привести к нарушению SLA. А такой способ является простым, быстрым и надежным ;)
Итак, пусть у нас есть дисковая группа DG01, каждый том имеет по два зазеркалированных плекса. Плексы располагаются на 2 массивах (ARRAY_01 и ARRAY_01) и сабдиски имеют в своем названии эти имена (на самом деле это не обязательно, это нужно лишь чтобы отгрипать плексы, а как вы их разделите — это ваше дело, хоть руками ;)

1. Для начала убедимся, что у нас все тома имеют больше одного плекса и они все активны:
vxprint -g DG01 -v -F "%name" -e "v_pl_num < 2 "
vxprint -g DG01 -p | grep DISABLE

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

Пришлось разбираться с кучей wwn-устройств, а так как каждый вендор предпочитает выводить в том виде, каком ему удобнее, то по ходу прилось делать переводчик из одного вида в другой.
В результате получился вот этот переводчик. Позволяет преводить из вида типа 00:aa:bb:cc или 00aabbcc в друг друга, в верхний или нижний регистр, а также в сокращенную форму без ведущих нулей. Помогает при поиске совпадений для утилит различных вендоров.

Для тех, кто предпочитает командную строку могу предложить вариант на perl:

cat | perl -n -e 's/([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/$1:$2:$3:$4:$5:$6:$7:$8/gi; print'

На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот… сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который

    находит файлы, отсутствующие во втором каталоге
    находит файлы, отличающиеся по дате модификации и размеру
    находит файлы, отличающиеся по содержанию

Так как написан на perl, то под Windows требует установленного perl (ActivePerl, например) или можно скачать скомпилированный бинарник.

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

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

Очень часто смотришь на текст какого-нибудь 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. Ниже по тексту — шпаргалка по «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 )

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

Одностраничные шпаргалки по vxvm и vxfs. Датированы 2002 годом, но актуальность не потеряли ;)

Quick references:

Напоминалка опций unix команды find

Напоминалка опций unix команды find теперь и на русском языке. Удобный online интерфейс поможет вспомнить самые нужные опции и построить свою команду для поиска файлов.
Как и было обещано, перевел свой скриптик на русский язык, добавил немножко ссылок на русскоязычные документы по синтаксису команды, исправил несколько ошибок.

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

Слайс swap можно в on-line перекинуть, командой format переразбить диск (подрезать  swap, и увеличить или создать новый слайс на диске).

Итак, выбираем время, когда не сервер нет сильной дисковой нагрузки, тем более, сервер не свопит (пэйджинг не считается ;). Проверяем, сколько занято места в свопе и создаем новый своп файл (больше, чем занятое место в свопе).
# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 85,1 16 41945456 40637452

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