再フォーマットされたドライブをゼロで埋めると、書き込みパフォーマンスが向上しますか?


14

99%を超える2 TBのドライブがあります。でパーティションを削除しfidsk、でフォーマットしましたmkfs.ext4

私の知る限り、ドライブにあった実際のデータはまだ存在しています。それでもパーティションテーブルは再割り当てされました。

質問は次のとおりです。ディスクをクリーニングする場合、さらに書き込みアクションを行うと書き込みパフォーマンスが向上しますか?クリーニングとは、ディスクをゼロで埋めることですか?

何かのようなもの

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496

8
最初にゼロがあると何の利点もありません。最初からゼロが存在するものはすべて上書きされるためです。
モアブ

7
SSDの場合、mkfs.ext4は実際にTRIMを使用してパーティションのコンテンツ全体を破棄するため、答えは「hell no」になります。そのため、手動でゼロを書き込むとパフォーマンスがわずかに低下します。
user1686

2
@grawityすべてのゼロの書き込みを自動的にTRIMに変換するSSDがあるかどうか疑問に思っていました。
カスペルド

@kasperd:良いフォローアップの質問!
リオリ

別の考えられるフォローアップの質問:ディスクが低レベルのディスク複製を行うSANにマウントされたVMである場合、それは役立ちます(VMレベルで削除されたデータの場合、システムがVM対応APIを使用していない場合) 、それは)それらのすべてがすべてゼロにそれらを設定すると、すべてのすべてゼロの事を指摘し、重複したブロックの束で終わるだろう一方のブロックは、周りに固執する必要が削除されたことをSANに見るであろう
FOON

回答:


36

いいえ、パフォーマンスは向上しません。

TL; DR:回転式磁気ハードディスクドライブはそのようには動作しません。

まず、回転磁気記憶ドライブに特定のデータを書き込むと、そのデータは磁区に変換され、実際に書き込み中のビットパターンとは大きく異なる場合があります。これは、プラッターから読み戻されるパターンにある程度のばらつきがある場合に同期を維持するのがはるかに簡単であり、たとえば「ゼロ」または「1」値の長い文字列によって同期を維持するのが非常に難しくなるためです。(26,393ビット、または26,394ビットを読みましたか?ビット間の境界をどのように認識しますか?)コンピューターデータビットと保存可能なチャンク間でこの変換を行うための技術は、時間とともに進化しました。たとえば、修正周波数変調、MMFM、グループコードの記録と、ランレングス制限エンコーディングのより一般的な技術。

例えば、実際の記録処理、HAMRPMRはなど彼らは磁区が物理メディア上に格納されている方法の仕組みを説明し、その中でこれにorthgonalあります。

第二に、セクターに新しいデータを書き込むと、プラッターの関連部分の磁区が単に目的の値に設定されます。これは、特定の物理的位置で以前の磁区が何であったかに関係なく行われます。プラッターはすでに書き込みヘッドの下で回転しています。最初に現在の値を読み取り、それが異なる場合にのみ新しい値を書き込むと、各書き込みに2回転(または各プラッターの追加ヘッド)が必要になり、書き込みレイテンシが2倍になるか、ドライブの複雑さが大幅に増加します。コストが増加します。ハードディスクのシーケンシャルI / Oパフォーマンスの制限要因は、各ビットが読み取り/書き込みヘッドの下をどれだけ速く通過するかであるため、これはユーザーに何の利点も提供しません。(余談として、ランダムI / Oパフォーマンスの制限要因は、読み取り/書き込みヘッドを目的のシリンダーに配置し、目的のセクターがヘッドの下に到達する速度です。ランダムI / OワークロードでSSDが非常に高速になる主な理由は、これらの両方の要因を完全に排除することです)。

で指摘したようにJakeGould、一つの理由は、なぜあなたはしたい場合があります 上書きされ、以前に格納されたデータのない残党ができることを保証することであろう(例えばすべてゼロなど)いくつかの固定パターンを持つドライブを回復していないのいずれか、故意か偶然。ただし、上記の理由により、これを行ってもドライブのパフォーマンスに影響はありません。lioriが指摘したように、「パフォーマンスを向上させる」と考えられる別の理由は、保存されたディスクイメージの未使用部分の圧縮を支援することですが、それでも使用中のシステムのパフォーマンスは向上しません。


3
パーティション/ドライブをゼロにするもう1つの理由は、未加工のパーティション/ドライブダンプ(バックアップ、複数のマシン用のOSイメージの作成、システム移行技術など)を取得する場合です。ゼロは十分に圧縮されます。これは、以前のコンテンツがドライブに保存されていたものとは異なる場合があります。
リオリ

@liori良い点ですが、それは一般的なエンドユーザーのシナリオではなく、OPが説明しているものとはかなり異なります。
CVn

それで、光ディスクは非回転式ですか、それとも磁気式ですか?
マックスリード

4

あなたはこれを言う:

質問は次のとおりです。ディスクがクリーニングされる場合、さらに書き込みアクションを行うと書き込みパフォーマンスが向上しますか?クリーニングとは、ディスクをゼロで埋めることを意味しますか?

100%いや。ディスクにゼロを書き込んでもパフォーマンスは向上しません。それはデータを破壊するためだけに行います。だから、あなたはこれを言う:

私の知る限り、ドライブにあった実際のデータはまだ存在しています。

技術的には…ドライブに以前存在していたデータは、基本的なレベルでドライブにまだ存在しています。それはそれは、言っ存在しないアクセスが容易である形で、または、この時点で回復するが、あなたは本当にデータのそれらの断片を回収するために努力をして喜んで誰かによって侵害されるデータを心配している場合、それは問題になるかもしれません残ります。

そのため、セキュリティとプライバシーが懸念される場合は、ドライブにゼロを書き込んで、すべての空き領域が完全に消去されるようにすることができます。ただし、セキュリティとプライバシーは、ゼロを使用して空き領域を一掃する絶対的な唯一の理由です。そのようなことを行ってもパフォーマンスは向上しません。


recover「簡単」としてカウントしないようなツールを実行していますか?それはちょうどされていたフルドライブ上のたくさんのファイルを見つけるだろうmkfs
ホッブズ

0

皆さんへの私の2セントの贈り物は、私自身の経験です。

私は多くのSSDを所有しており、自分のテストに基づいて、マスターテーブルを書き換える前にゼロでフルフィルすることをお勧めし、パーティションを削除する代わりにマスターテーブルを再作成します。

後で説明しますが、ステップはSSD全体を埋めるddであり、bs = 1Mを使用し、bs = 1よりもはるかに高速で、countパラメーターを忘れて最後まで進むようにします(これは、終わりに達すると、それは検査されるので、そのようなエラーを見るのを心配しないでください、それは示されなければなりません); フルフィルを使用した後、gpartedを使用するか、必要に応じてマスターテーブル(MBR / GPT / etc)に書き込みたいものは何でも、これはすべてのディスクを「トリミング」し、その後、希望のフォーマットでパーティションを作成します。

なぜゼロで埋めるのですか?短い答えは、私の経験では、いくつかのSSDをゼロで埋めると、2〜24の読み取り不可能なブロックが修正され、それ以上ブロックできないということです。

使用する前に新しいSSDを受け取ったときに最初に行うことは、読み取り不能な1KiBブロックの一般的なランダムエラーが発生しないように、ゼロでいっぱいにすることです。

私の経験:ソフトウェアを使用してSSD全体を読み取り/テストします(各「セクター」を読み取るのにどれくらい時間がかかるかを教えてくれます)私は多くのペアの「512byte secttors」(1KiBブロック)を取得できませんでしたランダムに変化し、失敗の数は2から24などです。ゼロで完全に埋めた後、マスターテーブルを再作成し(トリムを使用)、読み取り不可能なセクターはなくなります。

私のクラッシュテスト:そのようなエラーから回復するためにゼロを埋めるのが始まり、数時間後に1つのSSDを使用するようにしました.1テラバイト未満しか書き込まれず(120GiB SSD)、それは悲惨なほどに死にました。それにアクセスすると、マザーボードのBIOSはそれを見ることができず、USBエンクロージャはアクセスするとフリーズするので、WindowsもそれもLinix fdiskも見えません。

同時に購入した複数のSSDを使用した「ダイ」テストでした。同一のものを...私がゼロにならなかったものはすべて死に、残りは多くのブロックを再割り当てしましたが、読み取り不能なエラーはもうありませんでした。

もちろん、私の結論は、ブランドや容量に関係なく、すべてのSSDが信頼できるわけではないということです。

だから、私の経験では、最初にそれらを少なくとも一度は強制的にフルフィルすることです。ランダムよりもゼロのほうが良いです(高速です)。

さらに、ほとんどのSSDは、ゼロで書き込まれたときに内部トリミングを行います(ガーベッジリコレクションアルゴリズムなど)。

また、最初に一度埋めると、書き込みエラーが発生したブロックは再割り当てされます。データが失われた場合(すべてがゼロだった場合)ゼロを書き込んだ場合、関連性はありませんが、重要なデータなしでそのようなことが起こることははるかに優れていますが、データがオペレーティングシステムに「不可欠」である場合、それは非常に悪いです。

ほとんどのSSDが再割り当てを行いますが、書き込みエラーを発生させたブロックのデータを失い、「エンタープライズ」(GiBあたり10ユーロ以上)のみが再割り当て後に書き込みを再試行します。一部のSSDは、このような障害のあるブロック上の他のすべての「セクター」を失います(「廃棄」を行うなど)。

最適な方法として、最初に試してみて、いっぱいになったら、SMARTデータを確認して、どれだけの再割り当てを実行できるかを確認してください。

どのくらいの再割り当てが行われたかはそれほど重要ではありません。ほとんどのSSDは、いくつかのブロックが既に再割り当てされているメーカーからのものです。ゼロのあるブロックが1%未満であることがわかります。そのため、重要なのは、再割り当てと将来の可能な再割り当ての比率です。

5〜5年間で数百台のSSDが死んだ後の私の経験です。あるものは最初の1時間で、あるものは1週間で、他は1か月で死にました。しかし、そのようなゼロのフルフィルを行ったすべては2〜3年間生き続けました。毎日13GiBが書き込まれ、3 * 365 * 13 GiB = 13.9TiBが書き込まれ、製造業者が言うよりもはるかに少ない(> 100TiB)。

しかし、速度が重要です。Windowsの場合(Linuxでは、優れた2xHDD LVM2ストライピングにより、同じブート時間が得られますが、25年以上失敗しません)、SSDをギガバイトあたり0.21€(120GiB = 25€)で使用すると、 (Windowsの場合)価値がありますが、2年または3年後に変更する必要があります。技術によって信頼性が向上することを願っています。

Linuxの場合、SSDの信頼性が向上するまでSSDは必要ありませんが、Windows(Vista、7および10)の場合、システムパーティションは必須です(Windows Vistaでは、起動時間が30分を超える代わりに、起動時間が10分の1になることがあります)私の古いラップトップでは4分以上で起動します)。

はい、私の経験を考えると、ゼロでいっぱいにすることは必須です。

ただし、SSDを受け取り、それを何かに使用する前に限ります。

ヒント:SSDがガベージコレクションを適切に実行せず、オペレーティングシステムがすべてをトリミングするように指示しない場合は、ブロックを破棄するときにSSDで内部的に行われるように、最後にゼロでフルフィルすることをお勧めします。また、ゼロを書き込むと電子がクリアされるため、失敗した読み取りブロックを回復するのに役立ちます。

また、データを変更するたびに、クローンを作成してみてください。SSDは、書き込みが正常であることを通知します。読み取り不可能なセクター(書き込みは可能ですが、読み取りはできません)、オペレーティングシステムはそのような状態をサポートするように設計されていません、それらはすべて、wtiteがOKであればデータを読み取ることができると考えています。読み取り可能と、書き込まれた異なるデータの読み取りを混同しないでください。

それがSSDとHDDでの私の経験です。Windowsブートとアプリの場合、SSDを使用しますが、SSDは3年以内に死ぬので、通常のHDDでクローンを作成しますが、Linux iは2倍または3倍の2.5インチHDDを使用します。 、しかしずっと長く続く(> 25年)。

10年間有効な100GiBエンタープライズSSDに1000ユーロ以上支払うことはできません。2、3年ごとに130 GiBに25ユーロを支払うことをお勧めします。価格は年間100ユーロ(エンタープライズ)で、年間10ユーロ(ユーコン、サムスンなど)が重要です。


不良セクタを上書きすることは、予約済みのセクタがまだ利用可能である限り、確かにそれらを「修正」する非常に信頼できる方法です。
紙吹雪
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.