いろいろと実験で使ったUSBメモリが余っていたので,4GBのUSBメモリを3本使って,RAID 0を構築してみました。これで約12GBの仮想ディスクとして扱うことができるというわけです。


約11GBの/dev/md0というストレージとして認識されています。
今回は,Ubuntu 8.10(Intrepid)上で作業を行いました。利用するUSBメモリのデバイス名をそれぞれ/dev/sdb,/dev/sdc,/dev/sddとします。失敗すると,USBメモリが使えなくなることがありますので,注意して下さい。
ツイート


約11GBの/dev/md0というストレージとして認識されています。
USB RAIDの構築方法
今回は,Ubuntu 8.10(Intrepid)上で作業を行いました。利用するUSBメモリのデバイス名をそれぞれ/dev/sdb,/dev/sdc,/dev/sddとします。失敗すると,USBメモリが使えなくなることがありますので,注意して下さい。
STEP 1
まず,mdadmというRAIDデバイスを操作するためのプログラムが必要ですので,下記のコマンドでインストールしておきます。
$ sudo aptitude install mdadm
なお,mdadmのインストールでは,カーネルにRAIDシステムを認識させるため,initrdが再構築されますので,インストール後に再起動する必要があります。
以下,rootでの作業となるので,次のコマンドでrootのシェルに入ります。
$ sudo su -
STEP 2
fdiskコマンドで,それぞれのUSBメモリのファイルシステムをRAIDに対応させます。
# fdisk /dev/sdb
コマンド (m でヘルプ): t
16進数コード (L コマンドでコードリスト表示): fd
コマンド (m でヘルプ): w
一応,再びfdiskで確認しておきます。
# fdisk /dev/sdb
コマンド (m でヘルプ): p
デバイス Boot Start End Blocks Id System
/dev/sdb1 1 488 3919828+ fd Linux raid 自動検出
コマンド (m でヘルプ): q
入力するのは,太字の部分だけです。/dev/sdc,/dev/sddについても,同様に「fd」でフォーマットしておきます。
STEP 3
RAIDで使用するデバイスファイルを作成します。
# mknod /dev/md0 b 9 0
STEP 4
mdadmコマンドを使って,RAID 0(ストライピング)を構築します。/dev/sdb,/dev/sdc,/dev/sddという3つのUSBメモリのデバイスを/dev/md0という1つのファイルとして認識させます。
# mdadm -C -v /dev/md0 -l0 -n3 /dev/sdb1 /dev/sdc1 /dev/sdd1

このように,最後に/dev/md0 started.と表示されれば成功です。
STEP 5
作成した/dev/md0のファイルシステムをext3に設定します。
# mkfs -j /dev/md0

成功すると,
このように表示されます。
STEP 6
実際に/dev/md0をマウントしてみましょう。まず,マウント先に指定するディレクトリを作っておきます。ここでは,仮に/tmp/raidとしておきました。
# mkdir /tmp/raid
次のコマンドで,マウントします。
# mount /dev/md0 /tmp/raid
これで,/tmp/raidが作成したRAID 0のディスク領域として認識されているはずです。ユーザ権限で書き込み可能にするには,次のコマンドを実行しておく必要があります。
# chmod a+w /tmp/raid
STEP 7
最後に,次のコマンドでRAID構成を確認してみましょう。
# mdadm -D /dev/md0

/dev/sdb1,/dev/sdc1,/dev/sdd1という3つのUSBメモリがRAID 0を構成しているようすがわかります。
注意:再起動したところ,USBメモリのデバイス名が変更されてしまい,うまく認識されませんでした。このあたりは,もう少し工夫する必要がありそうです。
USBメモリのデバイス名を固定する方法
まず,mdadmというRAIDデバイスを操作するためのプログラムが必要ですので,下記のコマンドでインストールしておきます。
$ sudo aptitude install mdadm
なお,mdadmのインストールでは,カーネルにRAIDシステムを認識させるため,initrdが再構築されますので,インストール後に再起動する必要があります。
以下,rootでの作業となるので,次のコマンドでrootのシェルに入ります。
$ sudo su -
STEP 2
fdiskコマンドで,それぞれのUSBメモリのファイルシステムをRAIDに対応させます。
# fdisk /dev/sdb
コマンド (m でヘルプ): t
16進数コード (L コマンドでコードリスト表示): fd
コマンド (m でヘルプ): w
一応,再びfdiskで確認しておきます。
# fdisk /dev/sdb
コマンド (m でヘルプ): p
デバイス Boot Start End Blocks Id System
/dev/sdb1 1 488 3919828+ fd Linux raid 自動検出
コマンド (m でヘルプ): q
入力するのは,太字の部分だけです。/dev/sdc,/dev/sddについても,同様に「fd」でフォーマットしておきます。
STEP 3
RAIDで使用するデバイスファイルを作成します。
# mknod /dev/md0 b 9 0
STEP 4
mdadmコマンドを使って,RAID 0(ストライピング)を構築します。/dev/sdb,/dev/sdc,/dev/sddという3つのUSBメモリのデバイスを/dev/md0という1つのファイルとして認識させます。
# mdadm -C -v /dev/md0 -l0 -n3 /dev/sdb1 /dev/sdc1 /dev/sdd1

このように,最後に/dev/md0 started.と表示されれば成功です。
STEP 5
作成した/dev/md0のファイルシステムをext3に設定します。
# mkfs -j /dev/md0

成功すると,
このように表示されます。
STEP 6
実際に/dev/md0をマウントしてみましょう。まず,マウント先に指定するディレクトリを作っておきます。ここでは,仮に/tmp/raidとしておきました。
# mkdir /tmp/raid
次のコマンドで,マウントします。
# mount /dev/md0 /tmp/raid
これで,/tmp/raidが作成したRAID 0のディスク領域として認識されているはずです。ユーザ権限で書き込み可能にするには,次のコマンドを実行しておく必要があります。
# chmod a+w /tmp/raid
STEP 7
最後に,次のコマンドでRAID構成を確認してみましょう。
# mdadm -D /dev/md0

/dev/sdb1,/dev/sdc1,/dev/sdd1という3つのUSBメモリがRAID 0を構成しているようすがわかります。
注意:再起動したところ,USBメモリのデバイス名が変更されてしまい,うまく認識されませんでした。このあたりは,もう少し工夫する必要がありそうです。
《参考》
USBメモリでRAIDを構築する方法《続編》USBメモリのデバイス名を固定する方法
ツイート




