アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
一体どれ使えばいいの? (スコア:0)
Re:一体どれ使えばいいの? (スコア:3, 参考になる)
ちょっとlinuxに関して手厳しい意見に見えるかも
しれませんが、とにかく、これだけファイルシステムに
関して詳しく解説しているところって滅多にないんじゃ
ないかと思います。是非、御一読を。
Re:一体どれ使えばいいの? (スコア:0)
次のような記述があります。
> 図 4.4(d) ではじめて inode が更新される。
> inode は一般に HDD の sector サイズよりも小さいので、
> この更新は all or nothing で実行される。
> 従って、inode が「破損」する可能性は考えなくて良い。
これは嘘です。
大抵のハードディスクでは、
セクタへの書き込み中に電源が落ちると、
そのセクタのデータが壊れる可能性があります。
このことは各社
Re:一体どれ使えばいいの? (スコア:0)
ま、それで駄目ならあきらめでしょう。少なくとも、softupdate の書き順で書
Re:一体どれ使えばいいの? (スコア:0)
ヘッドを退避するのはクラッシュを防ぐためです。
普通に考えればヘッドを退避してしまったらデータの書き込みは完了できません。
(ちなみに「大きなコンデンサ」はこのヘッドの退避に使われます。)
> 電圧降下を検出したらそのセクタを最後にする機能もあるという。
それは初耳です。どのハードディスクか教えてくれませんか?
> sector 異常は CRC で検出してくれるから、間違ったデータが出てくる確率は低いだろうし
それは違います。
ハードディスクで使われている ECC は
「書き込みが途中で止
Re:一体どれ使えばいいの? (スコア:0)
> ヘッドを退避するのはクラッシュを防ぐためです。
> 普通に考えればヘッドを退避してしまったらデータの書き込みは完了できません。
> (ちなみに「大きなコンデンサ」はこのヘッドの退避に使われます。)
データ書き込みがIO命令の単位で完成する必要はないんじゃないの?セクタ単位で十分でしょう?
>> 電圧降下を検出したらそのセクタを最後にする機能もあるという。
> それは初耳です。どのハードディスクか教えてくれませんか?
HとかIとか海とか、今時大抵そうだという話を聞きますが?
#本当かどう
Re:一体どれ使えばいいの? (スコア:0)
「セクタ単位で完了するとは限らない」ということが問題なのです。
> HとかIとか海とか、今時大抵そうだという話を聞きますが?
> #本当かどうか調べたわけではありませんので確証はありませんし、
> #SCSI用の話しか聞いてないのでATAがどうかも知りませんが。
少なくとも各社のハードディスクのマニュアルには記載されてません。
例えば、I 社の SCSI ハードディスク U なんとかのスペックには
「データ書き込み中に電源が落ちた場合に失われるかもしれないセクタは高々 1 つである」と記述されています。
> セクタが壊れても「壊れたと判れば」被害は少ないんじゃありませんか?
も、もの凄い被害だと思いますが。ディレクトリまるごと消滅、とかありえますよ。
> 他の方式だとファイルの別のところの破損も顕在化するわけだから。
「他の方式」や「別のところの破損」が何をさしているの不明ですが、
LFS や JFS ならば、少なくとも今議論されているような破損は完全に復旧できます。
また「別なところの破損」(?)も、全てのデータ、メタデータの書き込みをトランザクションの対象にすれば防げます。
例えば、Ext3 なら、mount 時に
mount -o data=journal
などとオプションを渡せば、あらゆるデータ、メタデータの破損を復旧できます(もちろん性能は落ちるでしょうが)。
ちなみに Ext3 のデフォルトは
mount -o data=ordered
で、データのログは取りませんが、
初期化されてないデータブロックが見えてしまうような ファイルシステムの不整合はおきないようになっています。
# Ext3 の実装にバグがないかは不明…