ライトバックにするとファイルキャッシュ→RAIDコントローラのキャッシュまでで処理が完了するので性能向上ができるようになると認識しています。
一方、ソフトウエアRAIDでは、ハードウエアRAIDであるようなキャッシュというものは存在しないのでしょうか?
ソフトウエアRAIDのキャッシュはファイルキャッシュをつかっているのでしょうか?
つまり、ファイルキャッシュ→DISKの流れのみでしょうか?
ソフトウエアRAIDで書き込み性能を向上させる方法はあるのでしょうか。
カーネル2.6系Linuxです。
一般論ですが・・・。
ライトキャッシュは、キャッシュされた内容がディスクに書き出される前に消えてしまうと、データロストしてしまうので、不意の故障に耐えられるようにバッテリバックアップなどの保護機構が必要になります。
そのため、特殊な機器なしの純粋なS/W RAIDでライトキャッシュは困難です。
#ディスク書き込み性能を増すための遅延書き込みの仕組みなどはありますが、それはまたちょっと別のお話・・・。
ただし、S/W RAIDでもライトキャッシュを持つものもあります。
たとえば、SolarisのZFSというファイルシステムはライトキャッシュにSSD等の高速な不揮発デバイスを割り当ててファイルの読み書きを高速化することが可能です(まあこれもSSDなどのハードが必要です)。
http://jp.sun.com/communities/0612/feature01.html
Linuxのファイルシステムでは・・・寡聞にして聞いたことがないです・・・すいません。
消えてもいいデータ(作業用のデータなど)なら、ramfsでメモリ上ファイルシステムを作れば超高速になりますけど・・・。
> 一方、ソフトウエアRAIDでは、ハードウエアRAIDであるようなキャッシュというものは存在しないのでしょうか?
> ソフトウエアRAIDのキャッシュはファイルキャッシュをつかっているのでしょうか?
ソフトウェアRAIDの機能自体はキャッシュを持っていないと思います。
書き込み性能に効くキャッシュは、OSのバッファキャッシュでしょう。
> ソフトウエアRAIDで書き込み性能を向上させる方法はあるのでしょうか。
RAID5をお使いであれば、RAID1、RAID0、RAID1+0への変更で書き込み性能を向上できます。
他にはちょっと思いつきませんね。。。
RAIDレベルによる性能差については次のページが参考になります。
1つ目で紹介されている計測結果は、ハードウェアRAIDのRAIDレベルによる性能差ですが、
ソフトウェアRAIDでも同様の傾向になります。
HDDベンチマーク手順+性能測定結果一覧
http://plaza18.mbn.or.jp/~moriban/linux/HardDiskPerformance.html
HDDの実効速度測定
回答ありがとうございます。
>ソフトウェアRAIDの機能自体はキャッシュを持っていないと思います。
なるほど、そうなのですね。
>書き込み性能に効くキャッシュは、OSのバッファキャッシュでしょう。
カーネル2.6では,バッファ・キャッシュを完全に廃止され、
ディスク・キャッシュは全てページ・キャッシュに統合されているようです。
ページキャッシュ=ファイルキャッシュという認識でファイルキャッシュと書きました。
>RAID5をお使いであれば、RAID1、RAID0、RAID1+0への変更で書き込み性能を向上できます。
>他にはちょっと思いつきませんね。。。
そうですね・・・
ソフトウエアRAIDのキャッシュの仕組みが知りたかったという意図で質問を投げたので
RAIDレベルは別の話になりますが、普通に考えてRAID5はwriteペナルティがあるので書き込みは遅くなりますね。RAID1はミラーリングだけなので(DISKを分散できないので)読み書き合わせたRAIDによる性能向上をさせたいと考えている場合は対象外になりそうですね。
回答ありがとうございます。
>Linuxのファイルシステムでは・・・寡聞にして聞いたことがないです・・・すいません。
なるほど・・・
>消えてもいいデータ(作業用のデータなど)なら、ramfsでメモリ上ファイルシステムを作れば超高速になりますけど・・・
それはそうですけど・・・^^;