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.