Mylex 社製 DAC960/AcceleRAID/eXtremeRAID PCI RAID コントローラ用 Linux ドライバ

			Linux 2.2.19 用バージョン 2.2.11
			Linux 2.4.12 用バージョン 2.4.11

			      PRODUCTION RELEASE

				2001 年 10 月 11 日

			       Leonard N. Zubkoff
			       Dandelion Digital
			       lnz@dandelion.com

	 Copyright 1998-2001 by Leonard N. Zubkoff <lnz@dandelion.com>


			      イントロダクション

Mylex 社はさまざまな高性能 PCI RAID コントローラを設計、生産しています。
Mylex 社の住所は 34551 Ardenwood Blvd., Fremont, California 94555, USA、
電話番号は 510.796.6100、Web サイトは http://www.mylex.com です。
Mylex 社のテクニカルサポートは、電子メールでは mylexsup@us.ibm.com、
電話では 510.608.2400、FAX では 510.745.7715 からアクセスできます。
Web サイトには、ヨーロッパや日本のオフィスの連絡先があります。

Linux での DAC960 PCI RAID コントローラサポートの最新情報は、
このドライバの最新リリースと同様、URL "http://www.dandelion.com/Linux/"
の Linux Home Page で常に入手可能です。
Linux DAC960 ドライバは、新しい eXtremeRAID 2000/3000 および
AcceleRAID 352/170/160 モデル (これらは古い eXtremeRAID 1100,
AcceleRAID 150/200/250 および DAC960PJ/PG/PU/PD/PL とは異なるまったく新しい
ファームウェアインタフェースを持っています) を含む、
現在市販されている Mylex 社のすべての PCI RAID コントローラをサポートします。
完全なコントローラのリストと、必要なファームウェアの最低バージョンについては
以下を参照してください。
簡略化のために、このドキュメントのほとんどの部分では、
サポートしているすべてのモデルを明確に列挙するかわりに、DAC960 と総称します。

ドライバのバグレポートは、"lnz@dandelion.com" に電子メールで送付してください。
バグレポートには、スタートアップ時にドライバが報告する
コンフィグレーションメッセージすべて、問題発生時に表示されるコントローラの
オペレーションに関連のあるシステムメッセージ、
システムのハードウェア設定に関する詳細な記述を含めてください。
実のところ、ドライバのバグであることはごくまれです -
たとえば、ディスクがオフライン状態になってしまうなどの問題に直面した場合には、
Linux のドライバというよりハードウェアの設定に関連している問題なので、
Mylex 社のテクニカルサポートに連絡してください。

コントローラの接続や設定に関する詳細は、
RAID コントローラのドキュメントを参照してください。
このドキュメントにはおもに Linux 向けサポートに限定された情報が書かれています。


				ドライバの特徴

DAC960 RAID コントローラは任意の SCSI デバイスへのインタフェース
としてではなく、純粋に高性能な RAID コントローラとしてサポートされます。
Linux の DAC960 ドライバは SCSI や IDE ドライバと同じレベルの、
ブロックデバイスのレベルで動作します。
現在 Linux においてサポートされている他の RAID コントローラと違って、
DAC960 ドライバは SCSI サブシステムに依存していないため、
SCSI ドライバとしての実装に係わる複雑で不用なコードをすべて回避しています。
また、最高のパフォーマンスを得るために、
パフォーマンスの低いデバイスとの互換を保つための妥協や、
余分なコードは排除するよう設計されています。
DAC960 ドライバは広範囲にわたるエラーロギングや、
オンライン設定管理機能を含んでいます。
コントローラの初期設定や新しいディスクドライブを追加する場合を除き、
システム稼働中に Linux からほぼすべての操作を行うことができます。

DAC960 ドライバは、システムごとに 8 つまでのコントローラをサポートするように
構成されています。
それぞれの DAC960 パラレル SCSI コントローラは、
チャネルごとに 15 個までのディスクドライブをサポートでき、
4 つのチャネルを持つコントローラでは最大 60 個までとなります -
ファイバーチャネルの eXtremeRAID 3000 コントローラはループごとに
125 個までのドライブをサポートし、
このコントローラは FC-AL を 2 チャネル持っているため、
合計で 250 ドライブとなります。
コントローラに接続されたドライブは、
1 つまたは複数の『ドライブグループ』に分割され、
さらにドライブグループごとに 1 個から 32 個の
『論理ドライブ (Logical Drives)』に分割されます。
それぞれの論理ドライブは個別の RAID レベルとキャッシュのポリシーを持ち、
Linux ではひとつのブロックデバイスとして認識されます。
論理ドライブは、通常の Linux や PC のディスクパーティション分割の方法によって、
さらに 7 つまでのパーティションに分割されます。
論理ドライブは『システムドライブ』としても知られており、
ドライブグループは『パック』とも呼ばれています。
Mylex 社のドキュメントではどちらの用語も使用されています -
このドキュメントではこれらを標準化するため、
より一般的な『論理ドライブ』と『ドライブグループ』を選択してあります。

DAC960 RAID ディスクデバイスは、もう使われていないデバイスファイルシステム 
(DEVFS) のスタイルで命名されます。
コントローラ C の論理ドライブ D に対応するデバイスは、
/dev/rd/cCdD として参照され、パーティションは /dev/rd/cCdDp1 から
/dev/rd/cCdDp7 となります。
例えば、コントローラ 2、論理ドライブ 5 のパーティション 3 は、
/dev/rd/c2d5p3 ということになります。
通常の SCSI ディスクと違って、
ディスクドライブが故障してもデバイス名が変わらない点に注意してください。
DAC960 ドライバでは 48 - 55 の範囲にわたるメジャー番号が
コントローラ単位にひとつずつ割り当てられます。
マイナ番号を構成する 8 ビットは、
論理ドライブ用に 5 ビット、パーティション番号用に 3 ビットと分かれています。

※ 訳注: 論理ドライブ用ビットが上位、パーティション番号用ビットが下位
	 となります。


	  サポートされている DAC960/AcceleRAID/eXtremeRAID
			PCI RAID コントローラ

以下のリストはこのドキュメントを執筆している時点でサポートされている、
DAC960, AcceleRAID および eXtremeRAID の一覧です。
以下の表にない Mylex 社製の PCI RAID コントローラを購入する場合には、
そのコントローラがサポートされているか、
または将来サポートされる予定かどうかを確認するために、
事前に筆者まで連絡することをお奨めします。

eXtremeRAID 3000
	    Wide Ultra-2/LVD SCSI 1 チャネル
	    外部 Fibre FC-AL 2 チャネル
	    233MHz StrongARM SA 110 プロセッサ
	    64 ビット 33MHz PCI (32 ビット PCI スロット下位互換)
	    32MB/64MB ECC SDRAM メモリ

eXtremeRAID 2000
	    Wide Ultra-160 LVD SCSI 4 チャネル
	    233MHz StrongARM SA 110 プロセッサ
	    64 ビット 33MHz PCI (32 ビット PCI スロット下位互換)
	    32MB/64MB ECC SDRAM メモリ

AcceleRAID 352
	    Wide Ultra-160 LVD SCSI 2 チャネル
	    100MHz Intel i960RN RISC プロセッサ
	    64 ビット 33MHz PCI (32 ビット PCI スロット下位互換)
	    32MB/64MB ECC SDRAM メモリ

AcceleRAID 170
	    Wide Ultra-160 LVD SCSI 1 チャネル
	    100MHz Intel i960RM RISC プロセッサ
	    16MB/32MB/64MB ECC SDRAM メモリ

AcceleRAID 160 (AcceleRAID 170LP)
	    Wide Ultra-160 LVD SCSI 1 チャネル
	    100MHz Intel i960RS RISC プロセッサ
	    ビルトイン 16M ECC SDRAM メモリ
	    PCI Low Profile Form Factor - 2U の高さに適合

eXtremeRAID 1100 (DAC1164P)
	    Wide Ultra-2/LVD SCSI 3 チャネル
	    233MHz StrongARM SA 110 プロセッサ
	    64 ビット 33MHz PCI (32 ビット PCI スロット下位互換)
	    16MB/32MB/64MB パリティ SDRAM メモリ (バッテリバックアップ)

AcceleRAID 250 (DAC960PTL1)
	    特定のマザーボードではオンボードの Symbios SCSI チップを使用可能
	    オンボード Wide Ultra-2/LVD SCSI 1 チャネルも含む
	    66MHz Intel i960RD RISC プロセッサ
	    4MB/8MB/16MB/32MB/64MB/128MB ECC EDO メモリ

AcceleRAID 200 (DAC960PTL0)
	    特定のマザーボードではオンボードの Symbios SCSI チップを使用可能
	    オンボード SCSI チャネルなし
	    66MHz Intel i960RD RISC プロセッサ
	    4MB/8MB/16MB/32MB/64MB/128MB ECC EDO メモリ

AcceleRAID 150 (DAC960PRL)
	    特定のマザーボードではオンボードの Symbios SCSI チップを使用可能
	    オンボード Wide Ultra-2/LVD SCSI 1 チャネルも含む
	    33MHz Intel i960RP RISC プロセッサ
	    4MB パリティ EDO メモリ

DAC960PJ    Wide Ultra SCSI-3 1/2/3 チャネル
	    66MHz Intel i960RD RISC プロセッサ
	    4MB/8MB/16MB/32MB/64MB/128MB ECC EDO メモリ

DAC960PG    Wide Ultra SCSI-3 1/2/3 チャネル
	    33MHz Intel i960RP RISC プロセッサ
	    4MB/8MB ECC EDO メモリ

DAC960PU    Wide Ultra SCSI-3 1/2/3 チャネル
	    Intel i960CF RISC プロセッサ
	    4MB/8MB EDRAM または 2MB/4MB/8MB/16MB/32MB DRAM メモリ

DAC960PD    Wide Fast SCSI-2 1/2/3 チャネル
	    Intel i960CF RISC プロセッサ
	    4MB/8MB EDRAM または 2MB/4MB/8MB/16MB/32MB DRAM メモリ

DAC960PL    Wide Fast SCSI-2 1/2/3 チャネル
	    Intel i960 RISC プロセッサ
	    2MB/4MB/8MB/16MB/32MB DRAM メモリ

DAC960P	    Wide Fast SCSI-2 1/2/3 チャネル
	    Intel i960 RISC プロセッサ
	    2MB/4MB/8MB/16MB/32MB DRAM メモリ

eXtremeRAID 2000/3000 および AcceleRAID 352/170/160 を使用する場合、
ファームウェアのバージョン 6.00-01 以上が必要です。

eXtremeRAID 1100 を使用する場合、
ファームウェアのバージョン 5.06-0-52 以上が必要です。

AcceleRAID 250, 200 および 150 を使用する場合、
ファームウェアのバージョン 4.06-0-57 以上が必要です。

DAC960PJ および DAC960PG を使用する場合、
ファームウェアのバージョン 4.06-0-00 以上が必要です。

DAC960PU, DAC960PD, DAC960PL および DAC960P を使用する場合、
ファームウェアのバージョン 3.51-0-04 以上
(デュアル Flash ROM コントローラ用) か、
ファームウェアのバージョン 2.73-0-00 以上 (シングル Flash ROM コントローラ用)
が必要です。

すべての SCSI ディスクドライブが DAC960 での使用に適しているとは限らないので、
注意してください。
特定のモデルとファームウェアバージョンの組み合わせしか
正しく機能しないこともあり得ます。
同様に、Intel i960RD/RP がマルチファンクションデバイスであるため、
すべてのマザーボードが AcceleRAID 250, AcceleRAID 200, AcceleRAID 150,
DAC960PJ および DAC960PG を正しく初期化する BIOS
を持っているわけではありません。
疑わしい場合には、Mylex 社の RAID テクニカルサポート (mylexsup@us.ibm.com)
に連絡して、互換性を確認してください。
Mylex 社によるハードディスクの互換性リストは
http://www.mylex.com/support/hdcomp/hd-lists.html で公開されています。


			    ドライバのインストール

このディストリビューションは Linux カーネルのバージョン 2.2.19 または
2.4.12 向けに準備されました。

DAC960 RAID ドライバをインストールするには、以下のコマンドシーケンスが
使用できるでしょう。
この中で、"/usr/src" については Linux のカーネルソースツリーを展開したパスに
置き換えてください -

  cd /usr/src
  tar -xvzf DAC960-2.2.11.tar.gz (または DAC960-2.4.11.tar.gz)
  mv README.DAC960 linux/Documentation
  mv DAC960.[ch] linux/drivers/block
  patch -p0 < DAC960.patch (DAC960.patch が含まれている場合)
  cd linux
  make config
  make bzImage (または zImage)

続いて、"arch/i386/boot/bzImage" または "arch/i386/boot/zImage"
を標準カーネルとしてインストールし、必要に応じて lilo を実行してから、
リブートしてください。

/dev 配下に必要なデバイスを作成するには、http://www.dandelion.com/Linux/
から入手できる "DAC960-Utilities.tar.gz" に入っている "make_rd" スクリプト
を使用できます。
LILO 21 および FDISK v2.9 は DAC960 をサポートしています -
このアーカイブには、スタティックリンクされた LILO および FDISK のほか、
LILO 20 および FDISK v2.8 に DAC960 サポートを追加するパッチも含まれています。
この変更された LILO を使用すれば、 DAC960 コントローラから
ブートすることができ、DAC960 にルートファイルシステムを作成して
マウントすることもできます。

Red Hat Linux 6.0 と SuSE Linux 6.1 には Mylex 社の PCI RAID コントローラの
サポートが含まれます。
これら以外のディストリビューションで DAC960 に直接インストールするのは、
インストールユーティリティが更新されるまで問題となる可能性があります。


			     インストール時の注意

Linux をインストールするか、すでにある Linux システムに DAC960
の論理ドライブを追加するときは、まず BIOS 設定ユーティリティか DACCF
を使用してコントローラの設定を行い、
ひとつまたは複数の論理ドライブを準備しなければなりません。
論理ドライブごとに、使用可能なパーティションが最大 6 つしかないため、
より多くのパーティションを必要とするシステムでは
ドライブグループを複数の論理ドライブに細分化しなければなりません。
それぞれの論理パーティションで 6 つまでの使用可能なパーティションを
持つことができます。
また、大きなディスクアレイでは、デフォルトである 2GB BIOS ジオメトリ (128/32)
よりも、8GB BIOS ジオメトリ (255/63) を有効にするほうが賢明です -
このようにしないと、65535 シリンダ以上を持つ論理ドライブのジオメトリに対して、
FDISK が正しく使用できなくなる原因となります。
8GB BIOS ジオメトリは、DAC960 BIOS で設定すれば有効にできます。
DAC960 BIOS にアクセスするには、BIOS の初期化シーケンス中に Alt-M
を押してください。

※ 訳注: 『ドライバの特徴』では、パーティションは /dev/rd/cCdDp1 から
	 /dev/rd/cCdDp7 までの 7 つまでと記述がありましたが、
	 実際に Linux でこれらのパーティションを最大限使用できるように
	 パーティション分割を行う場合には、ひとつのパーティションを
	 拡張パーティションとする必要があるため、実質的に使用できる
	 パーティションは 6 つまでとなります。

最高のパフォーマンスともっとも効率の良い E2FSCK のパフォーマンスを得るには、
DAC960 コントローラのデフォルトストライプサイズである 64KB に適合させるため、
EXT2 ファイルシステムを 4KB のブロックサイズ、16 ブロックのストライドで
作成することをお奨めします。
適切なコマンドは "mke2fs -b 4096 -R stride=16 <デバイス>" となります。
ファイルシステムに大量の小さなファイルを作成する場合を除いて、
inode あたりのバイト数を増やすことによってファイルシステムの
メタデータを減らすため、
オプション "-i 16384" を追加すると有益です。
最後に、Linux 2.2 以降のカーネルしか稼働させない予定のシステムでは、
"-s 1" オプションで sparse スーパーブロックを有効にすると有益です。


		         DAC960 告知メーリングリスト

DAC960 告知メーリングリスト (DAC960 Announcements Mailing List) は、
Linux のユーザへ新しいドライバのリリースを通知したり、
DAC960 PCI RAID コントローラの Linux サポートに関するその他の告知を
行うためのフォーラムを提供しています。
メーリングリストに参加するには、
メッセージ本文に "subscribe" とだけ記載したメールを
"dac960-announce-request@dandelion.com" 宛てに送ってください。


		     コントローラの設定とステータスモニタ

バージョン 4.06 以降のファームウェアが稼働している DAC960 RAID コントローラは、
バックグラウンド初期化機能が含まれるため、
初期設定時およびその後のストレージの追加設定時のシステムダウン時間が
最小化されます。
BIOS 設定ユーティリティ (BIOS 初期化シーケンス中に Alt-R
を押すことでアクセス可能) はコントローラを素早く設定でき、
作成された論理ドライブはコントローラから初期化中でも即座に使用できます。
オンライン設定とステータスモニタを実装する場合には、ディスクドライブが故障し、
交換をしなければならないときのシステムダウン時間を防ぐことが主な要求です。
Mylex 社のオンラインモニタと設定ユーティリティについては、
現在 Linux への移植が進められていますので、
将来的には使用できるようになるでしょう。

※ 訳注: この翻訳をしている 2002 年 12 月現在、Linux 2.2.15 用
	 Global Array Manager (GAM) Server Driver がリリースされています
	 (http://www.mylex.com/products/dac960/drivers/gam.html)。

SAF-TE (SCSI Accessed Fault-Tolerant Enclosure) エンクロージャがある場合、
コントローラはドライブ交換が完了すると同時に自動的に故障したドライブのデータを
リビルドできることに注意してください。

コントローラの設定とステータスモニタのための主なインタフェースは、
通常のシステムコンソールへのロギング機構と /proc/rd/... 階層内に作成される
特殊なファイルとなります。
システムが稼働中ならいつでも、DAC960 ドライバは 10 秒ごとにステータス情報を
コントローラごとに問い合わせ、60 秒ごとに追加の状態をチェックします。
コントローラごとの初期状態は、/proc/rd/cN/initial_status で
コントローラ N のステータスを常に参照することができ、
ステータスモニタによる最新の問い合わせの結果についても、
/proc/rd/cN/current_status で参照できます。
さらにステータスの変化は、ドライバによってシステムコンソールと
syslog の管理しているログファイルにもロギングされます。
非同期に行われるリビルドまたは一貫性チェック操作の進行状況についても、
/proc/rd/cN/current_status にて参照でき、
進行メッセージが最大でも 60 秒ごとにシステムコンソールにロギングされます。

ドライバのバージョン 2.2.3/2.0.3 以降では、
/proc/rd/cN/initial_status および /proc/rd/cN/current_status にて参照できる
ステータス情報が拡充され、コントローラに接続されている物理デバイスごとの
ベンダ、モデル、リビジョン、およびシリアル番号 (有効である場合)
が追加されています -

***** DAC960 RAID Driver Version 2.2.3 of 19 August 1999 *****
Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
Configuring Mylex DAC960PRL PCI RAID Controller
  Firmware Version: 4.07-0-07, Channels: 1, Memory Size: 16MB
  PCI Bus: 1, Device: 4, Function: 1, I/O Address: Unassigned
  PCI Address: 0xFE300000 mapped at 0xA0800000, IRQ Channel: 21
  Controller Queue Depth: 128, Maximum Blocks per Command: 128
  Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
  Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
  SAF-TE Enclosure Management Enabled
  Physical Devices:
    0:0  Vendor: IBM       Model: DRVS09D           Revision: 0270
         Serial Number:       68016775HA
         Disk Status: Online, 17928192 blocks
    0:1  Vendor: IBM       Model: DRVS09D           Revision: 0270
         Serial Number:       68004E53HA
         Disk Status: Online, 17928192 blocks
    0:2  Vendor: IBM       Model: DRVS09D           Revision: 0270
         Serial Number:       13013935HA
         Disk Status: Online, 17928192 blocks
    0:3  Vendor: IBM       Model: DRVS09D           Revision: 0270
         Serial Number:       13016897HA
         Disk Status: Online, 17928192 blocks
    0:4  Vendor: IBM       Model: DRVS09D           Revision: 0270
         Serial Number:       68019905HA
         Disk Status: Online, 17928192 blocks
    0:5  Vendor: IBM       Model: DRVS09D           Revision: 0270
         Serial Number:       68012753HA
         Disk Status: Online, 17928192 blocks
    0:6  Vendor: ESG-SHV   Model: SCA HSBP M6       Revision: 0.61
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Online, 89640960 blocks, Write Thru
  No Rebuild or Consistency Check in Progress

専用ソフトウェアなどのためのモニタ処理を単純化するために、特殊なファイル
/proc/rd/status は、システム上のすべての DAC960 コントローラが正常に稼働し、
故障が発生していなければ "OK" を返し、
いずれかの論理ドライブがオフラインや緊急保守要求状態となっているか、
いずれかのスタンバイ状態でない物理ドライブが DEAD ステータスとなっている
場合には "ALERT" を返します。

コントローラ N に対する設定コマンドは特殊ファイル /proc/rd/cN/user_command
を通して使用できます。
設定操作を開始するために、可読性の高いコマンドをこの特殊ファイルに
書き込むことができ、操作の結果がシステムコンソールにロギングされるほかに、
この特殊ファイルから読み出すことができます。
設定コマンドを実行するには、以下のシェルコマンドシーケンスを使用するのが
典型的な方法です。

  echo "<設定コマンド>" > /proc/rd/c0/user_command
  cat /proc/rd/c0/user_command

設定コマンドには以下のものがあります -

  flush-cache

    "flush-cache" コマンドはコントローラのキャッシュをフラッシュします。
    システムのシャットダウン時やドライバモジュールのアンロード時には、
    自動的にキャッシュをフラッシュするため、このコマンドが必要となるのは、
    UPS へのコマンドによってシステムがパワーオフする前にディスクへ
    キャッシュを確実に書き戻すときに限られます。
    また、flush-cache コマンドは非同期なリビルドや一貫性チェックを
    停止させるため、システムが停止するとき以外には使用すべきでないことに
    注意してください。

  kill <チャネル>:<ターゲット ID>

    "kill" コマンドは物理ドライブ <チャネル>:<ターゲット ID> を DEAD
    ステータスにします。
    このコマンドは主にテスト用に提供されており、
    通常のシステム操作では使用するべきではありません。

  make-online <チャネル>:<ターゲット ID>

    "make-online" コマンドは物理ドライブ <チャネル>:<ターゲット ID> を
    DEAD ステータスから ONLINE ステータスに変更します。
    複数の物理ドライブが同時に DEAD ステータスとなってしまった場合には、
    このコマンドで 1 台以外の物理ドライブをオンラインにし、
    その後最終的なドライブのリビルドが不可欠です。

    警告 - make-online は DEAD ステータスの物理ドライブがドライブグループ
    のアクティブな部分である場合にのみ使用すべきであり、スタンバイ
    ステータスのドライブには決して実行しないでください。
    このコマンドは重要な論理ドライブの一部となっている DEAD ステータスの
    ドライブには実行すべきではありません -
    リビルドは 1 台のドライブが DEAD ステータスとなった場合にのみ
    使用すべきです。

  make-standby <チャネル>:<ターゲット ID>

    "make-standby" コマンドは物理ドライブ <チャネル>:<ターゲット ID> を
    DEAD ステータスから STANDBY ステータスに変更します。
    このコマンドは、STANDBY ステータスのドライブに対して自動リビルドが
    実行され、DEAD ステータスのドライブが交換された後にのみ使用すべきです。
    このコマンドは、STANDBY ステータスのドライブを用意していなかった場合に、
    STANDBY ステータスのドライブを後からコントローラ設定に追加するためには
    使用できません -
    そうしたければ、
    現時点では BIOS 設定ユーティリティを使用するしかありません。

  rebuild <チャネル>:<ターゲット ID>

    "rebuild" コマンドは物理ドライブ <チャネル>:<ターゲット ID> への非同期な
    リビルドを開始させます。
    このコマンドは DEAD ステータスのドライブを交換した後にだけ使用すべきです。 

  check-consistency <論理ドライブ番号>

    "check-consistency" コマンドは、<論理ドライブ番号>
    の非同期な一貫性チェック (自動的な修復機能付き) を開始させます。
    このコマンドは冗長情報の一貫性を確認する必要があるときに使用できます。

  cancel-rebuild
  cancel-consistency-check

    "cancel-rebuild" コマンドおよび "cancel-consistency-check" コマンドは、
    すでに開始されているすべてのリビルドや一貫性チェックをキャンセルします。


	       例 I - STANDBY ドライブがない状態でのドライブ故障

以下の注釈付きのログは、Linux DAC960 ドライバのコントローラ設定と
オンラインステータスモニタの各機能をデモンストレーションしたものです。
テスト用の設定は、DAC960PJ コントローラの 2 つのチャネルに接続された 6 台の
1GB Quantum Atlas I ディスクドライブで構成されています。
これらの物理ドライブは、STANDBY ステータスのドライブがない、
ひとつのドライブグループに設定されており、
このドライブグループは、RAID-5 と RAID-6 の 2 つの論理ドライブに
設定されています。
これらのログはドライバの古いバージョンのものであり、
新しいリリースでメッセージが多少変更されていることに注意してください。
ただし、機能そのものはほとんど変わっていません。
まず、これが RAID 設定の現在のステータスです -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
***** DAC960 RAID Driver Version 2.0.0 of 23 March 1999 *****
Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
Configuring Mylex DAC960PJ PCI RAID Controller
  Firmware Version: 4.06-0-08, Channels: 3, Memory Size: 8MB
  PCI Bus: 0, Device: 19, Function: 1, I/O Address: Unassigned
  PCI Address: 0xFD4FC000 mapped at 0x8807000, IRQ Channel: 9
  Controller Queue Depth: 128, Maximum Blocks per Command: 128
  Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
  Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Online, 2201600 blocks
    1:2 - Disk: Online, 2201600 blocks
    1:3 - Disk: Online, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Online, 5498880 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Online, 3305472 blocks, Write Thru
  No Rebuild or Consistency Check in Progress

gwynedd:/u/lnz# cat /proc/rd/status
OK

上のメッセージはすべてが正常であることを示しており、
/proc/rd/status が "OK" を返しているのはシステム上のすべての DAC960
コントローラが問題ない状態であることを示しています。
デモンストレーションのため、I/O がアクティブなときに物理ドライブ 1:1 を
ここでディスコネクトし、ドライブ故障を疑似的に起こしてみましょう。
この故障はドライバによってコントローラが発見してから 10 秒以内に検知され、
ドライバは物理デバイス 1:1 が DEAD ステータスになった結果として、
論理ドライブ 0 および 1 が CRITICAL となったことを以下のようなコンソール
ステータスメッセージでロギングします -

DAC960#0: Physical Drive 1:2 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
DAC960#0: Physical Drive 1:3 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
DAC960#0: Physical Drive 1:1 killed because of timeout on SCSI command
DAC960#0: Physical Drive 1:1 is now DEAD
DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now CRITICAL
DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now CRITICAL

ここでロギングされているセンスキーは、
エラー回復手続きのときに
コントローラから強制的に行われた SCSI バスリセットの結果得られた
チェックコンディション / ユニットアテンションの状態です。
これと同時に、/proc/rd から参照できるドライバステータスも、
ドライブの故障を反映しています。
/proc/rd/status のステータスメッセージは "OK" から "ALERT" に変化しています -

gwynedd:/u/lnz# cat /proc/rd/status
ALERT

/proc/rd/c0/current_status も更新されています -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
  ...
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Dead, 2201600 blocks
    1:2 - Disk: Online, 2201600 blocks
    1:3 - Disk: Online, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Critical, 5498880 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Critical, 3305472 blocks, Write Thru
  No Rebuild or Consistency Check in Progress

STANDBY ドライブが設定されていないため、論理ドライブの冗長性を修復するために
故障したドライブが交換され、リビルド操作が完了するまで
システムはパフォーマンス縮退モードでアクセスを継続することができます。
一度物理ドライブ 1:1 が正しく機能するドライブに交換されるか、
その物理ドライブが故障していないのに DEAD ステータスとなった場合
(たとえば、SCSI バスの電気的な問題のため)、
ユーザはコントローラに指示を送り、新しく交換したドライブに
リビルド操作を開始させることができます -

gwynedd:/u/lnz# echo "rebuild 1:1" > /proc/rd/c0/user_command
gwynedd:/u/lnz# cat /proc/rd/c0/user_command
Rebuild of Physical Drive 1:1 Initiated

echo コマンドは物理ドライブ 1:1 に対して非同期のリビルド操作を開始するよう
コントローラに指示しています。
この操作の結果を示すステータスメッセージは、
/proc/rd/c0/user_command を通じて読めるようになり、
同時にドライバによってコンソールへロギングされます。

このコマンド実行後 10 秒以内に、
ドライバは非同期のリビルド操作の開始をロギングします -

DAC960#0: Rebuild of Physical Drive 1:1 Initiated
DAC960#0: Physical Drive 1:1 Error Log: Sense Key = 6, ASC = 29, ASCQ = 01
DAC960#0: Physical Drive 1:1 is now WRITE-ONLY
DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 1% completed

そして /proc/rd/c0/current_status が更新されます -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
  ...
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Write-Only, 2201600 blocks
    1:2 - Disk: Online, 2201600 blocks
    1:3 - Disk: Online, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Critical, 5498880 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Critical, 3305472 blocks, Write Thru
  Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 6% completed

リビルドの進行に応じて、10 秒ごとに /proc/rd/c0/current_status
の現在のステータスが更新されます -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
  ...
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Write-Only, 2201600 blocks
    1:2 - Disk: Online, 2201600 blocks
    1:3 - Disk: Online, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Critical, 5498880 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Critical, 3305472 blocks, Write Thru
  Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 15% completed

そして、ドライバによりコンソールへ 1 分ごとに進行メッセージがロギングされます -

DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 32% completed
DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 63% completed
DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 94% completed
DAC960#0: Rebuild in Progress: Logical Drive 1 (/dev/rd/c0d1) 94% completed

最終的に、リビルドが首尾よく完了します。
ドライバは論理ドライブおよび物理ドライブのステータスと、
リビルドの完了をロギングします。

DAC960#0: Rebuild Completed Successfully
DAC960#0: Physical Drive 1:1 is now ONLINE
DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now ONLINE
DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now ONLINE

/proc/rd/c0/current_status が更新されます -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
  ...
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Online, 2201600 blocks
    1:2 - Disk: Online, 2201600 blocks
    1:3 - Disk: Online, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Online, 5498880 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Online, 3305472 blocks, Write Thru
  Rebuild Completed Successfully

そして /proc/rd/status はふたたびすべて正常な状態を示します -

gwynedd:/u/lnz# cat /proc/rd/status
OK


		例 II - STANDBY ドライブがある状態でのドライブ故障

以下の注釈付きのログは、Linux DAC960 ドライバのコントローラ設定と
オンラインステータスモニタの各機能をデモンストレーションしたものです。
テスト用の設定は、DAC960PJ コントローラの 2 つのチャネルに接続された 6 台の
1GB Quantum Atlas I ディスクドライブで構成されています。
これらの物理ドライブは、STANDBY ステータスのドライブのある、
ひとつのドライブグループに設定されていて、
このドライブグループは、RAID-5 と RAID-6 の 2 つの論理ドライブに
設定されています。
これらのログはドライバの古いバージョンのものであり、
新しいリリースでメッセージが多少変更されていることに注意してください。
ただし、機能そのものはほとんど変わっていません。
まず、これが RAID 設定の現在のステータスです -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
***** DAC960 RAID Driver Version 2.0.0 of 23 March 1999 *****
Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
Configuring Mylex DAC960PJ PCI RAID Controller
  Firmware Version: 4.06-0-08, Channels: 3, Memory Size: 8MB
  PCI Bus: 0, Device: 19, Function: 1, I/O Address: Unassigned
  PCI Address: 0xFD4FC000 mapped at 0x8807000, IRQ Channel: 9
  Controller Queue Depth: 128, Maximum Blocks per Command: 128
  Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
  Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Online, 2201600 blocks
    1:2 - Disk: Online, 2201600 blocks
    1:3 - Disk: Standby, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Online, 4399104 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Online, 2754560 blocks, Write Thru
  No Rebuild or Consistency Check in Progress

gwynedd:/u/lnz# cat /proc/rd/status
OK

上のメッセージはすべてが正常であることを示しており、
/proc/rd/status が "OK" を返しているのはシステム上のすべての DAC960
コントローラが問題ない状態であることを示しています。
デモンストレーションのため、I/O がアクティブなときに物理ドライブ 1:2
をここでディスコネクトし、ドライブ故障を疑似的に起こしてみましょう。
この故障はドライバによってコントローラが発見してから 10 秒以内に検知され、
以下のようなコンソールステータスメッセージでロギングします -

DAC960#0: Physical Drive 1:1 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
DAC960#0: Physical Drive 1:3 Error Log: Sense Key = 6, ASC = 29, ASCQ = 02
DAC960#0: Physical Drive 1:2 killed because of timeout on SCSI command
DAC960#0: Physical Drive 1:2 is now DEAD
DAC960#0: Physical Drive 1:2 killed because it was removed
DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now CRITICAL
DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now CRITICAL

STANDBY ステータスのドライブが設定されているため、
コントローラは自動的に STANDBY ステータスのドライブに対してリビルドを
開始します -

DAC960#0: Physical Drive 1:3 is now WRITE-ONLY
DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 4% completed

これと同時に、/proc/rd から参照できるドライバステータスもドライブの故障と
自動リビルドを反映しています。
/proc/rd/status のステータスメッセージは "OK" から "ALERT" に変化しています -

gwynedd:/u/lnz# cat /proc/rd/status
ALERT

/proc/rd/c0/current_status も更新されています -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
  ...
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Online, 2201600 blocks
    1:2 - Disk: Dead, 2201600 blocks
    1:3 - Disk: Write-Only, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Critical, 4399104 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Critical, 2754560 blocks, Write Thru
  Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 4% completed

リビルドの進行に応じて、10 秒ごとに /proc/rd/c0/current_status
の現在のステータスが更新されます -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
  ...
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Online, 2201600 blocks
    1:2 - Disk: Dead, 2201600 blocks
    1:3 - Disk: Write-Only, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Critical, 4399104 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Critical, 2754560 blocks, Write Thru
  Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 40% completed

そして、ドライバによりコンソールへ 1 分ごとに進行メッセージがロギングされます -

DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 40% completed
DAC960#0: Rebuild in Progress: Logical Drive 0 (/dev/rd/c0d0) 76% completed
DAC960#0: Rebuild in Progress: Logical Drive 1 (/dev/rd/c0d1) 66% completed
DAC960#0: Rebuild in Progress: Logical Drive 1 (/dev/rd/c0d1) 84% completed

最終的に、リビルドが首尾よく完了します。
ドライバは論理ドライブおよび物理ドライブのステータスと、
リビルドの完了をロギングします。

DAC960#0: Rebuild Completed Successfully
DAC960#0: Physical Drive 1:3 is now ONLINE
DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now ONLINE
DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now ONLINE

/proc/rd/c0/current_status が更新されます -

***** DAC960 RAID Driver Version 2.0.0 of 23 March 1999 *****
Copyright 1998-1999 by Leonard N. Zubkoff <lnz@dandelion.com>
Configuring Mylex DAC960PJ PCI RAID Controller
  Firmware Version: 4.06-0-08, Channels: 3, Memory Size: 8MB
  PCI Bus: 0, Device: 19, Function: 1, I/O Address: Unassigned
  PCI Address: 0xFD4FC000 mapped at 0x8807000, IRQ Channel: 9
  Controller Queue Depth: 128, Maximum Blocks per Command: 128
  Driver Queue Depth: 127, Maximum Scatter/Gather Segments: 33
  Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Online, 2201600 blocks
    1:2 - Disk: Dead, 2201600 blocks
    1:3 - Disk: Online, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Online, 4399104 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Online, 2754560 blocks, Write Thru
  Rebuild Completed Successfully

そして /proc/rd/status はふたたびすべて正常な状態を示します -

gwynedd:/u/lnz# cat /proc/rd/status
OK

使用可能な STANDBY ステータスのドライブがないことは "ALERT" ステータスを
生成しないことに注意してください。
DEAD ステータスの物理ドライブ 1:2 が交換されたときには、
この事実をコントローラに知らせ、新しく交換されたドライブが新しい STANDBY
ステータスのディスクとなることを教えてやらなければなりません -

gwynedd:/u/lnz# echo "make-standby 1:2" > /proc/rd/c0/user_command
gwynedd:/u/lnz# cat /proc/rd/c0/user_command
Make Standby of Physical Drive 1:2 Succeeded

echo コマンドは物理ドライブ 1:2 を STANDBY ドライブとするよう
コントローラに指示しています。
この操作の結果を示すステータスメッセージは、
/proc/rd/c0/user_command を通じて読めるようになり、
同時にドライバによってコンソールへロギングされます。
このコマンド実行から 60 秒以内にドライバは以下のようなロギングを行います -

DAC960#0: Physical Drive 1:2 Error Log: Sense Key = 6, ASC = 29, ASCQ = 01
DAC960#0: Physical Drive 1:2 is now STANDBY
DAC960#0: Make Standby of Physical Drive 1:2 Succeeded

そして /proc/rd/c0/current_status が更新されます -

gwynedd:/u/lnz# cat /proc/rd/c0/current_status
  ...
  Physical Devices:
    0:1 - Disk: Online, 2201600 blocks
    0:2 - Disk: Online, 2201600 blocks
    0:3 - Disk: Online, 2201600 blocks
    1:1 - Disk: Online, 2201600 blocks
    1:2 - Disk: Standby, 2201600 blocks
    1:3 - Disk: Online, 2201600 blocks
  Logical Drives:
    /dev/rd/c0d0: RAID-5, Online, 4399104 blocks, Write Thru
    /dev/rd/c0d1: RAID-6, Online, 2754560 blocks, Write Thru
  Rebuild Completed Successfully

======================================================================
翻訳団体: JF プロジェクト <http://www.linux.or.jp/JF/>
翻訳者: 井上 秀 <inoue@mxg.nes.nec.co.jp>
校正: 川崎 貴彦さん <takahiko@hakubi.co.jp>
      山下 義之さん <dica@eurus.dti.ne.jp>
      かねこ さん <skaneko@a2.mbn.or.jp>
