Linux DPT Hardware RAID HOWTO Ram Samudrala (me@ram.org) v1.4, 9 April 1999 高橋 聡 hisai@din.or.jp 27 Jul 1999 Linux でハードウエア RAID をセットアップする方法 ______________________________________________________________________ 目次 1. 序論 2. サポートされているコントローラ 2.1 DPT 製のコントローラ 2.2 ICP 製の vortex コントローラ 3. どのハードウエアを使うべきか? 3.1 コントローラ タイプ 3.2 RAID ディスク組み込みタイプ 4. インストール 4.1 インストールとハードウエアの設定 4.2 カーネルの構築 4.3 ブート時のメッセージ 5. 使いかた 5.1 fdisk, mke2fs, mount, etc. 5.2 ホットスワップ 5.3 パフォーマンス 6. EATA DMA ドライバの機能 7. トラブルシューティング 7.1 ブート時に SCSI ホストが認識されない 7.2 実際のディスクの個数と RAID の設定があわない 7.3 フォーマットの最中にマシンもしくはコントローラがダウンしてしまう 7.4 まったくお手上げです... 8. 参考文献 9. 謝辞 ______________________________________________________________________ 1. 序論 このドキュメントは、SCSI ハードウエア RAID(Redundant Array of Inexpensive(Independent) Disks) のセットアップを解説します。 DPT が発 売している、ホストに内蔵するタイプのアダプタに焦点を当てて説明します が、基本的な原理は、他のシステムにも当てはまると思います。 訳註:RAID という言葉がはじめて登場した時は、Redundant Array of Inexpensive Disks という表現でしたが、最近は Redundant Array of Independent Disks と表現する場合もあります。 これから解説する内容については、ご自分の責任において利用してください。 このドキュメントを読んで行ったこと全てにおいて、一切責任は持てません。 最新版はここにあります。 http://www.ram.org/computing/linux/dpt_raid.html. このドキュメントの前提条件は、Linux がすでに稼働していることだけです。 また私が試した機器は DPT の Smartcache IV PM2144UW と PM3334UW コント ローラと DPT(SmartRAID tower)、Wetex の アダプタ組み込みタイプの RAID だけです。他のシステムを設定したことはありませんので、あなたのシステム の設定とは異なる場合があることをご承知おきください。 2. サポートされているコントローラ 今のところ、ホストに内蔵するタイプのハードウエア RAID コントローラの内 でサポートが良いのは(Linux のドライバがある)は、DPT の製品です。もちろん他のメーカにも Linux で動作す ると思われるホストに内蔵するタイプ、通常の SCSI カード とケーブルで接 続するタイプ(以下 SCSI-SCSI タイプ)のハードウエア RAID コントローラが あります。 Syred 、 ICP-Vortex , と BusLogic などがそれに当たりま す。この他にも SCSI-SCSI タイプのコントローラはいくつもありますので、 詳細は、 RAID solutions for Linux page を見てください。 将来、他のコントローラがサポートされたら、できるだけこのドキュメントに 反映させていくつもりです。このドキュメントに必要だと思われるような情報 があれば、ぜひ送ってください。 2.1. DPT 製のコントローラ 今のところこのドキュメントは、DPT の製品を中心に説明してあります。 SmartRAID IV シリーズのコントローラは全てサポートされています。 2.2. ICP 製の vortex コントローラ ICP 製の vortex は、フル ライナップのディスク・アレイ・コントローラシ リーズです。ICP のドライバは、カーネル 2.0.31 からサポートされていま す。メジャーなディストリビューションである S.u.S.e.、LST Power Linux、Caldera と Red Hat では OS のインストールの時に認識されま す。RAID システムは、 ROMSETUP で簡単に設定できます(設定のために MS- DOS でブートする必要はありません!)。 監視ツールの GDTMON を使えば、システムが稼働中でも管理が可能になります (転送レートのチェック、コントローラやハード・ディスクのパラメタの設 定、障害があるハード・ディスクの交換、その他)。現在、構築可能な構成 は、 o SCSI チャネル数が 1 もしくは 2 で wide もしくは ultra SCSI コント ローラを使用する RAID 0 と RAID 1 の組合せか、RAID 1、2、3 と RAID 5の組合せ。 o wide もしくは ultra SCSI コントローラ を使用する RAID 0、1、4、5 と RAID 10の組合せ。 o SCSI チャネル数が 1 もしくは 2 チャネルの wide もしくは ultra2 の LVDS SCSI コントローラを使用する RAID 0 と RAID 1の組合せか、RAID 1、2、3 と RAID 5 の組合せ。 o wide もしくは ultra2 の LVDS SCSI コントローラを使用する RAID 0、 1、4、5 と RAID 10 の組合せ。 o ファイバー・チャネル数が 1 もしくは 2 ポートのファイバー・チャネル コントローラを使用した RAID 0、1、4、5 と RAID 10 の組合せ。 まもなく 64 ビットのコントローラが利用できるようになる予定です。 訳註 o RAID 10:ストライピングとミラーリングを行います。 o LVDS:Low Voltage Differential Signalling の略称。転送速度が 80 MB/sec まで可能で、ケーブル長が 12m まで伸ばせます。 o 現在、64 ビット PCI ファイバー・チャネル コントローラは Linux (カー ネル 2.0.36 と 2.2.0(pre7)) で利用可能になりました。詳しくは、 参照してください。 3. どのハードウエアを使うべきか? 3.1. コントローラ タイプ 上記に上げた利用可能な組合せの中から、RAID を構築したいと考えているな ら、何が実際に必要なのかをよく考える必要があります。RAID に何を求める かによって、どの RAID レベルが必要かが決まります。その条件によって適切 なカードも決定できると思います。SCSI-SCSI タイプのアダプタはホストに内 蔵するタイプのものよりパフォーマンスが劣るかもしれません。例えば、 DPT comparison between host-based and SCSI-to-SCSI adapters を見てみると、その理由が書いてありま す。 EATA-DMA ドライバを書いた Michael Neuffer 氏 (neuffer@kralle.zdv.uni-mainz.de)はこの件についてのわかりやすい解説を 彼の Web に載せています。 Linux High Performance SCSI and RAID page 。 3.2. RAID ディスク組み込みタイプ RAID ディスク組み込みタイプはたいへん優れています。ドライブのホット・ スワップ、ワーニング・システム(例えば、故障時の表示をしたり、どのドラ イブが故障したかを知ることができる、など)そしてドライブの状態監視(予備 の冷却装置や電源供給装置の状況)が可能です。我々は DPT 製の 初期の 18GB RAID 5 システムを使用していましたが、たいへん高価でした。今は Wetex 製 のものを使用しており、 (http://www.wetex.com/) DPT と同じスペックで、 価格は およそ 1/4 です。その Wetex 製のシステムは、14 個のベイを持 ち、2 つの RAID 5 アレイを組んでいます。容量はそれぞれ 45 GB と 63 GB です。 4. インストール 4.1. インストールとハードウエアの設定 カードやドライブのインストールは解説書を参照して行ってください。DPT は まだ Linix 用のストレージ・マネージャがないので、システムが入っている MS-DOS でフォーマット済みのフロッピー・ディスクが必要になります(MS-DOS のコマンドラインで "format /s" とすると作れます)。また、DPT の MS-DOS 用ストレージ・マネージャも必要になります。安全のため、オリジナル・ディ スクからコピーを作成してください。 ハードウエアを設置したら、DOS のシステム・ディスクを使ってブートしてく ださい。ブートしたらストレージ・マネージャの入っているディスクに交換し て、下記のコマンドを使って立ち上げてください。 a:\ dptmgr しばらくすると、親切なメニュー画面がでてきます。ディスクをハードウエア RAID (シングル・ロジカル・アレイ)として設定しましょう。 MS-DOS のストレージ・マネージャはマウスで簡単に扱えるようになっていま すので、マウス・ドライバをシステム・ディスクに入れておくと良いと思いま す。 技術的には SCO 製のストレージ・マネージャを Linux 上で動かすこともでき るはずですが、トラブルの元になるかもしれません。Linux 上で MS-DOS のス トレージ・マネージャを動かす方が簡単です。 4.2. カーネルの構築 カーネルの構築を行う場合、SCSI のサポートと 自分のマシンで使用している ローレベルなドライバを設定する必要があります。 Kernel HOWTO を見ればカーネル のコンパイルの方法が載っています。 SCSI support を "yes" にして、low level drivers のセクションでご自分が使用しているドライバを選んでくださ い(EATA DMA か EATA ISA/EISA/PCI が EATA DMA プロトコルに準拠した DPT 製のカードです。 EATA PIO は、DPT 製のとても古いカードである PM2001 と PM2012A用です)。 EATA DMA と EATA ISA/EISA/PCI を含むたいていのドライ バは最近のカーネルではサポートされているはずです。 正しい設定を終えて、カーネルをコンパイルした後にリブートすると、ドライ バが RAID を単体の SCSI ディスクと認識しているのがわかるはずです。もし RAID 5 で組んでいたなら、実際に使えるディスク容量が 2/3 ほどになってい るはずです。 4.3. ブート時のメッセージ EATA DMA ドライバを使っていれば、ブート時のメッセージは次のようになっ ているはずです。 EATA (Extended Attachment) driver version: 2.59b developed in co-operation with DPT (c) 1993-96 Michael Neuffer, mike@i-Connect.Net Registered HBAs: HBA no. Boardtype Revis EATA Bus BaseIO IRQ DMA Ch ID Pr QS S/G IS scsi0 : PM2144UW v07L.Y 2.0c PCI 0xef90 11 BMST 1 7 N 64 252 Y scsi0 : EATA (Extended Attachment) HBA driver scsi : 1 host. Vendor: DPT Model: RAID-5 Rev: 07LY Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sda at scsi0, channel 0, id 8, lun 0 scsi0: queue depth for target 8 on channel 0 set to 64 scsi : detected 1 SCSI disk total. SCSI device sda: hdwr sector= 512 bytes. Sectors= 35591040 [17378 MB] [17.4 GB] (この表示のシステム構成は、1 枚の DPT SCSI コントローラと、3 個の 9 GB のディスクで RAID 5 を組んでいます)。 EATA ISA/EISA/PCI ドライバでブートすると、このようなメッセージがでるは ずです。 aic7xxx: at PCI 15 aic7xxx: BIOS enabled, IO Port 0x7000, IO Mem 0x3100000, IRQ 15, Revision B aic7xxx: Single Channel, SCSI ID 7, 16/16 SCBs, QFull 16, QMask 0x1f EATA0: address 0x7010 in use, skipping probe. EATA0: 2.0C, PCI 0x7410, IRQ 11, BMST, SG 252, MB 64, tc:y, lc:y, mq:62. EATA0: wide SCSI support enabled, max_id 16, max_lun 8. EATA0: SCSI channel 0 enabled, host target ID 6. EATA/DMA 2.0x: Copyright (C) 1994-1997 Dario Ballabio. scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 4.1.1/3.2.1 scsi1 : EATA/DMA 2.0x rev. 3.11.00 scsi : 2 hosts. scsi0: Scanning channel A for devices. Vendor: IBM OEM Model: DFHSS2F Rev: 1818 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 Vendor: SEAGATE Model: ST41650 TX Rev: DG01 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sdb at scsi1, channel 0, id 0, lun 0 Vendor: TEAC Model: FC-1 GF 00 Rev: RV L Type: Direct-Access ANSI SCSI revision: 01 CCS Detected scsi removable disk sdc at scsi1, channel 0, id 3, lun 0 Vendor: SONY Model: CD-ROM CDU-541 Rev: 2.6a Type: CD-ROM ANSI SCSI revision: 02 Detected scsi CD-ROM sr0 at scsi1, channel 0, id 5, lun 0 EATA0: scsi1, channel 0, id 0, lun 0, cmds/lun 21, sorted, tagged. EATA0: scsi1, channel 0, id 3, lun 0, cmds/lun 21, sorted. EATA0: scsi1, channel 0, id 5, lun 0, cmds/lun 21, sorted. scsi : detected 1 SCSI cdrom 3 SCSI disks total. SCSI device sda: hdwr sector= 512 bytes. Sectors= 4404489 [2150 MB] [2.2 GB] SCSI device sdb: hdwr sector= 512 bytes. Sectors= 2779518 [1357 MB] [1.4 GB] SCSI device sdc: hdwr sector= 256 bytes. Sectors= 4160 [1 MB] [0.0 GB] (この表示のシステム構成は、2 枚の SCSI コントローラ、DPT 製の PM3224W と Adaptec 製の AHA2940 を使っています)。 5. 使いかた 5.1. fdisk, mke2fs, mount, etc. これで RAID を普通のディスクと同じように扱うことができます。次にまずや らなければならないことは、パーティションをきることです(fdisk を使いま す)。ext2 ファイルシステムを設定する必要があります。次のコマンドを走ら せてください。 % mkfs -t ext2 /dev/sdxN /dev/sdxN は SCSI のパーティションの名前です。これでパーティションをマ ウントして、他のディスクと同じように使えるようになります (/etc/fstab にエントリを追加しましょう)。 5.2. ホットスワップ はじめに我々は、ドライブの 1 つを取り出して、それをまた戻すという、 ホットスワップのテストを、DPT 製 の 組み込みタイプの RAID で試してみま した(この RAID は高価です)。するとドライブを完全に抜く前に、ディスクの 一つが故障した状態になりました(この時、警告音で気が狂いそうになりまし た)。ディスクが故障したにもかかわらず、RAID の全てのデータにアクセスで きました。 壊れたディスクを交換するふりをして、同じドライブを戻してみました。ドラ イブはリビルドされて、全て OK のようでした。ディスクが埋まって、リビル ドしている間、全てのデータにアクセスできました。ただしここで他のディス クが故障していたら、とんでもない事態になっていた、ということをおぼえて おいてください。 5.3. パフォーマンス ベンチマークソフトの Bonnie で計測した結果を次にあげます。機器は、 2144 UW に 9x3=17 GB のディスクを RAID 5 で構成し、EATA DMA ドライバを 使用しています。RAID 用のマシンは、デュアルの Pentium Pro が搭載され、 Linux 2.0.33 がのっています。比較として、同一マシンの IDE ドライブの Bonnie の結果ものせておきます。 -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU RAID 100 9210 96.8 1613 5.9 717 5.8 3797 36.1 90931 96.8 4648.2 159.2 IDE 100 3277 32.0 6325 23.5 2627 18.3 4818 44.8 59697 88.0 575.9 16.3 上記の計測結果に異論をもたれる方もいます(間違いなくこの結果なのです が...。もう我々のマシンは実稼働状態にあるので、もう一度計測することが できません)。理由は、テストに使用したファイルの大きさが小さいため、 ディスク・キャッシュに入ってしまったかもしれない、ということです(こう なると、普通ではありえない、素晴らしいパフォーマンスがでてしまいま す)。次は 3344 UW コントローラを用いた結果です。 -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 1000 1714 17.2 1689 6.0 1200 5.7 5263 40.2 7023 12.1 51.3 2.2 こんどは、ホスト内蔵タイプの RAID システムの計測結果です。 -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 64 7465 100.0 70287 98.7 37012 97.7 8074 99.2 *****100.3 ***** 196.6 128 7289 99.3 67595 98.5 35294 98.6 7792 97.6 *****100.3 ***** 195.8 256 7222 98.8 44844 69.6 16096 51.8 5787 72.7 ***** 99.8 ***** 85.2 512 7138 98.4 13871 23.2 7888 29.3 7183 89.3 16488 27.2 1585. 11.5 1024 6908 95.8 12270 21.5 7161 25.4 7373 90.4 16527 28.2 123.8 1.8 2047 6081 84.1 12664 22.6 7191 25.6 7289 89.5 16573 28.5 75.0 1.2 ***** の部分は結果表示の枠を越えてしまったものです(> 100 MB/sec, > 10000 seeks/sec) ホスト: デュアル PII 400 MHz, 2 x U2W, 512 MB RAM, 内蔵ディスクなし RAID: IFT 3102 UA 128 MB キャッシュ, RAID-5, 6 x 9 GB OS: SuSE Linux 6.0(カーネル 2.2.3) 6. EATA DMA ドライバの機能 このセクションでは、Linux で RAID の設定をチェックできるコマンドのいく つかを紹介します。eata_dma ドライバを参照できるなら、他のドライバの チェックにもこの方法が使えます。 ドライバの設定を確認する場合、このように入力してください。 % cat /proc/scsi/eata_dma/N N はコントローラを示すホスト ID です。次のような結果になるはずです。 EATA (Extended Attachment) driver version: 2.59b queued commands: 353969 processed interrupts: 353969 scsi0 : HBA PM2144UW Firmware revision: v07L.Y Hardware Configuration: IRQ: 11, level triggered DMA: BUSMASTER CPU: MC68020 20MHz Base IO : 0xef90 Host Bus: PCI SCSI Bus: WIDE Speed: 10MB/sec. SCSI channel expansion Module: not present SmartRAID hardware: present. Type: integrated Max array groups: 7 Max drives per RAID 0 array: 7 Max drives per RAID 3/5 array: 7 Cache Module: present. Type: 0 Bank0: 16MB without ECC Bank1: 0MB without ECC Bank2: 0MB without ECC Bank3: 0MB without ECC Timer Mod.: present NVRAM : present SmartROM : enabled Alarm : on Host<->Disk command statistics: Reads: Writes: 1k: 0 0 2k: 0 0 4k: 0 0 8k: 0 0 16k: 0 0 32k: 0 0 64k: 0 0 128k: 0 0 256k: 0 0 512k: 0 0 1024k: 0 0 >1024k: 0 0 Sum : 0 0 さらに詳しい状態をみたいなら、このように入力してください。 % echo "eata_dma latency" > /proc/scsi/eata_dma/N 実行したら、次に、 % cat /proc/scsi/eata_dma/N これでもっと詳しい状態がわかります。 この機能を停止したいなら、 % echo "eata_dma nolatency" > /proc/scsi/eata_dma/N と入力してください。 7. トラブルシューティング 7.1. ブート時に SCSI ホストが認識されない いくつか原因が考えられますが、おそらくカーネルのドライバの設定が間違っ ているのではないでしょうか。適切なドライバ(EATA-DMA や EATA ISA/EISA/PCI ドライバはたいていの DPT 製のカードに使えます)が設定され ているか、確認してください。 7.2. 実際のディスクの個数と RAID の設定があわない RAID の設定がうまくいっていません。DPT のストレージ・マネージャを使っ ているなら、RAID を 1 つの論理アレイとして設定する必要がありま す。EATA-DMA ドライバを書いた Michael Neuffer (neuffer@kralle.zdv.uni-mainz.de)は次のように述べています。「コント ローラの設定をする時、ストレージ・マネージャを /FW0 付きで起動してくだ さい。そして、OS の選択を Solaris にしてください。これでアレイはコント ローラによって管理される設定になるでしょう」 7.3. フォーマットの最中にマシンもしくはコントローラがダウンしてしまう DPT のマニュアルによれば、これはやってはいけない作業の 1 つです。この 作業を行うとディスクを製造時の状態に戻すことになりますが、DPT のスト レージ・マネージャではフォーマットをすることができません。しかし、ロー レベル・フォーマットは、DPT が Web のユーティリティのページ (http://www.dpt.com/techsup/sr4utils.htm).で用意している clfmt を使っ て行うことができます。clfmt.zip を unzip してから、使用方法(正しい使用 方法です)が書いてある解説書を読んでください。ローレベル・フォーマット を行えば、新しいディスクとして扱えます。ただしこのプログラムは、くれぐ れも注意して使用してください! 7.4. まったくお手上げです... SCSI-HOWTO をもう一度読んでください。ケーブルの接続と終端のしかたを チェックしてください。他のマシンで試してみてください。SCSI 機器の問題 で一番多いのは、ハードウエアの故障と間違った設定です。それでもだめな ら、関連するニュース・グループに投稿したり、私に電子メールをください。 できるだけご要望に答えられるようにしたいと思います。 訳註:著者の方に質問される場合は、必ず英語でお願い致します。 8. 参考文献 下記のドキュメントは、RAID を設定する際にたいへん役にたちます。 o DPT Technology Library o EATA-DMA homepage o Linux Disk HOWTO o Linux Kernel HOWTO o Linux SCSI HOWTO o Multi Disk System Tuning HOWTO o RAID Solutions for Linux 9. 謝辞 このドキュメントを書き上げるにあたって、下記の方々のお世話になりまし た。 o Andreas Koepf (A_Koepf@icp-vortex.com) o Boris Fain (fain@zen.stanford.edu) o Dario Ballabio (Dario_Ballabio@milano.europe.dg.com) o Heiko Rommel (Heiko.Rommel@Uni-Bielefeld.DE) o Jos Vos (jos@xos.nl) o Michael Neuffer (neuffer@kralle.zdv.uni-mainz.de) o Ralph Wallace (rwallace@rwallace.interaccess.com) o Russell Brown (russell@lutton.lls.com) o Syunsuke Ogata (Syunsuke_Ogata@appear.ne.jp) o Tom Brown (tbrown@baremetal.com)