ハードディスクドライブは、ホストコントローラーに応じて、必要に応じて512e(4kセクターの512バイトエミュレーション)をオンにしますか?


13

4kの物理セクターサイズ(アドバンストフォーマット)の4 TBのハードディスクがあり、それを2つのSATAホストコントローラー(1つは内部、もう1つはUSBエンクロージャー)に接続しました。(古い、2010年頃)では、512Bの論理セクターサイズとして表示されますが、その物理セクターは4096バイトであると報告されます。最近のUSBエンクロージャでは、4096Bの論理サイズと物理サイズがあると報告されています。

# internal host controller
sd 4:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
sd 4:0:0:0: [sdd] 4096-byte physical blocks

# USB enclosure
sd 18:0:0:0: [sdd] 976754646 4096-byte logical blocks: (4.00 TB/3.63 TiB)

「内部」コントローラーは、以前に見た動作を示します。これは、通常「512e」と呼ばれ、ドライブのファームウェアが物理的にセクターを書き込まない場合でも、512セクターのLBAアドレッシングをエミュレートします。オペレーティングシステム(および管理者)は、(小さな)書き込みコマンドをグループ化して、残りを読み取る必要がある物理セクターの一部への書き込みにフォールバックするのではなく、ディスクがセクター全体を上書きできるように、パーティションを整列させることができますコンテンツの最初。

ただし、ドライブ(USBエンクロージャ)で「4kネイティブ」の動作を見るのは初めてで、ドライブのエミュレートされた512Bエミュレーションに加えて、エンクロージャが4096Bアドレス指定をエミュレートしていると最初に考えました。

これが発生するのは、4kの論理セクターに登録されたUSBストレージ機能があるWeb検索で見つけることができます。512eを超える4kをエミュレートするため、MBR + FAT32 usb大容量ストレージのみをサポートするレガシー/組み込みデバイス(スマートTVなど)で大容量ドライブを使用できるように、MBRパーティションテーブルを使用できると思います。

メーカー連絡した後、彼らはドライブが実際に非エミュレート(ネイティブ)4kモードで動作していると主張し、USB SATAコントローラーもエミュレーションをまったく行っていません。これには、ドライブのファームウェアがホストコントローラーが4KBのセクターサイズのアドレス指定をサポートしているかどうかを検出する必要があります。これについては、SATA規格の公開ドキュメントには何も見つかりませんでした。だから私は尋ねます:

  • SATAコントローラーで「4096バイトの論理ブロック」を見たことがありますか?
  • ドライブは、オンデマンドでのエミュレーションの有効化/無効化を実際にサポートしていますか?もしそうなら、
    • この決定はどのように機能しますか?
    • フラグを介してドライブで上書きできますか?
    • ドライバー/フラグを介してホストコントローラーでオーバーライドできますか?

ドライブのロゴには「AF」または「4Kn」と表示されていますか?
ジェイミーハンラハン14

この質問には、高品質で現代的な答えが本当に必要です。
ハシム

回答:


2

ハードドライブ検証業界で動作する4Kn SATAドライブがいくつか見られましたが、ハードウェアとソフトウェアのサポートが制限されており、顧客の需要がないため、顧客に出荷されていることは知りませんでした。

物理セクターサイズと論理セクターサイズには、2つの競合するマッピングがあります。長い論理セクター機能により、デバイスは512B(たとえば4Kn)より長い論理セクターを持つことができ、長い物理セクター機能により、デバイスは物理セクター(たとえば512e)ごとに複数の論理セクターを持つことができますが、必ずしも相互に排他的ではありません。製造元がドライブが4Knであると主張している場合、古いシステムは単純に4Kn形式をサポートしないため、古いコントローラーは古いアプリケーションおよびハードウェアに読み取り-変更-書き込みなどのエミュレーションレイヤーを提供できます。

sg_sat_identifysg3_utilsパッケージのコマンドを使用すると、おそらく必要な情報が得られます(物理セクターサイズ/論理セクターサイズの情報については、106〜108の単語を確認してください)。

SATAドライブ自体はオンデマンドでエミュレーションをサポートできるようには見えませんが、ドライブが実際に4Knではなく512eを使用している場合、パフォーマンスの最適化は、ドライバー(またはUSB SATAコントローラー)による読み取り/書き込みの制限によって最大化されます4K境界。たとえば、下位3ビットが0であるLBAで転送を開始し、下位3ビットが1であるLBAで終了します。

start_lba & 0x3 == 0
end_lba & 0x3 == 1

したがって、基本的に、ドライブにエミュレーションの開始または停止を指示できる「スイッチ」はありません。エンドユーザーの観点からは、ドライブが使用するマッピングに最適なファイルシステムをドライブが使用していることを確認し、ドライブが正しく配置されていることを確認することがおそらく最善です。次のサイトでは、一般的なファイルシステムと、異なるファイルシステムでのパフォーマンスとブロックアラインメントに関する統計のかなり良い内訳を示しています。http//www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html

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