Sygnalizacja diodami na ramkach HDD bez HBA w Linuksie

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

W tym artykule opisujemy jak spowodować, aby diody na ramkach wybranych HDD, które są podłączone do backplane'a SAS w serwerze mrugały. Wykorzystujemy do tego ledmon/ledctl lub sgpio w Linuksie. W ten sposób może zostać zlokalizowany niesprawny dysk i zapewnione, że z macierzy nie zostanie usunięty sprawny dysk. Ponadto, na przykładzie backplane'a BPN-SAS-825TQ SAS/SATA, prezentujemy właściwe rozmieszczenie zworek na backplanie w trybie SGPIO i poprawne okablowanie połączeń siedband.

Środowisko testowe

Poniżej jest opisane środowisko testowe i kroki przygotowawcze przed właściwą instalacją ledmon/ledctl.

Sprzęt wykorzystany do testów

Sprzęt składał się między innymi z następujących komponentów:

System operacyjny

W przykładzie został wykorzystany system CentOS 7.2, sposób funkcjonowania w systemie Debian lub Ubuntu wygląda analogicznie. Wersja zainstalowanego systemu CentOS może zostać wyświetlona następującą komendą.

# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

Okablowanie

Dla prawidłowego funkcjonowania konieczne jest połączenie obu łączy sideband (SIDEBAND #1 i SIDEBAND #2) znajdujących się na backplanie z łączami T-SGPIO 0/1 na płycie głównej za pośrednictwem kabli CBL-0157L-01.

  • T-SGPIO 0 <-- CBL-0157L-01 --> SIDEBAND #1
  • T-SGPIO 1 <-- CBL-0157L-01 --> SIDEBAND #2

Rozmieszczenie zworek

Tryb SGPIO wymaga odpowiedniego rozmieszczenia zworek na backplanie BPN-SAS-825TQ. Poniższa tabela przedstawia lokalizację zworek i ich funkcje. Ważna informacja: zworki (jumper) JP38, JP40, JP41 i JP50 są w przeciwieństwie do innych istotnych zworek umiejscowione pionowo.

Jumper Lokalizacja zworki (piny) Opis
JP33 1-2 Controller ID #1
JP34 1-2 Backplane ID #1 1-2: ID#0
JP36 1-2 Controller ID #2
JP37 1-2 Backplane ID #2 1-2: ID#0
JP38 open (bez zworki) I²C Reset #2
JP40 close (ze zworką) I²C Reset_SDOUT#1
JP41 close (ze zworką) I²C Reset_SDOUT#2
JP42 1-2 I²C Backplane ID_SDIN#1
JP43 1-2 I²C Backplane ID_SDIN#2
JP50 open (bez zworki) I²C Reset #1

Backplane BPN-SAS-825TQ

Na poniższym zdjęciu znajduje się backplane BPN-SAS-825TQ z prawidłowo rozmieszonymi zworkami w trybie SGPIO.

Lokalizacja zworek w trybie SGPIO

BPN-SAS3-825TQ

Rozmieszczenie zworek w przypadku backplane'u SAS3 BPN-SAS3-825TQ wygląda identycznie, w obu przypadkach wykorzystywany jest ten sam MegaRAC MG9072 SAS/SATA Enclosure Management Controller.[1]

ledmon / ledctl

W poniższej sekcji są opisane oba komponenty ledmon i ledctl, które wchodzą w skład Intel Enclosure LED Utilities. Przedstawiona jest również instalacja w systemie CentOS, jak i ich wspólne komendy. ledmon udostępnia demona, a ledctl funkcjonuje jako aplikacja dla użytkownika.

Instalacja

W dystrybucjach Red-Hat pakiety są instalowane za pośrednictwem managera pakietów yum.

[root@centos7 ~]# yum install ledctl
Geladene Plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.inode.at
 * extras: mirror.inode.at
 * updates: mirror.inode.at
Resolving Dependencies 
[...]
Install:
 ledmon                       x86_64               0.79-4.el7                 base                56 k
Installing for dependencies:
 sg3_utils-libs               x86_64               1.37-5.el7                 base                63 k
[...]
Installed:
  ledmon.x86_64 0:0.79-4.el7                                                                           

Dependency Installed:
  sg3_utils-libs.x86_64 0:1.37-5.el7                                                                   

Complete!

ledmon

Aplikacja ledmon udostępnia demona dla Intel Enclosure LED Utilities.[2] W ten sposób może być monitorowany status software RAID device (wyłącznie mdraid), jak i pojedynczych urządzeń blokowych (np. /dev/sda). Ta aplikacja posiada najwyższy priorytet dostępu do diod i wykorzystuje SGPIO i protokół SES-2 do zarządzania nimi. Implementuje standard International Blinking Pattern Interpretation (IBPI) specyfikacji SFF-8489 dla SGPIO.[3][4]

Uwaga: Niektóre obudowy, backplane'y nie trzymają się dokładnie specyfikacji SFF-8489 i dlatego w tych produktach może się zdarzyć, że diody nie funkcjonują tak jak jest to opisane w specyfikacji, lub częściowo spełniają wymagania specyfikacji.

Ograniczenie: Według manpage nie może zostać określone, który wolumen macierzy RAID ma być monitorowany, kontrolowane są wszystkie wolumeny.

Konfiguracja

ledmon oferuje kilka opcji konfiguracyjnych, może zostać skonfigurowany interwał sondowania sysfses, ścieżka do pliku konfiguracyjnego i lokalizacji łogów.

[root@centos7 ~]# ledmon -h
Intel(R) Enclosure LED Monitor Service 0.79
Copyright (C) 2009-2013 Intel Corporation.

Usage: ledmon [OPTIONS]

Mandatory arguments for long options are mandatory for short options, too.

--interval=VALUE		  Set time interval to VALUE seconds.
				  The smallest interval is 5 seconds.
--config=PATH,  -c PATH		  Use alternate configuration file (not yet
				  implemented).
--log=PATH			  Use local log file instead
				  /var/log/ledmon.log global file.
--help				  Displays this help text.
--version			  Displays version and license information.

Refer to ledmon(8) man page for more detailed description.
Bugs should be reported at: http://sourceforge.net/p/ledmon/bugs

ledctl

ledctl jest aplikacją userspace do kontroli diod np. backplane'ów. Do zarządzania diodami za pośrednictwem ledctl konieczne są uprawnienia użytkownika root. Szczegółowe informacje o ledctl i jego parametrach znajdują się w jego manpage.[5]

Konfiguracja

ledctl oferuje różne możliwości konfiguracji i zarządzania sygnalizacji diodami. Wykonanie komendy ledctl -h potwierdza to poprzez wyświetlenie licznych możliwych parametrów.

[root@centos7 ~]# ledctl -h
Intel(R) Enclosure LED Control Application 0.79
Copyright (C) 2009-2013 Intel Corporation.

Usage: ledctl [OPTIONS] pattern=list_of_devices ...

Mandatory arguments for long options are mandatory for short options, too.

--log=PATH,	-l PATH		  Use local log file instead
				  /var/log/ledctl.log global file.
--config=PATH,	-c PATH		  Use alternate configuration file (not yet
				  implemented).
--help,		-h		  Displays this help text.
--version,	-v		  Displays version and license information.

Patterns:
	Common patterns are:
		locate, locate_off, normal, off, degraded, rebuild,
		rebuild_p, failed_array, hotspare, pfa, failure,
		disk_failed
	SES-2 only patterns:
		ses_abort, ses_rebuild, ses_ifa, ses_ica, ses_cons_check,
		ses_hotspare, ses_rsvd_dev, ses_ok, ses_ident, ses_rm,
		ses_insert, ses_missing, ses_dnr, ses_active,
		ses_enbale_bb, ses_enable_ba, ses_devoff, ses_fault
	Automatic translation form IBPI into SES-2:
		locate=ses_ident, locate_off=~ses_ident,
		normal=ses_ok, off=ses_ok, degraded=ses_ica,
		rebuild=ses_rebuild rebuild_p=ses_rebuild,
		failed_array=ses_ifa, hotspare=ses_hotspare
		pfa=ses_rsvd_dev, failure=ses_fault,
		disk_failed=ses_fault
Refer to ledctl(8) man page for more detailed description.
Bugs should be reported at: http://sourceforge.net/p/ledmon/bugs

Zarządzanie diodami przez ledctl

  • Mruganie jednej diody na przykładnie napędu sda:
    • # ledctl locate={ /dev/sda }
    • # ledctl locate=/dev/sda
  • Wyłączenie mrugającej diody:
    • # ledctl locate_off={ /dev/sda }
    • # ledctl locate_off=/dev/sda
  • Mruganie większej ilości diod:
    • # ledctl locate={ /dev/sd[a-c] }
    • # ledctl locate=/dev/sda,/dev/sdb,/dev/sdc
  • Wyłączenie mrugających diod:
    • # ledctl locate_off={ /dev/sd[a-c] }
    • # ledctl locate_off=/dev/sda,/dev/sdb,/dev/sdc
  • Mruganie może również zostać spowodowane w następujący sposób:
    • # ledctl locate={ /sys/block/sdX }

sgpio jako alternatywa

Jako alternatywne narzędzie dla ledmon/ledctl może posłużyć sgpio, tak zwane Captive Backplane LED Control Utility, które zostało opracowane przez pracownika firmy Intel i funkcjonuje w podobny sposób jak ledctl. Szczegółowe informacje na temat tego narzędzia i jego parametrów znajduje się w jego manpoge.[6]

Instalacja

Instalacja odbywa się również za pośrednictwem yum:

root@centos7 ~]# yum install sgpio

Konfiguracja

sgpio oferuje również rożne opcje, np. za pośrednictwem parametru -d może zostać włączona dioda przy wybranym dysku, lub z parametrem - p dioda na wybranym porcie.

[root@centos7 ~]# sgpio -h
SGPIO tool for intelligent hard disk drive backplanes
Usage:
sgpio [[-d|--disk] <sda,sdb,sdc,etc...> | [-p|--port] <0,1,2,etc...>]
[-s|--status] <fault|locate|rebuild|off> [-f|--freq] <1,2,3,etc...>
Error: State of LED must be specified!

Zarządzanie diodami z sgpio

  • Mruganie pojedynczej diody na przykładzie sda:
    • # sgpio -d sda -s locate
    • # sgpio -p 0 -s locate
  • Wyłączenie mrugającej diody:
    • # sgpio -d sda -s off
  • Mruganie kilku diod:
    • # sgpio -d sda,sdb,sdc -s locate
  • Wyłączenie mrugających diod:
    • # sgpio -d sda,sdb,sdc -s off

Odnośniki

Autor: Thomas Niedermeier