SSD内部のページサイズは多くの場合4096か8192バイト
ファイルシステムのブロックサイズは多くの場合4096バイト
というわけで、これらがずれないようにすると効率がいいらしい。
SSDのパーティショニングをするときは、パーティションの先頭が
・バイト数なら4096か8192で割り切れ
・セクタ番号なら8か16で割り切れ
るようにすればいい。
うんめんどくさい。というわけで、
賢人たちのおすすめは
「パーティション境界を1MB単位に合わせる」
という結論のようです。
fdiskの使い方
fdiskのバージョンに注意
util-linux-ng バージョン2.17.2 より前の古いfdisk
この場合、ヘッダやトラックあたりセクタ数を指定する必要が出てくるらしい。
fdisk -H 64 -S 32 /dev/sda
トラック当たり32セクタで64ヘッダだと合計512*32*64=1MB (1024*1024バイト)1シリンダ=1MB となり、シリンダ単位でどう指定してもアラインします。
頭のパーティションはシリンダ#1 (sector#2048) からはじまります。
util-linux-ng バージョン2.17.2 以降の新しいfdisk
・DOS互換モードを切る ( -c オプション )
・表示をセクタ単位に切り替える ( -u オプション )
・パーティションの頭はセクタ2048
・パーティションの終わりは、自分でセクタ値を計算して指定する
か
・パーティションサイズを +sizeM あるいは +sizeG で指定する
fdisk -c -u /dev/sda
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-312581807, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-312581807, default 312581807): +10G
LVM
LVMでもアライメントに注意が必要みたい。
新しいLVMではデフォルトで1MBにアラインするようになっているようです。
/etc/lvm/lvm.conf の中を alignment で検索して確認したほうがいいかも
あと、 issue_discardパラメータもあったかな
ファイルシステムのマウント
ファイルシステムのマウントオプションに discard, noatime を指定するdiscardオプションはSSDにTRIMコマンドを送るようになるみたいです。
noatimeオプションはアクセス情報を書き込まないようにするみたいです。
参考サイト
No comments:
Post a Comment