2003.09.19
DVD-RAMはメディアもドライブも比較的安価に入手でき個人のデータ バックアップ用としては非常に使いやすいのですが、ハードディスクの内容を丸ごと保存するように使い方だと、4.7Gバイトという容量では少なすぎます。また、書き込み速度が約1385kバイト/秒(2倍速DVD-RAM使用時)とハードディスクと比較すると遅いのが難点です。
容量が不足するには複数のメディアに分割して保存することが解決できますが、メディアの入れ替えが面倒です。
そこで、LinuxマシンにDVD-RAMドライブ(Panasonic LF-D200)を2台接続して容量 9.4Gバイトの1つのディスクとして使えるか試してみました。
いわゆるRAIDというシステムですが、RAID0(ストライピング)を使うことで複数のディスクをまとめて容量の大きな1つのディスクとして利用でき、複数のディスクに分散してアクセスすることで読み書きの速度も向上できます。
RAIDには専用のハードウェアが制御するハードウェアRAIDと、ソフトウェアによって制御されるソフトウェアRAIDとありますが、今回はLinuxカーネルがサポートするソフトウェアRAID機能を使っています。
|
■使用した主なハードウェア/ソフトウェア
- DVD-RAMドライブ Panasonic LF-D200 2台
- マザーボード TYAN Tiger 230 (S2507D)
- CPU Pentium III 700MHz (DUAL)
- RAM 1Gバイト
- SCSIカード Adaptec AHA-2940
- Linuxカーネル 2.4.22
|
|
Windows 2000/XPもソフトウェアRAIDの機能を持っていますが、DVD-RAMに対しては利用できないみたいで、今のところ成功していません。
【関連】
→ DVD-RAM ソフトウェア RAID/Linux (2) … 4台でストライピングした場合
Linux で DVD-RAMを使う
新しいLinuxカーネルならそのままDVD-RAMドライブを使うことが可能で、少なくとも今回使ったLinux カーネル 2.4.22とLF-D200の組み合わせではそのまま使えました。
DVD-RAMドライブはLinuxからはCD/DVD-ROMとして、srデバイス・ドライバを経由してアクセスできます。
2台のDVD-RAMのデバイス・ファイル名は /dev/sr0 と /dev/sr1 となります。
LinuxがDVD-RAMドライブを認識しているかどうかは cat /proc/scsi/scsi や cat /proc/sys/dev/cdrom/info を実行することで確認できます。
|
$ cat /proc/sys/dev/cdrom/info
CD-ROM information, Id: cdrom.c 3.12 2000/10/18
drive name: sr1 sr0 hdb
drive speed: 0 0 40
drive # of slots: 1 1 1
Can close tray: 1 1 1
Can open tray: 1 1 1
Can lock tray: 1 1 1
Can change speed: 1 1 1
Can select disk: 0 0 0
Can read multisession: 1 1 1
Can read MCN: 1 1 1
Reports media changed: 1 1 1
Can play audio: 1 1 1
Can write CD-R: 0 0 0
Can write CD-RW: 0 0 0
Can read DVD: 1 1 0
Can write DVD-R: 0 0 0
Can write DVD-RAM: 1 1 0
|
|
cat /proc/sys/dev/cdrom/info を実行したとき、該当ドライブの「Can write DVD-RAM:」が1になっていることを確認してください。ここが1になっていないとDVD-RAMに書き込みできません。
■ DVD-RAMをsdドライバで使用する
|
srドライバでDVD-RAMに書き込みができない場合、カーネルにパッチを当ててsdドライバ(ディスク・ドライバ)で使う方法もあります。sdドライバではDVD-RAMをハードディスクと同じように扱うことができ、ハードディスクのようにパーティションを切って使うことも可能です。
この方法については以下のリンクを参考にしてください。
実際、この方法も試しましたがパーティションを切ることも可能でちゃんと使えるようです。
|
Linux ソフトウェアRAID
LinuxのソフトウェアRAIDの構築方法については、以下のリンク等を参考にしてください。
基本的にはRAID用のカーネルを構築されていて、RAIDサポート用のソフトウェア raidtools がインストールされていれば大丈夫です。うちでは、raidtools-0.90 をインストールして使いました。
■ /etc/ratdtab の例
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 8
device /dev/sr0
raid-disk 0
device /dev/sr1
raid-disk 1
|
|
注意点は、CD/DVD-ROM用のsrドライバを使う場合、パーティションを切る必要はないという点です。srドライバを使うドライブは、パーティションを切っても認識されないので意味がありません。
したがって、単に使うだけなら /etc/raidtab ファイルを作成して mkraid /dev/md0 等を実行すれば大丈夫です。
Chunkサイズはとりあえず8Kバイトとしましたが、実験してみないことには最適な値はわかりません。
後は、mke2fs /dev/md0 なり mkreiserfs /dev/md0 なり実行して、ファイルシステムを作成、論理フォーマットを行いマウントすればそれで使えるようになります。
以後、RAIDの開始や停止には raidstart /dev/md0 や raidstop /dev/md0 を実行します。
ベンチマークテスト
DVD-RAMドライブ2台でRAID0(ストライプヒング)を構築した場合、容量・速度ともに約2倍の向上が期待できます。
ためしに hdparam -t /dev/md0 を実行して、読み込み速度を計ってみましたが、
|
■ hdparm 実行例
# hdparm -t /dev/md0
/dev/md0:
Timing buffered disk reads: 32 MB in 6.21 seconds = 5.15 MB/sec
|
|
hdparmでは1Mを2の6乗で表示していますが、5.15Mバイト/秒は1kバイトを10の3乗として換算すると5400kバイト/秒となります。これはDVDでは3.9倍速となり、期待通りにほぼ2倍の速度が出ています。
書き込みも含めてもう少し詳しく計測するため bonnie++ 1.03 というファイルシステムのパフォーマンスを計測するプログラムを実行してみました。ファイルシステムはLinux ext3を使っています。その結果が下の表です。
bonnie++ DVD-RAM RAID-0 Benchmark Result |
Version 1.03 |
Sequential Output |
Sequential Input |
Random |
|
Per Chr |
Block |
Rewrite |
Per Chr |
Block |
Seeks |
Size |
K/sec |
%CP |
K/sec |
%CP |
K/sec |
%CP |
K/sec |
%CP |
K/sec |
%CP |
/sec |
%CP |
2G |
2876 |
28 |
2881 |
1 |
1328 |
1 |
4841 |
48 |
5313 |
2 |
10.3 |
0 |
|
Sequential Create |
Random Create |
|
Create |
Read |
Delete |
Create |
Read |
Delete |
files |
/sec |
%CP |
/sec |
%CP |
/sec |
%CP |
/sec |
%CP |
/sec |
%CP |
/sec |
%CP |
16 |
581 |
99 |
+++ |
+++ |
32137 |
45 |
591 |
99 |
+++ |
+++ |
2062 |
100 |
細かい数値はともかく、Sequential Output/InputのBlockを見ると、読み込み5313Kバイト/秒、書き込み2881Kバイト/秒となっています。これも1Kバイト/秒は2の10乗で表示していますから、10の3乗で換算すると5440kバイト/秒と2950kバイト/秒となり、DVDでの3.93倍速と2.18倍速となります。
書き込み速度が2倍速よりも速いのはキャッシュの効果だと思いますが、なんにしろ読み書き共に倍の速度が出ています。
まとめ
今回の実験でDVD-RAMのRAIDは実際に使えることがわかり、パフォーマンスも期待通りにほぼ2倍の速度が出ています。
今回は2台だけですが、その気になけば3台、4台とドライブを増やしてさらに容量と速度を稼ぐことも可能です。4台くらい追加すれば、容量約18Gバイト、書込速度は4倍速で5540kバイト/秒くらいになるはずです。
圧縮すればもっとも格納できますから、4台くらいでRAID0(ストライピング)を組めばちょっと大きなデータでも一気にバックアップできそうです。
うちでは今のところ2台で十分間に合いそうですが、うちにあるDVD-RAMドライブをかき集めれば4台でRAIDを組むことも可能です。
リムーバブルディスクではメディアを交換することで容量はいくらでも増やせますが、バックアップの途中でメディアを交換するのは人手を使う必要があるので自動化できません。ディスクを自動的に交換するチェンジャ/ライブラリのような装置は存在するようですが、個人ではとても手の出るようなしろものではありません。
RAIDであればDVD-RAMドライブの台数分はディスク交換の手間がいりませんし、読み書きの速度も速くなります。
今回はSCSI接続のDVD-RAMドライブを使いましたが、ATAPI/USB/IEEE1394でも同じように利用可能です。USBやIEEE1394なら、必要なときだけ取り付けて使うことも可能です。
※ |
IEEE1394/USB2.0接続DVD-RAMドライブも試してみたのですが、大きなデータを転送するとリセットがかかって使い物になりませんでした。Linux側に問題がないとしたら、ハードウェアが原因だと思うのですが、いずれ他のPCで試してみようと思います。。
|
DDS4あたりのテープドライブだと容量と書込速度は圧縮時 40GB、6MB/秒、非圧縮で20GB、3Mバイト/秒とといったところですから、DVD-RAMドライブ4台でRAIDを構築すれば十分代用できます。
DVD-RAMドライブが4台必要となると、ハードウェアの値段はそれほど安くはならないかもしれませんが、ATAPI内蔵タイプのDVD-RAMドライブなら1万円台で購入できます。
書き込み速度は2台でRAIDしても2770kバイト/秒くらい出ますし、4台ならさらにその倍の速度が期待できます。また、DVD-RAMではテープドライブと違って、ext2/3やFAT等好みのファイルシステムでフォーマットして通常のハードディスクと変わりなく利用できます。
メディアの値段や入手のしやすさでもDVD-RAMのほうが有利なはずです。
問題があるとしたら、ドライブの数が増える分だけ故障の確率が大きくなる点と、セットするディスクの組み合わせを間違うと利用できないのでディスクの管理が大変になることです。
故障はドライブが安いので壊れたからすぐ交換できるとは思いますが、ラベルやタイトルを書くなどしてディスクの保管・管理をしっかり行わないと、どれが何のディスクかすぐにわからなくなりそうです。
安価で確実なバックアップを行いたいと考えているユーザーには、DVD-RAMのRAIDによるバックアップは検討してみる価値はあると思います。
【関連記事】
→ 2003.08.13 GSA-4040B パケットライト
→ 2003.08.05 GSA-4040B DVD-RAMベンチマーク
→ 2004.03.30 薄型DVDスーパーマルチドライブUJ-820 DVD-RAMベンチマーク
→ 1998.05.24 DVD-RAMドライブ ベンチマーク
→ 2000.07.25 4.7GB DVD-RAM Panasonic LF-D200JD リポート
→ 2002.09.21 DVDマルチドライブ DVR-ABH2 ベンチマーク
→ 2003.09.04 SW-9571 DVD-RAMマルチ ドライブ購入
|