LVM-CACHEの簡単な構築方法
Linuxにおいて、LVM(Logical Volume Manager)という、既存のパーティーション/ディスクを統合して切り分けることができる仕組みがあります。
その機能の一つとして、SSDとHDDを利用して、ハイブリッドHDDを作ることができます。
ネット上でLVM-CACHEについて調べると、よくcachepoolを使った方法が書かれています。記事によっては、メタデータ用ボリュームとキャッシュプール用ボリュームを統合する方法から書かれていますが、正直面倒くさいです。
なので、ここではcachevolを使った構築の仕方を紹介します。
1.ボリュームグループの作成
ここではSSDのデバイス名を/dev/sda、HDDのボリューム名を/dev/sdbとします。
SSDの第1パーティーションにWindowsがインストールされていることを想定して、SSDの第2パーティーションをPV(物理ボリューム)にします。
$ sudo pvcreate /dev/sda2
HDDパーティーションも同じように第2パーティーションをPVにします。
$ sudo pvcreate /dev/sdb2
そして、PVをVG(ボリュームグループ)に登録します。
$ sudo vgcreate vg00 /dev/sda2 /dev/sdb2
2.論理ボリュームの作成
先程作ったVGからキャッシュ用LV(論理ボリューム)とデータ用LVを切り出します。この時注意することは、どこのPVから切り出すかを指定しなければいけないことです。キャッシュ用ボリュームがHDDにあるのでは目も当てられないので。
キャッシュ用に10GiB、データ用に150GiB確保します。
$ sudo lvcreate -n fast -L 10G vg00 /dev/sda2
$ sudo lvcreate -n slow -L 150G vg00 /dev/sdb2
3.データ用ボリュームにキャッシュ用ボリュームを統合
$ sudo lvconvert --type cache --cachevol fast vg00/slow
これでvg00/slowにキャッシュ領域としてvg00/fastが統合されました。
lvsコマンドで見てみるとこんな風になっていると思います。
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
slow vg00 Cwi-aoC--- 150.00g [fast_cvol] [slow_corig] 0.00 12.82 0.00
このData%がキャッシュの利用率になります。
これでSSDをキャッシュにしたボリュームができました。
なお、キャッシュ領域を切り離すときは以下のコマンドを使います。
$ sudo lvconvert --splitcache vg00/slow