アドバンスドフォーマット
すべてのストレージデバイスには、使うことのできる最小の記憶単位が存在します。この利用可能な最小単位は一般にセクタと呼ばれており、従来のストレージデバイスの回転部品を最小に分割したものでした (ソリッドステートドライブはメモリセルを使用し、最小単位はページです)。[1] を参照してください。
異なるストレージデバイスは、異なるセクタサイズを使用します。2011 年以降、最近のハードディスクドライブは通常 (512 バイトではなく) 4 KiB セクタを使用します。ソリッドステートドライブは、複数のフォーマットをサポートしていることがあります。
異なる「レイヤー」(つまり、デバイス / スタックされたブロックデバイス / ファイルシステム) 間で同じセクタサイズを使用するべきです。同じセクタサイズを使わない場合、ファームウェアがファイルシステムのセクタと物理ドライブのセクタとの間でマッピングを行わなければなりません。これは通常、変換レイヤーによって透過的に行われますが、これは回避可能なオーバーヘッドであり、そうすることでパフォーマンスが向上します。
目次
4k セクタを使用している HDD のモデル
2011年6月現在、"Advanced Format" または 4k セクタをサポートしている HDD の数は以下のように限られています。
以下のリストに記載されているドライブは全て物理セクタのサイズが4096バイトです。ただし全てのドライブがセクタサイズを正しく OS に報告するわけではありません。(ATA-8 規格の新しいフィールドで) 報告される実際の値を、表の中では報告される物理セクタサイズとして示しています。パーティショニングツールはこの値を使ってアライメントを行うため、間違ってアライメントされる問題が起こらないようにセクタサイズを 4096 にする必要があります。
論理セクタサイズはデータの転送に使われるセクタサイズです。この値はディスクの LBA セクタの数だけ倍加されてディスクの容量になります。そのため、論理セクタが4096バイトのディスクでは、論理セクタが512バイトの同じ容量のドライブと比べて最大 LBA が少なくなります。(2009年以前にリリースされた) 旧式のオペレーティングシステムとの互換性は論理セクタが512バイトのドライブの方が良好ですが、発揮できるパフォーマンスは論理セクタが4096バイトのドライブの方が少しだけ上になります (例: NCQ バッファにより多くの読み書きリクエストを収納できる)。
メーカー | モデル | 容量 | 報告されるセクタサイズ (バイト) | |
---|---|---|---|---|
論理 | 物理 | |||
3.5" | ||||
Samsung | HD204UI | 2.0 TB | 512 | 512 |
Seagate | ST3500413AS | 500.0 GB | 512 | 512 |
Seagate | ST500DM002 | 500.0 GB | 512 | 4096 |
Seagate | ST1000DL002 | 1.0 TB | 512 | 4096 |
Seagate | ST1000DM003 | 1.0 TB | 512 | 4096 |
Seagate | ST1000DM010 | 1.0 TB | 512 | 4096 |
Seagate | ST2000DL003 | 2.0 TB | 512 | 512 |
Seagate | ST2000DM001 | 2.0 TB | 512 | 4096 |
Seagate | ST3000DM001 | 3.0 TB | 512 | 4096 |
Seagate | ST4000DM000 | 4.0 TB | 512 | 4096 |
Seagate | ST4000DM005 | 4.0 TB | 512 | 4096 |
Seagate | ST4000VN000 | 4.0 TB | 512 | 4096 |
Western Digital | WD3000F9YZ | 2.0 TB | 512 | 4096 |
Western Digital | WD30EZRX | 3.0 TB | 512 | 4096 |
Western Digital | WD20EZRX | 2.0 TB | 512 | 4096 |
Western Digital | WD30EZRSDTL | 3.0 TB | ||
Western Digital | WD25EZRSDTL | 2.5 TB | ||
Western Digital | WD20EARX | 2.0 TB | 512 | 4096 |
Western Digital | WD20EFRX | 2.0 TB | 512 | 4096 |
Western Digital | WD30EFRX | 3.0 TB | 512 | 4096 |
Western Digital | WD40EFRX | 4.0 TB | 512 | 4096 |
Western Digital | WD60EFRX | 6.0 TB | 512 | 4096 |
Western Digital | WD10EARS | 1.0 TB | ||
Western Digital | WD15EARS | 1.5 TB | 512 | 4096 |
Western Digital | WD20EARS | 2.0 TB | 512 | 4096 または 512 |
Western Digital | WD10EURS | 1.0 TB | ||
Western Digital | WD8000AARS | 800.0 GB | ||
Western Digital | WD6400AARS | 640.0 GB | ||
2.5" | ||||
Samsung | ST1000LM024 | 1.0 TB | 512 | 4096 |
Samsung | ST2000LM003 | 2.0 TB | 512 | 4096 |
Seagate | ST320LT007 | 320 GB | 512 | 4096 |
Seagate | ST9750420AS | 750 GB | 512 | 4096 |
Seagate | ST1000LM014 | 1.0 TB | 512 | 4096 |
Seagate | ST4000LM016 | 4.0 TB | 512 | 4096 |
Western Digital | WD10JPVT | 1.0 TB | 512 | 4096 |
Western Digital | WD10TPVT | 1.0 TB | ||
Western Digital | WD7500BPVT | 750.0 GB | ||
Western Digital | WD7500KPVT | 750.0 GB | ||
Western Digital | WD6400BPVT | 640.0 GB | ||
Western Digital | WD5000BPVT | 500.0 GB | ||
Western Digital | WD3200BPVT | 320.0 GB | ||
Western Digital | WD2500BPVT | 250.0 GB | 512 | 4096 |
Western Digital | WD1600BPVT | 160.0 GB | ||
Western Digital | WD7500BPKX | 750.0 GB | 512 | 4096 |
TOSHIBA | MQ01ABD100 | 1.0 TB | 512 | 4096 |
TOSHIBA | MQ01ABC150 | 1.5 TB | 512 | 4096 |
HDD が 4k セクタを使用しているかどうか判断する方法
ハードディスク (例: /dev/sdX
) の物理・論理セクタサイズは以下の sysfs エントリで確認することができます:
$ cat /sys/class/block/sdX/queue/physical_block_size $ cat /sys/class/block/sdX/queue/logical_block_size
以下のツールは (ドライブが正しい値を報告しているのを前提として) ドライブの物理セクタを報告します:
- smartmontools (5.41 から; smartmontools -a, 情報セクション)
- hdparm (9.12 から; hdparm -I, 設定セクション)
USB 接続のディスクでも上記のツールは使えます (USB ブリッジが SAT、別名 SCSI/ATA Translation または ANSI INCITS 431-2007 に対応している場合)。
パーティションのアライメント
アライメントをサポートするツールのバージョンは以下の通りです:
- fdisk (util-linux >= 2.15)。‘-c -u’ を使って起動することで DOS との互換性を無効化してシリンダーの代わりにセクタを使うことができます。
- parted (parted >= 2.1)。
- mdadm (util-linux >= 2.15)。
- lvm2 (util-linux >= 2.15)。
- mkfs.{ext,xfs,gfs2,ocfs2} は全て直接 libblkid に対応しています。
詳しくは このページ を参照してください。
パーティションのアライメントを確認
# fdisk -lu /dev/sda ... # Device Boot Start End Blocks Id System # /dev/sda1 2048 46876671 23437312 7 HPFS/NTFS
2048 (fdisk 2.17.2 からのデフォルト) が正しく HDD がアライメントされている証拠です。8 で割れる値なら問題ありません。
GPT (推奨)
GPT パーティションテーブルを使用する場合、gdisk を使ってパーティションを作成するだけでデフォルトでアライメントされます。SSD#パーティションアライメント を見てください。