Различия

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


wiki:articles:hpraid [16/03/2018 14:22] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +Дата написания: //март 2018 г.//\\
 +Автор: //Graf//\\
 +\\
 +
 +^   **Работа с дисковым массивом HP**   ^
 +\\
 +===== Установка =====
 +
 +Используем //Slackware Linux 14.2 64-bit// без DE и всем, что с ними связанно, с обновлёнными пакетами при помощи //slackpkg//.\\
 +
 +Скачиваем последнюю версию //hpacucli//. И так как это rpm-пакет, преобразовываем его в пакет Slackware и устанавливаем.
 +<code>
 +# wget https://mirror.nforce.com/pub/software/raidtools/hpacucli-tool/hpacucli-9.40-12.0.x86_64.rpm
 +# rpm2txz ./hpacucli-9.40-12.0.x86_64.rpm
 +# upgradepkg --install-new ./hpacucli-9.40-12.0.x86_64.txz
 +</code>
 +
 +Скорее всего, после первого запуска //hpacucli// не обнаружит raid-контроллер. У меня не нашёл.
 +<code>
 +# hpacucli ctrl all show status
 +
 +Error: No controllers detected.
 +</code> 
 +Это значит не загружен модуль SCSI драйвера (SCSI generic (sg) driver). Загрузим его и снова посмотрим на наш контроллер.
 +<code>
 +# modprobe sg
 +# hpacucli ctrl all show status
 +
 +Smart Array P410 in Slot 0
 +   Controller Status: OK
 +   Cache Status: Temporarily Disabled
 +   Battery/Capacitor Status: Failed (Replace Batteries/Capacitors)
 +</code>
 +
 +Контроллер найден, можно продолжать с ним работать. \\
 +В дальнейшем, для автоматической загрузки модуля, можно в файле ///etc/rc.d/rc.modules.local// снять знак комментария со строки ///sbin/modprobe sg // или добавить её туда, при её отсутствии.
 +===== Использование в консоли =====
 +
 +Для запуска консоли достаточно запустить //hpacucli//:
 +<code>
 +# hpacucli 
 +HP Array Configuration Utility CLI 9.40.12.0
 +Detecting Controllers...Done.
 +Type "help" for a list of supported commands.
 +Type "exit" to close the console.
 +
 +=> 
 +</code>
 +
 +далее вводим соответствующие команды и по завершении набираем //exit// для выхода из консоли.
 +Полный список поддерживаемых команд можно получить набрав //help// в консоли hpacucli или непосредственно в терминале.
 +<code>
 +# hpacucli help 
 +</code>
 +
 +Ниже приведена, слегка переделанная, таблица, взятая [[https://ittricks.ru/administrirovanie/cheat-sheets/569/rabota-s-diskovym-massivom-hp-cherez-util | ЗДЕСЬ]], с некоторыми командами.\\
 +
 +^ **Сокращения** ^^
 +|Сокращения, которые можно использовать\\ в командах |<code> chassisname = ch
 + controller = ctrl
 + logicaldrive = ld
 + physicaldrive = pd
 + drivewritecache = dwc </code>
 +^ **Управление контроллером дискового массива** ^^
 +|Показать информацию (детально)| <code> ctrl all show config
 + ctrl all show config detail </code> |
 +|Статус контроллера| <code> ctrl all show status </code>|
 +|Управление кэшированием| <code> ctrl slot=0 modify dwc=disable
 + ctrl slot=0 modify dwc=enable </code>|
 +|Пересканировать устройства, добавленные \\ с момента последнего сканирования| <code> rescandetects newly added devices since the last rescan </code>|
 +^ **Управление физическими дисками в массиве** ^^
 +|Показать информацию (детально)| <code> ctrl slot=0 pd all show
 + ctrl slot=0 pd 2:3 show detail </code> //Можно указать определенный слот\\ для отображения информации только по определенному диску//|
 +|Статус дисков| <code> ctrl slot=0 pd all show status
 + ctrl slot=0 pd 2:3 show status </code>|
 +|Очистака| <code> ctrl slot=0 pd 2:3 modify erase </code>|
 +|Управление диодами на дисках| <code> ctrl slot=0 pd 2:3 modify led=on
 + ctrl slot=0 pd 2:3 modify led=off </code>|
 +^ **Управление логическими дисками** ^^
 +|Показать информацию (детально)| <code> ctrl slot=0 ld all show [detail]
 + ctrl slot=0 ld 4 show [detail] </code>|
 +|Статус дисков| <code> ctrl slot=0 ld all show status
 + ctrl slot=0 ld 4 show status </code>|
 +|Управление диодами на дисках| <code> ctrl slot=0 ld 4 modify led=on
 + ctrl slot=0 ld 4 modify led=off </code>|
 +|Перезапустить «отказавшие» диски| <code> ctrl slot=0 ld 4 modify reenable forced </code>|
 +|Создание дисков| //логический диск//\\ <code> ctrl slot=0 create type=ld drives=1:12 raid=0 </code>//логический диск — чередование//\\ <code> ctrl slot=0 create type=ld drives=1:13,1:14 size=300 raid=1 </code>//логический диск — raid 5//\\ <code> ctrl slot=0 create type=ld drives=1:13,1:14,1:15,1:16,1:17 raid=5 </code> где:\\ **drives** — //конкретные диски, все диски (all drives) или неиспользуемые диски (unassigned drives)//\\ **size** — //размер логического диска в Мб//\\ **raid** — //тип raid 0, 1, 1+0 и 5// |
 +|Удаление| <code> ctrl slot=0 ld 4 delete </code>|
 +|Добавление дисков| <code> ctrl slot=0 ld 4 add drives=2:3 </code>|
 +|Добавление дискового пространства (принудительно)| <code> ctrl slot=0 ld 4 modify size=500 forced </code>|
 +|Добавление резервного диска spare| <code> ctrl slot=0 array all add spares=1:5,1:7 </code>|
 +
 +===== Отправка сообщения на e-mail при сбое =====
 +
 +<note> При создании скрипта обратите внимание на номер //**slot=**// и номера дисков выводимые //**hpacucli ctrl all show status**// и //**hpacucli ctrl slot=номер pd all show status**//</note>
 +Создадим скрипт который будет проверять состояние дисков в массиве каждый час и в случае выхода одного из строя слать сообщение на e-mail адрес.\\
 +Но перед этим установим и настроим //ssmtp// в замен стокового //sendmail// при помощи которого будем отсылать сообщение на e-mail.
 +<code>
 +# sbopkg -i ssmtp
 +# /usr/sbin/generate_config /etc/ssmtp/ssmtp.conf
 +Please enter the mail name of your system.
 +This is the hostname portion of the address to be shown
 +on outgoing news and mail messages headers.
 +The default is srv1.mydom.lan, your system's host name.
 +
 +Mail name [srv1.mydom.lan]: localhost
 +Please enter the SMTP port number [25]: 465
 +
 +Please check the configuration file /etc/ssmtp/ssmtp.conf for correctness.
 +</code>
 +
 +Переходим в каталог //etc/ssmtp// и заполним //ssmtp.conf//
 +<code>
 +# Пользователь, который получает всю почту для userids < 1000
 +root=postmaster
 +
 +# Полное имя машины
 +hostname=localhost
 +
 +# Поле From: будет выставляться самим smtp переписывая значение вводимое скриптами
 +FromLineOverride=YES
 +
 +# Пользователь на smtp-сервере (от кого шлем почту)
 +AuthUser=fromserver@mydom.ru
 +
 +# Пароль входа на smtp-сервер для пользователя указанного в AuthUser
 +AuthPass=passwordforlogin
 +
 +# Адрес и порт smtp-сервера
 +mailhub=smtp.mailserver.ru:465
 +
 +# Перезапись домена на свой (если используется сторонний сервер, например от yandex)
 +rewriteDomain=mydom.ru
 +
 +# Использовать SSL/TLS для аутентификации на smtp-сервере
 +UseTLS=YES
 +</code>
 +Тут же, в каталоге ///etc/ssmtp// изменим файл //revaliases//, если нет, то создадим.
 +<code>
 +# Некая защита от спама.
 +# root:ОТ_КОГО:ЧЕРЕЗ_КАКОЙ_SMTP_СЕРВЕР:SMTP_ПОРТ
 +
 +root:fromserver@mydom.ru:smtp.mailserver.ru:465
 +</code>
 +
 +Подменяем //sendmail//.
 +<code>
 +# mv /usr/sbin/sendmail /usr/sbin/sendmail.org 
 +# ln -s /usr/sbin/ssmtp /usr/sbin/sendmail
 +</code>
 +
 +Проверим работу отправив тестовое письмо:
 +<code>
 +# echo test | mail -v -s "testing ssmtp" kakoyto-mail@yandex.ru
 +[<-] 220 smtp.mailserver.ru ESMTP
 +[->] EHLO localhost
 +[<-] 250 HELP
 +[->] AUTH LOGIN
 +[<-] 334 VXNlcm7hbWU7
 +[->] ZnJvbXNlcnZlckBtaWcta5NiLnJ5
 +[<-] 334 UGFzc7dvciQ7
 +[<-] 235 Authentication succeeded
 +[->] MAIL FROM:<fromserver@mydom.ru>
 +[<-] 250 OK
 +[->] RCPT TO:<kakoyto-mail@yandex.ru>
 +[<-] 250 Accepted
 +[->] DATA
 +[<-] 354 Enter message, ending with "." on a line by itself
 +[->] Received: by localhost (sSMTP sendmail emulation); Fri, 16 Mar 2018 12:58:41 +0300
 +[->] From: fromserver@mydom.ru
 +[->] Date: Fri, 16 Mar 2018 12:58:41 +0300
 +[->] To: kakoyto-mail@yandex.ru
 +[->] Subject: testing ssmtp
 +[->] User-Agent: Heirloom mailx 12.5 7/5/10
 +[->] MIME-Version: 1.0
 +[->] Content-Type: text/plain; charset=us-ascii
 +[->] Content-Transfer-Encoding: 7bit
 +[->
 +[->] test
 +[->] .
 +[<-] 250 OK id=1ewm7I-0004QJ-2Y
 +[->] QUIT
 +</code> 
 +Работает.\\
 +Теперь напишем скрипт, допустим, в том же каталоге куда установился //hpacucli//, ///opt/compaq/hpacucli/bld/hpacucli_send_mail//
 +<code=bash>
 +#!/bin/bash
 +###
 +# Отправка сообщения на e-mail при сбое одного или нескольких дисков в массиве.
 +###
 +
 +# Кому отправляем
 +MAILTO=kakoyto-mail@yandex.ru
 +
 +# Путь до hpacucli
 +HPACUCLI=`which hpacucli`
 +
 +# Результат вывода
 +HPACUCLI_TMP=/tmp/hpacucli.tmp
 +
 +# Проверяем, есть ли сбойные диски. Если есть, то шлем инфу на e-mail
 +if [ `hpacucli ctrl slot=0 pd all show | grep -E "(Failed|Rebuilding)" -c` -gt 0 ]
 +then
 +   msg="RAID Controller Errors"
 +   logger -p syslog.error -t RAID "$msg"
 +   $HPACUCLI ctrl slot=0 pd all show > $HPACUCLI_TMP
 +   mail -s "$HOSTNAME [ERROR] - $msg" "$MAILTO" < $HPACUCLI_TMP
 +   rm -f $HPACUCLI_TMP
 +fi
 +</code>
 +и отдадим скрипт //cron//'у на запуск каждый час:
 +<code>
 +* */1 * * * /opt/compaq/hpacucli/bld/hpacucli_send_mail 1> /dev/null
 +</code>
 +<note warning>**Все e-mail адреса, названия доменов и серверов придуманы!\\ Совпадения с реальными названиями, чистая случайность!**</note>
 +
 +----
 +[[http://slackware.su/forum/index.php/topic,2851.0.html | Обсуждаем на форуме.]]
 +
 +
  
Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:hpraid (generated for current page)