From: Takanori Hayashi <takanori@ohsaki.meidensha.co.jp>
Subject: [b-free 519] Re: ファイルシステムの信頼性
Date: Fri, 12 Sep 1997 17:48:18 +0900
> 林です。
>
> In message <199709120657.PAA23846@hisoft.soft.hitachi.co.jp>
> "[b-free 518] Re: ファイルシステムの信頼性"
> "Ryuichi Naitoh <naitoh_r@soft.hitachi.co.jp>" wrote:
> naitoh_r> > やっぱり違うと思いますが。訂正データは、ディスクの読み書きの異常に
> naitoh_r> > 備えるもので基本的にデバイスの管轄、ログは一連の書き込みシーケンスを
> naitoh_r> > 原子化するものでファイルシステムの管轄、目的から管轄レベルから全然
> naitoh_r> > 違うと思いますけど。両方の目的に適合するような冗長データを作ることは
> naitoh_r> > できるかもしれませんが、同一に論ずるものでもないでしょう。
> naitoh_r>
> naitoh_r> なるほど。
> naitoh_r> ロギングと訂正データの機能が重ならないならば、両方とも採用するというのも
> naitoh_r> ひとつの手ですね。
> naitoh_r>
> naitoh_r> 管轄レベルは両方ともファイルシステムで同じではないですか?
> naitoh_r> デバイスドライバでデータ訂正を管理するというのもありかと思いますが、
> naitoh_r> ファイル毎にデータ破壊がおこっているかどうかを知るためにも、ファイル
> naitoh_r> システム内で管理した方がいいと思います。
>
> 異常が発生するのはディスクにおいてなので、異常の検出はデバイスより
> 上には上げるべきではないでしょう。ファイル単位での処理のためにエラー
> 情報をファイルシステムに上げるというのはありですけど。
> エラー通知は、デバイス読み書きへの返り値として返すことができます。
> データ訂正したとか訂正できなかったとか。訂正した場合はデータは正しい
> ものが受け取れているわけです。
> # ファイルシステムでやってはいけないとは言いませんが…。
デバイスドライバ内でエラーを訂正するとすれば、IDE や SCSI などの個々の
デバイスドライバが対応する必要があります。ファイルシステムでエラー訂正
の機能を入れれば、すべての種類のデバイスで使えることになるので、労力が
全然違うと思いますけど?
もちろん、データ訂正用のサービスをカーネルが提供することもできますが、
B-Free OS のようにマイクロカーネル方式だとカーネル呼び出しの分だけ余計
に時間がかかってしまいます。ライブラリとしてリンクする方法もありますが、
デバイスドライバのサイズが大きくなります。どちらにしてもファイルシステ
ムで対応するより、処理時間かメモリを食うことになります。
それに、同じ種類のディスクドライブに対して 2 つ以上のデバイスドライバ
がある場合、双方のデバイスドライバで同じデータ訂正のコードが必要にな
ってしまいます(一旦、特定のデバイスドライバを使ったら、他のデバイスド
ライバはアクセスできないというように決めればいいでしょうけど。。。)
> naitoh_r> もちろん、キャッシュがある場合には write システムコール終了時点での
> naitoh_r> ディスクへの書き込みを保証することは無理だと思います。
> naitoh_r> キャッシュがある時に、書き込みを保証するとしたら、書き込み完了待ちのシ
> naitoh_r> ステムコールを追加するくらいですね。
> naitoh_r> NT って、ファイル毎のフラッシュというのは指定できましたっけ?
>
> FlushFileBuffersというAPIがあります。
> # フラッシュはまさに書き込み完了待ちシステムコールですね。
なるほど。
> naitoh_r> ただ、キャッシュがなくても速度の低下がそれほどなければ、キャッシュを使
> naitoh_r> 用しないという選択もあり得ます。
>
> 書き込み時のオプションか、オープン時の指定でキャッシュしない、
> あるいはキャッシュするがフラッシュ完了まで書き込みシステムコール
> から戻らないようにする指定ができても良いですね。書き込むたびに
> フラッシュを呼んでも良いわけですが…。
このフラッシュ系の API は、B-Free OS に加えましょうか?
# ということで、よろしく ^^) > 長谷川@電脳丸さん。
> naitoh_r> > そういえばBTRON1の仕様にフラッシュとかありました? ないならAPIを追加
> naitoh_r> > しないといけないかも。
> naitoh_r>
> naitoh_r> そういえば、他の OS の FS として NTFS しか議論していませんが、他にも
> naitoh_r> 信頼性を上げるための工夫をしている FS として何があるでしょうか?
> naitoh_r>
> naitoh_r> 私としては、Log-structured file system に注目しているのですが。
> naitoh_r> (しかし、この辺の新しいファイルシステムの話はあまり表には出てこないで
> naitoh_r> すね。。。)
>
> 最近の動向にはあまり詳しくないけど、ファイルシステムの傾向
> としてはデータベースファイルシステムでは? ファイルシステム
> 自身がデータベース機能を持つわけですが。レジストリもデータ
> ベースの一種だし。
> B-Freeでもやってみます? トランザクティブなファイル操作とか
> レコード条件を指定しての実身検索とか。
> # 簡単な検索機能はBTRON1にもあるか。
>
> # 性能の確保が大変でしょうけど。
データベースファイルシステムというのは、データベース的な機能をファイル
システムに加えたものですよね? (最近だと BeOS がサポートしているようで
すが)
これって、従来の BTRON から大幅に API を変更することになりませんか?
# それだけのメリットがあるかな。。。。
p----------------------------------------------------------------------q
| FROM R.Night |
| E-mail: |
| rnaitoh@st.rim.or.jp |
b----------------------------------------------------------------------d