In message <199709120414.NAA13082@hisoft.soft.hitachi.co.jp>
"[b-free 513] ファイルシステムの信頼性"
"Ryuichi Naitoh <naitoh_r@soft.hitachi.co.jp>" wrote:
naitoh_r> > でも、そういうパターンって多くありません? あとscandisk
naitoh_r> > するたびに不良セクタが増えていくとかいう話を聞いたことは
naitoh_r> > ありますけど。
naitoh_r>
naitoh_r> うーん、それこそ「それは機械が壊れている」話ではないですか?
naitoh_r> scandisk するたびに不良セクタが増えていくのは、媒体の故障というより、
naitoh_r> ディスクのコントロール基盤の故障のように思えますけど。
naitoh_r> 原因が何であれ、ファイルシステムで救うより、ディスクを丸ごと交換した
naitoh_r> 方が正しい解決策でしょう。
もちろん機械が壊れているのです。そもそも壊れていなければエラーなんて
まず起こしませんよ。当然ディスクは捨てるのですが、データは可能な限り
回収しないといけません。信頼性向上のためのエラー訂正ってそういうレベル
で必要なものだと思ってたのですけど。
naitoh_r> ログに収める情報にファイルのデータも含めるようにすれば、結局訂正データ
naitoh_r> を付加するのと変わらないと思います。
naitoh_r> (結局、Log-structured file system では、そういうことをやっているわけで
naitoh_r> すから。もっとも、ログの中にデータ本体を入れてしまっているので、データ
naitoh_r> 本体が独立して記録されるわけではないですが)
やっぱり違うと思いますが。訂正データは、ディスクの読み書きの異常に
備えるもので基本的にデバイスの管轄、ログは一連の書き込みシーケンスを
原子化するものでファイルシステムの管轄、目的から管轄レベルから全然
違うと思いますけど。両方の目的に適合するような冗長データを作ることは
できるかもしれませんが、同一に論ずるものでもないでしょう。
naitoh_r> > しかし、アプリケーションが書き込んだつもりといっても、
naitoh_r> > システムクラッシュしたらつもりの情報も保存されません
naitoh_r> > から。あとキャッシュのフラッシュくらいのAPIはあります。
naitoh_r>
naitoh_r> write システムコールが終了した時点でディスクに書き込むことが保証されて
naitoh_r> いれば、システムクラッシュで書き込んだつもりのデータがなくなっていると
naitoh_r> いうことがなくなります。
naitoh_r> (ただ、これは結局 DOS のやり方で、速度が遅くなってしまいそうですが)
naitoh_r>
naitoh_r> で、NTFS では、そこまでできずにファイルシステム内部の整合性のみにとど
naitoh_r> まっているということを指摘したいわけです。
そのレベル(システムコール完了時点で書き込み保証)の要求はキャッシュ
する限り絶対不可能です。NTでもキャッシュのフラッシュとかライトスルー
指定でオープンとかすれば要求を満たせないことはないです。
そういえばBTRON1の仕様にフラッシュとかありました? ないならAPIを追加
しないといけないかも。
--- 林(takanori@ohsaki.meidensha.co.jp)