ハードドライブが物理セクターサイズを報告するポイントは何ですか?


13

物理セクターサイズを2つの異なる方法でOSに報告するように構成できるSSDがあります。

オプション1:論理= 512バイト、物理= 512バイト

オプション2:論理= 512バイト、物理= 4096バイト(4K)

OSが4Kの物理セクターサイズを認識することで得られるメリットは次のとおりです。

  • 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 S3510です。ドライブのデータシートには次のように記載されています(27ページ):

State = 0、Option = 1でSCTコマンド0xD801を使用することにより、ID Word 106を0x6003から0x4000に変更できます(4KB物理セクターサイズから512B物理セクターサイズへの変更をサポート)。


1
4096バイトは、ハードディスクドライブが512Kをエミュレートする場合、OSに応じて、アドバンストフォーマットのハードドライブのいずれかが実行できる高度な形式です
Moab

2
ストレージインターフェイスは、レガシー決定の宝庫です...「4 KB物理セクターサイズ」も事実ではありません。フラッシュの物理セクターサイズは、通常256 kBを超えます。報告されたすべてのセクターサイズは(非)論理的です。
–MSalters

回答:


16

512バイトのエミュレーションは、古いシステムとの互換性を目的としています。ただし、物理4Kセクターの一部のみを含む書き込みでは、実際に書き込む前にセクターを読み取り、変更する必要があるため、パフォーマンスが低下する可能性があります。

レガシオペレーティングシステムがAdvanced Formatディスクに書き込もうとすると、書き込まれた論理セクタが物理セクタと一致しない可能性があるため、パフォーマンスの問題が発生する可能性があります。

  • 4K物理セクターの一部のみが読み取られる場合、データは物理セクターから読み取られるだけであり、パフォーマンスは低下しません。ただし、システムが物理セクターの一部(物理セクター全体ではなく、エミュレートされた512バイトセクターなど)に書き込もうとすると、ハードドライブは物理セクター全体を読み取り、ハードドライブの内部の変更部分を変更する必要がありますメモリ、およびプラッタに書き戻します。これはread-modify-writeRMW)と呼ばれ、ディスクの追加の回転が必要なため、パフォーマンスが低下する操作です。シーゲイトはこれを次のように説明しています

[...]ハードドライブは、最初にホスト書き込み要求のターゲットロケーションを含む4Kセクター全体を読み取り、既存のデータを新しいデータとマージしてから、4Kセクター全体を書き換える必要があります。

読み取り-変更-書き込みサイクル

この場合、ハードドライブは、4Kセクターを読み取り、内容を変更してからデータを書き込むという形で、追加の機械的手順を実行する必要があります。このプロセスは、読み取り-変更-書き込みサイクルと呼ばれますが、ハードドライブのパフォーマンスに悪影響を及ぼすため、望ましくありません。

4K境界に揃えられていないディスクパーティションも、パフォーマンスの低下を引き起こす可能性があります。

  • 従来、ハードディスクの最初のパーティションはセクター63から始まります。WindowsXPおよび以前のオペレーティングシステムは、この方法でディスクをパーティション分割しました。Windowsの新しいバージョンでは、1 MBの境界にパーティションが作成され、物理セクターへの適切なアライメントが保証されます。これはAlignment 0と呼ばれます

  • LBA 63は8の倍数ではないため(512 KBのレガシーセクター8個が4Kセクターに収まる)、古い方法でフォーマットされたAdvanced Formatディスクにはクラスター(ファイルシステムデータ割り当ての最小単位、通常4Kのサイズ)があります)4Kディスク上の物理セクターにアライメントされていない、アライメント1と呼ばれる状態。その結果、4Kのデータを含むI / O操作は2つのセクターにまたがり、パフォーマンスを低下させる読み取り-変更-書き込み操作につながります。

OSが常に4K境界にデータを書き込む場合、物理セクターサイズに関する情報は不要ですが、低レベルI / Oを実行するアプリケーションではこの情報が必要になる場合があります。

  • ドライブが物理セクターサイズが4Kであると報告すると、OSまたはアプリケーションはそれがAdvanced Formatドライブであることを認識できるため、物理セクター全体に及ばないI / O操作の実行を回避する必要があります。512バイトのネイティブセクターを報告するドライブは、この制限を課しません。新しいオペレーティングシステムは通常、可能な場合は常に4K単位でデータの読み取りまたは書き込みを試みますが(この情報は無関係です)、低レベルのI / Oを実行するアプリケーションは、物理セクターサイズを知っている必要があります。または、低速のRMWサイクルを引き起こす部分セクタ書き込み。

SSDは、特定のストレージアレイとの互換性のために必要なため、報告された物理セクターサイズを変更する機能を提供します。

  • 多くの場合、データセンターには、従来の512nドライブで構成されるストレージアレイがあります。4Kドライブは、512バイトのセクターをエミュレートするものであっても、そのようなアレイと互換性がない場合があるため、互換性を確保するにはこの機能が必要です。このフォーラムスレッドを参照してください

    512bディスクでフォーマットされたアレイに4Kドライブを固定することはできません。多くのアレイ(特にZFSベースのストレージは、ソフトウェア定義ストレージが波を立てるにつれてますます普及しています)は、異なる物理セクター形式の交換ドライブを受け入れません。

    ドライブが4Kセクターを使用するように構成されている場合、最新のシステムでパフォーマンスが向上することに注意してください。


皮肉なことに、適切に調整する方法を知らないOSも、ハードドライブに「物理セクターサイズ」を問い合わせることができません。適切に調整する方法を知っているOSは、デフォルトで適切に調整されるため、「物理セクタサイズ」をハードドライブに照会する必要はありません。たとえば、Windowsは1MBに整列します。
misha256

1
私は言わなければならない...私は不満だ。「物理セクターサイズ」のレポート設定を変更できるドライブは見たことがありません。オプションが512bと4Kのみであり、使用するドライブの種類に関係なく、最新のOSが4Kの方法ですべてを実行することを考慮すると、このような設定が必要な理由を理解できません。
misha256

これはおそらく多くの最良の答えでしょうが、それでも、Intelエンジニアを探し出し、信頼できる答えを得る時だと思います。非常に難解なことのようです。
misha256

3
ハードドライブには関係しますが、この答えはSSDには関係ありません。SSDの書き込み/消去ブロックサイズは数メガバイトであるため、4Kの「物理」でも実際の物理セクターサイズに近くありません。
qasdfdsaq

1
@qasdfdsaqの書き込みサイズは、消去サイズと必ずしも同じではありません。4Kは、ブロックの「使用中」追跡の粒度です。一方、ZFSに関するこの回答の最後の部分は正しいものであると確信しています。utcc.utoronto.ca
〜cks

5

OSが512バイトセクターでドライブと通信する必要がある場合でも、物理セクターサイズを認識することにより、OSはどのようなメリットを得ますか。

論理サイズは、データを転送するための最小サイズです。これはブロックデバイスであるため、ホストコンピューターとドライブ間のデータ転送は、この論理ブロックサイズの倍数になります。

物理サイズは、データを転送するのに最適なサイズであり、コントローラー/ドライブレベルでの実際の読み取りおよび書き込み操作のサイズを反映しています。

ホストコンピューターが論理セクターの読み取りを要求すると、コントローラー/ドライブは論理セクターを含む物理セクターの読み取り操作を実行します。
論理セクターサイズが物理セクターサイズと等しい場合、操作は簡単です。論理セクタサイズが物理セクタサイズよりも小さい場合、ホストコンピュータへの転送のためにコントローラによって論理セクタを物理セクタから抽出する必要があります。

ホストコンピューターが論理セクターの書き込みを要求すると、物理セクターのサイズが問題になります。
論理セクターサイズが物理セクターサイズと等しい場合、書き込み操作は簡単で、直接続行できます。セクタの以前のコンテンツの状態は、書き込み操作に影響しません。

論理セクターサイズが物理セクターサイズより小さい場合、コントローラーはまず論理セクターを含む物理セクターの読み取り操作を実行する必要があります。
読み取りが成功すると、論理セクターが物理セクターに挿入され、物理セクターが完全に書き込まれます。
読み取りが成功しない場合(再試行後でも)、書き込み操作は完了できません。

OSが(ATAPIコマンドセットで利用可能なマルチセクター操作を利用して)物理セクターサイズで読み取りおよび書き込み操作を実行する場合、書き込み操作はより効率的に(および不必要な不完全な機会なしに)実行されます。

論理セクターサイズは、OSがドライブと通信する方法を完全に定義します。例外なく。論理セクターサイズでの通信のみが許可されている場合、物理セクターサイズを知ることはどのような用途ですか?

「例外なし」の主張は間違っています。
IDE HDDで導入されたATAPIコマンドセットには、常にsector countパラメーターを使用して読み取りおよび書き込み操作を実行する機能があります。これは、既存のディスクおよびフロッピーコントローラインターフェイスの単なる拡張であり、マルチセクタ読み取り/書き込み操作も可能です(セクタが同じトラック上にある限り)。


これは正しい答えかもしれません ...しかし、私はまだ確信していません。最新のOSは、ファイルシステムと4KのI / Oブロックサイズおよび4Kの倍数で動作します。4Kの物理セクターを持つハードドライブで使用するために既に最適化されてます。さらに、採用されているI / Oブロックサイズは、512bの物理ハードドライブ上で 4Kおよび4Kの倍数のままです。何が得られますか?!
-misha256

ビンゴ!sector countあなたが話すパラメータが...でも、古代のWindows XPは、読み込み/のI / Oブロックサイズでの書き込み8セクタまたはその倍数。すでに完全に最適化されています!そのため、パーティションが揃っている限り、XPはSSDで非常に良好に動作します。非常に4Kフレンドリーです。したがって、質問は未回答のままです。物理セクターサイズが4Kであることを知っているOSは、さらにできるでしょ。OSはすでに 4K I / O用に最適化されていることを忘れないでください。
-misha256

1
「すでに最適化されています...」 -必ずしもそうではありません。「開始」セクターは、常に物理セクターに合わせる必要があります。OSが物理的および論理的セクターを認識していなかった場合に、それが真実であるとは保証されませんが、マルチセクター操作を使用することにより、より効率的にしようとしています。
おがくず

2
@ misha256いいえ、それほど単純ではありません。「Windows XP、Windows Server 2003、およびWindows Server 2003 R2は512eまたは4Knメディアをサポートしていません。システムは起動し、最小限の動作しかできませんが、機能性の問題、データ損失、または次善のシナリオがありますパフォーマンスこのため、Microsoftは強くWindowsのXPと512Eのメディアを使用しないことを警告し...」。msdn.microsoft.com/en-us/library/windows/desktop/...
ロス・リッジ

2
@ misha256-条件を選択して、すべての状況でこの情報が役に立たないことを宣言しています。誰もがWindowsおよびNTFSおよび4k以上のクラスターでこのようなSSDを使用するわけではありません。「NTFSは4K未満のI / Oさえサポートしていません」 -真実ではありません。NTFSのWin7の(最新の)コピーでは、512、1024、および2048バイトのクラスターサイズが引き続きオプションです。。。
おがくず

3

OSが基礎となる物理セクターサイズを知っている場合、OSはクエリを最適化して、必要な物理操作をできるだけ少なくすることができます。特にSSDでは、物理的な動作制限(4KB IOPS制限)がデバイス速度の最終的な制限であることが多いため、この容量を最大限に活用できることが重要です。


ああ、これは正しくない。最新のOSは本質的に最適化されています。それらはすべて、2 ^ 12から始まる2 ^ nバイト(つまり、4FS、NTFSのデフォルト)である「ブロック」サイズ(別名クラスター)のファイルシステムを使用します。これに続いて、すべてのI / O操作は最終的に4Kの倍数になります。ディスクが物理的に 512バイトであるか4Kであるかによって違いはありません。これ以上最適化することはできませんか?
-misha256

OSがアライメントを正しく取得せず、I / O操作が2つの物理セクターにまたがってしまった場合はどうなりますか?パフォーマンスが低下します。
bwDraco

1
@ misha256あなたが言ったことと私が言ったことの間に矛盾はありません。ほとんどのファイルシステムは、アライメントを正しくする以外に、物理的なセクターサイズを知ることから多くの利益を得ることはありません。一部のデータベースはそうします。
デビッドシュワルツ

@DavidSchwartzそうですね、これはすべて、データセンターなどで使用されている難解なOSやファイルシステムの利益のためでしょうか?いくつかの派手なRAIDアレイでしょうか?
misha256

それは、非ウィンドウ(「難解な」)OSおよびRAIDコントローラーに関するもののようです。
pjc50

1

ドライブ内の場所にアクセスするには、CHSスキームとLBAスキームの2つの方法があります。

CHSはCylinder、Head、Sectorの略で、ドライブからの読み取りまたは書き込みの場所を決定する最も低レベルの方法です。シリンダーx、ヘッドy、およびセクターzを使用し、その場所の内容をメモリ(バッファー)のアドレスとの間で読み書きするように指示します。これは、物理的なシリンダーと読み取りヘッドを備えた(従来の回転する錆)ハードドライブの実際の物理的なコンポーネントから派生しています。セクターは、アドレス可能な最小単位であり、従来は512バイトに固定されていました。

LBAは論理バイトアドレス指定で、ドライブはそのオフセットによってセクターアドレスを読み書きします。たとえば、ディスクの123837番目のセクターを読み取るか、ディスクの123734番目のセクターに書き込みます(ゼロから開始)。

問題?これらの値はそれぞれ範囲が制限されています。実際、CHSが非常に厳しく制限されていたため、LBAを導入する必要がありました。CHSの場合、C(シリンダー)の有効な値は1023で、H(ヘッド)は最大255、S(セクター)は最大63までです。つまり、最大1024シリンダーx 255ヘッドx 64になります。従来のCHS形式でマッピングされたセクターx 512バイト。合計で8 GiB未満です。CHSを使用すると、8 GiBを超えるディスクにアクセスすることは不可能です。

したがって、LBAには32ビット制限が導入され、2 ^ 32 x 512バイトまたはディスクサイズの2 TiB制限が与えられます-これは、MBRディスクがCHSとLBAを使用してパーティションサイズを指定するため、2TiBを超えることができない理由です2TiB上のすべてをサポートします。

LBAを64ビットに拡張し、2 ^ 64 x 512バイトでは必要以上に多くの機能を提供するGPTパーティショニングスキームのような新しい、より良いオプションが導入されました- しかし、キャッチ:多くのレガシーハードウェアとレガシオペレーティングシステム、レガシ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のデータの読み取りまたは書き込み操作が少なくなるため、処理がはるかに高速になることです。)


2
これは本当に質問に答えません。CHSとLBTの説明は無関係です。これは、「セクター」について知っていることの頭脳のようなものです。 「初日から512バイトでした...」 -これはIBM PCにのみ当てはまります。
おがくず

1
@sawdust私は同意しません-CHSとLBAに関する(私見の重要な)背景を無視しても、あなたの質問に対する簡潔な答えは2番目の最後の段落にあります4096バイトのチャンクで読み取りと書き込みを行ってください!」-すなわち、質問における仮定-OSは512バイトのチャンクで話さなければならない-は間違っています。
-davidgo

@davidgoドライバーレベルでは、OS nは512バイトのチャンク単位でドライブと通信します。これnは、Windows XPからは8未満ではなく、常に8の倍数です。つまり、XP以降のすべてのOS、および最新のLinuxディストリビューションもすべて4Kドライブに最適化されていると思います。最小のI / Oは4Kであり、他のすべてのI / Oサイズはその倍数です。
-misha256

nセクタを1つの操作にグループ化しても、ディスクに512バイトのチャンクでシークするように指示していることを非常に明確にすると思います。つまり、シークできる量が制限されていることを意味します。4096セクターがシーク問題を解決します。また、ブロックサイズに関するOSの知識が不可欠であることを明確にしました。さもないと、512バイトが4096のチャンクに格納されます。
マフムードアルクッディ

また、私はあなたが論理的対物理的について混同していると思います。物理サイズは常に512または4096のいずれかです。論理サイズが4096であるにもかかわらず、OSが盲目的に512であると想定すると、説明した問題が発生します。それらは一致する必要があります。
マフムードアルクシ


0

最新のオペレーティングシステムで4Kセクターが問題になる状況をお知らせしたかっただけです。

MicrosoftのVSSライター(シャドウコピー)は、4Kセクターではうまく機能しません。DFSレプリケーション共有フォルダーをバックアップするには、バックアップソフトウェア「Backup Exec」がDFS複製フォルダーのシャドウコピーを作成する必要があります。VSSが4Kセクターで正しく動作しないため、DFSレプリケーションフォルダーが4Kセクターのドライブにある場合、ジョブは失敗します。

ジム


3
これが提案された質問に答えるかどうかは完全にはわかりませんが、著者が尋ねた質問ではなく、質問に答えます。
ラムハウンド

これは非常に興味深い情報ですが、やや異なる質問に対する回答のようです。十分な評判を得たら、どこにでもコメントできるようになります。このサイトの紹介については、ツアーをご覧ください。
ベンN

-3

物理とは実際のドライブ自体のことを意味し、論理とはその中に定義された分割のことです。PCマグの論理物理VS:

Windows PCでは、単一の物理ハードドライブはドライブ0です。ただし、C:、D:、E:などの複数の論理ドライブに分割される場合があります。

これを消化可能な形で説明するには、手の幅のリンゴを想像してください。それが実際のリンゴの物理サイズです。当然、リンゴ全体が口に合わないので、あなたはそれを等しいスライスにスライスすることに決めます。各スライスは指の幅です。これは、論理サイズ、またはコンピューターが使用するサイズです。

ウィキペディアで説明されているように、これにはいくつかの理由があります。実容量の計算とエラーのマッピングと修正です。

典型的なハードディスクドライブは、ECCに依存しながら、ドライブの「予備セクタプール」(「予備プール」とも呼ばれる)によって提供される予備の物理セクタに失敗している物理セクタのデータを「再マッピング」しようとします。不良セクタのエラーの量がまだ十分に少ない間に、保存されたデータを回復します。SMART(Self-Monitoring、Analysis and Reporting Technology)機能は、ECCによって修正されたHDD全体のエラーの総数をカウントします(ただし、関連するSMART属性「Hardware ECC Recovered」および「Soft ECC Correction」は一貫してサポートされていません)、および実行されたセクターの再マッピングの総数。このようなエラーが多数発生するとHDDの障害が予測される可能性があるためです。

リンゴ自体なしではリンゴのスライスを作成できないのと同様に、物理としての論理ベースがないと論理を作成できません。


1
しかし、OSが物理セクターサイズを知る必要があるのはなぜですか?とにかく論理セクターのドライブと通信する必要があるので、OSが異なる方法で何をするのでしょうか?OSが知る必要のない情報のように思えます。
misha256

「なぜOSが知る必要があるのか​​...」 -論理サイズは、データを転送するための最小サイズです。物理的なサイズは、転送データに最適なサイズで、ドライブレベルでの実際のリード/ライト動作の大きさを反映している... 「それは絶対に役に立たない情報のように思える...」 -おそらくそれはあなたに「役に立たない」と思われるので、あなたはオペレーティングシステムを開発していない、または関与していませんか?
おがくず

1
@sawdustしかし、ドライブは512バイトの論理セクターに固定接続されているため、OSはあなたが話している最適な転送サイズを使用できません。ネイティブ4Kドライブは異なり、4K論理セクターを持ち、サポートOS(Win 8.1など)は4K論理セクターでの読み取りと書き込みを強制されます。しかし、私のドライブは4K論理ドライブではありません。512バイトの論理ドライブです。
misha256

@ misha256-私は自分の答えを投稿しました。
おがくず

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