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を起動するには、次のように入力します。
  
>sudoledmon [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を起動するには、次のように入力します。
  
>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 例 #
単一のブロックデバイスを見つけるには
>sudoledctl locate=/dev/sda
単一のブロックデバイスのLocate LEDを消灯するには
>sudoledctl locate_off=/dev/sda
MDソフトウェアRAIDデバイスのディスクを見つけて、そのブロックデバイスの2つに同時にrebuildパターンを設定するには
>sudoledctl locate=/dev/md127 rebuild={ /sys/block/sd[a-b] }
指定したデバイスに対するStatus LEDとFailure LEDを消灯するには
>sudoledctl off={ /dev/sda /dev/sdb }
3つのブロックデバイスを見つけるには、次のいずれかのコマンドを実行します(どちらのコマンドでも同じです)。
>sudoledctl locate=/dev/sda,/dev/sdb,/dev/sdc>sudoledctl locate={ /dev/sda /dev/sdb /dev/sdc }
12.3 詳細情報 #
LEDのパターンおよび監視ツールに関する詳細は、次のリソースを参照してください。