けさらんぱの自由帳

とあるFF14プレイヤーがFF14のこととか関係ないことを書いていく予定のブログです。記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

lvmcacheを構築してみた

うちの環境では、Linuxlibvirtで作成した仮想環境上で動く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上でファイルシステムを拡張します。うちの環境では回復パーティションを削除する必要がありました。削除していいかちょっと迷いましたが今まで役に立ったことがないしまあいいか…

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。