SSDをパーティション化するデメリットは?

partitioning ssd storage

NickNという名前の賢者が、強力なコンピュータを構築することについての彼の見解を、フォーラムの投稿を長く掲載しています(マイクロソフトのフライトシミュレータXという非常に要求の厳しいソフトウェアをプレイするためのものです)

どこかでSSDドライブについてのポイントをまとめてくれていて、次のように締めくくっています

SSDを分割しないでください

残念ながら詳しくは書いていませんが、なぜこのようなことを言うのでしょうか。SSDをパーティショニングすることの欠点は何でしょうか?(この文脈でのパーティショニングの意味は>=2つのパーティション)

  87  None  2014-09-08


ベストアンサー

SSDは、繰り返しになりますが、ファイルシステムレベルでは動作しません

ファイルシステムの見え方とSSDの見え方には1:1の相関関係はありません

あなたが望む任意の方法でSSDのパーティションを自由に感じてください(各パーティションが正しく配置されていると仮定して、最新のOSはあなたのためにこれをすべて処理します);それは何も傷つけることはありません、それはアクセス時間や他の何かに悪影響を与えることはありませんし、SSDへの書き込みのトンを行うことを心配する必要はありません。彼らはそれらを持っているので、あなたは1日に50GBのデータを書き込むことができ、それは10年続くでしょう

ロビン・フッドの回答に反応

ウェアレベリングは、書き込み操作がより小さなスペースに分散されるので、「できる」かもしれませんが、追加パーティション(例えば、デュアルブート)で同等のウェアを実行しない限り、ドライブ全体が単一パーティションの場合よりも速くドライブのその部分を消耗するとは限りません

それは全くの間違いです。そのパーティションだけに読み書きするので、パーティションを消耗させることは不可能です。これは、SSDがどのように動作するかということとは全く関係ありません

SSD は、ファイルシステムが見ているものよりもはるかに低いレベルのアクセスで動作します

この場合、実際に何が起こるかというと、特定のパーティションに大量のデータを書き込んでいても、ファイルシステムはパーティションによって制約を受けますが、SSDはそうではありません。SSD がより多くの書き込みを受ければ受けるほど、ウェアレベリングを行うために SSD はより多くのブロック/ページをスワップアウトすることになります。ファイルシステムがどのように物事を見ようと気にすることはありません!つまり、ある時点では、データはSSD上の特定のページに存在しているかもしれませんが、別の時点では、それは異なる可能性があり、また異なる可能性があります。SSD はデータがどこにシャッフルされたかを追跡し、ファイルシステムはデータが実際に SSD のどこにあるのか手掛かりがありません

これをさらに簡単にするために、パーティション 1 にファイルを書き込んだとします。OS はファイルシステムにストレージの必要性を伝え、ファイルシステムは「セクタ」を割り当て、SSD に X の容量が必要だと伝えます。ファイルシステムは、論理ブロックアドレス (LBA) の 123 (例) でファイルを見ます。SSDは、LBA 123がブロック/ページ#500(例)を使用していることをメモします。つまり、OSがこの特定のファイルを必要とするたびに、SSDはそれが使用している正確なページへのポインタを持つことになります。今、私たちはSSDに書き込みを続けると、ウェアレベリングがキックインし、ブロック/ページ#500と言う場合、私たちはブロック/ページ#2300であなたをよりよく最適化することができます。さて、OSが同じファイルを要求し、ファイルシステムが再びLBA 123を要求すると、今度はSSDがブロック/ページ#2300を返し、#500ではありません

ハードドライブと同じように、nand-flash S.S.D.はシーケンシャルアクセスなので、追加パーティションに書き込んだり読み込んだりしたデータは、1つのパーティションに書き込まれた場合の「かもしれない」データよりも遠くになってしまいます。これにより、追加パーティションに保存されているデータのアクセス時間が長くなります

いいえ、これはまた間違っています!ロビン・フッドはファイルシステムの観点から物事を考えていますが、SSDがどのように機能するかを正確に考えるのではありません。繰り返しになりますが、ファイルシステムがSSDがどのようにデータを保存しているかを知る方法はありません。ここでは「もっと遠くに」ということはありません。それはファイルシステムの目に映るだけで、SSDが情報を保存する実際の方法ではありません。SSDが異なるNANDチップにデータを分散させることは可能であり、ユーザーはアクセス時間の増加に気づかないでしょう。NANDの並列性により、以前よりも高速になる可能性さえありますが、ここではナノ秒の話をしています

総容量が少ないと断片化されたファイルを書き込む可能性が高くなります。パフォーマンスへの影響は小さいですが、一般的にはドライブを消耗させるので、ナンドフラッシュS.S.D.をデフラグするのは良くないと考えられていることを覚えておいてください。もちろん、どのようなファイルシステムを使用しているかによっては、断片化の量が極端に少なくなるものもありますが、それは、書き込み速度を速くするためにファイルをあちこちにダンプするのではなく、可能な限り全体としてファイルを書き込むように設計されているからです

いいえ、申し訳ありませんが、これはまた間違っています。ファイルシステムのファイルの表示と SSD の同じファイルの表示は、全く似ても似つかないのです。ファイルシステムは、可能な限り最悪のケースではファイルを断片化したものとして見るかもしれませんが、同じデータのSSDの表示はほぼ常に最適化されています

したがって、デフラグプログラムはこれらのLBAを見て、このファイルは本当に断片化されているに違いない!と言うでしょう。しかし、SSDの内部についての手掛かりがないので、100%間違っています。これがデフラグプログラムがSSD上で動作しない理由であり、そう、デフラグプログラムはまた、前述したように、不必要な書き込みを引き起こします

記事シリーズCoding for SSDsは、SSDがどのように動作するかについて、より専門的な知識を身につけたい場合には、何が起こっているのかを概観するのに良いでしょう

FTL (Flash Translation Layer) が実際にどのように動作するのかについては、Critical Role of Firmware and Flash Translation Layers in Solid State Drive Design (PDF) を Flash Memory Summit のサイトから読むことをお勧めします

他にもたくさんの論文を用意してくれています

これがどのように動作するかについての別の論文。フラッシュメモリの概要 (PDF)。データの書き込み」(26-27 ページ)を参照してください

動画の方が好きな方は、フラッシュメモリ内のアドレス変換を最適化する効率的なページレベルのFTLと、関連するスライドを参照してください

136  Time Twin  2016-05-28


答えが十分に単純であり、SSDの一般的な知識だけで直接続くときに、ここでは非常に長い答え。一つは、答えを理解するためにソリッドステートドライブのウィキペディアの用語を読むよりも多くを必要としません

SSDを分割しないでください」というアドバイスはナンセンスです

(今では遠い昔の) オペレーティングシステムはSSDをあまりサポートしておらず、特にパーティショニングが消去ブロックのサイズに応じてパーティションを整列させるように注意を払っていなかった

OS の論理ディスク セクターが物理 SSD ブロック間で分割されていた場合、この整合性の欠如により、OS が 1 つの物理セクタのみを更新しようとしているときに SSD が 2 つの物理セクタをフラッシュする必要があり、ディスク アクセスが遅くなり、ウェアレベリングが増加する可能性がありました

現在、SSDははるかに大きくなってきており、オペレーティングシステムは消去ブロックとアライメントについてすべてを知っているので、もはや問題は存在しません。もしかしたら、このアドバイスはかつてはパーティションのアラインメントでのエラーを避けるためのものだったのかもしれませんが、今日ではこれらのエラーはすべて不可能になっています

実際、SSDをパーティション化するための議論は、今日では古典的なディスクの場合と全く同じです。 データをより良く整理し、分離するためです

例えば、OSを別の小さなパーティションにインストールしておくと、OSの大型アップデートを行う際の予防策として、そのバックアップイメージを取るのに便利です

18  harrymc  2016-05-30


SSDをパーティショニングすることに欠点はなく、実際にはパーティショニングされていないスペースを残すことで寿命を延ばすことができます

デバイスの全ブロックにウェアレベリングを施しています(下記HPホワイトペーパー参照)

ス タ テ ィ ッ ク ウェア レ ベル化では、 デバ イ ス 内のすべての利用可能な フ ラ ッ シ ュ のすべてのブ ロ ッ ク がウェア レ ベル化操作に参加 し ます。これにより、すべてのブロックが同じ量の摩耗を受けることが保証されます。スタティックウェアレベリングは、デスクトップおよびノートブックSSDで最もよく使用されます

このことから、パーティションはウェアレベリングには重要ではないという結論になります。これは、HDD & コントローラの観点からすると、パーティションは実際には存在しないからです。ブロックとデータがあるだけです。パーティションテーブルも同じブロック(MBRの場合はドライブの1番目のブロック)に書き込まれています。それは、テーブルを読み取り、どのブロックにデータを書き込むために、どのブロックに決定するOSです。OSは、各ブロックに一意の番号を与えるためにLBAを使用してブロックを見ています。しかし、コントローラは、論理ブロックを実際の物理ブロックにマッピングし、ウェアレベリングスキームを考慮に入れています

同じホワイトペーパーでは、デバイスのライブを延長するための良い提案をしています

次に、ドライブをオーバープロビジョニングします。デバイスの総容量の一部だけをパーティショニングすることで、寿命を延ばすことができます。例えば、256GBのドライブをお持ちの場合は、240GBのパーティションのみにします。これにより、ドライブの寿命を大幅に延ばすことができます。20%のオーバープロビジョニングレベル(200GBのみをパーティション化)は、さらに寿命を延ばすことができます。経験上の良いルールは、ドライブのオーバープロビジョニングを2倍にするたびに、ドライブの耐久性に1倍を追加することです

これはまた、分割されていない空間でさえもウェアレベリングのために使用されていることを示唆しており、上記のポイントをさらに証明しています

出典。技術白書 – SSDの耐久性(http://h20195.www2.hp.com/v2/getpdf.aspx/4AA5-7601ENW.pdf

4  JollyMort  2016-06-06


ディスクのセクタは昔から512バイトで、機械式ディスクはセクタの読み書きにかかる時間に影響するのはシークの遅延だけという性質を持っています。そのため、機械式ハードディスクでの主な最適化ステップは、シークを最小化するためにブロックを順次読み書きしようとすることでした

フラッシュは、機械的なハードドライブとは大きく異なります。生のフラッシュレベルでは、ブロックを持っていませんが、ページと「消去ブロック」(LinuxのMTD用語から借りるために)。一度にページをフラッシュするために書き込むことができ、フラッシュを消去することができます eraseblock を一度に

フラッシュの標準的なページサイズは2KBytes、消去ブロックの標準的なサイズは128KBytesです

しかし、SATA SSDはOSに512バイトのセクタサイズで動作するインターフェイスを提供しています

ページとセクタの間に 1:1 のマッピングがある場合、パーティションテーブルが奇数ページから始まったり、消去ブロックの途中にページがあったりすると、どのように問題が発生するかがわかります。 OS がドライブからデータを 4Kbyte のチャンクで取得することを好むのは、これが x86 のページングハードウェアと一致しているからです。 このような 4Kbyte のブロックが消去ブロックにまたがっている可能性があることを考えると、どのようにしてそのような 4Kbyte のブロックが消去ブロックにまたがっているのかがわかります。 つまり、更新するには 1 ブロックではなく 2 ブロックを消去して書き換える必要があるということです。 パフォーマンスの低下につながります

しかし、SSDファームウェアは1:1マッピングを維持するのではなく、物理ブロックアドレス(PBA)から論理ブロックアドレス(LBA)への変換を行います。つまり、セクタ 5000 または他の与えられたセクタが実際にフラッシュに書き込まれている場所を知らないということです。それは常に事前に消去された消去ブロックに書き込みをしようとする設計によって舞台裏で多くのことをやっています。ファームウェアを分解してみないと何をしているのか正確に知ることはできませんが、ファームウェアが完全にジャンクでない限り、ファームウェアはおそらくこれを回避しています

あなたは4Knハードドライブについて聞いたことがあるかもしれません。これらは、内部的に4Kバイトのセクターサイズを使用していますが、まだオペレーティングシステムに512バイトのセクターインターフェイスを提示するメカニックなハードドライブです。セクター間のギャップは、より多くのデータに合うようにプラッター上で小さくなる必要があるため、これは必要です

つまり、内部的には常に4KByteのセクタを読み書きしているが、OSからは隠しているということだ。この場合、4KByteの境界線上にあるセクタに書き込みをしないと、そのような読み書きのたびに内部的に4KByteのセクタが2つ読み書きされることになるため、速度ペナルティが発生します。ただし、SSDの場合はこの限りではありません

いずれにしても、これは私が考えられる唯一の状況であり、なぜSSDをパーティショニングしないことが提案されています。しかし、それは適用されません

1  LawrenceC  2016-06-02


これらの回答で無視されているのは、Windows SSDの最適化です。パーティショニングが良くなるということなのかどうかはわかりませんが、C-driveをWindows-driveとしてパーティショニングした場合は可能です

  1. 索引付けの順番
  2. 最後のアクセスの時間を追跡する必要はありません
  3. は、古い 8 文字の dos-name を保存する必要はありません
  4. Windowsのゴミ箱をバイパスします

-1  Ruud van den Berg  2015-10-14


私はこの答えを明確にするためにいくつかの背景情報が役に立つかもしれないと決めましたが、あなたが見ることができるように、私は少し強迫神経症になってしまったので、あなたは最後までスキップして、必要に応じて戻った方がいいかもしれません。私は少しは知っていますが、私はS.S.D.s.の専門家ではありませんので、誰かが間違いを見つけたらそれを編集してください。)

Background Information:

S.S.D.とは?

S.S.D.またはソリッドステートドライブは、可動部分のないストレージデバイスです。S.S.D.という用語は、ハードドライブの代替として機能することを意図したナンドフラッシュベースのソリッドステートドライブを具体的に指すことが多いですが、実際にはS.S.D.の1つの形態に過ぎず、最も一般的なものでもありません。S.S.D.の最も一般的なタイプは、USBスティック(フラッシュドライブ)やメモリカードのようなナンドフラッシュベースのリムーバブルメディアですが、S.S.D.と呼ばれることはほとんどありません。S.S.D.S.D.はラムベースのものもありますが、ほとんどのラムドライブは物理的なハードウェアとは対照的にソフトウェアで生成されます

ハードドライブの代替品としてNand-flash S.S.D.s.が存在するのはなぜですか?

オペレーティングシステムとそのソフトウェアを実行するためには、高速な記憶媒体が必要です。これがラムの出番ですが、歴史的にラムは高価で、CPUは大量のデータを処理することができませんでした。オペレーティングシステムやプログラムを実行すると、現在必要とされているデータの一部がRAMにコピーされます。遅いストレージデバイスからラムにデータがコピーされるのを待たなければならないため、ボトルネックが発生します。すべてのナンドフラッシュS.S.D.S.D.が従来のハードドライブよりも優れたパフォーマンスを発揮するわけではありませんが、アクセス時間、読み取り速度、書き込み速度を高速化することでボトルネックを軽減することができます

ナンドフラッシュとは?

フラッシュストレージは、磁気ではなく電気を利用してデータを保存する記憶媒体です。NANDゲートウェイを利用したフラッシュストレージがNANDフラッシュです。ランダムアクセスのAノーフラッシュとは異なり、NANDフラッシュは順次アクセスされます

Nand-flash S.S.D.s.はどのようにデータを保存するのですか?

Nand-Flashストレージはブロックで構成されており、それらのブロックはセルに分割され、セルにはページが含まれています。データを格納するために磁気を使用するハードドライブとは異なり、フラッシュ媒体は電気を使用していますが、このデータが上書きできないため、データはスペースを再利用するために消去されなければなりません。また、個々のページを消去することはできず、ブロック単位で消去する必要があります。すでに使用されているブロックにデータを書き込むことはできないので、(中のすべてのページが使用されていなくても)まずブロック全体を消去してから、空白になったブロックのページにデータを書き込むことができます。問題は、廃棄したくないデータも含めて、すでに使用されているページのデータが失われてしまうことです。この既存のデータが保持されるのを防ぐためには、ブロックの消去を実行する前に、どこか別の場所にコピーされなければなりません。このコピー処理は、コンピュータのオペレーティングシステムによって実行されるのではなく、ガベージコレクションとして知られている機能によってデバイスレベルで実行されます

ハードドライブでは、磁気プレートがデータを保存するために使用されます。多くのビニールレコードのように、プレートはトラックを持っており、これらのトラックは、セクターと呼ばれるセクションに分割されています。セクターには一定量のデータを格納することができます(通常は512バイトですが、新しいものでは4KBのものもあります)。ファイルシステムを適用すると、セクタはクラスタにグループ化され(指定したサイズに基づいて、割り当てサイズやクラスタサイズと呼ばれる)、ファイルはクラスタにまたがって書き込まれます。また、セクタを分割して、指定したセクタサイズよりも小さいサイズのクラスタにすることも可能です。クラスタ(または複数)にまたがってファイルが書き込まれた後、クラスタ内で使用されていないスペースは使用できないため、次のファイルは新しいクラスタで開始されます。多くの使用不可能なスペースを避けるために、一般的にはより小さなクラスタサイズを使用しますが、大きなファイルを書き込む場合にはパフォーマンスが低下することがあります。Nand-flash S.S.D.s.には磁気プレートがなく、メモリブロックを通過する電気を使用しています。ブロックはページを含むセルで構成されています。ページの容量はX(通常は4KB)で、ページ数によってブロックの容量が決まります(通常は512KB)。SSDでは、ページはハードドライブのセクタに相当し、両方ともストレージの最小の分割を表しているためです

ウェアレベリングとは?

Nand-Flash ストレージブロックは、限られた回数だけ書き込み、消去することができます(ライフサイクルと呼ばれています)。容量減少(デッドブロック)の苦しみからドライブを防ぐためには、できるだけ均等にブロックを消耗することが理にかなっています。限られたライフサイクルはまた、多くの人々がNandフラッシュベースのS.S.D.を使用している場合は、オペレーティングシステムでページファイルやスワップパーティションを持っていないことを示唆している主な理由です(デバイスからラムへの高速なデータ転送速度はまた、その提案の主要な要因であるが)

オーバープロビジョニングとは?

オーバープロビジョニングは、どのくらいの空き容量があるように見えるかと比較して、どのくらいの空き容量があるかの違いを定義します。Nand-flashベースのストレージデバイスは、ゴミ処理に使用する空のブロックがあることが保証されているように、実際のサイズよりも小さいと主張しています。動的オーバープロビジョニングと呼ばれる第二の種類のオーバープロビジョニングがあり、これは単に示された空き領域内の既知の空き領域を参照しています。ダイナミック・オーバー・プロビジョニングには、オペレーティング・システム・レベルとドライブ・コントローラ・レベルの2種類があります。オペレーティングシステムレベルでは、Trim を使用してブロックを解放し、すぐに書き込めるようにします。コントローラレベルでは、未割り当てのドライブスペース(パーティション分割されていない、ファイルシステムがない)を使用することができます。より多くの空きブロックを持つことで、すぐに書き込みができるため、ドライブを最高のパフォーマンスで動作させることができます。また、Nand-flash S.S.D.はデータの読み書きにシーケンシャルアクセスを使用するため、連続して配置されたブロックを持つ可能性が高くなり、アクセス時間が短縮されます

書き込み増幅とは?

Nand-flash媒体では、書き込みを行う前にブロックを消去する必要があるため、消去されていないブロック内のデータは、ガベージ処理によって新しいブロックにコピーされなければなりません。このような追加の書き込みは、書き込み増幅と呼ばれています

トリムとは?

オペレーティングシステムは、従来のハードドライブを念頭に置いて構築されています。従来のハードドライブは、データを直接上書きすることができることを覚えておいてください。ファイルを削除すると、オペレーティングシステムはそのファイルを削除したものとしてマークしますが(上書きしても問題ありません)、書き込み操作が行われるまでデータは残っています。Nand-flashベースのS.S.D.S.D.では、まずデータを消去する必要があるため、これが問題となります。消去はブロックレベルで行われるため、消去されていないデータが追加されている可能性があります。ゴミ処理は、削除のためにアップされていない任意のデータを空のブロックにコピーし、その後、問題のブロックを消去することができます。これはすべて時間がかかり、不必要な書き込み(書き込み増幅)が発生します。これを回避するために、Trimと呼ばれる機能が作られました。Trimはオペレーティングシステムに、書き込み操作を要求していない期間中に、オペレーティングシステムが削除するようにマークしたデータを含むページのあるブロックを消去するように指示する力を与えます。ガベージコレクションがそれを行い、結果としてブロックが解放されるので、最初に消去する必要のないブロックへの書き込みが発生し、プロセスを高速化し、書き込みの増幅を最小限に抑えることができます。これはファイルベースではなく、Trim は論理ブロックアドレッシングを使用します。L.B.A.はどのセクタ(ページ)を消去するかを指定し、消去はブロックレベルで行われます

“SSDをパーティショニングすることのデメリットは?”という質問への回答

ラムベースのS.S.D.s

ランダムアクセスなのでデメリットは絶対にありません!

Nand-flashベースのS.S.D.s

デメリットしか思い浮かばない

  1. ウェアレベリングは、書き込み操作が小さいスペースに分散されるため、遊びに行くために多くの空きスペースを持っていないでしょう, ので、あなたは “可能性があります “が、必ずしもあなたが追加のパーティション(例えば:デュアルブート)で同等の摩耗を実行する場合を除き、ドライブ全体が単一のパーティションであった場合よりも速くドライブのその部分を消耗するでしょう

  2. ハードドライブと同じように、nand-flash S.S.D.はシーケンシャルアクセスなので、追加パーティションに書き込んだり読み込んだりしたデータは、1つのパーティションに書き込まれた場合の「かもしれない」データよりも遠くになってしまいます。これにより、追加パーティションに保存されているデータのアクセス時間が長くなります

  3. 総容量が少ないと断片化されたファイルを書き込む可能性が高くなり、パフォーマンスへの影響は小さいですが、ドライブを消耗するので、一般的にはナンドフラッシュS.S.D.をデフラグするのは悪い考えだと考えられていることに注意してください。もちろん、使用しているファイルシステムによっては、断片化の量が極端に少なくなるものもあります

複数のパーティションを持っていても問題ないと思いますが、書き込みが多いパーティションと少ないパーティションがある場合、ウェアレベリングが気になるかもしれません。使わない領域をパーティションにしないで、代わりに動的なオーバープロビジョニングのために残しておくと、ブロックを解放して連続したデータを書き込むのが簡単になるので、パフォーマンスが向上するかもしれません。しかし、オーバープロビジョニングスペースが必要になる保証はありません

このスレッドの他の何人かの人が、パーティショニングが動的なオーバープロビジョニングに対する Trim の貢献にどのように影響するかについての議論を持ち出しています。私の理解では、TRIM は削除のフラグが立っているデータを持つセクタ (ページ) を指摘するために使用され、ガベージディスポーザがそれらのブロックを自由に消去できるようになっています。この空き領域は、そのパーティション内でのみ動的なオーバープロビジョニングとして機能します。他のパーティションは独自のファイルシステムを持っているからです。しかし、オーバープロビジョニングの考え方は、ファイルシステムを持っていない場所にデータが書き込まれたり、ドライブの容量に表示されたりするので、私は完全に間違っているかもしれません。このことから、おそらくオーバープロビジョニングスペースは、ファイルシステム内のブロックへの最終的な最適化された書き込み操作の前に一時的に使用されるのではないかと考えさせられます。もちろん、ファイルシステム内のダイナミックなオーバープロビジョニングへの Trim の貢献は一時的なものではないでしょう。少なくとも私の理論ではそう考えています。filesytems についての私の理解が間違っているのかもしれません。これについて詳しく説明しているリソースを見つけられませんでした

-2  Robin Hood  2014-09-08


いや、これは理にかなっている

SSDの速度は、使用中のパーティションの使用可能なスペースの量に直結します。ドライブを小分けにした場合、空き容量がないためにSSDの効率が悪くなります

そのため、SSDをパーティションで分割することのデメリットはありませんが、ドライブに空き容量がないというデメリットがあります

このSuperUser投稿を参照してください

-14  Mark Lopez  2014-09-08


タイトルとURLをコピーしました