Posts tagged ‘commands’

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

Малоизвестной, но полезной командой для администратора NAS является команда filestats.
С ее помощью можно быстро составить картину распределения файлов на системе хранения по размеру, времени хранения, владельцу, и использовать это в планировании и администрировании.

Вот простой пример использования. Выведем статистику по файлам тома vol0 (системного root-vol), взяв для анализа снэпшот hourly.1:

toaster> filestats volume vol0 snapshot hourly.1
VOL=vol0 SNAPSHOT=hourly.1
INODES=274528 COUNTED_INODES=875 TOTAL_BYTостой примеррES=458354190 TOTAL_KB=143556

FILE SIZE         CUMULATIVE COUNT       CUMULATIVE TOTAL KB
1K                465                    1576
10K               832                    3356
100K              853                    3980
1M                856                    4660
10M               864                    32808
100M              875                    143524
1G                875                    143254
MAX               875                    143254

AGE(ATIME)        CUMULATIVE COUNT       CUMULATIVE TOTAL KB
0                 0                      0
30D               841                    132780
60D               850                    132932
90D               859                    143464
120D              875                    143528
MAX               875                    143528

UID               COUNT                  TOTAL KB
#0                873                    143528
#20041            2                      0

GID               COUNT                  TOTAL KB
#0                851                    41556
#30               21                     1972
#1                3                      0

Обратите внимание: счетчик количества выводится “накопительный” (cumulative). То есть, например, число файлов размера “до 1K” равно 465. А число файлов “до 10К (включая и файлы, посчитанные ранее в “до 1К”)” – 832. Таким образом число файлов “больше 1К, но меньше 10К” равно 832-465=367.

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

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

??ногда в работе админа случается необходимость найти и идентифицировать, например в целом шкафу дисков, какой-то конкретный. Допустим, вы не ведете подробную документацию по установленой системе (а зря), и расположение дисков и полок системы у вас не записано. Допустим вы хотите извлечь из стойки spare disk и переставить его в другую полку. Как найти правильный диск, и не выдернуть, ненароком, неправильный, рабочий?

На помошь приходит специальная команда led_on

fas1> priv set advanced – включаем режим повышенного приоритета (будьте осторожны!)
fas1> led_on 0c.54 – зажигает на диске с данным номером светодиод (LED) желтого цвета
fas1> led_off 0c.54 – гасит светодиод на диске с данным номером
fas1> priv set – выводит консоль из режима повышенных привелегий

Аналогично работает команда blink_on/blink_off, с понятным отличием, она светодиодом мигает.

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

Хотя в Data ONTAP и нет таких мощных скриптовых средств командной строки, как bash или PowerShell в Windows, но что-то для простейших скриптовых действий все же есть.

Команда называется source, и просто воспроизводит из поданного на вход файла команды одну за другой.

fas1> source /etc/my_scripts/vol_create.txt

Она может применяться, например, для массового и однообразного изменения каких-то параметров, например на множестве идентичных томов.

Сама по себе команда весьма примитивна, и имет множество недостатков и ограничений, о которых стоит помнить, начиная ее использовать.

  • ??сполнение не прерывается и не останавливается в случае ошибок, так что следует быть особенно внимательным при создании скрипта, условием в котором является обязательное выполнение каких-то предшествующих шагов. Особенно внимательно проверяйте опечатки и ошибки в аргументах и ключах.
  • Команда не умеет делать пайп (|) или перенаправление вывода в лог-файл.
  • Не поддерживаются wildcards (?, *, %).
  • Нет условного выполнения (IF THEN ELSE)
  • Нет операции паузы, так что команды выполняются последовательно и одна за другой, даже если какая-то команда может быть и не завершила операцию (например процесс выполнения команды продолжителен). Простой workaround – запускать команду sysstat между командами.
  • Почти единственное отклонение от простого листинга команд – возможность использовать # в качестве знака комментария. Строка, начинающаяся с # в подаваемой на вход source последователности команд, игнорируется.

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

Несмотря на то, что Data ONTAP не только не является “Линуксом”, она даже UNIX в общепринятом смысле этого слова не является (не устаю это повторять снова и снова, потому что это один из самых распространенных мифов в отношении NetApp), тем не менее, для удобства администраторов, а первыми администраторами систем хранения NetApp были, конечно же, администраторы UNIX-систем, в ней многое сделано “очень похожим на UNIX”. Структура директорий, правила именования файлов, и даже большинство команд похожи на свои аналоги из мира Юникса.

Вот, например, даже имется хорошо известная команда dd, хотя она и немного спрятана.

Отдайте в консоли команду

fas1> priv set advanced

Эта команда переведет вас в специальный “расширенный режим”, в котором вы получаете доступ к расширенному набору команд, но, ВН??МАН??Е, эти команды могут быть опасны для работы системы, и для сохранности данных! Пользуйтсь ими с ответственностью, и исключительно на свой страх и риск!
После ввода этой команды вы заметите изменившийся значок подсказки. Он указывает вам на то, что вы работаете в режиме повышенных привилегий. Для того, чтобы вернуться на обычный уровень, введите команду priv set admin или просто priv set

Среди множества дополнительных команд вам будет доступна и команда dd – disk dump, прямого посектороного копирования.

fas1*> dd if=/vol/vol0/etc/rc of=/vol/newroot/etc/rc – копирование rc в новое место 
  
Обратите внимание, вы НЕ можете запустить команду dd в фоне (еще раз напомню, что Data ONTAP это не линукс, и внешняя схожесть команд еще не значит внутреннего подобия), поэтому, если вы используете dd, то все копирование будет происходить “основной задачей”, наберитесь терпения. Кстати это еще один повод использовать вместо dd что-нибудь более продвинутое, например ndmpcopy.
Прервать работу dd можно нажатием Ctrl-C

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

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

Прежде всего таких следует найти и оценить загрузку от них. В этом поможет команда cifs top.

Для начала нам надо включить системную опцию:

fas1> options cifs.per_client_stats.enable on

Далее, собрав некоторую статистику, введем команду:

fas1> cifs top –n 3 –s w - показать трех самых активных пользователей, отсортировав список по объемам записи

    ops/s  reads(n, KB/s) writes(n, KB/s) suspect/s   IP              Name
     263 |     29   215 |     137   627 |        0 | 10.56.10.120 ENGR\varun
     248 |     27   190 |     126   619 |        1 | 10.56.10.120 ENGR\jill
     246 |     26   195 |     125   616 |       19 | 10.56.12.118 MKTG\bob

 

Более подробно о доступных ключах команды можно узнать из встроенной документации и манов.

Полезные команды: 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

Встроенный сниффер: 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.

В записную книжку админа NetApp (часть 4)

Продолжим список полезных команд для “записной книжки админа”

  • ndmpcopy <src-path> <dst-path> : запускает ndmpcopy
  • ndmpd status : показывает статус ndmpd
  • ndmpd killall : прерывает все процессы ndmpd
  • ifconfig : показывает/устанавливает адреса IP для сетевых интерфейсов
  • vif create : создает VIF (bonding/trunking/teaming)
  • vif status : показывает статус vif
  • netstat : отображает сетевую статистику
  • sysstat -us 1 : начинает выводить показатели загрузки системы через каждую 1 секунду (crtl-c для того, чтобы остановить)
  • nfsstat : выводит статистику nfs
  • nfsstat -l : выводит статистику nfs по клиентам
  • nfs_hist : показывает гистограмму операций nfs
  • statit : запускает/останавливает сборку показаний производительности [-b "begins" / -e "ends"]
  • stats : показывает статистику для всех счетчиков системы хранения. Смотри man для деталей и подробностей
  • ifstat : показывает статистику сетевых интерфейсов
  • qtree stats : показывает статистику ввода-вывода для qtree
  • environment : показывает детальную информацию по состоянию (температура и прочее) полок и контроллера
  • storage show <disk|shelf|adapter> : показывает детальную информацию по компонентам системы хранения

окончание следует.

В записную книжку админа NetApp (часть 3)

Продолжаем начатый в прошлых выпусках список полезностей из команд консоли NetApp.

  • /etc/exports : файл, управляющий экспортами NFS
  • rdfile /etc/exports : прочитать файл экспортов NFS
  • wrfile /etc/exports : записать в файл экспортов NFS
  • exportfs -a : экспортировать все файловые системы, перечисленные /etc/exports
  • cifs setup : устанавливает и настраивает cifs для использования
  • cifs shares : создает/показывает шары cifs
  • cifs access : изменяет параметры доступа к шарам cifs
  • lun create : создает LUN для iscsi или fcp
  • lun map : маппит LUN для igroup
  • lun show : показывает все LUN системы хранения
  • igroup create : создает igroup на контроллере
  • lun stats : показывает статистику ввода-вывода для LUN
  • disk show : отображает все диски системы
  • disk zero spares : затирает содержимое дисков, отмеченных как spare
  • disk_fw_update : обновляет firmware всех дисков системы
  • options : показывает/устанавливает различные опции системы хранения
  • options nfs : показывает/устанавливает опции NFS
  • options timed : показывает/устанавливает опции NTP
  • options autosupport : показывает/устанавливает опции autosupport
  • options cifs : показывает/устанавливает опции CIFS
  • options tcp : показывает/устанавливает опции TCP
  • options net : показывает/устанавливает опции сети

продолжение следует.