Author Archive

Полезные команды: logger

Простая, малоизвестная, но весьма полезная команда – logger. Эта команда пишет данную ей в аргументе текстовую строку в системный лог (/etc/messages). С ее помошью можно заносить в лог определенные записи, например отмечать там свои действия.

fas1> logger   *** Starting shelf firmware upgrade ***

Запущенная без аргумента она ожидает ввода со stdin (клавиатуры), завершаемого “по юниксному” – точкой в начале новой строки

fas1> logger 
—– > System going down for UPS system maintenance  < —–
System is expected to halt ungracefully while we test battery duration
-  > Sysadmin
.

Мониторинг среды: команда environment

Малоизвестная, но полезная команда консоли environment позволит наблюдать за различными показателями “среды обитания” системы хранения, таких как, например, температура, скорости вращения вентиляторов охлаждения, или состояние блоков питания.

fas> environment status – показывает всю доступную информацию 
fas> environment shelf – показывает информацию, относящуюся к дисковым полкам 
fas> environment chassis all – показывает информацию о шасси контроллера
fas> environment chassis list-sensors – показыват все датчики шасси, их состояния и пороги

Пример вывода команды environment status shelf:

          Environment for adapter 3:
                  Shelves monitored: 1    enabled: yes
                  Swap in progress? no    Environmental failure? no

                  EDM 1 (active):
                  SES Configuration, via loop id 3 in shelf 0x0:
                   logical identifier=0x3003040000000000
                   vendor identification=EuroLogc
                   product identification=Eurologic EDM
                   product revision level=0x01000101
                  Vendor-specific information:
                   backplane byte=0x1e     cabinet id=0x0
                   Backplane Type : Single Fibre Channel Backplane
                   Backplane Function : Storage System
                   Kernel Version : 1.0.A          App. Version : 1.1.A
                  Shelf:0         SES path:3.3    Device mask: 0x7f
                  Power Supply present: 0x3; with error: 0x0
                  Fans present: 0x3; with error: 0x0
                  Temperature Sensor present: 0x1; with error: 0x0
                  SES Electronics present: 0x1; with error: 0x0
                  Shelf temperature: 29C (84F)
                  High thresholds: critical: 55C (131F); warning 50C (122F)
                  Low thresholds: critical: 0C (32F); warning 10C (50F)

                  Disks physically present on adapter 3
                    Devices 0x1f-0x00: 0000007f
                    Devices 0x3f-0x20: 00000000
                    Devices 0x5f-0x40: 00000000
                    Devices 0x7f-0x60: 00000000

Banner message в консоли

В админской консоли, будь то терминал консольного порта, телнет или ssh, при подключении можно вывести на экран подключающегося (до ведения логина) какую-нибудь полезную информацию. В Linux/UNIX это часто называется banner или motd (message of the day).

Например туда можно написать какую-нибудь полезную информацию о контакте с дежурным админом:

В экстренных случаях, для контакта с системным администратором данной системы, позвоните по номеру +7-916-1234567 (круглосуточно)

Или принадлежности данной системы в большом хозяйстве датацентра:

Данная система хранения принадлежит отделу автоматизации ОАО Проммехавтоматика (комната 414, здание Б), ответственный Приходько Б.П.

Или вывесить в нем строгое предупреждение любителям посканировать открытые порты:

Все что вы получаете на свой компьютер может быть использовано против вас. Обращение к данной системе записывается, оставайтесь на месте, за вами выехали.

Для того, чтобы вывести сообщение при подключении, запишите его в файл /etc/issue или /etc/motd

Самым простым способом будет сделать это непосредственно из консоли с помощью команды wrfile, которая перенаправляет нажатия клавиш в файл, завершить запись файла можно нажатием Ctrl-C:

fas> wrfile /etc/issue
Warning: This system to be accessed only by Acme Corporation employees.
Have a nice day.
 
<Ctrl+C> error: broken pipe

MTTJL

MTTJL (Mean Time To Job Loss)

:D

Блокировка трафика протоколов на портах

Иногда бывает важно сделать так, чтобы трафик определенных протоколов вообще не ходил по определенным портам. Например, у нас есть система хранения, лицензированы протоколы iSCSI, CIFS и настроена репликация SnapMirror. Каждый из этих протоколов работает в своей физической сети. По CIFS ходят юзеры за файлами, по iSCSI прицеплены сервера, а SnapMirror льет свои данные по третьей сети, выделенной только под трафик репликации.

И мы хотели бы гарантировать, что каждый трафик будет существовать только в своей сети. До ONTAP 7.3 минимальные средства такого управления были только для iSCSI. Можно было разрешить или запретить iSCSI на конкретном порту, и только. Но начиная с 7.3 появилась новая возможность.

fas> options interface.cifs.blocked e0b
fas> options interface.iscsi.blocked e1a,e1b,e1c,e1d
fas> options interface.nfs.blocked e0a,e0c
fas> options interface.snapmirror.blocked e0d

Из приведенных примеров, как мне кажется, все понятно. Обратите внимание, что настройки на обоих контроллерах кластера должны быть строго идентичны! Также имейте ввиду, что данные настройки не работают для iSCSI HBA и TOE-карт, то есть это только для обычных NIC, как onboard, так и карт расширения.

Head Start Promotion

В блоге Ника Триантоса, инженера NetApp, обнаружена интересная информация. С февраля по конец апреля 2010 года NetApp объявил о промо-программе для своего обучающего ресурса NetApp University.

Вы можете зарегистрироваться там и пройти 9 бесплатных веб-курсов по ряду нужных и полезных тем. Вот список входящих в промо курсов:

  • Introduction to NetApp Products 
  • FAS2000 Series Hardware Maintenance
  • FAS3100 Series Hardware Maintenance
  • FAS6000 Series Hardware Maintenance 
  • Performance Acceleration Module Hardware Maintenance 
  • High Availability on Data ONTAP 7.3
  • SnapMirror Disaster Recovery 
  • SnapMirror Planning and Implementation
  • Technical Overview of System Manager 1.0  

Для того, чтобы попасть на NeApp University надо зарегистрироваться в NOW (NetApp On Web), основном портале клиентской поддержки NetApp, с логином уровня guest, после чего пойти на NetApp University, и авторизоваться там этим логином. Далее выбрать названные курсы, добавить их в свой список курсов, и пройти.

Для подробного путевождения по NetApp University eLearning, сайту, который делался только для настоящих джедаев, а простому человеку, впервые сталкивающемуся с чудовищностью юзабельности “корпоративных порталов” я подготовил вам небольшой (5 минут) скринкаст процесса. Посмотреть его можно тут: How to enroll a web-based course in NetApp University

Небольшой FAQ:

  1. Это доступно любому человку, или надо быть партнером или клиентом NetApp?
    Это доступно любому, если получить логин в NOW. Для guest этот процесс иногда может затянуться на неосмысленно продолжительное время, так что не откладывайте. Конечно действующий клиент NetApp также может эти курсы пройти, даже, наверное, должен. Однако, о диковинные извивы мысли маркетинга, под логином уровня customer вы этих курсов не увидите, только под guest, так что уже действующим клиентам, имеющим логин уровня Customer, то есть с зарегистрированной на него системой, придется сделать еще один аккаунт. Основная целевая группа промо – клиенты NetApp, которые уже купили систему хранения и ожидая ее прибытия хотели бы подготовиться.
  2. Когда заканчивается promo?
    Вы должны успеть зарегистрироваться до 30 апреля. Если вы зарегистрировались и заказали курсы в NU, то вы сможете их пройти и после 30 апреля. Имейте виду, если вы проапгрейдите ваш логин с guest до customer, заказанные курсы исчезнут. Впрочем, как я знаю, для “кастомера”  есть набор своих, как платных, так и бесплатных курсов на NU.

Примечание: После регистрации тренинга, вы получите на почту, которая соответствует вашему зарешистрированному в NOW логину, письмо о успешном заказе тренинга. Вот оттуда выдержка про аппаратные и программные требования:

This web-based course is available for access any time and can be completed over multiple sessions.

System Requirements
Please review the general system requirements below to ensure that web-based training (WBT) courses operate correctly.

Machine Specifications:

  • Pentium class personal computer
  • Windows 2000 or XP operating system
  • Broadband internet connection
  • Internet Explorer 6.x
  • Audio capability
  • 1024×768 or greater screen resolution
  • 256 MB or greater RAM

Other configuration notes:

  • Pop-up blockers can interfere with WBT course operation and should be turned off
  • Sun Java Plug-In should be installed and enabled
  • Adobe Flash player should be installed and enabled
  • Active X should be enabled
  • The following software configurations are currently being evaluated:
    • Microsoft Vista operating system
    • Internet Explorer 7.x
    • Firefox 2.x

Тестирование производительности: инструменты

Тематика тестирования производительности и stress-test не отпускает, и поэтому я решил сделать небольшой обзор некоторых “подручных” (тех, которыми приходилось пользоваться) средств оценки и измерения производительности.

Ранее я уже обозревал однозначный “мастхэв” программу IOmeter, теперь несколько слов о других средствах.

SIO

На вебсайте NOW, в разделе ToolChest найдена небольшая утилитка SIO – Simulated I/O, которая пусть  н столь совершенна и гибка как IOmeter, но тоже может использоваться с успехом. Она есть для Windows, Linux, Solaris, AIX и HP-UX, соотвтствующие версии можно скачать из ToolChest.

image

iozone

Исторически в Linux/UNIX средах популярна программка iozone. Она же существует и под другие платформы, в том числе и под win32. Текущая версия – 3.321 Программа имеет огромное количество ключей и настроек, в которых можно увязнуть надолго.  Описание всех их для всеобъемлющего тестирования далеко выходит за рамки этого поста, подскажу только, что с ключом –a (или –A, немного другой вариант) запускается некий дефолтный набор тестов “auto”. Также стандартный короткий тест запускается и при запуске iozone  без параметров, а ключи выводятся по –help.
В свое время в форуме sql.ru был составлен типовой паттерн тестирования, ориентированный на профиль баз данных, можно воспользоваться им.

iozone -i 0 -i 1 -i 2 -i 4 -i 5 -i 8 -e -o -c -s 4000M -r 4K -j 1 -f TEST4G4k.log -b /export/home/romx/testlog-4g4k.xls

iozone -i 0 -i 1 -i 2 -i 4 -i 5 -i 8 -e -o -c -s 4000M -r 64K -j 1 -f TEST4G64k.log -b /export/home/romx/testlog-4g64k.xls

Здесь, как видите, настроен тестовый файл размером 4000MB, и проводятся два тестирования, с блоком 4KB и 64KB, а результаты записываются в файл testlog-*.xls

SQLIO

Не отстает и Microsoft. На сайте MS можно скачать программку SQLIO, ориентированную, казалось бы, как явствует название, на симуляцию нагрузки MS SQL Server, однако в целом это утилита довольно широкого применения. Только под Win32. К программе прилагается файлик “Using SQLIO” - Using SQLIO to Stress Test an I/O Subsystem, с помощью которого можно во всем разобраться.

image 

SQLIOSim

Однако если вас в первую очередь интересует именно MS SQL Server и его характерные нагрузки и особенности, там же, на сайте MS TechNet можно найти программу SQLIOSim

image

Negotiation Failover

Это опция, которая инициирует Cluster Failover системы не только в случае аппаратного отказа контроллера в целом, но и просто в случае потери сетевого соединения котроллером. В случае, когда высокая доступность данных есть определяющее требование, можно попытаться таким образом защититься от, например, отказа сетевого коммутатора, или отдельного порта.

Однако примите во внимание, что включение Negotiation Failover может вызывать ненужные “ложные” срабатывания “на каждый чих”, со всей последующей суетой в виде кластерного файловера, и прочим, так что применяйте ее с осторожностью, и с полным пониманием того, что вы хотите достичь.

По умолчанию Data ONTAP считает возможные проблемы коннективити проблемой на стороне  коммутатора, решаемые его силами, и не пытается на своей стороне преодолевать их. В жизни проблемы связи, кроме проблем на стороне коммутатора, могут быть порождены, к примеру, отключенным или оборванным кабелем. Система хранения, к которой, и к данным которой нет доступа по сети – все равно что отключенная. Поэтому начиная с Data ONTAP 7.2 появилась опция запуска кластерного файловера по причине потери сетевого соединения.

Примеры:

Сначала разрешим negotiated failover (nfo) на интерфйсах в файле /etc/rc file:

ifconfig e0a ‘hostname’-e0a netmask 255.255.255.0 nfo partner 10.10.1.102

Далее установим опции ONTAP:

fas> options cf.takeover.on_network_interface_failure on
fas> options cf.takeover.on_network_interface_failure.policy [ any_nic | all_nics ]

Если на вашей кластерной системе невелико количество сетевых портов, или вы не имеете избыточности в вашей сетевой инфраструктуре, то использование Negotiation Failover (NFO) может повысить отказоустойчивость вашей системы.

ВНИМАНИЕ: Если обе кластерные ноды включены в один сетевой коммутатор, и коммутатор отключен, то система хранения может войти в так называемый  failover loop при котором каждая из систем попытается сделать failover на своего партнера. Внимательно оцените вашу структуру сети, чтобы не допустить такого развития событий.

Подробнее смотрите в документации на соответствующие команды ONTAP:

ifconfig:
http://now.netapp.com/NOW/knowledge/docs/ontap/rel731/html/ontap/cmdref/man1/na_ifconfig.1.htm

options:
http://now.netapp.com/NOW/knowledge/docs/ontap/rel731/html/ontap/cmdref/man1/na_options.1.htm

Организационное.

Я заметил, что многие люди читают этот блог странными способами.
Хочу привлечь ваше внимание к тому, что единственно правильный способ (два;) - читать его с адреса http://blog.aboutnetapp.ru как вебстраницу, либо подписаься на RSS по адресу http://blog.aboutnetapp.ru/rss (или он же: http://feeds.feedburner.com/AboutNetapp).

Это я к тому, что я постепенно буду стараться прекращать “левые” ретрансляции блога, и первой “жертвой” будет ITblogs, который уже опустился ниже плинтуса качеством и количеством материала, и превратился во “френдленту Миши Елашкина”, вдобавок глючащую без меры. Так что если вы все еще читаете меня в потоке itblogs, то рекомендую перенастроить ридер на меня напрямую.

Помните, что я публикую заметки и статьи в блоге еженедельно, по понедельникам и четвергам. Добропочитать. :)

Встроенный сниффер: pktt

В недрах OS Data ONTAP скрывается много удивительных гитик.
Вот, например, в каждой системе хранения NetApp, вернее в ее OS, имеется встроенный сниффер, запускаемый командой pktt, и собирающий дамп с интерфейса для последующей разборки, в формате стандартного юниксного tcpdump.

Использование:
pktt start {if | all} [-b bsize] [-d dir] [-s size] [-m pklen] [-v] [-i ipaddr] [-i ipaddr] …
pktt pause {if | all}
pktt dump {if | all} [-d dir]
pktt stop {if | all}
pktt status [{if | all}] [-v]
pktt delete [filename.trc]+
pktt list

Команда pktt управляет простым встроенным средством сбора ethernet-трафика. Пакеты захватываются с указаного интерфейса в специальный trace buffer, и после этого записываются в файл на диске. Данные записываются в формате “tcpdump”, который может быть прочитан разнообразными средствами, такими как tcpdump, ethereal (wireshark), и прочими программами-анализаторами и просмотрщиками. Вывод можно также конвертировать (утилитой editcap) в различные другие употребимые форматы, например для Sniffer, NetMon, и snoop.

pktt может захватывать пакеты для всех поддерживаемых типов медиа.

pktt start {if | all} [-b bsize] [-d dir] [-s size] [-m pklen] [-v] [-i ipaddr] [-i ipaddr] …

Команда start запускает трассировку, (или рестартует ее, если pktt находился в положении paused). Данные собираются в память, и пишутся в кольцеой буфер в памяти в формате “tcpdump”. Опции могут быть следующие:

-b размербуфера
Устанавливает размер буфера, который может быть определен в килобайтах или мегабайтах, при задании ‘k’ или ‘m’ после числа. Если не определен, то будет равен 128K, если вы не задали также опцию -d, что немного, но может быть достаточно в ряде случаев. Если задана опция -d, то значение буфера по умолчанию равно 1M. Значение может быть от 8K до 32M, то в очень редких случаях стоит устанавливать его большим 1-2M. Максимальный объем пространства, доступного pktt в памяти, равен 64M.

-d директория
Определяет путь к существующей директории, куда будет записан файл дампа. Файл будет иметь имя “if.trc” где”if” это имя интерфейса (например e0, fa3, и так далее.). Если опция не указана, то данные будут собиратся только в памяти, и после его заполнения, данные будут перезаписываться по кругу. Однак в любой момент можно сбросить содержимое буфера на диск с помощью команды pktt dump. Обратите внимание, что если система не будет успевать записывать все пакеты, то будет расти показатель счетчика “dropped” в выводе статуса pktt. Помните, что запись дампа всего трафика на диск может вызвать значительную нагрузку на запись для системы, и замедлить ее работу, поэтому, если это возможно, всегда ограничивайте область трассировки определенными IP-адресами и интерфейсами. Кроме этого, если вам не нужно сохранять содержимое всего пакета, то вы можете обрезать его командой -m.

Имейте ввиду, что любой существующий файл .trc будет молча перезаписан при выполнении этой команды.

-s размер
Эта опция позволяет вам задать максимальный размер файла дампа. Величина может быть задана с указанием “k”, “m”, или “g”. По умолчанию - 1G. Этот параметр всегда используется вместе с опцией -d. После достижения максимального лимита по размеру, пакеты продолжают собираться в буфер, но уже не пишутся на диск.

-m длинапакета
Этот параметр задает длину обрабатываемых пакетов (обрезая все что выходит за заданные пределы). По умолчанию - 1514 байт, что подходит для обычного ethernet, но может быть недостаточно для gigabit ethernet с использованием jumbo frames. Иногда может быть использован для ситуаций, когда не обязательно сохранять полное содержимое пакета. Однако, во многих случаях полезно сохранять полное содержимое всего пакета. В этом случае, если пакеты имеют размер свыше 1514 байт, вы можете задать желаемый максимум. Имейте виду, что некоторые декодеры (как пример - snoop) не обрабатывают пакеты более 1514 байт. Декодер ethereal/wireshark не имеет такой проблемы.

-i ipaddr [-i ipaddr] …
Эта опция включает простую возможность фильтрации. Можно задать до чтырех IP-адресов, для которых (на которые и с которых) будет записываться трафик. Это, кроме всего прочего, ограничит записываемый трафик только IP-пакетами, то есть в него не попадут пакеты, например arp/rarp, и прочие подобные.

pktt pause {if | all}
Команда “pause” приостанавливает сбор трафика с указаных интерфейсов. Незаписанные данные в буфере сбрасываются на диск. С помощью команды pktt start без других опций, можно возобновить сбор данных.

pktt dump {if | all} [-d dir]
Команда dump вызывает сброс содержимого кольцевого буфера в памяти в файл на диске. Если задана опция -d dir, то файл будет создан в указанной директории, в противном случае - в корневой директории root volume. Имя файла всегда равно if.trc (где if это название интерфейса), и содержимое записывается в формате “tcpdump”. Если файл уже существует, то он будет молча перезаписан.

pktt stop {if | all}
Эта команда выполнит остановку сбора дампа для всех заданных (или вообще всех) интерфейсов. Если вы пишете на диск, то все незаписанные на этот момент данные в буфере будут сброшен на диск. Если вы не задали файл записи дампа, то все данные в буфере будут потеряны. Это действие не требует подтверждения, так что будьте аккуратны.

pktt status [{if | all}] [-v]
Эта команда покажет вым состояние буфера и файла дампа для действующей трассировки. Используя “pktt status -v” вы получите полный статус всех интерфейсов.

pktt delete [filename.trc]+
Эта команда позволит вам удалить один или неколько файлов дампа в корневой директории. Длжен быть указан хотя бы один файл.

pktt list
Показывает список всех файлов трассировки в корневой директории.

Примеры:
pktt start e0
Эта команда начинает захват трафика с интерфейса “e0″. Весь трафик пищется в кольцевой буфер, размером 128K. Или же, если предыдущая команда приостановила сбор дампа, то она его возобновит.

pktt start fa3 -d / -s 100m -b 2m
Эта команда начинает захватывать дамп трафика на интерфейсе “fa3″, и писать в файл под названием “/fa3.trc” которому будеи позволено расти до максимальног размера в 100MB, с использованием буфера в 2MB.

pktt start el10 -d /home -m 10k -b 500k -i ehost1 -i ehost2
Эта команда начинает захватывать пакеты на и с определенных хостов, в данном примере “ehost1″ и “ehost2″ записывая их в файл “/home/el10.trc”. Пакеты размером до 10K записываются в буфер, размером 500K buffer. Отметьте, это будет работать только в том случае, если имена заданных хостов будут успешно резолвиться в DNS.

pktt start all -b 128k -i 172.20.4.1
Все интерфейсы начинают записыват дамп трафика на и с определенного IP-адреса. Это простой и быстрый способ посмотреть трафик, сли вы не уверены в том, какой интерфейс используется, но хотите увидеть пакеты с одного или более адресов IP.

26/0.547