RAIDframe

2003/05/13


RAIDframe Carnegie-Mellon Universityで作られたソフトウエアRAIDの機構です。
NetBSD-1.6
ではGENERICカーネルで使える状態になっています。FreeBSD-5.0でもNetBSDのものがportされています。

RAIDframeでは/dev/raid[0-7]などのRAID擬似デバイスをraidレベル0,1,4,5のディスクとして扱うことができます。
RAID
擬似デバイス名とraidレベルとは全く関連はありません
raid0
デバイスはraidレベル0のデバイス、ということではありません。

RAID擬似デバイスに対し物理ディスクデバイスを割り付け、それをRAID擬似デバイスからディスクとしてアクセスすることになります。raidレベルは物理ディスクの関連付け時点で決定します。

RAIDframeの構成概要図を示します。




まず、最初の段階として、
2
つの物理ディスク領域を使いraid0擬似デバイスをraidレベル1(ミラー)で構成する
場合を考えてみます。


1. カーネルの設定

NetBSD-1.6では、GENERICカーネルで利用できます。NetBSD-1.5以前では有効になっていませんので、次の擬似デバイスを追加してカーネルを再構築する必要があります。


pseudo-device raid 8 # RAIDframe disk driver



有効になっていれば、ブート時に次のようなメッセージが出力されます。


May 8 02:04:15 nas /netbsd: Kernelized RAIDframe activated



デフォルトで有効でなかった場合は、次のデバイスファイルがあるかを確認してください。


# ls -l /dev/raid*
brw-r----- 1 root operator 18, 0 May 8 02:02 /dev/raid0a
brw-r----- 1 root operator 18, 1 May 8 02:02 /dev/raid0b
brw-r----- 1 root operator 18, 2 May 8 02:02 /dev/raid0c
brw-r----- 1 root operator 18, 3 May 8 02:02 /dev/raid0d
brw-r----- 1 root operator 18, 4 May 8 02:02 /dev/raid0e
brw-r----- 1 root operator 18, 5 May 8 02:02 /dev/raid0f
brw-r----- 1 root operator 18, 6 May 8 02:02 /dev/raid0g
brw-r----- 1 root operator 18, 7 May 8 02:02 /dev/raid0h




存在しなければ次のコマンドで作成しておきましょう。


# cd /dev
# MAKEDEV raid0 raid1 raid2 raid3 raid4 raid5 raid6 raid7






2. 物理ディスクの設定

RAIDframeで利用する物理ディスクパーティションを用意します。
ちゃんと使うのであれば、物理的に違うディスクの、同じ大きさのパーティションを利用することになるでしょう。とりあえず実験的にやるのであれば、同じ物理ディスク内でも、同じ大きさのパーティションを割り付けることで動作の確認は可能です。ここでは、次のように割り振ることにします。


# dmesg wd0 | grep sectors
wd0: 29314 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 60036480 sectors


# disklabel wd0
...
# size offset fstype [fsize bsize cpg/sgs]
a: 2097585 63 4.2BSD 1024 8192 86 # (Cyl. 0*- 2080)
b: 2097648 2097648 swap # (Cyl. 2081 - 4161)
c: 60036417 63 unused 0 0 # (Cyl. 0*- 59559)
d: 60036480 0 unused 0 0 # (Cyl. 0 - 59559)
e: 2096640 4195296 4.2BSD 1024 8192 86 # (Cyl. 4162 - 6241)
f: 20971440 6291936 4.2BSD 1024 8192 86 # (Cyl. 6242 - 27046)
g: 16386048 27263376 RAID # (Cyl. 27047 - 43302)
h: 16387056 43649424 RAID # (Cyl. 43303 - 59559)



物理ディスクは30GBのものが1台で、そのうちのg,hパーティションをRAID用にしています。この例ではサイズがgよりhのほうが1シリンダ分多いです。
物理パーティションの容量が多少違っても、小さい領域に合わせてRAIDが構成されますので、あまった部分は利用されないだけです。ちゃんと使うときは、同じジオメトリで同じ速度のディスクを利用してください。

まず、ディスクのパーティションを決定する必要があります。パーティション構成にはdisklabelコマンドを利用します。disklabel -i によるインタラクティブモードが便利です。


# disklabel -i wd0
partition> ?
? print this menu
C make partitions contiguous
E print disk label and current partition table
I change label information
N name the label
P print current partition table
Q quit
R rounding (c)ylinders (s)ectors
W write the current partition table
[a-p] define named partition
partition>P
16 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 2097585 63 4.2BSD 1024 8192 86 # (Cyl. 0*- 2080)
b: 2097648 2097648 swap # (Cyl. 2081 - 4161)
c: 60036417 63 unused 0 0 # (Cyl. 0*- 59559)
d: 60036480 0 unused 0 0 # (Cyl. 0 - 59559)
e: 2096640 4195296 4.2BSD 1024 8192 86 # (Cyl. 4162 - 6241)
f: 20971440 6291936 4.2BSD 1024 8192 86 # (Cyl. 6242 - 27046)
partition>g
Filesystem type [?] [unused]: RAID
Start offset [0c, 0s, 0M]: 27047c
Partition size ('$' for all remaining) [0c, 0s, 0M]: 16255c
partition>h
Filesystem type [?] [unused]: RAID
Start offset [0c, 0s, 0M]: 43303c
Partition size ('$' for all remaining) [0c, 0s, 0M]: $
partition>P
16 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 2097585 63 4.2BSD 1024 8192 86 # (Cyl. 0*- 2080)
b: 2097648 2097648 swap # (Cyl. 2081 - 4161)
c: 60036417 63 unused 0 0 # (Cyl. 0*- 59559)
d: 60036480 0 unused 0 0 # (Cyl. 0 - 59559)
e: 2096640 4195296 4.2BSD 1024 8192 86 # (Cyl. 4162 - 6241)
f: 20971440 6291936 4.2BSD 1024 8192 86 # (Cyl. 6242 - 27046)
g: 16386048 27263376 RAID # (Cyl. 27047 - 43302)
h: 16387056 43649424 RAID # (Cyl. 43303 - 59559)
partition>W
Label disk [n]? y
Label written
partition>Q
#


disklabel
コマンド
help
の表示










Partition
表示








g
パーティション
type
RAIDにする
f
パーティションの次から
16255
シリンダ
h
パーティション
type
RAIDにする
g
パーティションの次から
最後まで

できているか確認すると







g,h
RAIDになってます

disklabel
書き込み


コマンド終了


インタラクティブモードにすると、ある程度の計算を省くことができます。慣れている人は自由にラベルを記述してください。
必要な物理ディスクパーティションの数は、RAIDレベルや構成により変わってきます。ここではraid1をスペアデバイスなしで構成するため、必要なパーティションが2つ、ということです。

これで物理ディスクの設定は終了です。ファイルシステムを作成する必要はありません。


3. raid0.confの作成

RAIDデバイスの構成を決定する定義ファイルを記述します。
/etc/rc.d/raidframe
から読み込まれるファイルは、/etc/raid[0-9].confとなっています。
raid[0-9]
raid擬似デバイス名を表します。ここではraid0デバイスをraidレベル1(ミラーリング)で構成しますので、記述するファイルは /etc/raid0.conf です。次のように記述します。


# cat /etc/raid0.conf
START array
# numRow numCol numSpare
1 2 0

START disks
/dev/wd0g
/dev/wd0h

START layout
# sectPerSU SUsPerParityUnit SUsPerReconUnit RAID_level_1
128 1 1 1

START queue
fifo 100


ディスク構成数の指示

単1レベル2台、スペアディスクなし

物理ディスクの定義



RAID
レベルの決定
(
最後の数値がRAIDレベル)

FIFO
キューの指定


raid0.conf
は、raidctlコマンドに与えられる定義ファイルになります。
詳しいことはマニュアルに譲りますが、単純なミラーなら上記設定で動きます。


4. RAID初期化

これまで設定した構成に従いRAIDを初期化します。
RAID
構成の操作にはraidctlコマンドを利用します。


# raidctl -C /etc/raid0.conf raid0
# raidctl -I 20030509 raid0
# raidctl -iv raid0
Initiating re-write of parity
Parity Re-write status:
5% |** | ETA: 42:46 |
# raidctl -s raid0
Components:
/dev/wd0g: optimal
/dev/wd0h: optimal
No spares.
Component label for /dev/wd0g:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 178
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 16385920
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Component label for /dev/wd0h:
Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 178
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 16385920
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.

定義ファイルに従い定義
RAID
デバイスにシリアル番号付けRAIDデバイスの初期化
(時間がかかります)


構成されたデバイスの確認

wd0g
正常
wd0h
正常


RAID
デバイスの初期化が終了すれば、ディスクとしてアクセスすることができます。
まだこの状態ではラベルのついていないディスクが構成されたに過ぎません。
このあと、ディスクにラベルをつけ、ファイルシステムを作成すれば、mountすることができます。

RAIDデバイスの初期化(raidctl -iv)はとても時間がかかります。
Duron 700MHz, UDMA66-IDE,
同一ディスク上でRAID1構成, 容量8GBで約45分を必要としました。



5. ラベルとマウント

RAIDデバイスは一度構成されれば、あとは通常のディスクと変わらずアクセスできます。
通常のディスク追加と同様にしてラベルをつけ、ファイルシステムを作成してください。
以前に一度構成している場合(何度かトライしてラベル生成を終了している場合も)は、以前のディスクラベルが残っているかもしれません。このような場合は、
dd if=/dev/zero of=/dev/rraid0d bs=1k count=8
とすることで、ラベルを削除することができます。


# dd if=/dev/zero of=/dev/rraid0d bs=1k count=8
8+0 records in
8+0 records out
8192 bytes transferred in 0.004 secs (2048000 bytes/sec)

# disklabel -r raid0
disklabel: no disklabel

# disklabel -i -I raid0
partition> P
4 partitions:
# size offset fstype [fsize bsize cpg/sgs]
d: 16385920 0 4.2BSD 0 0 0 # (Cyl. 0 - 16001*)
partition> e
Filesystem type [?] [unused]: 4.2BSD
Start offset [0c, 0s, 0M]:
Partition size ('$' for all remaining) [0c, 0s, 0M]: $
e: 16385920 0 4.2BSD 0 0 0 # (Cyl. 0 - 16001*)
partition> P
5 partitions:
# size offset fstype [fsize bsize cpg/sgs]
d: 16385920 0 4.2BSD 0 0 0 # (Cyl. 0 - 16001*)
e: 16385920 0 4.2BSD 0 0 0 # (Cyl. 0 - 16001*)
partition> W
Label disk [n]? y
Label written
partition> Q

# disklabel raid0
# /dev/rraid0d:
type: RAID
disk: raid
label: default label
flags:
bytes/sector: 512
sectors/track: 128
tracks/cylinder: 8
sectors/cylinder: 1024
cylinders: 16001
total sectors: 16385920
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0

5 partitions:
# size offset fstype [fsize bsize cpg/sgs]
d: 16385920 0 4.2BSD 0 0 0 # (Cyl. 0 - 16001*)
e: 16385920 0 4.2BSD 0 0 0 # (Cyl. 0 - 16001*)

# newfs /dev/raid0e
Warning: 128 sector(s) in last cylinder unallocated
/dev/raid0e: 16385920 sectors in 16002 cylinders of 8
 tracks, 128 sectors 8000.9MB in 50 cyl groups (325 c/g, 162.50MB/g, 20224 i/g)
super-block backups (for fsck -b #) at:
32, 332960, 665888, 998816, 1331744, 1664672, 1997600, 2330528, 2662432, 2995360, 3328288, 3661216, 3994144, 4327072, 4660000, 4992928, 5324832, 5657760, 5990688, 6323616, 6656544, 6989472, 7322400, 7655328, 7987232, 8320160, 8653088, 8986016, 9318944, 9651872, 9984800, 10317728, 10649632, 10982560, 11315488, 11648416, 11981344, 12314272, 12647200, 12980128, 13312032, 13644960, 13977888, 14310816, 14643744, 14976672, 15309600, 15642528, 15974432, 16307360,

# mount /dev/raid0e /export
# df -k
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/wd0a 1016575 25128 940618 2% /
/dev/wd0e 1016103 4269 961028 0% /var
/dev/wd0f 10164324 1522220 8133887 15% /usr
/dev/raid0e 8064942 31922 7629772 0% /export


ディスクラベルの削除




ディスクラベルの確認


ディスクラベル初期化



初期化時にdは作成される
e
パーティションを作成
dを使うならしなくてもよい)
全領域


確認




ラベルの書き込み




生成したラベルの確認
























ファイルシステム作成
















手動でマウントしてみる








マウントできることを確認したら、/etc/fstabに起動時にマウントするよう記述しておきましょう。



# cat /etc/fstab
/dev/wd0a / ffs rw 1 1
/dev/wd0b none swap sw 0 0
/dev/wd0e /var ffs rw 1 2
/dev/wd0f /usr ffs rw 1 2
/dev/raid0e /export ffs rw 1 2



ここまでできていれば、あとは通常のディスクと同様に運用できます。再起動して、正しくマウントされるかを確認してください。
 


6. 日々の運用

6.1. RAIDステータスの確認

日々の運用では、RAIDディスクに異変がないかをチェックする程度です。
RAID
ステータスは、raidctl -s, raidctl -g などでチェックできます。



# raidctl -s raid0
Components:
/dev/wd0g: optimal
/dev/wd0h: optimal
No spares.
Component label for /dev/wd0g:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 178
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 16385920
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Component label for /dev/wd0h:
Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 178
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 16385920
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.


構成されたデバイスの確認

optimal:
正常
failed: RAID
配下からはずれている
reconstructing:
再構成中



RAIDframeでは物理ディスク領域を「Component」と呼んでいます。
ccdによる論理ディスクでもかまいませんが)

コンポーネントの状態は次のようになっています。


ステータス

状態

optimal

正常稼動中

failed

制御配下にない

reconstructing

再構成中

spared

代替ディスク待機中

used_spare

代替ディスク利用中


failed
の状態であれば異常が発生していますので、ディスク交換などの措置を取ります。


6.2.
ディスク障害の対処

運用中に次の状態になってしまったら、何らかの障害が発生しています。



# raidctl -s raid0
Components:
/dev/wd0g: optimal
/dev/wd0h: failed
No spares.
Component label for /dev/wd0g:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030513, Mod Counter: 202
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 16385920
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
/dev/wd0h status is: failed. Skipping label.
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.


構成されたデバイスの確認

wd0h
になんらかの障害が発生して制御からはずれている

コンポーネントの情報は正常なものしか出力されない



この状態になっていることを知るには、通常はコマンドを打つか、地道にログをチェックするしかありません。もし異常発生時に知りたいのであれば、なんらかのスクリプトを組むなどして、定時監視する仕組みが必要です。

RAIDデバイスの回復は、次の手順を踏むことになります。

  1. システムを停止し、異常があった物理ディスクを交換する。

  2. 起動して物理ディスクにRAIDパーティションを作成する。

  3. raidctl -R により、再構成を行う。



物理ディスクにRAIDパーティションを作成する手順は、先に記述したものと同等ですのでここでは記述しません。RAIDパーティションが作成できたら、raidctlにより再構成します。


# raidctl -R /dev/wd0h raid0
# raidctl -s raid0
Components:
/dev/wd0g: optimal
/dev/wd0h: reconstructing
No spares.
Component label for /dev/wd0g:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030513, Mod Counter: 202
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 16385920
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
/dev/wd0h status is: reconstructing. Skipping label.
Parity status: clean
Reconstruction is 26% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.


デバイスの再構成
再構成中の状態を表示してみる


wd0h
は再構成中













再構成の進行状況が26%



再構成が終了すれば、再びRAIDデバイスは元の状態に戻ります。
raidctl -R
に与えるコンポーネントは不良が発生しているほうです。取り返しがつかないことにならないように、十分注意してください。
ミラー構成や、RAIDレベル5構成の場合は、再構成中にRAIDデバイスに書かれた内容は通常通り書き込まれます。但し、再構成中に正常なディスクも異常になった場合は復旧の手立てはありませんので、大量の書き込みが生じない状態で再構成を行うべきです。

再構成が終了すると、再び正常な状態で運用を継続できます。


7. その他の構成

7.1 RAID1 スペアコンポーネントつき

RAID1構成にスペアコンポーネントを定義して動的に更新できる状態にしてあれば、運用状態そのままで再構成を行うことができます。システム停止の必要はありません。
スペアコンポーネントを定義したraid0.confを次に記述します。


# cat /etc/raid0.conf
START array
# numRow numCol numSpare
1 2 1

START disks
/dev/wd0g
/dev/wd0h

START spare
/dev/wd0i

START layout
# sectPerSU SUsPerParityUnit SUsPerReconUnit RAID_level_1
128 1 1 1

START queue
fifo 100


ディスク構成数の指示

単1レベル2台、スペア1

通常ディスクの定義



スペアディスクの定義





スペアを定義している場合に、強制的にwd0hコンポーネントを再構成してみるとスペアディスクが利用され、再構成が行われる様子が確認できます。



# raidctl -F /dev/wd0h raid0
# raidctl -s raid0
Components:
/dev/wd0g: optimal
/dev/wd0h: reconstructing
Spares:
/dev/wd0i: used_spare
Component label for /dev/wd0g:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 255
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 8192896
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
/dev/wd0h status is: reconstructing. Skipping label.
Component label for /dev/wd0i:
Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 255
Clean: Yes, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 8192896
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Parity status: clean
Reconstruction is 1% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.

# raidctl -s raid0
Components:
/dev/wd0g: optimal
/dev/wd0h: spared
Spares:
/dev/wd0i: used_spare
Component label for /dev/wd0g:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 255
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 8192896
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
/dev/wd0h status is: spared. Skipping label.
Component label for /dev/wd0i:
Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 255
Clean: Yes, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 8192896
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.

# raidctl -R /dev/wd0h raid0
# raidctl -s raid0
Components:
/dev/wd0g: optimal
/dev/wd0h: optimal
Spares:
/dev/wd0i: used_spare
Component label for /dev/wd0g:
Row: 0, Column: 0, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 256
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 8192896
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Component label for /dev/wd0h:
Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 256
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 8192896
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Component label for /dev/wd0i:
Row: 0, Column: 1, Num Rows: 1, Num Columns: 2
Version: 2, Serial Number: 20030509, Mod Counter: 256
Clean: No, Status: 0
sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1
Queue size: 100, blocksize: 512, numBlocks: 8192896
RAID Level: 1
Autoconfig: No
Root partition: No
Last configured as: raid0
Parity status: clean
Reconstruction is 100% complete.
Parity Re-write is 100% complete.
Copyback is 100% complete.



wd0h
を強制的にはずす
再構成中の状態を表示してみる


wd0h
は再構成中

wd0i
が利用される











wd0h
に代わりwd0iの状態が表示される













再構成終了後の状態


wd0h
はスペアになる

wd0i
で運用継続中


























wd0h
を再構成
再構成後の状態



ホットスワップ可能なディスクシステムに対してスペアディスクを定義しておけば、運用中であってもディスクの交換が可能になることがわかります。



7.2 RAID5

RAID5構成では、複数のディスクにパリティとデータを分散して置きます。スペアコンポーネントが定義されていればRAID1と同様にホットスワップが可能です。
RAID5
は速度と安全性をある程度両立させることが可能ですが、使えるディスク容量は分散した容量1つ分分減少します。(4GB3台に分散すると8GBが実容量)
また、IDEなどで同一ディスクに複数のコンポーネントを定義すると、性能が極端に低下します。
3+1台構成のRAID5定義を次に示します。


# cat /etc/raid0.conf
START array
# numRow numCol numSpare
1 3 1

START disks
/dev/wd0g
/dev/wd0h
/dev/wd0i

START spare
/dev/wd0j

START layout
# sectPerSU SUsPerParityUnit SUsPerReconUnit RAID_level_1
32 1 1 5

START queue
fifo 100


ディスク構成数の指示

単1レベル3台、スペア1

通常ディスクの定義




スペアディスクの定義





RAID
レベルは5




8. まとめ

RAIDframeのマニュアルには、ここに書かれていることと同様のサンプルが記述されています。また、ブートディスクをRAID化する方法も記述されていますので一読すべきです。

RAIDデバイスの制御にはraidctlコマンドを利用します。主なオプションを記述しておきます。


コマンドオプション

意味

raidctl -a compo dev

RAIDデバイスdevにコンポーネントcompoを追加する

raidctl -C config dev

RAIDデバイスdevを定義ファイルconfigにより強制定義する
RAID
デバイスを最初に初期化するときのみ利用

raidctl -c config dev

RAIDデバイスdevを定義ファイルconfigにより定義する
定義済みのRAIDデバイスをシステムが読み込むときに利用

raidctl -I serial dev

RAIDデバイスdevにシリアル番号serialをつける。シリアル番号はデバイスの特定に利用されるだけなので、同一システムに複数のRAIDデバイスがなければなんでもよい

raidctl -i[v] dev

RAIDデバイスdevを初期化する。-vオプションをつけることで進行状況が表示できる

raidctl -s dev

RAIDデバイスdevの状態を確認する

raidctl -R compo dev

RAIDデバイスdevのコンポーネントcompoを再構成する

raidctl -f compo dev

RAIDデバイスdevのコンポーネントcompoを強制的にfailerにする

raidctl -F compo dev

RAIDデバイスdevのコンポーネントcompoを強制的にfailerにする。スペアデバイスがあれば即時にスペアを利用し、指定されたコンポーネントは再構成する

raidctl -G dev

RAIDデバイスdevの構成から定義ファイルを生成表示する

raidctl -u dev

RAIDデバイスdevの定義をシステムから消去する




Copyright 2003 N.Sasaki
この文章が最初に記述されたのは2003/05/13です