ハードディスク上のデータは、Windowsがデータにアクセスしようとしたときにこれが発生したことを警告せずに劣化しますか?


30

ハードディスクの物理的な劣化により、OSがファイルを読み取るときに「認識」して通知せずに、ファイルコンテンツのビットが「反転」する可能性がありますか?たとえば、ASCIIテキストファイル(バイナリ0111000 0)の「p」を「q」(0111000 1)に変更すると、ユーザー(me)はファイルを開いて、障害を意識せずに「q」を表示できます起こった?

FAT、NTFS、またはReFSに関連する回答に興味があります...違いがある場合。

OSがこれから私を保護しているかどうか、またはコピー間/時間の不変性についてデータをチェックする必要があるかどうかを知りたいです。


特に関連するが、類似していない:superuser.com/questions/613702/...
マイケル・フランク

破損した読み取り/書き込みヘッドが誤って誤った電荷をディスクに適用する可能性があると思いますが、その規模の小さなデータ破損は見たことがありません。また、ドライブが故障しているかどうかをWindowsが教えてくれるとは信じていません(ログイン時のメッセージ)。Windowsからの警告なしに、ドライブが時間とともにゆっくりと死んでいくのを見てきました。
CConard96

もちろん、データは0または1の相対値を持つビットとして保存され、磁気および半導体ストレージを含むすべてのシステムでエントロピーが発生します。すべてのデータは時間とともに劣化します。
アセジャベリン

2
@Moab:URLが何らかの形で最初のコメントのURLと異なっていた場合、2番目(「...」)のコメントにさらに感銘を受けます。
TOOGAM

1
ミラーボリューム(パリティではありません!)上でReFSを使用し、適切に構成すると、ファイルシステムメタデータだけでなくファイルデータもチェックサムされます。読み取り時に検証され(必要に応じて修正されます)、定期的にボリューム全体をスキャンしてエラーを検出するスケジュールジョブもあります。
-davidbak

回答:


24

はい、ビット腐敗というものがあります。

しかし いいえ、気付かれることはありません。

ドライブがプラッターにセクターを書き込むとき、RAMに格納されているのと同じ方法でビットを書き込むだけではありません-エンコードを使用して、同じビットのシーケンスが長すぎないようにします、ECCコードを追加して、数ビットに影響するエラーを修復し、数ビット以上に影響するエラーを検出できるようにします。

ドライブがセクターを読み取ると、必要に応じて可能であれば、これらのECCコードをチェックし、データを修復します。次に何が起こるかは、ドライブの状況とドライブのファームウェアによって異なります。これは、ドライブの指定に影響されます。

  • セクターを読み取ることができ、ECCに問題がない場合は、OSに渡されます
  • セクターを簡単に修復できる場合は、修復されたバージョンをディスクに書き込み、読み戻し、検証して、エラーがランダムなもの(宇宙線...)であるか、メディアに系統的なエラーがあるかを判断します
  • ドライブは、メディアにエラーがあると判断した場合、セクターを再割り当てします
  • RAIDドライブとして指定されているドライブで、数回の読み取り試行後にセクターを読み取ったり修正したりできない場合ドライブはあきらめ、セクターを再割り当てし、コントローラーに問題があることを伝えます。RAIDコントローラーに依存して他のRAIDメンバーからセクターを再構築し、故障したドライブに書き戻します。故障したドライブは、問題のない再割り当てセクターに格納します。
  • デスクトップドライブでセクターの読み取りまたは修正ができない場合、ドライブは読み取りをさらに試行します。ドライブの品質に応じて、ヘッドの位置を変更し、繰り返し読み取ったときに反転するビットがあるかどうかを確認し、どのビットが最も弱いかを確認します。これらの試みのいずれかが成功すると、ドライブはセクターを再割り当てし、修復されたデータを書き戻します。

(これは、「デスクトップ」、「NAS / RAID」、または「ビデオ監視」ドライブとして販売されているドライブの主な違いの1つです。RAIDドライブはすぐにgiveめて、コントローラーがセクターを修復して、ユーザーが数秒待つと、データが失われたと伝えるよりもおそらく良いため、デスクトップドライブは何度も再試行します。ビデオドライブは、破損したフレームが通常勝つため、エラー回復よりも一定のデータレートを重視します。気付かれることさえありません。)

とにかく、ドライブはビットが腐敗したかどうかを認識し、通常はそれから回復し、それができない場合はコントローラーに通知し、ドライバーはOSに通知します。次に、このエラーをユーザーに提示して対処するのはOSの責任です。これがサイバーナードが言う理由です

単一のビットエラーを自分で目撃したことはありませんが、セクター全体が故障したハードドライブをたくさん目にしました。

ドライブはセクターに何か問題があることを認識しますが、どのビットが失敗したのかはわかりません。(失敗した単一のビットは、常にECCによってキャッチされます)。

chkdskおよびファイルシステムの自動修復は、ファイル内のデータの修復には対応していません。これらは、ファイルシステムの構造を破壊することを目的としています。ディレクトリエントリと割り当てられたブロック数の間でファイルサイズが異なるように。NTFSの自己修復機能は、構造的な損傷を検出し、それらがデータに影響を与えないようにします。既に損傷したデータは修復されません。

もちろん、データが破損する理由は他にもあります。例えば。コントローラの不良RAMは、ドライブに送信される前にデータを変更する場合があります。その場合、ドライブ上のメカニズムはデータを検出または修復しません。これがファイルシステムの構造が破損する理由の1つである可能性があります。その他の理由には、単純なソフトウェアバグ、ディスクの書き込み中のブラックアウト(これはファイルシステムジャーナリングによって対処されますが)、または不良ファイルシステムドライバー(LinuxのNTFSドライバーはNTFSがリバースエンジニアリングされ、文書化されていないため、長い間読み取り専用になりました)が含まれます、開発者は独自のコードを信頼していませんでした)。

アプリケーションがすべてのファイルを異なるデータセンターの2つの異なるサーバーに保存し、すべての状況下でデータが機能する場合に作業用コピーを保持するというシナリオを1回作成しました。数か月後、コピーの1つで、すべてのファイルの約0.1%が、アプリケーションがデータベースに保存したMD5の合計と一致しなかったことに気付きました。サーバーとSANの間の障害のあるファイバーケーブルであることが判明しました。

これらの他の理由は、ZFSなどの一部のファイルシステムが追加のチェックサム情報を保持してエラーを検出する理由です。それらは、ほんの少し腐敗するよりも多くの間違った事態からあなたを守るように設計されています。


2
ドライブメディアの劣化以外の他のハードウェアの問題が破損データの読み書き引き起こす可能性があることを指摘して+1 。私は個人的に、ケース内の不良ケーブルの問題を抱えています。そして、FYIは、ZFSに加えて、適切に構成され、記憶域スペース上で実行されるWindows ReFSファイルシステム(Server 2012+用)は、ファイルシステムメタデータだけでなくファイルデータもチェックサムして、定期的なボリューム全体を実行しますこのようなエラーの多くを検出して修正するための整合性スキャン。
davidbak

17

はい、ハードドライブはOSからの警告なしで劣化する可能性があります。それはビット腐敗と呼ばれています。単一のビットエラーを自分で目撃したことはありませんが、セクター全体が故障したハードドライブをたくさん目にしました。

Windowsには、NTFSファイルシステムの構造を超えるファイルコンテンツの保護が組み込まれていません。NTFSは本だと考えてください。それは、目次を保護するだけで、物事が一致することを検証するだけです。ただし、損傷がページの中央にある場合、保護は提供されません。FATには何もありません。ハードドライブはセクターごとにECCエラー修正を使用しますが、ドライブはWindowsに通知しません。一部のファイルタイプには、破損を検出するためのCRC、MD5、またはSHAハッシュが特にありますが、何も修正されません。

それでも、ハッシュは問題があることを知らせるだけですが、エラーの場所はわかりません。

ハードドライブには、ハードドライブの状態を監視するSMARTがありますが、ドライブが死の扉にない限り、BIOSは警告しません。最悪の場合、SMARTは多くの場合BIOSでデフォルトで無効になっています。ソフトウェアで数値を監視できますが、ドライブごとに問題が異なります。多数の再配置されたセクターがある場合、またはECCエラーが常に発生する場合。毎日100,000個の新しいECCがある場合、それは悪い兆候です。

多くのファイルタイプにはビット腐敗に対する保護がありません。TXTやBMPのように、まったく保護されていません。Winrarには、ファイルを大きくするパリティデータをアーカイブに追加するオプションがありますが、(追加されたパリティデータの量に比例して)この種のエラーを検出して修復できます。

私が知っている他のすべての圧縮プログラムはエラーを検出しますが、それについて何もすることはできません。

最終的に、セクターのエラーは非常に悪いため、ECCでは訂正できず、ドライブは間違っていても読み取り内容を提供します。

QuickParなどを使用してパリティデータファイルを作成できますが、私が知る限り、それを自動化する方法はありません。たとえば、パリティを手動で更新する必要がある場合、実際に自分でファイルを変更します。ファイルのグループのパリティデータを保持することもできますが、1つのファイルを変更し、パリティセット全体を再作成する必要があります。これはすべての人にとって本当の頭痛の種ですが、少数のファイルです。


Windows、chdsk、NTFSは、ビット腐敗、RAIDで処理される、またはパリティ付きのファイルシステムを検出します。不良パーティションは、ビットの腐敗によるものでも、原因でもありません。私はこの答えを承認します
ラムハウンド

1
@Ramhound悲しいことに、レベル5またはレベル6のRAIDミラーリングでデータを保護するユーザーの数は、おそらく0.01%未満です。
サイバーナード

私は一般的に話していたことを知っています。ビット腐敗!=不良パーティション
ラムハウンド

1
NOR = NOT OR; 文で使用されると、それは排他的なリストであることを意味します。
ラムハウンド

1
私はこのようなことをしたこの750GBのハードドライブを持っていました。まず第一に、コンピューターは遅く、常にフリーズしていました。一部のテキストファイルの一部がゼロになるか、文字化けします。コンピューターは後で起動を停止しました。新しいハードディスクを手に入れました(SSDではなくHDDを手に入れました。SSDを手に入れるべきだったと思います)。問題は解決し、PCは高速になりました
Suici Doga

2

はい、可能です。Windowsは単なるソフトウェアです。ソフトウェアは、コンピュータが従うべき一連の指示です。

一連の指示の別のタイプ、本について考えてください。棚の上にある本に書かれていて、誰も本を開いてそれらの指示を読むことを気にしない場合、それらの指示は何を達成できますか?

書かれた指示が指示を読んで指示に従うことを人に要求するのと同じように、コンピューターソフトウェアは有用なことをするためにハードウェアを必要とします。本が非常に正確に書かれた指示を持っているとしても、人が指示を読んでから間違って実行することに決めた場合、問題を防ぐことはできません。同様に、ソフトウェアはハードウェアが悪いことをするのを防ぐことはできません。そのため、破損したハードウェアは、Microsoft Windowsを含むソフトウェアの機能を物理的に勝ち取ることができます。

現在、ReFSは、ソフトウェアがデータに関する詳細を保存し、ソフトウェアがそれらの詳細を後で比較することを意図して設計されている場合があります。単純な概念は「チェックサム」であり、ソフトウェアは特定の値を追加し、それらの値が期待される結果と一致することを確認します。ハードウェアがそのソフトウェアを実装すると、特定の悪い結果が検出される可能性があります。これは動作する可能性が非常に高いかもしれません。ただし、理論的には存在する可能性のある潜在的な問題の数は基本的に無限であるため、ソフトウェアがすべての問題を必ず検出するという保証はありません。(ソフトウェアは、事前に作成された一連の指示であることに注意してください。)

FATの機能は特に低くなっています。FAT12はフロッピーディスク用に設計され、FAT16は最大4GBのシステム用に設計されています(ただし、MicrosoftのFAT16の実装のほとんどは2GBを超えると動作しない傾向があります)。VFAT拡張子がない場合、どちらも11文字より長いファイル名をサポートしていません(一部は「拡張子」と呼ばれる部分にあります)。FATは、データを保存する機能が大人に教えられる必要がある新しい概念であった時代に、データを保存するように単純に設計されました。FATが「最先端」のテクノロジーと見なされたとき、コンピューターテクノロジーはまだ十分に普及しておらず、人々が高度な機能を心配するほど精巧ではありませんでした。

NTFSでは、さらに多くの機能のサポートが追加されました。おそらく最も顕著なのは、オペレーティングシステムがユーザーのアクセス許可を簡単に追跡できるようにすることです。NTFSにはさまざまなバージョンがあります。たとえば、MoabはWindows Server 2008がのサポートを追加したことを指摘しています自己修復NTFSのます。それでも、この機能はWindows Server 2008で新しく追加されたものであるため、Windows XP(またはWindows Server 2003以前)ではまったくサポートされていません。それでも、機能のリストを確認すると、これには、オペレーティングシステムがディスクをマウントできないほど深刻な問題、またはオペレーティングシステムのカーネルに影響するディスクの他の重要な領域に気付くのに役立つメタデータが含まれているようです。すべてのファイルのすべてのデータが、この特定の機能の影響を受けるようには見えませんでした。

このようなオペレーティングシステム用のソフトウェアは、オペレーティングシステムがタスクを実行するために顕著な問題を引き起こさない限り、そのようなことに気付くことはほとんどありません。ディスクをチェックするオペレーティングシステムの部分(オペレーティングシステムに応じてCheckDsk / ChkDsk / ScanDisk / ScanDskW)のように、いくつかの例外があるかもしれませんが、ファイルシステムが主にディスクチェックに役立つことを目的とした大量のデータを保存しないでください。

(RAID5は、異常なことに気付くのに役立つすべてのビットにパリティビットがあるため、そのようなことを検出する傾向があります。それでも、問題に気付くためにチェックを実行するのはRAIDの実装次第です。積極的に作業されていないディスクの一部は、誰かがそのデータの使用を開始しようとするまで気付かないままになる可能性があります。

最近では、ビット数が多いほど、「1千万分の1」の確率のような小さな可能性が物事に影響を与える可能性が高くなりました。一般の人々は、物事に小さな影響を与える可能性のある「宇宙線」についても学びました。新しいデバイスではビットがぎっしり詰め込まれているため、ビットを表現するための物理的要件は小さいため、小さな影響でもビットの認識方法が混乱する可能性が高くなります。ReFSには、それらの検出を支援するために設計されたいくつかの機能があります。 ReFSに関するウィキペディアの記事では、これを「自動整合性チェック」と呼んでいます。このファイルシステムの注目すべき機能として説明されているように、このような機能はNTFSよりも開発されている可能性が高くなります(実際、比較的単純なFATよりも、

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