SSD cache linux rendszeren

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?

Mintapélda, teljesítményben egy idális világot képez :)
Mintapélda, teljesítményben egy idális világot képez 🙂

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! 🙂

Szólj hozzá!