Archive for the ‘tricks’ Category.

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

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

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

Иногда бывает важно сделать так, чтобы трафик определенных протоколов вообще не ходил по определенным портам. Например, у нас есть система хранения, лицензированы протоколы 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, так и карт расширения.

Консольный кабель и переустановка системы

Иногда пользователям попадается система хранения с “богатым прошлым”, “доставшаяся в наследство”, или иной странный некомплект. Часто встает вопрос, как привести такую систему в исходное состояние, избавившись от “тяжелого наследства” установленной конфигурации прежних владельцев.

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

В качестве консольного кабеля прекрасно подойдет аналогичный консольный кабель RJ-45-to-DB-9 от оборудования Cisco. Его распиновка такова:

Pinouts RJ45
Pin# Signal
1    connected to pin 8
2    Not connected
3    TXD (from appliance)
4    GND
5    GND
6    RXD (to appliance)
7    Not connected
8    connected to pin 1 

Для справки также привожу распиновку стандартного RS-232 serial DB-9

Pinouts DB9
Pin# Signal Data Flow Description
1    DCD    input     data carrier detected
2    SIN    input     serial input
3   SOUT    output    serial output
4    DTR    output    data terminal ready
5    GND    N/A       signal ground
6    DSR    input     data set ready
7    RTS    output    request to send
8    CTS    input     clear to send
9     RI    input     ring indicator 

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

>priv set advanced

>halt -c factory

После перезагрузки все ранее сделанные изменения конфигурации в /etc сотрутся, и будет запущен стартовый скрипт setup, обеспечивающий начальную установку впервые включенной системы.

Если необходимо сменить неизвестный или утерянный пароль root, следует, с подключенным к serial port кабелем и консолью, включить контроллер, и, при загрузке, на предложенную подсказку, нажать Ctrl-C и выбрать (3) Change password.

Обратите внимание, что сбросить пароль root возможно только с консольным подключением в контроллер.

Как проверить и восстановить целостность WAFL?

Возможно вы уже знакомы с так называемым special boot menu, которое появляется, если при загрузке с сериальной консоли нажать Ctrl-C. Любопытно, что кроме 6 предлагаемых вариантов, в этом меню есть и скрытые варианты. Например, если туда, вместо предлагаемых номеров, ввести WAFL_check [aggrname], где [aggrname] это имя соответствующего аггрегейта, то начнется подробная проверка консистентнсти WAFL на нем. Это может помочь если, по какой-то причине, состояние дисков и WAFL на них настолько нарушено, что система хранения не загружается, или не в состоянии разрулить проблему обычными средствами.

По сути это аналог fsck в single mode для привычных unix-type filesystem.

Пример:

Special boot options menu will be available.
NetApp Release 7.0.4P1: Mon Feb 27 14:36:15 PST 2006
Copyright (c) 1992-2006 Network Appliance, Inc.
Starting boot on Sat Mar 24 15:36:18 GMT 2007
(1) Normal boot.
(2) Boot without /etc/rc.
(3) Change password.
(4) Initialize all disks.
(4a) Same as option 4, but create a flexible root volume.
(5) Maintenance mode boot.
Selection (1-5)? WAFL_check aggr01
Sat Mar 24 15:38:15 GMT [wafl.vol.inconsistent:ALERT]: Aggregate aggr01 is inconsistent. Please contact NetApp Customer Support.
Sat Mar 24 15:38:15 GMT [raid.vol.replay.nvram:info]: Performing raid replay on volume(s)
Sat Mar 24 15:38:15 GMT [raid.cksum.replay.summary:info]: Replayed 0 checksum blocks.
Sat Mar 24 15:38:15 GMT [raid.stripe.replay.summary:info]: Replayed 0 stripes.
Checking aggr01…
WAFL_check NetApp Release 7.0.4P1
Starting at Sat Mar 24 15:38:17 GMT 2007
Phase 1: Verify fsinfo blocks.
Phase 2: Verify metadata indirect blocks.
Phase 3: Scan inode file.
Phase 3a: Scan inode file special files.
Phase 3a time in seconds: 9
Phase 3b: Scan inode file normal files.
(inodes 5%)
(inodes 10%)

(inodes 92%)
(inodes 97%)
(inodes 99%)

Следует также отметить, что не зря эта команда запрятана так далеко и неочевидно. WAFL зарекомендовала себя чрезвычайно стабильной и надежной файловой системой, и нужда в таком своеобразном fsck возникает, на самом деле, очень редко.

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

Заканчиваем наш длинный список команд, полезных для повседневного использования админом NetApp.

  • snapmirror intialize : инициализирует отношения репликации snapmirror
  • snapmirror update : обновляет вручную реплику snapmirror
  • snapmirror resync : ресинхронизирует snapmirror
  • snapmirror quiesce : приостанавливает связь реплик snapmirror
  • snapmirror break : разбивает установленные отношения репликации snapmirror
  • snapmirror abort : прерывает работу snapmirror
  • snapmirror status : показывает статус snapmirror
  • lock status -h : показывает локи, удерживаемые контроллером
  • sm_mon : управляет локами
  • storage download shelf : устанавливает прошивки полок
  • software get : загружает на контроллер OS
  • software install : устанавливает OS
  • download : обновляет установленную OS
  • cf status : показывает статус кластера
  • cf takeover : переносит на себя ресурсы кластерного партнера
  • cf giveback : возвращает ресурсы кластерного партнера
  • reboot : перегружает контроллер

В записную книжку админа 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 : показывает/устанавливает опции сети

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

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

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

  • license : отображает/добавляет/удаляет лицензии на системе хранения
  • maxfiles : показывает и добавляет inodes на томе
  • aggr create : создает aggregate
  • vol create <volname> <aggrname> <size> : создает том на aggregate
  • vol offline <volname> : переводит том в offline
  • vol online <volname> : переводит том в online
  • vol destroy <volname> : уничтожает и удаляет том
  • vol size <volname> [+|-]<size> : изменяет размер тома
  • vol options : отображает/изменяет опции тома
  • qtree create <qtree-path> : создает qtree
  • qtree status : отображает статус qtrees
  • quota on : включает механизм квоты на системе хранения
  • quota off : выключает квоты
  • quota resize : изменяет значения квот
  • quota report : сообщает значения квот и использованного места
  • snap list : показывает список всех снэпшотов на томе
  • snap create <volname> <snapname> : создает снэпшот вручную
  • snap sched <volname> <schedule> : назначает расписание создания снэпшотов
  • snap reserve <volname> <percentage> : показывает/устанавливает резервирование места под снэпшоты

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

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

Очень часто практические админы составляют "подручный список" команд, полезных в работе, чтобы в горячую пору не шарить по манам. Попробую сделать такой список и я.

  • sysconfig -a : показывает развернутую информацию по аппаратной конфигурации
  • sysconfig -d : показывает информацию о дисках, подключенных к контроллеру
  • version : показывает версию Data ONTAP OS version.
  • uptime : показывает время uptime
  • dns info : выводит данные по dns, такие как число попаданий в кэш dns и промахов
  • nis info : выводит название домена nis, серверов yp, и т.д.
  • rdfile : похоже на "cat" в Linux, используется для отображения содержимого текстового файла
  • wrfile : создает/перезаписывает файл. Похоже на "cat > filename" в Linux
  • aggr status : показывает статус aggregate
  • aggr status -r : показывает конфигурацию RAID, информацию о ходе ребилда
  • aggr show_space : показывает использование пространства на aggreate, WAFL reserve, overheads и т.д.
  • vol status : выводит информацию о томе
  • vol status -s : показывает spare disks системы
  • vol status -f : показывает сбойные (failed) диски системы
  • vol status -r : показывает конфигурацию RAID, информацию о ходе ребилда
  • df -h : отображает использование пространства на томе
  • df -i : отображает количество inode на всех томах
  • df -Ah : отображает данные "df" применительно к aggregate

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

23/0.471