2005.09.04
Windows 2000/XP用のソフトウェアRAIDドライバ MD4Ram のテストレポートです。
現時点ではMD4Ramは開発途中のベータ版ですが、今後のチューニングのためベンチマーク テストを行って見ました。
MD4Ramはハードディスク、リムーバブルディスク、イメージファイル、RAMディスク等、様々なデバイスを組み合わせて利用できますが、開発するきっかけとなったのは、DVD-RAMドライブでストライピング(RAID0)を実現するためです。Linux標準のソフトウェアRAID機能を使ったDVD-RAM RAIDは以前から活用しており、実際にバックアップ用に使っています。MD4RamはこれをWindows環境でも実現するために開発しました。
したがって、まずは開発の目的であったDVD-RAMを使ったテストから始めます。
しかし、DVD-RAMだけでも現在2/3/5倍速とあり、ファイルシステムもUDF/FAT/NTFSがあり、更にストライピングやパラメータに組み合わせによって、すべてテストしていたらきりがありません(実際、既にまる1ヶ月間はテストに時間をかけています)。
まずは、5倍速DVD-RAMを1台だけ使ってファイルシステム等の特性を調べて、次に5倍速DVD-RAMを2〜4台使ったストライピング、2/3倍速DVD-RAMによるストライピングといった具合に進める予定です。他にも気がついたとこがあれば、適時追加するつもりです。
まだ、すべてのテストが終わったわけではありませんが、結果が出たところから掲載していくつもりです。
【関連】
→ DVD-RAM ソフトウェア RAID/Linux
→ DVD-RAM ソフトウェア RAID/Linux (2)
テスト環境
- マザーボード ASUS P4P800SE (BIOS 1007)
- CPU Intel Pentium 4 3.20EGHz
- RAM 1Gバイト
- OS Windows XP Professional SP2
- DVD-RAMドライブ Panasonic LF-M721JD (APP6)
- USB2.0外付ケース KEIAN KA550C
- DVD-RAMドライバmeiudf.sys ver 4.0.5.0
|
|
テストに使用したMD4RamはVersion 0.99b#02 です。プログラムは開発途中のベータ版ですが、ソフトウェアライブラリに登録しています。
テストに使用した主なソフトウェアやハードウェアはは右の表のとおりです。
DVD-RAMドライブLF-M721JDは外付ケースKEIAN KA550Cに収納し、USB2.0で接続して使いました。
速度的にはIDE/ATAPIで接続したほうが有利かと思いますが、後々4台まで接続してアレイを構築することを考えると、ATAPI内蔵では接続台数が厳しくなります。そのため、最初からUSB2.0接続での外付としてテストすることにしました。
今回はDVD-RAMドライブ LF-M721JDを1台で、FAT32とNTFSでのファイルの読み書きの速度を調べます。
テストにはベンチマーク用プログラム fcv を使います。
テスト項目の表記の書式を説明しておきます。
「Standard」は標準DVD-RAMドライバを意味し、Standardの表記がないのはMD4Ramを使っています。
「Fixed」と「Removable」はそれぞれ固定ディスクとリムーバブルディスクを意味します。MD4RCtlコマンドでの--removableオプションにあたります。
「HDD Image」は、ハードディスクに作成したイメージファイルを仮想ドライブとして使用します。この場合、ハードディスクだけで動作しDVD-RAMは使用していません。
「RAM Cache 30M」はメインメモリの30Mバイトをキャッシュに割り当てたアレイです。MD4Rctlコマンドでは--cache RAM --capacity 30Mを指定した動作します。
「HDD Cache」はアレイと同容量のイメージファイルをハードディスク上に作成し、キャッシュに割り当てています。
通常、NTFSはファイルのアクセス日時を記録しており、読み取りのためファイルアクセスを行なった場合でも更新されます。ファイル数やフォルダ数が多いと、アクセス日時を更新するために全体のファイルアクセス性能が低下することがあります。
このため、NTFSについてはアクセス日時を更新する通常のモードと、アクセス日時の更新を無効にしたモードと2つのモードでテストしています。通常モードは「NTFS (Normal)」、アクセス日時更新を禁止したモードは「NTFS (No Update)」と表記しています。
アクセス日時の更新を無効にするにはレジストリ HKLM\System\CurrentControlSet\Control\FileSystem に エントリ NtfsDisableLastAccessUpdate を作成して、DWORD値を"1"を指定します。レジストリを変更後に再起動が必要です。
各テスト項目に対応するMD4Ramのアレイの作成パラメータの一覧を掲載しておきます。
DVD-RAMドライブはLドライブ、キャッシュやイメージファイルを格納するハードディスクはEドライブ、作成するアレイはXドライブとします。
Fixed HDD Image |
md4rctl start array0 x: --dev e:\dvdram.img --blockSize 2048 --blockNumber 2236074 --signBlock 0 --createFile |
Fixed |
md4rctl start array0 x: --dev L: |
Fixed HDD Cache |
md4rctl start array0 x: --dev L: --cache e:\dvdram.img --boockSize 2048 --blockNumber 2236704 --createFile |
Fixed RAM Cache 30M |
md4rctl start array0 x: --dev L: --cache ram --capacity 30M |
Removable |
md4rctl start array0 x: --removable --dev L: |
Removable HDD Cache |
md4rctl start array0 x: --removable --dev L: --cache e:\dvdram.img --boockSize 2048 --blockNumber 2236704 --createFile |
Removable RAM Cache 30M |
md4rctl start array0 x: --removable --dev L: --cache ram --capacity 30M |
300Mバイトのファイル操作
fcvコマンドのパラメータは「fcv x: -verify -maxDirFiles 1000 -filesize 300」です。このパラメータでファイル数6138、総計314,572,800バイトのファイルを操作します。テスト結果は3回実行した平均です。
括弧の中のパーセンテージは Standard FAT32 を基準にした割合です。100%よりも小さければ、Standard FAT32 よりも速く、100%よりも大きければ遅いことになります。
fcv 300M FAT32 FORMAT |
Write |
Read |
Delete |
time |
speed (kB/s) |
time |
speed (kB/s) |
time |
Standard |
UDF2.0 |
3分48秒 ( 53%) |
1375.5kB/s |
2分15秒 ( 18%) |
2325.0kB/s |
29秒 ( 18%) |
FAT32 |
7分08秒 (100%) |
735.0kB/s |
12分15秒 (100%) |
428.0kB/s |
2分45秒 (100%) |
Fixed HDD Image |
FAT32 |
19秒 ( 5%) |
16299.1kB/s |
06秒 ( 1%) |
49932.2kB/s |
01秒 ( 1%) |
Fixed |
FAT32 |
6分37秒 ( 93%) |
791.0kB/s |
05秒 ( 1%) |
59353.4kB/s |
01秒 ( 1%) |
Fixed HDD Cache |
FAT32 |
6分27秒 ( 91%) |
811.4kB/s |
06秒 ( 1%) |
52428.8kB/s |
01秒 ( 1%) |
Fixed RAM Cache 30M |
FAT32 |
6分26秒 ( 90%) |
814.3kB/s |
06秒 ( 1%) |
52428.8kB/s |
01秒 ( 1%) |
Removable HDD Image |
FAT32 |
19秒 ( 5%) |
16299.1kB/s |
06秒 ( 1%) |
52428.8kB/s |
01秒 ( 1%) |
Removable |
FAT32 |
6分45秒 ( 95%) |
775.4kB/s |
07秒 ( 1%) |
44939.0kB/s |
01秒 ( 1%) |
Removable HDD Cache |
FAT32 |
6分26秒 ( 90%) |
813.5kB/s |
06秒 ( 1%) |
46951.2kB/s |
01秒 ( 1%) |
Removable RAM Cache 30M |
FAT32 |
6分41秒 ( 94%) |
784.5kB/s |
06秒 ( 1%) |
46951.2kB/s |
01秒 ( 1%) |
fcv 300M NTFS (Normal) FORMAT |
Write |
Read |
Delete |
time |
speed (kB/s) |
time |
speed (kB/s) |
time |
Fixed HDD Image |
NTFS |
18秒 ( 4%) |
16822.1kB/s |
06秒 ( 1%) |
52428.8kB/s |
02秒 ( 1%) |
Fixed |
NTFS |
10分12秒 (143%) |
514.0kB/s |
07秒 ( 1%) |
40853.6kB/s |
1分29秒 ( 54%) |
Fixed HDD Cache |
NTFS |
10分09秒 (142%) |
515.9kB/s |
05秒 ( 1%) |
59353.4kB/s |
1分22秒 ( 49%) |
Fixed RAM Cache 30M |
NTFS |
9分54秒 (139%) |
529.6kB/s |
06秒 ( 1%) |
52428.8kB/s |
1分21秒 ( 49%) |
Removable HDD Image |
NTFS |
18秒 ( 4%) |
16822.1kB/s |
06秒 ( 1%) |
49932.2kB/s |
02秒 ( 1%) |
Removable |
NTFS |
9分59秒 (140%) |
525.2kB/s |
07秒 ( 1%) |
44939.0kB/s |
1分24秒 ( 51%) |
Removable HDD Cache |
NTFS |
10分05秒 (142%) |
519.4kB/s |
06秒 ( 1%) |
46951.2kB/s |
1分24秒 ( 51%) |
Removable RAM Cache 30M |
NTFS |
9分59秒 (140%) |
525.2kB/s |
07秒 ( 1%) |
44939.0kB/s |
1分21秒 ( 49%) |
fcv 300M NTFS (No Update) FORMAT |
Write |
Read |
Delete |
time |
speed (kB/s) |
time |
speed (kB/s) |
time |
Fixed HDD Image |
NTFS |
18秒 ( 4%) |
16822.1kB/s |
07秒 ( 1%) |
44939.0kB/s |
02秒 ( 1%) |
Fixed |
NTFS |
10分44秒 (151%) |
487.9kB/s |
06秒 ( 1%) |
46951.2kB/s |
1分24秒 ( 51%) |
Fixed HDD Cache |
NTFS |
9分33秒 (134%) |
548.7kB/s |
07秒 ( 1%) |
44939.0kB/s |
1分21秒 ( 49%) |
Fixed RAM Cache 30M |
NTFS |
9分31秒 (133%) |
550.9kB/s |
07秒 ( 1%) |
44939.0kB/s |
1分19秒 ( 48%) |
Removable HDD Image |
NTFS |
18秒 ( 4%) |
16822.1kB/s |
06秒 ( 1%) |
49932.2kB/s |
02秒 ( 1%) |
Removable |
NTFS |
9分53秒 (139%) |
530.2kB/s |
06秒 ( 1%) |
49932.2kB/s |
1分23秒 ( 50%) |
Removable HDD Cache |
NTFS |
9分36秒 (135%) |
545.8kB/s |
06秒 ( 1%) |
46951.2kB/s |
1分22秒 ( 49%) |
Removable RAM Cache 30M |
NTFS |
9分10秒 (129%) |
572.0kB/s |
07秒 ( 1%) |
44939.0kB/s |
1分22秒 ( 49%) |
ここで明確な差が出てくれれば、これ以上テストすることもなく楽だったのですが、思ったほど差が付いていません。ファイルの総計が300Mバイト程度ではOSのキャッシュに大部分が収まってしまい差がでないようです。
MD4Ramを使った読み取りは、どれも6〜7秒と速いのはキャッシュの効果に他なりません。
ただし、標準DVD-RAMドライバはOSのキャッシュの効果が小さいのか、MD4Ramを使ったときよりも遅くなっています。
4Gバイトのファイル操作
300Mバイト程度のファイル操作ては話にならないので、4Gバイト程度まで増やして見ました。
fcvコマンドのパラメータは「fcv x: -verify -maxDirFiles 1000 -filesize 3700」です。このパラメータでファイル数75977、総計3,879,731,200バイトのファイルを操作します。300Mのテストでは3回実行した平均を求めましたが、このテストは時間がかかるので1回だけの結果です。
ファイルサイズの総計は4Gバイトには少し足りませんがクラスタサイズ等の格納効率の問題があるので、4.7G DVD-RAMの容量一杯に書き込みしていることになります。
括弧の中のパーセンテージは Standard FAT32 を基準にした割合です。100%よりも小さければ、Standard FAT32 よりも速く、100%よりも大きければ遅いことになります。
fcv 4G FAT32 FORMAT |
Write |
Read |
Delete |
time |
speed (kB/s) |
time |
speed (kB/s) |
time |
Standard |
UDF2.0 |
33分03秒 ( 42%) |
1956.5kB/s |
21分06秒 (132%) |
3064.6kB/s |
8分19秒 ( 24%) |
FAT32 |
78分03秒 (100%) |
828.5kB/s |
15分56秒 (100%) |
4058.3kB/s |
35分09秒 (100%) |
Fixed HDD Image |
FAT32 |
4分01秒 ( 5%) |
16098.5kB/s |
2分55秒 ( 18%) |
22169.9kB/s |
57秒 ( 3%) |
Fixed |
FAT32 |
133分23秒 (171%) |
484.8kB/s |
19分41秒 (124%) |
3285.1kB/s |
1分16秒 ( 4%) |
Fixed HDD Cache |
FAT32 |
89分39秒 (115%) |
721.3kB/s |
2分56秒 ( 18%) |
22043.9kB/s |
59秒 ( 3%) |
Fixed RAM Cache 100M |
FAT32 |
90分55秒 (116%) |
711.2kB/s |
28分59秒 (182%) |
2231.0kB/s |
1分29秒 ( 4%) |
Removable HDD Image |
FAT32 |
4分12秒 ( 5%) |
15395.8kB/s |
2分51秒 ( 18%) |
22688.5kB/s |
1分00秒 ( 3%) |
Removable |
FAT32 |
89分01秒 (114%) |
726.4kB/s |
17分27秒 (110%) |
3705.6kB/s |
1分33秒 ( 4%) |
Removable HDD Cache |
FAT32 |
90分16秒 (116%) |
716.3kB/s |
2分51秒 ( 18%) |
22688.5kB/s |
57秒 ( 3%) |
Removable RAM Cache 100M |
FAT32 |
92分37秒 (119%) |
698.2kB/s |
36分18秒 (228%) |
1781.3kB/s |
57秒 ( 3%) |
fcv 4G NTFS (Normal) FORMAT |
Write |
Read |
Delete |
time |
speed (kB/s) |
time |
speed (kB/s) |
time |
Fixed HDD Image |
NTFS |
4分54秒 ( 6%) |
13196.4kB/s |
3分38秒 ( 23%) |
17796.9kB/s |
1分23秒 ( 4%) |
Fixed |
NTFS |
338分01秒 (433%) |
191.3kB/s |
627分28秒 (3938%) |
103.1kB/s |
91分15秒 (260%) |
Fixed HDD Cache |
NTFS |
153分01秒 (196%) |
422.6kB/s |
23分09秒 (145%) |
2793.2kB/s |
25分58秒 ( 74%) |
Fixed RAM Cache 100M |
NTFS |
159分01秒 (204%) |
406.6kB/s |
232分07秒 (1457%) |
278.6kB/s |
56分30秒 (161%) |
Removable HDD Image |
NTFS |
4分41秒 ( 6%) |
13806.9kB/s |
2分58秒 ( 19%) |
21796.2kB/s |
1分33秒 ( 4%) |
Removable |
NTFS |
348分23秒 (446%) |
185.6kB/s |
393分55秒 (2472%) |
164.2kB/s |
84分51秒 (241%) |
Removable HDD Cache |
NTFS |
147分52秒 (189%) |
437.3kB/s |
22分10秒 (139%) |
2917.1kB/s |
26分53秒 ( 76%) |
Removable RAM Cache 100M |
NTFS |
156分55秒 (201%) |
412.1kB/s |
268分22秒 (1684%) |
240.9kB/s |
56分43秒 (161%) |
fcv 4G NTFS (No Update) FORMAT |
Write |
Read |
Delete |
time |
speed (kB/s) |
time |
speed (kB/s) |
time |
Fixed HDD Image |
NTFS |
4分41秒 ( 6%) |
13806.9kB/s |
2分54秒 ( 18%) |
22297.3kB/s |
1分36秒 ( 5%) |
Fixed |
NTFS |
305分19秒 (391%) |
211.8kB/s |
56分52秒 (357%) |
1137.1kB/s |
100分04秒 (285%) |
Fixed HDD Cache |
NTFS |
144分09秒 (185%) |
448.6kB/s |
3分13秒 ( 20%) |
20102.2kB/s |
26分59秒 ( 77%) |
Fixed RAM Cache 100M |
NTFS |
156分10秒 (200%) |
414.1kB/s |
46分21秒 (291%) |
1395.1kB/s |
71分16秒 (203%) |
Removable HDD Image |
NTFS |
4分45秒 ( 6%) |
13613.1kB/s |
2分52秒 ( 18%) |
22556.6kB/s |
1分40秒 ( 5%) |
Removable |
NTFS |
344分29秒 (441%) |
187.7kB/s |
89分49秒 (564%) |
719.9kB/s |
79分45秒 (227%) |
Removable HDD Cache |
NTFS |
144分09秒 (185%) |
448.6kB/s |
3分16秒 ( 21%) |
19794.5kB/s |
25分48秒 ( 73%) |
Removable RAM Cache 100M |
NTFS |
151分06秒 (194%) |
427.9kB/s |
44分38秒 (280%) |
1448.7kB/s |
69分20秒 (197%) |
下は上記の書込時間と読込時間をグラフにしたものです。
とりあえず、わかったのはDVD-RAMでNTFSを使うと洒落にならないほど遅いということです。
UDF2.0では書き込みは1番速くて33分、読み込みは21分です。今回はUDF2.0でしかテストしていませんが、以前のテストからUDF1.5でも性能は変わらないはずです。
FAT32では条件にもよりますが、書き込みは1時間半から2時間とUDF2.0の3倍速の時間がかかっています。ただし、読み込みについては、UDF2.0と互角か、上回るケースもあります。ません。また、同じFAT32でもMD4Ramを使うとオーバーヘッドがあるのか少し遅くなるので、標準DVD-RAMドライバが一番速いようです。
MD4RamでFAT32を使う場合、リムーバブルディスクとして扱ったほうが少しだけ速いようです。おそらく、固定ディスクとリムーバブルディスクではOSのキャッシュの動作が異なるのではないと推測しています。
とにかく悲惨なのはNTFSで、普通に書き込みすると5〜6時間かかります。M4Ramをキャッシュ機能を使うと、半分程度に縮まって2時間半くらいになりますが、それでもUDF2.0の5〜6倍の時間がかかっています。
更にアクセス日時を更新する通常モード「NTFS (Normal)」では読み込みに10時間もかけて、書き込みよりも遅くなっています。
MD4Ramのキャッシュはライトスルー方式でディスクI/Oレベルの書き込みには高速化の効果はありません。しかし、ファイルの書き込みについては、ファイルやフォルダ情報の読み取り操作もともなうので、MD4Ramのキャッシュが有効に働いているようです。
FAT32とは逆で、NTFSでは固定ディスクとして扱ったほうが少しだけ速いようです。
DVD-RAMでNTFSを使うには
UDF2.0やFAT32の倍以上も時間がかかることを考えると速度的にはDVD-RAMでNTFSを使うメリットはありません。しかし、アクセス権やセキュリティや暗号化のためにどうしてもNTFSを使いたい場合には、アクセス日時の更新は必ず無効にして、MD4Ramのキャッシュを設定するといいでしょう。
今回のテストでは「〜 HDD Cache」というハードディスク上のイメージファイルをキャッシュに設定する方法と、「〜 RAM Cache 100M」メインメモリの一部をキャッシュに設定する2つの方法を試しましたが、どちらの方法でも効果がありました。
固定ディスクとリムーバブルディスクの違いですが、NTFSでは固定ディスク扱いにしたほうが若干パフォーマンスがいいようです。
速度を求めるならイメージファイルを活用する
一番速いのはハードディスク上のイメージファイルを活用する方法です。
「〜 HDD Image」のテスト結果を見るとわかりますが、NTFSを使ってもハードディスク上では書き込みはたったの5分です。
この書き込みが終わったら、MD4RCtlのWriteコマンドでイメージファイルのままDVD-RAMに書き込みします。5倍速DVD-RAMだと28〜30分程度で書き込みでき、トータルでは約35分で作業が完了します(途中、ユーザの操作が必要になりますが)。これは、DVD-RAM上では一番速かったUDF2.0とほぼ同じです。
数百Mバイト程度の書き込みならこの方法を使うことはありませんが、数G超えるとか書き込みに1時間以上かかりそうな場合は、イメージファイルを活用したほうが短時間で書き込みできます。
B's Recorder 等のCD/DVDライティングソフトでDVD-RAMに書き込む方法に似ていますが、ライティングソフトを使うとROM扱いとなりファイルを削除・変更したり個別のファイル操作ができません。
この点、MD4Ramのイメージファイルを活用する方法なら、DVD-RAMに書きこんだ後でも自由にファイル操作ができます。
まとめ
DVD-RAMを1台だけで使う場合、速度的にはMD4Ramを使うメリットはありません。やはり標準のUDF1.5/2.0を使うのがベストかと思います。
ただし、UDF1.5/2.0にも弱点があって、同じフォルダに数千個とか万単位のファイルを格納すると極端に遅くなります。適当にフォルダを分割できれば回避できますが、フォルダ内のファイル数が増えてしまう場合にはFAT32を使ったほうが速い場合もあります。
NTFSについては、FAT32よりも更に遅いので、速度的にはまったく使う価値はありません。しかし、NTFSには暗号化や圧縮など、UDFやFAT32にはない機能が備わっています。NTFSであれば、これらの機能や情報をDVD-RAMでも使用できます。
ただし、今回のテスト結果を見てもわかるとおり、書き込みにはUDFやFAT32の何倍も時間がかかります。
一度に書き込みするファイルサイズが数100Mバイト程度なら、数分程度の時間でFAT32との差はそれほど大きくありませんが、数Gバイトを超えるファイルを書き込みする場合には、使うのをためらうほど遅くなります。
しかし、この問題はMD4Ramのイメージファイルを活用することで解決できます。ハードディスク上のイメージファイルに書き込みを行なえば、大量のファイル操作も数分で完了します。イメージファイル上での作業が終わったら、まるごとDVD-RAMに書き込みすると5分+30分程度の作業時間で済みます(30分というのは5倍速DVD-RAM使用時です。3倍速だと40分、2倍速で1時間程度です)。
次回はDVD-RAMドライブ2台を使ったストライピングによるテストを行なう予定です。
【関連記事】
→ 2003.09.19 DVD-RAM ソフトウェア RAID/Linux
→ 2003.12.14 DVD-RAM ソフトウェア RAID/Linux (2)
→ 2003.08.05 GSA-4040B DVD-RAMベンチマーク
→ 2003.08.13 GSA-4040B パケットライト
→ 2004.06.18 GSA-4120B 5倍速DVD-RAMベンチマーク
→ 2004.07.13 LF-M721JD 5倍速DVD-RAMベンチマーク
→ 2004.07.15 LF-M721JD 5倍速DVD-RAM (2)
→ 2005.07.22 Panasonic DVDスーパーマルチLF-M821JD & LF-M721JD購入
|