12 MDソフトウェアRAID用のストレージエンクロージャLEDユーティリティ #
ストレージエンクロージャLEDモニタリングユーティリティ(ledmon
)およびLEDコントロール(ledctl
)ユーティリティは、多様なインタフェースおよびプロトコルを使用してストレージエンクロージャLEDを制御する、Linuxのユーザスペースアプリケーションです。その主たる用途は、mdadmユーティリティで作成されたLinux MDソフトウェアのRAIDデバイスの状態を視覚化することです。ledmon
デーモンがドライブアレイの状態を監視し、ドライブLEDの状態を更新します。ledctl
ユーティリティを使用して、指定したデバイスに対するLEDパターンを設定できます。
これらのLEDユーティリティでは、SGPIO (Serial General Purpose Input/Output)仕様(Small Form Factor (SFF) 8485)およびSCSI Enclosure Services (SES) 2プロトコルを使用して、LEDを制御します。SGPIO用のSFF-8489仕様のInternational Blinking Pattern Interpretation (IBPI)パターンを実装します。IBPIは、SGPIO規格がバックプレーン上のドライブやスロットの状態としてどのように解釈されるか、またバックプレーンがLEDでどのように状態を視覚化すべきかを定義します。
一部のストレージエンクロージャでは、SFF-8489仕様に厳格に準拠していないものがあります。エンクロージャプロセッサがIBPIパターンを受け入れていても、LEDの点滅はSFF-8489仕様に従っていない、あるいはプロセッサが限られた数のIBPIパターンしかサポートしていない場合があります。
LED管理(AHCI)およびSAF-TEプロトコルは、ledmon
およびledctl
ユーティリティではサポートされていません。
ledmon
およびledctl
アプリケーションは、インテルAHCIコントローラやインテルSASコントローラなどの、インテルのストレージコントローラで機能することが検証されています。MDソフトウェアのRAIDボリュームの一部であるPCIe-SSD(ソリッドステートドライブ)デバイスの、ストレージエンクロージャ状態(OK、Fail、Rebuilding)用LEDを制御するための、PCIe-SSD(ソリッドステートディスク)エンクロージャLEDもサポートされています。これらのアプリケーションは、他のベンダのIBPI準拠のストレージコントローラ(特にSAS/SCSIコントローラ)でも機能するはずですが、他のベンダのコントローラはテストされていません。
ledmon
およびledctl
はledmon
パッケージに付属しています。このパッケージはデフォルトではインストールされません。インストールするには、sudo zypper in ledmon
を実行します。
12.1 ストレージエンクロージャLED監視サービス #
ledmon
アプリケーションは、MDソフトウェアRAIDデバイスの状態またはストレージエンクロージャまたはドライブベイ内のブロックデバイスの状態をコンスタントに監視する、デーモンプロセスです。一度に実行しているデーモンのインスタンスは、1つのみである必要があります。ledmon
デーモンは、インテルのエンクロージャLEDユーティリティの一部です。
状態は、ストレージアレイエンクロージャまたはドライブベイ内の、各スロットに関連付けられたLED上で視覚化されます。このアプリケーションは、すべてのソフトウェアRAIDデバイスを監視し、その状態を視覚化します。選択したソフトウェアRAIDボリュームのみを監視する方法は、備わっていません。
ledmon
デーモンでは、2種類のLEDシステム、すなわち、2 LEDシステム(Activity LEDとStatus LED)と、3 LEDシステム(Activity LED、Locate LED、およびFail LED)をサポートしています。このツールには、LEDへのアクセスの際に最高の優先度が与えられています。
ledmon
を起動するには、次のように入力します。
tux >
sudo
ledmon [options]
[options]は次の1つ以上です。
ledmon
のオプション #-c PATH
,--confg=PATH
設定は
~/.ledctl
または/etc/ledcfg.conf
(存在する場合)から読み込まれます。このオプションは、別の設定ファイルを指定する場合に使用します。現時点では、複数の設定ファイルのサポートはまだ実装されていないため、このオプションは有効ではありません。詳細については、
man 5 ledctl.conf
を参照してください。- -l PATH , --log=PATH
ローカルのログファイルへのパスを設定します。このユーザ定義ファイルを指定すると、グローバルログファイル
/var/log/ledmon.log
は使用されません。-t SECONDS
,--interval=SECONDS
sysfs
のスキャン間の時間間隔を設定します。値は秒単位です。最小値は5秒です。最大値の指定はありません。--quiet
、--error
、--warning
、--info
、--debug
、--all
詳細レベルを指定します。このレベルオプションは、情報なしから、ほとんどの情報までの順番で指定されます。ロギングを行わない場合は、
--quiet
オプションを使用します。すべてをログする場合は、--all
オプションを使用します。2つ以上の詳細オプションを指定した場合は、コマンド内の最後のオプションが適用されます。-h
,--help
コマンド情報をコンソールに印刷して、終了します。
-v
,--バージョン
ledmon
のバージョンとライセンスに関する情報を表示して、終了します。
ledmon
デーモンは、SFF-8489仕様のPFA (Predicted Failure Analysis)状態は認識しません。したがって、PFAパターンは視覚化されません。
12.2 ストレージエンクロージャLED制御アプリケーション #
エンクロージャLEDアプリケーション(ledctl
)は、ストレージエンクロージャまたはドライブベイの各スロットに関連付けられたLEDを制御する、ユーザスペースアプリケーションです。ledctl
アプリケーションは、インテルのエンクロージャLEDユーティリティの一部です。
このコマンドを発行すると、指定したデバイスのLEDが指定したパターンに設定され、それ以外のLEDはすべてオフになります。 このアプリケーションはroot
特権で実行する必要があります。ledmon
アプリケーションはLEDへのアクセスに際して最高の優先度を持っているため、ledmon
デーモンを実行中の場合は、ledctl
で設定した一部のパターンが有効にならないことがあります(Locateパターン以外)。
ledctl
アプリケーションでは、2種類のLEDシステム、すなわち、2LEDシステム(Activity LEDとStatus LED)と、3LEDシステム(Activity LED、Locate LED、およびFail LED)をサポートしています。
ledctl
を起動するには、次のように入力します。
tux >
sudo
[options] PATTERN_NAME=list_of_devices
[options]は次の1つ以上です。
-c PATH
,--confg=PATH
ローカルの環境設定ファイルへのパスを設定します。このオプションを指定すると、グローバルの環境設定ファイルとユーザの環境設定ファイルは、無効になります。
- -l PATH , --log=PATH
ローカルのログファイルへのパスを設定します。このユーザ定義ファイルを指定すると、グローバルログファイル
/var/log/ledmon.log
は使用されません。--quiet
stdout
またはstderr
に送信されるすべてのメッセージをオフにします。メッセージは、ローカルファイルおよびsyslog
ファシリティには引き続きログされます。-h
,--help
コマンド情報をコンソールに印刷して、終了します。
-v
,--バージョン
ledctl
のバージョンとライセンスに関する情報を表示して、終了します。
12.2.1 パターン名 #
ledctl
アプリケーションでは、SFF-8489仕様に従い、 引数に次の名前を使用できます。
locate
指定したデバイスまたはからのスロットに関連付けられたLocate LEDを点灯します。この状態は、スロットまたはドライブの識別に使用されます。
locate_off
指定したデバイスまたはからのスロットに関連付けられたLocate LEDを消灯します。
normal
指定したデバイスに関連付けられたStatus LED、Failure LED、およびLocate LEDを消灯します。
off
指定したデバイスに関連付けられたStatus LEDとFailure LEDのみを消灯します。
ica
,degraded
In a Critical Array
パターンを視覚化します。再構築
,rebuild_p
Rebuild
パターンを視覚化します。互換性とレガシーの理由から、両方のrebuild状態をサポートしています。ifa
,failed_array
In a Failed Array
パターンを視覚化します。hotspare
Hotspare
パターンを視覚化します。pfa
Predicted Failure Analysis
パターンを視覚化します。failure
,disk_failed
Failure
パターンを視覚化します。- ses_abort
SES-2 R/R ABORT
ses_rebuild
SES-2 REBUILD/REMAP
ses_ifa
SES-2 IN FAILED ARRAY
ses_ica
SES-2 IN CRITICAL ARRAY
ses_cons_check
SES-2 CONS CHECK
ses_hotspare
SES-2 HOTSPARE
ses_rsvd_dev
SES-2 RSVD DEVICE
ses_ok
SES-2 OK
ses_ident
SES-2 IDENT
ses_rm
SES-2 REMOVE
ses_insert
SES-2 INSERT
ses_missing
SES-2 MISSING
ses_dnr
SES-2 DO NOT REMOVE
ses_active
SES-2 ACTIVE
ses_enable_bb
SES-2 ENABLE BYP B
ses_enable_ba
SES-2 ENABLE BYP A
ses_devoff
SES-2 DEVICE OFF
ses_fault
SES-2 FAULT
非SES-2のパターンがエンクロージャ内のデバイスに送信されると、そのパターンは、上に示すように、SCSI Enclosure Services (SES) 2のパターンに自動的に変換されます。
非SES-2のパターン |
SES-2のパターン |
---|---|
locate |
ses_ident |
locate_off |
ses_ident |
normal |
ses_ok |
off |
ses_ok |
ica |
ses_ica |
degraded |
ses_ica |
rebuild |
ses_rebuild |
rebuild_p |
ses_rebuild |
ifa |
ses_ifa |
failed_array |
ses_ifa |
hotspare |
ses_hotspare |
pfa |
ses_rsvd_dev |
failure |
ses_fault |
disk_failed |
ses_fault |
12.2.2 デバイスのリスト #
ledctl
コマンドを発行すると、指定したデバイスのLEDが指定したパターンに設定され、それ以外のLEDはすべてオフになります。 デバイスのリストは、次の2つの形式のいずれかで提供できます。
スペースなしのカンマで区切られたデバイスのリスト
デバイスがスペースで区切られた波括弧内のリスト
同じコマンド内で複数のパターンを指定すると、各パターンに対するデバイスリストで、同一または異なるフォーマットを使用できます。2つのリスト形式を示す例は、12.2.3項 「例」を参照してください。
デバイスは、/dev
ディレクトリまたは/sys/block
ディレクトリ内のファイルへのパスです。パスにより、ブロックデバイス、MDソフトウェアRAIDデバイス、またはコンテナデバイスを識別できます。ソフトウェアRAIDデバイスまたはコンテナデバイスの場合、報告されたLEDの状態は、 関連付けられたブロックデバイスのすべてに対して設定されます。
list_of_devicesにリストされているデバイスのLEDは、特定のパターンのpattern_nameに設定され、それ以外のすべてのLEDは消灯されます。
12.2.3 例 #
単一のブロックデバイスを見つけるには
tux >
sudo
ledctl locate=/dev/sda
単一のブロックデバイスのLocate LEDを消灯するには
tux >
sudo
ledctl locate_off=/dev/sda
MDソフトウェアRAIDデバイスのディスクを見つけて、そのブロックデバイスの2つに同時にrebuildパターンを設定するには
tux >
sudo
ledctl locate=/dev/md127 rebuild={ /sys/block/sd[a-b] }
指定したデバイスに対するStatus LEDとFailure LEDを消灯するには
tux >
sudo
ledctl off={ /dev/sda /dev/sdb }
3つのブロックデバイスを見つけるには、次のいずれかのコマンドを実行します(どちらのコマンドでも同じです)。
tux >
sudo
ledctl locate=/dev/sda,/dev/sdb,/dev/sdctux >
sudo
ledctl locate={ /dev/sda /dev/sdb /dev/sdc }
12.3 詳細情報 #
LEDのパターンおよび監視ツールに関する詳細は、次のリソースを参照してください。