Képzeld el – van egy méretes HDD-d, melyen adatbázist tárolsz, torrentezel, vagy oprendszert futtatsz. Végülis mindegy, a lényeg az, hogy néha marha lassú a rendszer, IOwait a plafonban.
Tudod jól, hogy kéne ssd-re váltani, de nincs az a pénz, hogy marha nagy HDD-k helyett SSD-kre cseréljél.
Szóval a probléma adott, HDD kéne megközelítőleg SSD tempóban – vajon mi lehet a megoldás?
Egy korábbi részben ecseteltem egy lehetséges megoldást erre vonatkozóan Windows rendszeren, de most nálam linux szerveren adódott a probléma és a dolog megoldásért kiáltott és végül találtam valamit.
bcache
Az elv itt is azon alapul, hogy a merevlemez írási és olvasási gyorsítótárát kiegészíti a rendszerhez illesztett plusz SSD.
Nekem egy 3T-os disk-em van és úgy alakult, hogy egy 60G SSD felhasználható a célra. Mindkét meghajtót a leggyorsabb sata portokra csatlakoztattam és az alábbiakat műveltem.
Törölnöm kellett a teljes ssd-t és a gyorsítani kívánt partíciót (sde = SSD, sdc = HDD):
wipefs -a /dev/sde wipefs -a /dev/sdc1
Létrehoztam egy bcache partíciót:
make-bcache -C /dev/sde -B /dev/sdc1 --block 4k --discard --writeback
Írási gyorsítótártól ha tartasz ne használd a writeback paramétert, ha pedig az ssd-d nem támogatja a TRIM módot vedd ki a discard paramétert.
Ezután már csak létrehoztam az új tömbön egy fájlrendszert:
mkfs.ext4 /dev/bcache0
Majd /etc/fstab-ba felvettem a /dev/bcache0 virtuális meghajtót és voila.
Statisztikákért pedig ezekhez nyúlok:
cat /sys/block/bcache0/bcache/dirty_data tail /sys/block/bcache0/bcache/stats_total/*
Vagy akár folyamatosan:
watch -n 5 tail /sys/block/bcache0/bcache/stats_total/*
Jó kísérletezést! 🙂