lvmcacheを構築してみた
うちの環境では、Linuxのlibvirtで作成した仮想環境上で動くWindows 10の中でFF14を動かしています。このWindows 10のストレージにはNVMe上に切ったパーティションを使っているのですが、容量が足りなくなってきたので、LinuxでNVMeとHDDを組み合わせて使うということを試してみました。そのときの作業メモです。うちのFF14、どんどん変態的な環境になっていく…
Windows 10のバックアップ
まず現在のWindows 10のディスクイメージをバックアップします。
sudo dd if=/dev/nvme0n1p2 of=/work/win.img
PVの作成
次にNVMeとHDDを使ってPVを作ります。
sudo pvcreate /dev/sda2 sudo pvcreate /dev/nvme0n1p2
VGの作成
次にVGを作ります。
sudo vgcreate win /dev/sda2 /dev/nvme0n1p2
LVの作成
次にLVを作ります。パーティション全体を使うには、 -l 100%FREE
とします。どうでもいいことですが、PV, VG, LVってLVMのことを理解してないとわけわからない…
sudo lvcreate -n cache -l 100%FREE win /dev/nvme0n1p2 sudo lvcreate -n data -l 100%FREE win /dev/sda2
LVの変換
最後にNVMeのLV( win/cache
)をキャッシュにしてHDDのLV( win/data
)と統合します。 256KiB
は環境によって適当に変えます。また、 writeback
は危険だという警告が出ますがここはパフォーマンスを優先します。
sudo lvconvert --type cache --cachevol cache --chunksize 256KiB --cachemode writeback win/data
Windows 10を書き戻す
バックアップしておいたWindows 10のディスクイメージを書き戻します。
sudo dd if=/work/win.img of=/dev/mapper/win-data
あとはWindows 10上でファイルシステムを拡張します。うちの環境では回復パーティションを削除する必要がありました。削除していいかちょっと迷いましたが今まで役に立ったことがないしまあいいか…