Friday, December 19, 2014

MPIO AIX disk attributes:algorithm

   Наверняка вы сталкивались с ситуацией, когда операции чтения-записи забивают полностью канал виртуального адаптера и сервер находится в жутком ступоре, практически не реагируя на свое существование. Такая ситуация может возникнуть, например, при проблемах на хранилище.
"Виноват" в этой ситуации фибр-ченел адаптер и так называемый мультипассинг.
В "бест практис" IBM рекомендует настраивать использование нескольких путей на канал. 
Посмотрим какие варианты настройки существуют в системе при работе с хранилищем (SAN, EVA и т.д.), а именно использование алгоритма работы.
#lsattr -El hdisk0

В моем случае, нет мультипасинга и алгоритм работы диска "fail_over". Используя этот алгоритм, все операции чтения-записи идут по одному пути ( управляется этим модулем - path control module (PCM)), и в случае сбоя операции пойдут по другому пути, который был определен в настройках канала VSCSI (virtual SCSI). Данный алгоритм в основном используется на ВИОС-сервере, как не требующий особой настройки, но может быть использован и на клиентской партиции, нет проблем.
Следующий тип, algorithm = round_robin. Перед его использованием убедитесь, что хранилище может использовать несколько путей для работы с клиентской партицией. У меня был случай, когда "старая" Ева выделяла 2 канала для использования, а с аикса все операции шли через один путь, хотя был включен алгоритм round_robin. Мучились, искали настройки, проверяли, перегружали, никак не заводилось. Оказывается ограничение Евы.
С помощью данного алгоритма все операции чтения-записи идут через все включенные пути к диску. Балансировка нагрузки на диски может быть разделена с помощью атрибута
path_priority, который задается для каждого диска в отдельности. В случае сбоя или отключения пути, происходит пересчет приоритетов и все операции делятся поровну между оставшимися каналами.
algorithm = shortest_queue
Данный алгоритм является самым новым и он очень похож на round_robin при небольшой нагрузке на каналы. Когда нагрузка возрастает алгоритм перенаправляет поток на тот канал, который менее загружен. Т.е. используется тот путь, который не испытывает серьезных затруднений в работе. Атрибут path_priority игнорируется.

С помощью команды lspath вы всегда сможете посмотреть через какие каналы у вас настроено соединение диска с хранилищем (LUN).
#lspath -l hdisk1

Комментарии приветствуются. Успехов! 

Tuesday, December 2, 2014

AIX команды: lslpp

Встречаем команду lslpp.
Немного теории. 
Licensed Program Product (LPP) - Лицензионный программный продукт, который представляет собой отдельную коллекцию установленных пакетов и файлсетов. Например, Base Operating System (bos) - это программный продукт (LPP), который в свою очередь является коллецией пакетов и файлсетов.
Пакет (Package) - пакет, включает в себя один или несколько файлсетов с определенной функцией и является отдельным инсталляционным образом. 
Файлсет (Fileset) - наименьший инсталляционный блок, который может входить в инсталляционный пакет, и представляет собой коллекцию файлов, которые выполняют определенную функцию. Например, файлсет bos.net.tcp.client входит в группу файлсетов bos.net.
Еще есть понятие Bundles, которые состоят из группы пакетов и могут использоваться для определенной среду. Например, App-Dev для разработчика приложений и т.д.

Команда, используется для просмотра всех приложений, которые есть в ODM.
Файлсет - установленное программное обеспечение, а также обновления ПО и фиксы. 
lslpp -l

С помощью флага -l, команда пройдет по всем директориям (/, /usr/lib, /usr/share/lib) и найдет все записи о файлсетах.
lslpp -L

С помощью флага -L, команда отобразит каждый файлсет один раз, без разницы где он установлен - в директории root, usr, или share.
Одной из важных особенностей данной команды является вывод состояния (state), в котором находится устанавливаемое ПО:
APPLIED - означает, что файлсет установлен, но может быть "возвращен" до предыдущей версии с помощью команды installp с флагом reject.
APPLYING - среднее состояние, когда была сделана попытка установки файлсета, но она не завершилась удачно, и очистка еще не была запущена (cleanup)
BROKEN - состояние, когда устанавливаемые пакеты не прошли проверку целостности ("сломаны") и должны быть удалены.  
COMMITTED - файлсет установлен, и определенная версия ПО завязана (читай должна) работать в данной системе.
EFIXLOCKED - файлсет заблокирован внутренним установщиком обновлений (the emgr command).
OBSOLETE - файлсет в данном состоянии больше не используется, т.к. используется более новая версия данного файлсета.
COMMITTING - среднее состоянии, когда была сделала попытка подтвердить данный файлсет, но она не прошла успешно, а очистка еще не была произведена.
REJECTING - среднее состоянии, когда была сделала попытка отклонить файлсет, но она не прошла успешно, а очистка еще не была произведена.  
Посмотрим теперь различные флаги, при использовании команды:

lslpp -c 
Список установленного ПО с путями установки

 lslpp -d
Список файлсетов, которые зависят от искомого:
 
lslpp -e
Выводится список обновлений, установленных с помощью внутреннего менеджера обновлений ( команда emgr)

lslpp -f  
Выводится список файлсетов, которые были добавлены в систему при установке искомого файлсета:

lslpp -d
Выводится список требуемых (requisite) файлсетов, которые должны быть установлены до установки искомого файлсета:


Успехов!