2つの異なる方法でOSに物理セクターサイズを報告するように構成できるSSDがあります。
オプション1:論理= 512バイト、物理= 512バイト
オプション2:論理= 512バイト、物理= 4096バイト(4K)
4Kの物理セクターサイズを認識することで、OSはどのようなメリットを享受できますか。
OSは512バイトのセクターでドライブと通信する必要があります
最新のすべてのOSは4Kに対応し、4Kまたは4K I/Oの倍数を利用します。
最近のOSはすでに4Kセクタードライブ用に最適化されているため、この設定は無意味に思われます。 OSはデフォルトですべてを4Kに適した方法で実行するため、最近のOSでは、セクターが512bでも4Kでもドライブに「問い合わせ」る必要はありません。
たとえば、Windows 7はパーティションを1MB(4Kの倍数)に揃え、NTFSクラスターサイズは4Kまたはその倍数であり、すべてのI/Oは4Kまたはその倍数で行われます。 Windowsはあなたが持っているハードドライブを気にしません、それは上記の振る舞いをすべての場合に適用します。
とにかく...私のSSDにはこの「物理セクターサイズ」設定があるので、何らかの理由でそこにある必要があります...これが私が探している理由です。
ところで、価値があるのは、ドライブが Intel SSD DC S351 であるということです。ドライブの datasheet はこれを示しています(27ページ):
State = 0、Option = 1でSCTコマンド0xD801を使用すると、IDワード106を0x6003から0x4000に変更できます(4KBの物理セクターサイズから512Bの物理セクターサイズサポートの変更)。
レガシーオペレーティングシステムがAdvanced Formatディスクに書き込もうとすると、書き込まれた論理セクターが物理セクターと一致しない場合があるため、パフォーマンスの問題が発生する可能性があります。
[...]ハードドライブは、最初にホスト書き込み要求のターゲット位置を含む4Kセクター全体を読み取り、既存のデータを新しいデータとマージしてから、4Kセクター全体を再書き込みする必要があります。
この場合、ハードドライブは4Kセクターを読み取り、内容を変更してからデータを書き込むという形で、追加の機械的手順を実行する必要があります。このプロセスは、読み取り-変更-書き込みサイクルと呼ばれ、ハードドライブのパフォーマンスに悪影響を与えるため、望ましくありません。
従来、ハードディスクの最初のパーティションはセクター63から始まります。WindowsXPおよび古いオペレーティングシステムはこの方法でディスクをパーティション分割しました。新しいバージョンのWindowsは1 MBの境界にパーティションを作成し、適切な物理セクターへの配置。これは Alignment 0 と呼ばれます。
LBA 63は8の倍数ではないため(8つの512バイトのレガシーセクターが4Kセクターに収まる)、古い方法でフォーマットされたAdvanced Formatディスクにはクラスター(ファイルシステムデータ割り当ての最小単位、通常は4Kのサイズ)があります。 )4Kディスクの物理セクターに位置合わせされていない場合、 Alignment 1 と呼ばれる条件。その結果、4Kのデータを使用するI/O操作が2つのセクターにまたがるようになり、パフォーマンスが低下する読み取り-変更-書き込み操作が発生します。
多くの場合、データセンターには、従来の512nドライブで構成されるストレージアレイがあります。 4Kドライブは、512バイトのセクターをエミュレートするものであっても、そのようなアレイと互換性がない場合があるため、この機能は互換性を確保するために必要です。 this forum thread を参照してください:
512bディスクでフォーマットされたアレイに4Kドライブを固定することはできません。多くのアレイ(特にZFSベースのストレージは、ソフトウェア定義のストレージが普及するにつれてますます普及しています)は、異なる物理セクターフォーマットの交換用ドライブを受け入れません。
ドライブが4Kセクターを使用するように構成されている場合、最新のシステムではパフォーマンスが向上することに注意してください。
OSが512バイトセクターでドライブと通信する必要がある場合に、物理セクターサイズを認識することにより、OSはどのようなメリットを得ることができますか。
論理サイズは転送データの最小サイズです。これはブロックデバイスであるため、ホストコンピュータとドライブ間のデータ転送は、この論理ブロックサイズの倍数になります。
物理サイズは転送データに最適なサイズであり、コントローラー/ドライブレベルでの実際の読み取りおよび書き込み操作のサイズを反映します。
ホストコンピューターが論理セクターの読み取りを要求すると、コントローラー/ドライブは、論理セクターを含む物理セクターの読み取り操作を実行します。
論理セクターサイズと物理セクターサイズが等しい場合、操作は簡単です。論理セクターサイズが物理セクターサイズより小さい場合、ホストコンピューターに転送するために、コントローラーによって論理セクターを物理セクターから抽出する必要があります。
ホストコンピューターが論理セクターの書き込みを要求すると、物理セクターのサイズが重要になります。
論理セクターサイズが物理セクターサイズと等しい場合、書き込み操作は単純で、直接続行できます。セクタの以前の内容の状態は、書き込み操作に影響しません。
論理セクターサイズが物理セクターサイズよりも小さい場合、コントローラーはまず、論理セクターを含む物理セクターの読み取り操作を実行する必要があります。
読み取りが成功した場合、論理セクターが物理セクターに挿入され、物理セクターが完全に書き込まれます。
読み取りが成功しない場合(再試行後も)、書き込み操作は完了できません。
OSが物理セクターサイズで読み取りおよび書き込み操作を実行する場合(ATAPIコマンドセットで利用可能なマルチセクター操作を利用することにより)、書き込み操作はより効率的に実行されます(不必要に完了しない可能性はありません)。
LOGICALセクターサイズは、OSがドライブと通信する方法を完全に定義します。例外なく。論理セクターサイズでのみ通信することが許可されている場合、物理セクターサイズがわかっていればどのような用途ですか
「例外なし」というあなたの主張は正しくありません。
IDE HDDで導入されたATAPIコマンドセットには、常にsector count
パラメータを使用して読み取りおよび書き込み操作を実行する機能がありました。これは単に(セクターが同じトラック上にある限り)マルチセクターの読み取り/書き込み操作も可能な既存のディスクおよびフロッピーコントローラーインターフェイスの拡張。
OSが基礎となる物理セクターサイズを知っている場合、OSはクエリを最適化して、物理操作をできるだけ少なくすることができます。特にSSDでは、物理的な動作制限(4KB IOPS制限)がデバイス速度の最終的な制限になることが多いため、この容量を最大限に活用できることが重要です。
ドライブ内の場所にアクセスする方法は2つあります。1つはCHSスキームで、もう1つはLBAスキームです。
CHSは、Cylinder、Head、Sectorの略で、ドライブからの読み取りまたは書き込みの場所を決定する最も低レベルの方法です。シリンダーx、ヘッドy、セクターzを使用し、その位置の内容をメモリー(バッファー)のアドレスとの間で読み書きするように指示します。これは、物理的なシリンダーと読み取りヘッドがある(従来の、回転するRust)ハードドライブの実際の物理的なコンポーネントから派生しています。セクターはアドレス指定可能な最小単位であり、伝統的に512バイトに固定されていました。
LBAは論理バイトアドレス指定であり、ドライブはそのオフセットによってセクターアドレスから読み書きします。たとえば、ディスク上の123837番目のセクターを読み取るか、これをディスク上の123734番目のセクターに書き込みます(ゼロから開始)。
問題?これらの値はそれぞれ範囲が制限されています。実際、CHSが非常に制限されていたため、LBAを導入する必要がありました。 CHSの場合、C(シリンダー)の可能な値は1023ですが、H(ヘッド)は最大255であり、S(セクター)は最大63までです。つまり、最大1024シリンダーx 255ヘッドx 64セクターx 512バイトが従来のCHS形式でマッピングされ、合計で8 GiB未満になります。 CHSを使用すると、8 GiBを超えるディスクにアクセスすることはできません。
したがって、LBAは32ビットの制限で導入され、ディスクサイズに2 ^ 32 x 512バイトまたは2 TiBの制限が与えられます。これは、MBRディスクが2TiBを超えることができない理由です。これは、CHSとLBAを使用してパーティションサイズを指定するためです。 2TiB以上のものをサポートします。
LBAを64ビットに拡張するGPTパーティションスキームのように、より新しく、より優れたオプションが導入されました。これにより、2 ^ 64 x 512バイトで必要になるよりもはるかに多くの機能を提供します-butキャッチ:多くのレガシーハードウェアとレガシーオペレーティングシステム、レガシーBIOS実装、レガシードライバーはUEFIまたはGPTをサポートしていません。多くの人々は、2TiBの制限を超えて簡単にアップグレードできるものを望んでいます。スタック全体を最初から書き直す必要はありません。そしてようやく、4096セクターサイズに達しました。
上記のすべての制限を通じて、1つのことは固定された仮定でした。セクターサイズです。初日から512バイトであり、それ以来ずっとそのままです。しかし、最近、ハードディスクメーカーは、従来のCHSまたは32ビットLBAを使用して、セクターサイズを512バイトではなく4096(4k)に置き換えるだけで、魔法をかける機会があることに気付きました。 OSがLBA 1を要求することにより「ディスクの2番目のセクターを提供してください」と言った場合(LBA 0が最初であるため)、512〜1023バイトではなく、4096〜8191バイトを指定します。
突然、2TiBの制限が2 ^ 32 x 4096バイト、つまり16 TiBにアップグレードされ、MBRを破棄したり、UEFIやGPTに切り替えたりする必要がなくなります。
唯一の問題は、これが512バイトセクターではなく4096セクターを使用するマジックディスクであることをOSが認識していない場合、不一致が発生することです。 OSが「ねえ、あなた、ディスク、これらの512バイトをオフセットxxxに書き込んでください」と言うたびに、ディスクはこれらの512バイトを格納するために4096バイトを使用します(残りはゼロまたはジャンクデータであり、バイトで通信しないため、セクターで通信するため、メモリアンダーフローが発生することはありません。
したがって、BIOSには(ときどき)新しいディスクが使用しているネイティブの4096バイトのセクターサイズの代わりに512バイトのセクターサイズを使用するように手動で指定できるオプションが含まれるようになりました。 「古き良き時代」と同じように、MBRシステム上のディスクの2TiB。しかし、4k対応の最新のOSは、このすべてを利用して、この魔法を使用して4096バイトのチャンクで読み書きすることができます。
(追加の利点は、一度に4096バイトを読み書きしている場合、たとえば4GiBのデータを読み書きするための操作が少ないため、処理がはるかに高速になることです。)
最近のオペレーティングシステムで4Kセクターが問題になっている状況をお知らせください。
MicrosoftのVSSライター(シャドウコピー)は、4Kセクターではうまく機能しません。 DFSレプリケーション共有フォルダーをバックアップするには、バックアップソフトウェア「Backup Exec」でDFSのレプリケートフォルダーのシャドウコピーを作成する必要があります。 VSSが4Kセクターで正しく機能しないため、DFSレプリケーションフォルダーが4Kセクターのドライブにある場合、ジョブは失敗します。
ジム