Archive for the ‘tricks’ Category.

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

Syslog Translator

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

Для того, чтобы лучше разобраться в сообщениях syslog, на сайте NOW (NetApp on Web) есть полезная служба: System Log Translator
ниже – скриншот:

image

Например, мы видим в логе сообщение:

[scsitarget.partnerPath.misconfigured:error]: FCP Partner Path Misconfigured - Host I/O access through a non-primary and non-optimal path was detected.

Введенное в Syslog Translator оно покажет следующее:

image

Уже гораздо понятнее что делать и куда бечь.

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

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> : показывает детальную информацию по компонентам системы хранения

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