Skip to main content
  1. Posts/

Meningkatkan Kinerja Disk dengan LVM Cache

·3 mins·
lvm linux lvm
Table of Contents

LVM cache merupakan mekanisme caching dengan meenggunakan disk SSD/NVMe ukuran kecil yang ditambahkan sebagai logical volumes (LVs) dalam volume group (VG) yang sama.

LVM cache menggunakan driver kernel dm-cache yang mendukung mode cache write-through (default) dan write-back untuk meningkatkan kinerja LV dari disk lambat (HDD) dengan memigrasikan beberapa datanya secara dinamis ke LV dari disk cepat (SSD/NVMe) dan lebih kecil.

Prequites
#

Siapkan PC server atau VM Linux dengan 1 disk SSD/NVMe dan 1 disk HDD. Misalnya pada panduan ini menggunakan VM Linux dengan spesifikasi:

  • Disk 1 (vdb) menggunakan SSD untuk cache LV
  • Disk 2 (vdc) menggunakan HDD untuk origin LV

Configuring lvmcache
#

Daftarkan vdb dan vdc sebagai physical volume (PV) untuk digunakan oleh LVM.

pvcreate /dev/vdb
pvcreate /dev/vdc

Lalu tambahkan kedua perangkat ke dalam volume group.

vgcreate vg_data /dev/vdb /dev/vdc

Selanjutnya buat origin LV dengan nama root menggunakan keseluruhan disk lambat vdc

lvcreate -l +100%FREE -n root vg_data /dev/vdc

Buat cache LV dengan nama lv_cache lalu untuk ukurannya dapat Anda sesuaikan atau sisakan sedikit untuk membuat metadata cache.

lvcreate -L 2G -n lv_cache vg_data /dev/vdb

Buat metadata cache dengan nama lv_cache_meta untuk menyimpan metadata dari cache pool. Ukuran LV metadata cache harus 1000 kali lebih kecil dari lv_cache dengan ukuran minimum 8MiB.

lvcreate -L 12M -n lv_cache_meta vg_data /dev/vdb

List LV yang telah dibuat.

# lvs vg_data
  LV            VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_cache      vg_data -wi-a-----  2.00g
  lv_cache_meta vg_data -wi-a----- 12.00m
  root          vg_data -wi-a----- <4.00g

Buat cache pool dengan menggabungkan lv_cache dan lv_cache_meta. Disini Anda bisa mengatur mode cache yang ingin digunakan.

lvconvert --type cache-pool --cachemode writethrough --poolmetadata vg_data/lv_cache_meta vg_data/lv_cache

List LV setelah lv_cache dan lv_cache_meta digabung.

# lvs -a -o +devices vg_data
  LV               VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices
  lv_cache         vg_data Cwi---C---  2.00g                                                     lv_cache_cdata(0)
  [lv_cache_cdata] vg_data Cwi-------  2.00g                                                     /dev/vdb(0)
  [lv_cache_cmeta] vg_data ewi------- 12.00m                                                     /dev/vdb(512)
  [lvol0_pmspare]  vg_data ewi------- 12.00m                                                     /dev/vdb(515)
  root             vg_data -wi-a----- <4.00g                                                     /dev/vdc(0)

Selanjutnya gabungkan origin LV ke cache pool.

lvconvert --type cache --cachepool vg_data/lv_cache vg_data/root

Jika berhasil akan muncul pesan.

Logical volume vg_data/root is now cached.

List LV setelah origin LV di cache.

# lvs -a -o +devices vg_data
  LV                     VG      Attr       LSize  Pool             Origin       Data%  Meta%  Move Log Cpy%Sync Convert Devices
  [lv_cache_cpool]       vg_data Cwi---C---  2.00g                               0.04   2.51            0.00             lv_cache_cpool_cdata(0)
  [lv_cache_cpool_cdata] vg_data Cwi-ao----  2.00g                                                                       /dev/vdb(0)
  [lv_cache_cpool_cmeta] vg_data ewi-ao---- 12.00m                                                                       /dev/vdb(512)
  [lvol0_pmspare]        vg_data ewi------- 12.00m                                                                       /dev/vdb(515)
  root                   vg_data Cwi-a-C--- <4.00g [lv_cache_cpool] [root_corig] 0.04   2.51            0.00             root_corig(0)
  [root_corig]           vg_data owi-aoC--- <4.00g                                                                       /dev/vdc(0)

Removing Cache Pool
#

Untuk melepas origin LV dari cache LV.

lvconvert --splitcache vg_data/root

Untuk menghapus cache LV.

lvremove vg/cache_data_lv

Related

Cara membuat Logical Volume (LVM)
·3 mins
lvm linux lvm
Migrasi OS Ubuntu ke LVM
·3 mins
ubuntu linux ubuntu lvm
Menambah Space Logical Volume pada LVM
·3 mins
lvm lvm
Meningkatkan Kinerja Disk dengan Bcache
·3 mins
ubuntu ubuntu linux
Install WatchMySQL di cPanel/WHM
·1 min
cpanel cpanel linux
How to Quickly Wipe Disk on Linux
·1 min
linux linux