-->

Monday, July 15, 2013

SSDのパーティショニング - Linux編


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オプションはアクセス情報を書き込まないようにするみたいです。




参考サイト

TK Server - Partition alignment

Aligning SSD Partitions

 

LinuxでSSDを使う時の参考サイト

http://wiki.debian.org/SSDOptimization


No comments:

Post a Comment