Meningkatkan Kinerja Disk dengan Bcache

Bcache adalah sebuah sistem yang memungkinkan Anda menggunakan disk SSD/NVMe kecil sebagai cache untuk meningkatkan kinerja disk HDD. Untuk simulasinya Anda dapat menyiapkan PC Linux dengan ketersediaan slot HDD dan slot SSD/NVMe atau bisa juga dengan membuat VM Linux lalu menyiapkan 2 virtual disk yang masing-masing dibuat pada disk SSD dan HDD.

Disini saya memakai Linux VM dengan konfigurasi:

  • Disk 1 (vdb) menggunakan SSD untuk cache device
  • Disk 2 (vdc) menggunakan HDD untuk backing device

Configure Bcache

Install bcache-tools

apt -y install bcache-tools

Setelah terinstall, tambahkan cache device dan backing device dengan perintah.

make-bcache -C /dev/vdb
make-bcache -B /dev/vdc

Gunakan lsblk untuk memastikan bcache device telah dibuat.

# lsblk
NAME             MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda              252:0    0   4G  0 disk
├─vda1           252:1    0   1M  0 part
├─vda2           252:2    0   1G  0 part /boot
└─vda3           252:3    0   3G  0 part
  └─vg_root-root 253:0    0   3G  0 lvm  /
vdb              252:16   0   2G  0 disk
vdc              252:32   0   4G  0 disk
└─bcache0        251:0    0   4G  0 disk

Selanjutnya Anda perlu attach cset.uuid dari cache device ke bcache untuk mengaktifkan cache. Untuk mendapatkan cset.uuid gunakan perintah.

bcache-super-show /dev/vdb | grep cset.uuid

Contoh output.

# bcache-super-show /dev/vdb | grep cset.uuid
cset.uuid               f04f874d-6c76-4952-8bd5-41aa8500b012

Lalu attach cset.uuid

echo f04f874d-6c76-4952-8bd5-41aa8500b012 > /sys/block/bcache0/bcache/attach

Jika muncul error seperti bash: echo: write error: Invalid argument, Anda dapat mencoba cek detail errornya menggunakan dmesg

# dmesg
...
[ 1119.049590] bcache: bch_cached_dev_attach() Can't attach vdc: already attached

Untuk error tersebut artinya device telah di attach sehingga tidak perlu di attach kembali.

Selanjutnya format bcache0 agar dapat di mounting dan digunakan.

mkfs.xfs /dev/bcache0
mount /dev/bcache0 /mnt

Cek mountpoint bcache0 dengan df

# df -hT /dev/bcache0
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/bcache0   xfs   4.0G   61M  4.0G   2% /mnt

Cache Mode

Bcache menyediakan mode cache seperti berikut:

  • writeback: membaca dan menulis data dapat dilakukan pada cache lalu diteruskan ke backing device (Meningkatkan baca dan tulis | Performa terbaik namun terdapat kemungkinan kehilangan data ketika terjadi kerusakan perangkat atau pemadaman listrik)
  • writethrough: menulis data dapat dilakukan pada cache dan backing device secara bersamaan sehingga proses penulisan bisa lebih baik karena dilakukan pada 2 device (Meningkatkan baca dan tulis | Aman dari kerusakan data)
  • writearound: menulis data langsung pada backing device namun membaca dapat dilakukan pada caching device (Meningkatkan baca | Aman dari kerusakan data)
  • none: tanpa cache (Cache tidak aktif namun tetap bisa menggunakan device bcache, misal /dev/bcacheX)

Secara default bcache menggunakan mode caching writethrough yang bisa dicek melalui.

# cat /sys/block/bcache0/bcache/cache_mode
[writethrough] writeback writearound none

Untuk mengubah mode caching ke writeback

echo writeback > /sys/block/bcache0/bcache/cache_mode

Tips

make-cache dapat menyiapkan dan mendaftarkan beberapa backing device dan cache device secara bersamaan dengan perintah berikut.

make-cache -B /dev/vdc /dev/vdd -C /dev/vdb

Untuk selajutnya Anda tidak perlu attach secara manual cache device ke bcache device.