it-swarm-ja.com

パーティションを「整列」するとはどういう意味ですか?

私はパーティションとは何かをよく知っていますが、 Ask Ubuntuでの整列されたパーティションに関する質問 を見て、「整列されたパーティション」が何であるかわからないことに気付きました。

では、パーティションを「整列」させるとはどういう意味ですか?メリットとデメリットは何ですか?

15
8128

パーティションを整列させるとは、実際の基礎となるブロック構造に一致するようにパーティションを整列させることを意味します。

長い間、ハードディスクは512バイトのブロックを使用してきました。これは長い間続いているため、ブロックサイズを変更することはほとんど不可能です。修正する必要のあるソフトウェアが多すぎます。

SSDでは、実際のブロックサイズは128KBになる可能性があります。 RAIDアレイでは、64KBになる場合があります。高度なフォーマットのドライブでは、4KBになります。

下位互換性のために、ドライブは引き続き512バイトブロックで動作します。ただし、パフォーマンス上の理由から、システムは実際に実際のブロックサイズを認識している必要があります。

パフォーマンスを微調整する最も簡単な方法の1つは、ドライブパーティションを実際のブロックサイズに合わせて、OSが4KBまたは64KBまたは128KBを書き込むときに完全なブロックを書き込むようにすることです。

パーティションが整列されていない場合、結果は最初のブロックに512バイト、2番目のブロックに4K-512バイトを書き込み、ディスク/ SSD/RAIDにtwo read-modify-を強制します。 one writeの代わりに書き込みサイクル。

15
Zan Lynx

パーティションはブロックのシーケンスであり、長年の慣例により、1つのブロックは512バイトです。

したがって、パーティションはディスク内の512バイトの倍数で始まり、非常に長いバイト文字列として「認識」される可能性があります。

ただし、元々は同じ512バイトのセクターサイズを持っていた基盤となるディスクハードウェアは、効率のためにより大きなサイズを使用するようになりました。 4096バイトだとしましょう。

互換性の理由から、OSとハードウェアの間にあるファームウェアは依然として「セクターで通信」します。したがって、最初のセクターに問い合わせると、ハードウェアが最初のブロック(4096バイト)を取得し、ファームウェアが適切なスライスを抽出して配信します。 2番目のブロックを要求すると、そのブロックはおそらくキャッシュから取得されます。

これまでのところ、セクターサイズの不一致には短所はありません。

ただし、OSは効率のためにブロック(通常はclustersと呼ばれます)も使用し、それらをパーティションに揃えます。したがって、4セクターのクラスターは、セクター5、6、7、および8で構成されます。

OSがファイルシステムクラスター#2を要求すると、ファームウェアは論理セクター5、6、7、および8を要求されます。それらがすべて同じである場合diskブロックの場合、ディスクは1回の読み取りを実行する必要があります。

しかし、パーティションが「間違った」セクターで始まる場合、ファイルシステムの最初のクラスターは、たとえばセクター2、3、4、および5で終了し、単純化されます。そして、それらは最初のディスクブロックの半分になる可能性があります(1 -2-3-4)、2番目の半分(5-6-7-8)。

あなたは今必要です1つの余分な読み取り。 OSとディスクの比率が1:1の場合、これは読み取りを2倍にすることと同じです。 OSとディスクの比率が2:1の場合、クラスターは2つのハードウェアディスクブロックであるため、2 + 1 = 3回の読み取りが必要になり、50%のペナルティが発生します。

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

上記のクラスターは、それぞれ2セクターの4つのハードウェアブロック(比率4:1)です。 「偶数」セクターに揃えることは、クラスターを読み取るために、それらの8セクター読み取りが4ブロック読み取りに変換されることを意味します。奇数セクターに揃えると、同じ8セクターの読み取りに4 + 1 = 5ブロックの読み取りが必要になり、パフォーマンスが25%低下します(4回に1回の読み取りを追加します)。

比率が4:1のディスクの位置がずれている場合、ディスクを位置合わせすると20%速くなります(5回に1回の読み取りを節約できます)。

パーティションを「整列」させるには、ディスクの先頭から512bセクターの適切な倍数にオフセットを移動/設定するか、(ツールに応じて)ディスクの先頭に小さなパーティションを挿入します。次のパーティションがディスクセクターの境界で正確に開始するようなサイズで。この2番目のケースでは、理論的には最大N-1セクター、つまり数キロバイトが必要ですが、実際には、パフォーマンスを最大限に引き出すために、おそらく数百キロバイト、場合によってはメガバイト全体を浪費する必要があります。マルチギガバイトのハードドライブ。

(OSクラスターサイズを適切に選択することで、おそらくそのスペースを回復できます。

3
LSerni

ドライブはほとんどの場合512バイトの論理セクターに分割されます。他のサイズも可能ですが、互換性の問題のために使用されることはめったにありません。古いハードドライブでは、これらは個別に書き込むことができる個別のセクターでした。

2000年代半ばまで、パーティションは伝統的に「シリンダー」境界に配置されていました。歴史的な理由から、「シリンダー」は通常63セクターでした。セクター0には、ブートセクターとパーティションテーブルが含まれます。シリンダー0の後のセクターは、ブートローダーの追加情報を継続することがありました。最初のパーティションは通常、シリンダー1の開始時に開始されました。

ほとんどのファイルシステムは、セクターをより大きなブロック(「クラスター」と呼ばれることもあります)にグループ化します。これらは通常4KiBのサイズです。

ある時点で、ドライブベンダーは、4K物理セクターも使用した方が効率的であると信頼していましたが、互換性の理由から、論理セクターサイズを512バイトに維持しました。ホストが物理セクター全体を一度に読み書きする場合、処理は高速です。ドライブが不要なデータを破棄できるため、読み取り部分がまだかなり高速です。ただし、ホストが物理セクターの一部のみを書き込む場合、ドライブは物理セクターを読み取り、読み取ったデータをホストからのデータと組み合わせてから、変更したセクターを書き換える必要があります。これは、ドライブが1回ではなく2回所定の位置に回転するのを待つことを意味します。

これは、ファイルシステムの4Kクラスターがドライブの4K物理セクターに整列している場合にうまく機能します。残念ながら、ドライブをパーティション分割する従来の方法では、最初のパーティションは基本的に位置がずれていることが保証されており、後のパーティションでは8分の1の確率で位置合わせされます。したがって、高度なフォーマットのドライブのベンダーは、人々が自分のパーティションを再調整するのを助けるためにツールを急いで出さなければなりませんでした。

同様の考慮事項は、RAIDアレイとSSDにも当てはまります。 RAIDストライプは、単一のファイルシステムクラスターよりもはるかに大きい可能性がありますが、一部のファイルシステムには、2つの境界の累乗​​で整列された領域などがある場合があります。

現在の通常の慣行では、パーティションを1MiB境界に揃えます。これは、すべての一般的なブロックサイズの倍数になるのに十分な2の累乗です。

2
plugwash

ほとんどの場合、彼らは新しいAdvancedFormatハードドライブを参照しています。

アライメント記事はこちら

http://consumer.media.seagate.com/2010/03/the-digital-den/4k-sector-hard-drive-primer/

ここにもう1つ http://notepad.patheticcockroach.com/900/dealing-with-wd-advanced-format-h​​ard-drives-on-linux-windows-and-mac-os-part-1/

1
Moab

これが役立つかどうかはわかりませんが、パーティションの調整とは、特定のパーティションを基盤となるRAIDストライプユニットと調整することであると理解しています。

どうやら、ハードウェアベースのRAIDまたはソフトウェアベースを使用すると、パフォーマンスが低下する可能性があります。パーティションの開始位置が、RAID上に作成されたディスクパーティションのストライプユニット境界と一致していない場合、問題が発生する可能性があります。

ボリュームクラスターを作成するためのファクタリングによっては、ボリュームクラスターは、ストライプユニット境界の隣ではなく、ストライプユニット境界上に作成される場合があります。この動作により、misalignedパーティションが発生する可能性があります。

私はかなり離れているかもしれません、そしてこれはRAIDとは何の関係もないかもしれません;)

0
LuxuryMode