停電の場合、NTFSはフェールセーフですか?


13

停電の場合、NTFSファイルシステムに損害を与えることはできますか?たとえば、破損したり、ファイルが破損したりしますか?また、ダイナミックディスク上のNTFSビルトインミラーリングは、停電の場合にファイルを一貫した状態に保つことが保証されていますか?

私の見解では、ジャーナリングファイルシステムは、この種の問題に耐えるように特別に設計されています。ユーザーデータはNTFSファイルシステムによって保証されていませんが、データベース管理システムなどのアプリケーションには、データを保護するトランザクションマネージャーがあります。

Microsoft Windows Internalsの素晴らしい本からの引用:

NTFS

NTFSには、多くの高度な機能が含まれています。最も重要な機能の1つは回復可能性です。システムが予期せず停止した場合、FATボリュームのメタデータは一貫性のない状態のままになり、大量のファイルおよびディレクトリデータが破損する可能性があります。NTFSは、ファイルシステム構造を一貫した状態に修復できるように、ファイルまたはディレクトリ構造情報を失うことなく、トランザクション方式でメタデータへの変更を記録します。(ただし、ファイルデータは失われる可能性があります。)

NTFS設計の目標と機能

ハイエンドファイルシステムの要件

NTFSは最初から、エンタープライズクラスのファイルシステムに必要な機能を含むように設計されていました。予期しないシステムの停止またはクラッシュが発生した場合のデータ損失を最小限に抑えるために、ファイルシステムは、メタデータの整合性が常に保証されるようにする必要があります。最後に、ファイルシステムは、ユーザーデータを保護するためのハードウェア冗長ソリューションの低コストの代替として、ソフトウェアベースのデータ冗長性を考慮しなければなりません。

回復性

NTFSは、アトミックトランザクションを使用して、ファイルシステム回復機能を実装します。プログラムがNTFSボリュームの構造を変更するI / O操作を開始する場合、つまり、ディレクトリ構造を変更する、ファイルを拡張する、新しいファイルにスペースを割り当てるなどの場合、NTFSはその操作をアトミックトランザクションとして扱います。トランザクションが完了するか、トランザクションの実行中にシステムに障害が発生した場合にロールバックされることを保証します。

さらに、NTFSは重要なファイルシステム情報に冗長ストレージを使用しているため、ディスク上のセクターが故障しても、NTFSはボリュームの重要なファイルシステムデータにアクセスできます。

データの冗長性とフォールトトレランス

ファイルシステムデータの回復可能性に加えて、一部のお客様は、停電や壊滅的なディスク障害によって自分のデータが危険にさらされないことを要求しています。NTFSの回復機能は、ボリューム上のファイルシステムへのアクセスを保証しますが、ユーザーファイルの完全な回復を保証するものではありません。データを失うリスクのないアプリケーションの保護は、データの冗長性によって提供されます。

ユーザーファイルのデータの冗長性は、フォールトトレラントディスクサポートを提供するWindowsレイヤードドライバーモデルを介して実装されます。ボリュームマネージャは、1つのディスクから別のディスクにデータをミラーリングまたは複製することができるため、冗長なコピーを常に取得できます。

NTFS回復サポート

NTFS回復サポートにより、電源障害またはシステム障害が発生した場合、ファイルシステム操作(トランザクション)が不完全なままにならず、ディスク修復ユーティリティを実行することなく、ディスクボリュームの構造がそのまま維持されます。NTFS Chkdskユーティリティは、I / Oエラー(不良セクタ、電気的異常、ディスク障害など)またはソフトウェアのバグによって引き起こされる壊滅的なディスク破損を修復するために使用されます。しかし、NTFS回復機能が導入されているため、Chkdskはほとんど必要ありません。

回復可能なファイルシステム

NTFSは、システムクラッシュが発生した場合のユーザーデータの保護を保証しませんが、一部の変更はキャッシュから失われる可能性があります-アプリケーションは、NTFSのライトスルーおよびキャッシュフラッシュ機能を利用して、ファイルの変更を記録できます適切な間隔でディスク。キャッシュのライトスルー(書き込み操作をディスクにすぐに強制的に記録する)とキャッシュフラッシュ(コンテンツをディスクに強制的に書き込む)の両方が効率的な操作です。さらに、FATファイルシステムとは異なり、NTFSは、システムに障害が発生した場合でも、ライトスルー操作またはキャッシュフラッシュの直後にユーザーデータの一貫性と利用可能性を保証します。


あなたの答えがあるように見えます
...-r0ca

回答:


7

理論は別として、このサイトには非常に多くの問題があり、NTFSの停電によって引き起こされるため、答えはNOでなければなりません。

私はこのサイトで、不良セクタが突然現れてからWindowsのインストールが完全に停止するまでの問題を個人的に処理しました。

コンピューターは非常に複雑なハードウェアであり、最新のハードディスクも独自の小型コンピューターになっています。それぞれが独自のプロセッサとメモリを持っているため、それぞれが間違った瞬間に発生する電源グリッチに対して脆弱です。

NTFSがフェールセーフであっても(実際には信じていませんが)、ハードディスクへの変更を処理するコンポーネントはフェイルセーフではありません。したがって、質問全体は非常に学術的なものであり、現実の世界とは関係ありません。

答えは、NTFSの方が安全ではあるが、フェイルセーフではないということです。


7
+1電源障害やデータの適切なバックアップ時に自動的にシャットダウンする適切なUPSに代わるものはありません。
デイブM

ディスクミラーリングは、「突然不良セクタが発生する」ための解決策ではありませんか?
ジョナス

このトピックに関する興味深い記事を見つけました。Microsoftがデータを危険にさらす方法
ジョナス

非常に興味深い-論文をダウンロードしました。
harrymc

4
不良セクタはNTFSの問題ではありません。また、私はここで与えられた事例証拠にも反対します。NTFSは、ハードウェアが書き込みに関する一般的な保証に従うという仮定の下でクラッシュセーフです。これらはおそらくあなたのケースで違反されました。
usr

4

NTFSはメタデータのみをジャーナルします。これにより、ファイルシステムの破損が防止されますが、神は、ジャーナルされていないデータをサポートします。書き込み中に停電が発生すると、データは失われます。


確かに、たとえば、データベース管理システムはユーザーデータにトランザクションマネージャーを使用するため、コミットされたときに永続的です。100%書き込まれていないデータは、ユーザーに「書き込まれた」と報告されません。
ジョナス

2
もちろん、@ Jonasですが、これはアプリケーションの機能であり、ファイルシステムではありません。
ミルチアチレア

3

NTFSを読み書きするコードを書いた後、NTFSリカバリ機能は欠陥のある方法で設計/実装されているという結論に達しました。

NTFSジャーナルには、書き込みの原因となった操作のログエントリが含まれます。通常、その操作を元に戻す/やり直すのに十分な情報が含まれますが、書き込み中にセクタが破損した場合(停電のため)、ログエントリは含まれませんそのセクター内のすべてのメタデータを回復するのに必要なだけです。

Windows NTFSドライバーの実装者は、書き込み操作が完全に成功するかまったく起こらないと想定しています(これは一部のエンタープライズ環境でのみ当てはまります)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.