できる RAID (2)

Updated : 2005/10/23      
RAIDインストール中のテストマシン
テスト中のSD-ATA88212-133R


■ このページではバルク品 RAID Card で Red Hat Linux 9 のRAIDシステムを利用する手順を説明します

 このページではバルク品の低価格 RAIDカード "エアリア SD-ATA8212-133R" を使った Linux の RAID 構築手順を説明します。Red Hat Linux9 を利用し、ATAディスクによる RAID-1(ミラーリング)を作成します。SD-ATA8212-133R はバルク品ですが、付属 CD-ROMには英文キュメントやドライバーも用意されています。またコントローラーチップ・メーカー 台湾 ITE社のサイトからもそれらをダウンロードして利用することができます。そのドキュメントには Windows をはじめ Linux( Mandrake、Red Hat 7/8/9)での設定方法や対応したドライバーもあります。今回はこのドライバーを利用して、付属ドキュメントにしたがってRAID を構築するテストをしました。
テストではRed Hat Linux 9 の環境で、SD-ATA8212-133R がどの程度まで利用できるかという点に注目しています。

以前に Promise FasTrak 100 RAID カードを使い RedHat Linux7.3でのRAIDシステムを試したことがありますが、今回の SD-ATA8212-133R ではずっと簡単でした。

■ 免責情報など


このページに書かれている記事や説明については自己責任で 利用してくださ い。
記事の内容はすべてのパソコンに適用できるとは限りません。あくまでもご自身のための参考資料としてご利用ください。記事の説明や手順によってこうむった 故障や損失かあっても一切の責任は負いません。自己責任でご利用ください。
 このページで使用した製品 SD-ITE8212-133F に関して、このページの記事の内容について問い合わせされないようお願いいたします。


   ※ SD-ITE8212-133F は 株式会社エアリアの販売する製品です。

■ メニュー

1、テストしたRAIDシステム
2、テスト環境
3、ドキュメントとドライバーを入手する
4、RAIDカードのセットアップ
5、既存の Linux マシンに RAIDシステムのパーティションを追加する
6、RAID のドライブシステムに Linux OSをインストールする
7、メモランダム



  テストしたRAIDシステム

 今回は OS として RedHat Linux 9 を使用したパソコンに、RAIDカード"SD-ATA8212-133R" と2台の ATAハードディスクをつなぎ、RAID システムを構築するテストをしました。テストした RAID システムは次のタイプでしたが1つしか成功しませんでした。

◎ すでにRedHat Linux9をインストール済みのPCに、"SD-ATA8212-133R" と2台のハードディスクを
  RAID-1( ミラーリング) 接続して、ファイルシステムに /raid1 というパーティションとして追加する。

×"SD-ATA8212-133R"に2台のハードディスクをRAID-1( ミラーリング) 接続して、RedHat Linux9をインストールする。
  この方法はうまくいきませんでした。



 テスト 環境

■ RAID カード SD-ITE8212-133R の仕様

 項 目
 仕 様
 コントローラーチップ
 IT8212F
 RAID レベル
 RAID 0/1/0+1/JDOB
 対応PCIスロット
 PCI Local Bus Ver.2.1 以降
 ロープロファイルブラケット付属
 IDE ポート
 40 Pin X 2、最大4台のHDD を接続可能
 対応ディスク
 IDE 137GB 以上の Big Drive に対応
 
 HDD アクセスLED 端子 X1
 その他
 ATA-100/133 コントローラーとして使用可能

■ テストしたマシン環境と仕様です。

項  目
仕   様
 CPU
 Pentium4 (1.4GHz Socket423)
 Memory
 RIM 256MB (PC-800 )
 マザーボード
 Asusutek P4T-M (Micro-ATX)
 ハードディスク
 Western Digital WD43AA ( E-ATA/IDE/4.31GB/5400rpm )
  Maxtor DiamondMax D541X 2B020H1 ( U-ATA100/20GB/5400rpm )
 OS
 RedHat Linux 9.0
 Linux カーネル
 Linux-2.4.20-8
 ATA-RAIDカード
 エアリア SD-ATA8212-133R ( ITE8121F Chip )
 CPU には発熱の少ない Pentium4 ( Socket423 ) 1.4GHz を使用しています。



 ドキュメントとドライバーの入手

■ コントローラーチップ ITE8212F の最新ドキュメントとドライバーを入手する

 ドライバーとドキュメントは、カードに付属するCD-ROM  にすべて用意されていますが、台湾 ITE 社のサイトから最新版をダウンロードすることができます。

  ITEのダウンロードページ
http://www.ite.com.tw/software_download/software_download2.asp

ここから "ITE8212F ATA133RAID Controller"セクションにある以下の2つをダウンロードします。
SoftwareDownload Page
  ↓
ダウンロードするファイルは2つ

Linux Driver (ATAPI, RAID)    v1.45 Binary and Source code
  Linux用ドライバー集
  以下の Linux ディストリビューションごとに英文インストール手順書とドライバーモジュールが用意されています。
 Mandrake 9.0 9.1 9.2 、SuSE 8.2、Turbo8.0、Debian3.0、 RedHat 7.3 8.0 9.0
カーネルドライバー・ソースコード : ketnel-2.4.x  kernel-2.6.x
   
User Guide     Specification v0.3
  ITE8212F RAIDカードについての Windows全般と Linux(Mandrake、RedHat7,8,9、)
  ワード形式のファイルで、図解入りの親切な説明書なので一読されることをおすすめします。
  Windows98/Me/2K/XP でダウンロードして ワードで読んでください。

■ ファイルの解凍

RAIDをインストールするマシンを起動して、2つのファイルを適当は作業ディレクト リにダウンロードします。
  ( ここでは作業ディレクトリを /usr/local/src/ITE/ としました。)
ユーザーマニュアル は、ワード形式のファイルなので、Windows98/Me/2K/XP で解凍して読みます。


# unzip LinuxDriver_it8212_092005-09.zip
# unzip USER MANUAL _093015-02.zip


■ 解凍したファイルの内容一覧

LinuxDriver_ite8212_092005-09.zip を解凍したファイルの内容 一覧表です。

RedHat Linux 9 についてのインストール手順は、rh90.txt に詳しく書かれています。



 RAID カードのセットアップ

■ RAIDカードのセットアップ

まず最初に既存の RedHat Linux9のマシンに、RAIDカードのドライバーをインストールしてOSに認識させます。
  • RAID カード SD-ATA8212-133R を、すでに RedHat Linux 9をインストール済みのマシンに接続する。
  • ドライバーを Linux 9にインストールする。
  • マシンを再起動して Linux 9に認識されていることを確認する。

   << 基本的な手順は、USER MANUAL V0.3_06032004.DOC の8ページを参照ください。 >>

1、RAIDカードのセットアップ
   マシンの電源をOFFにして、ITE8212カードをマシンのPCIバス・ソケットにさす。
   ITE8212カードの2台のHDDをつなぐ。

 マザーボードとRAIDカードの接続図

2、RAIDモードのセットアップ
   マシンを再起動し、マザーボードのBIOS画面が終了後に現れる「RAID カードのBIOS画面」を
   [Ctrl]+[e] または[Ctrl]+[f]  のキーを押して開く。

3、「RAID カードのBIOS画面」のメニューでRAID設定する
     メニューの設定方法は画面下に表示される。

TABで ポインターを移動できます。
+、−、スペースキー で設定を変更できます。
設定の保存は[Ctrl]+[v] でできます。
設定メニュー画面の終了は[Esc] です。


 接続した2台の HDD を、RAID 1 ( ミラーリング ) に設定する。( RAID 0 ストライピングも可能です。 )
設定後は「設定の保存」 ( [Ctrl]+[v] ) と「 設定メニュー画面の終了」([Esc] )を実行して、マシンを再 起動させます。

4、再起動後ドライバーをインストールする
作業ディレクトリに移動してドライバーをインストールするためのコマンドを実行する。


# cd /usr/local/src/ITE/
# ls
LinuxDriver_it8212_092005-09.zip  USER MANUAL _093015-02.zip  drivedisk_8212_raid
USER MANUAL V0.3_06032004.DOC     drivedisk_8212_ata          src
# cd drivedisk_8212_raid/
# ls
deb30  mandrake91.txt  md90  md92  redhat80.txt  rh73  rh90  suse82.txt  turbolinux80.txt
mandrake90.txt  mandrake92.txt  md91  redhat73.txt  redhat90.txt  rh80  suse82  turbo8

# cd rh90/
# ls
iteraid.o  modinfo  modules.cgz  modules.dep  pcitable  rhdd-6.1

# gzip -dc modules.cgz | cpio -idumv  # モジュールのファイルを解凍する
2.4.20-8bigmem/iteraid.o
2.4.20-8BOOT/iteraid.o
2.4.20-8/iteraid.o
2.4.20-8smp/iteraid.o
318 blocks
# ls
2.4.20-8      2.4.20-8bigmem  iteraid.o  modules.cgz  pcitable
2.4.20-8BOOT  2.4.20-8smp     modinfo    modules.dep  rhdd-6.1

# modprobe sr_mod
# modprobe sd_mod
# insmod iteraid.o


RAID カードのドライバーをインストール後、カードが認識されることを確認する。

# dmesg
<< 途中省略 >>
Found Controller: IT8212 UDMA/ATA133 RAID Controller
FindDevices: device 0 is IDE
Channel[0] BM-DMA at 0xB400-0xB407
Channel[1] BM-DMA at 0xB408-0xB40F
scsi1 : RAIDExpress133
  Vendor: ITE       Model: IT8212F           Rev: 1.45
  Type:   Direct-Access                      ANSI SCSI revision: 00
Attached scsi disk sda at scsi1, channel 0, id 0, lun 0
SCSI device sda: 39876478 512-byte hdwr sectors (20417 MB)
 sda: unknown partition table
    < < 途中省略 >>

 上記のように表示されればドライバーが正しくインストールされて認識されたことになります。
  (  実際にはATA ハードディスクを接続しているが、SCSIハードディスクデバイスとして認識されます。 )

5、マシン起動時にドライバーモジュールを自動的に読み込ませる設定をする


# cd /usr/local/src/ITE
# cp -f iteraid.o /lib/modules/2.4.20-8/kernel/drivers/scsi/
# chmod 755 /sbin/mkinitrd
# mkinitrd -f --preload scsi_mod --preload sd_mod --with=iteraid /boot/initrd-2.4.20-8.img 2.4.20-8


再起動して、起動時にドライバーモジュールが自動的に読み込まれてRAID ガードが認識されれば成功です。

 再起動後に以下のように表示されれば、RAIDカードが認識されています。

# dmesg
<< 途中省略 >>
Found Controller: IT8212 UDMA/ATA133 RAID Controller
FindDevices: device 0 is IDE
Channel[0] BM-DMA at 0xB400-0xB407
Channel[1] BM-DMA at 0xB408-0xB40F
scsi1 : RAIDExpress133
  Vendor: ITE       Model: IT8212F           Rev: 1.45
  Type:   Direct-Access                      ANSI SCSI revision: 00
Attached scsi disk sda at scsi1, channel 0, id 0, lun 0
SCSI device sda: 39876478 512-byte hdwr sectors (20417 MB)
 sda: unknown partition table


ここまでの作業の結果、Linux に RAID カードが認識されて2台のHDDは、1台のSCSI デバイスとして利用できるようになりました。
次のステップでは、SCSI デバイスとして認識されたハードディスクを初期化してマウントします。



 既存の Linux マシンに RAIDシステムのパーティションを追加する

 前ステップでは、Linux 起動時に RAID カードのドライーバー・モジュールが自動的に読み込まれ、カードに接続した2台のHDDは1台のSCSI ハードディスクとして認識されるようになりました。
しかしまだ新しいHDDがつながれた状態でファイルシステムとして利用できません。
ここでは認識された SCSI ハードディスクを初期化し、Linux のファイルシステムにマウントします。

1、fdisk コマンドでディスク領域を設定する。

 コマンドラインから以下のような操作によって FDISK を実行します。

# fdisk /dev/sda
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

このディスクのシリンダ数は 2482 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

コマンド (m でヘルプ): m
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)

コマンド (m でヘルプ): p

Disk /dev/sda: 20.4 GB, 20416756736 bytes
255 heads, 63 sectors/track, 2482 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

 デバイス ブート   始点      終点  ブロック   ID  システム

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-2482, 初期値 1):
初期値 1 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-2482, 初期値 2482): 2482

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。

[root@osc root]# fdisk /dev/sda

このディスクのシリンダ数は 2482 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sda: 20.4 GB, 20416756736 bytes
255 heads, 63 sectors/track, 2482 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/sda1             1      2482  19936633+  83  Linux

コマンド (m でヘルプ): q   # fdisk コマンドモードを終了させる
#


2、ディスク領域をフォーマットする

 コマンドラインから以下のような操作によって FDISK を実行します。

# mkfs.ext3 -c -b 4096 /dev/sda1    # ディスクをフォーマットする
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2496960 inodes, 4984158 blocks
249207 blocks (5.00%) reserved for the super user
First data block=0
153 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000

Checking for bad blocks (read-only test):         0/  4984158

  4981936/  4984158
done                       
Writing inode tables:   0/153

152/153
done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#



3、RAID のファイルシステムをマウントする


# mkdir /raid1     #マウントポイント /raid1 を作成する
# mount -t ext3 /dev/sda1 /raid1   #マウント する

# mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
/dev/sda1 on /raid1 type ext3 (rw)

# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda1              3526172   2369900    977152  71% /
none                    127620         0    127620   0% /dev/shm
/dev/sda1             19623156     32828  18593500   1% /raid1

 これで RAIDのディスクシステムがOSのファイルシステムの一部として利用できます。

4、OSの起動時にファイルシステム /raid1 を自動マウントさせる設定をする

 設定ファイル /etc/fstab に設定を追加する。

# vi /etc/fstab        
LABEL=/            /                ext3    defaults        1 1
none               /dev/pts         devpts  gid=5,mode=620  0 0
none               /proc            proc    defaults        0 0
none               /dev/shm         tmpfs   defaults        0 0
/dev/hda2          swap             swap    defaults        0 0
/dev/fd0           /mnt/floppy      auto    noauto,owner,kudzu 0 0

# more /etc/fstab
LABEL=/            /                ext3    defaults        1 1
none               /dev/pts         devpts  gid=5,mode=620  0 0
none               /proc            proc    defaults        0 0
none               /dev/shm         tmpfs   defaults        0 0
/dev/hda2          swap             swap    defaults        0 0
/dev/fd0          /mnt/floppy       auto    noauto,owner,kudzu 0 0
/dev/sda1        /raid1         ext3    defaults    0 0


マシンを再起動させて、RAID-1 構成の /raid1 が自動的にマウントされれば設定は成功です。





 その他 の情報

RAID を Linux で利用するための情報を集めましたので紹介します。

● ほげHOGE探偵団「IT8212搭載の低価格RAIDカードをカーネル2.6 で使ってみよう」
日経Linux 2005年2月号 連載記事


● 新製品
Linux Magazine 2004年






Top --> Liux

もどる もどる