IOブロックサイズについて

IOブロックサイズについて

hdparm -I /dev/sda出力:

Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes

statいくつかのファイル出力:

Size: 509           Blocks: 8          IO Block: 4096   regular file

なぜIOブロック4096ですか?これは512バイトの物理セクタサイズと同じではありませんか?

ベストアンサー1

いいえ。ディスクブロックサイズは、ディスクで処理されるデータブロックのサイズを示す。ファイルに書き込む場合、CPU/マザーボードはディスクのどのセクタにどのバイトを書き込むべきかをドライブコントローラに通知する必要があります。これは512バイトブロックでのみ発生する可能性があります。

論理セクタサイズと物理セクタサイズの違いは次のとおりです。物理セクターサイズは、ディスク上のデータの物理構成サイズです。論理セクタサイズは、CPU/マザーボードのブロックがドライバコントローラカードと一致することを意味します(通常はマザーボードの一部でもありますが、OSはディスクの読み取り/書き込み操作を実行するときに作成する必要があるブロックサイズを知っている必要があります。 )。

物理セクターのサイズも数十年にわたって偽造されており、正確な詳細はハードドライブメーカーの営業秘密です。ただし、この偽のデータはディスク標準(SCSI、PATA、SATAなど)の一部であるため、オペレーティングシステムはまだこの偽のデータについて知っている必要があります。したがって、ほとんどの場合、物理セクタサイズは実際の意味がありません。

いくつかの最新の光ディスクの新しい進歩は、512の代わりに4096論理セクタを使用することです。これは、一部の古いATAプロトコルのセクタ番号が32ビットサイズであるため、ディスクが40億セクタ(= 2テラバイト)を収容できないために必要です。処理されません。

stat コマンドはファイルシステムのブロックサイズを表示します。さらに、ほとんどのファイルシステムはシステムのデータをブロックとして構成します。シングルバイトファイルを作成する場合は、ディスクに4096バイトを割り当てる必要があります。 Reiserfsなどの非ブロック指向のファイルシステムは依然としてブロックで構成されていますが、割り当て可能な最小ディスクサイズはわずか32バイトです。したがって、1バイトファイルはreiserfsファイルシステムから32バイトのみを割り当てます。

おすすめ記事