bcache: Have you cake and eat it too, SSD hastighed med HDD lager kapacitet

Dette forum bruges på EGET ANSVAR til at lege med scripts og andre ting med risiko for at beskadige sit eget og andres systemer.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

bcache: Have you cake and eat it too, SSD hastighed med HDD lager kapacitet

Indlæg af lath »

Hvad er bcache?

Hvis du har meget fysisk RAM til overs, så ved du at kernen bruger det en meget stor disk cache.

Disk cachen har ikke cachet et program - lad os sige LibreOffice - hvis du ikke har kørt programmet siden du bootede Ubuntu.

Hvis du har lukket LibreOffice efter du første gang startede det, og senere skal bruge den igen, og du ikke har brugt meget hukommelse i mellemtiden, så er Libreoffice programmet stadig i disk cachen.

Når et program er i disk cachen så læses programmet fra disk cachen i stedet fra disken, så startes det program meget hurtige op den 2. gang, fordi det læses - indirekte - fra fysisk RAM.

Så over til bcache.

Fra upstream kan man læse:
Bcache is a Linux kernel block layer cache. It allows one or more fast disk drives such as flash-based solid state drives (SSDs) to act as a cache for one or more slower hard disk drives.

Hard drives are cheap and big, SSDs are fast but small and expensive. Wouldn't it be nice if you could transparently get the advantages of both? With Bcache, you can have your cake and eat it too.


bcache, som bør bo på en SSD, kombinerer altså SSDers hastighed med lagerkapaciteten fra mekaniske/traditionelle harddiske med det formål at man - det meste af tiden - har en lynhurtig harddisk.

Man læser også bcache virker på block device niveau, og derfor intet kender til VFS (filer og mapper), samt filsystemer, og derfor virker med alle filsystemer - også krypterede filsystemer.

Da disk cachen i RAM også virker på blok niveau, så er bcache en disk cache, som placerer sig imellem disk cachen i RAM og fysiske lagerenheder.

En bcache har bare en meget større kapacitet end RAM med den bonus at bcache også husker indholdet efter et strømsvigt

hdd-ssd-scheme.png
hdd-ssd-scheme.png (35.23 KiB) Vist 2405 gange


Næste bonus er at bcache kan vente (det gør den i tilstand writeback) med at skrive en fil til lagermediet. Det har den fordel at filen kan gemmes sekventielt ( i rækkefølge), hvilket gør det betragtelig meget hurtigere at læse filen, end hvis en mekanisk disk skal finde mindre blokke(bidder) af filen ud over hele disken.

Der er en ekstra bonus: Når bcache opdager at et filsystem læser (eller skriver) en meget fyldig fil, så dropper bcache at cache den (se bypass på tegningen), hvilket er yderst praktisk, idet at den fil ellers kunne rydde meget store dele af bcachen, så man senere kan komme vente i lang tid (mekanisk harddisk ventetid) på at læse filer igen.

Så du vil gerne bruge bcache ...

Her er det så at jeg ikke gider - mere eller mindre - at råkopiere andres artikler, så du får her en bunke links hvorefter du må klare dig selv.

Hvis du har lidt start læsning, så har Phoronix en meget lang liste af artikler, og nyheder - de fleste fra 2018,2017, og 2016: https://www.phoronix.com/scan.php?page=search&q=BCache

Ubuntu Wikien har en teknik basker om bcache : https://wiki.ubuntu.com/ServerTeam/Bcache

Jeg synes at dokumentationen fra kernel.org er bedre: Linux 4.20 kernel documentation: A block layer cache (bcache)

https://freedompenguin.com/articles/how-to/boost-hard-drive-bcache/ er der en fuld fed gennemgang af bcache benchmarks og installation.

Jeg ville personligt holde snitterne fra boot loaderen (grub2), men jeg er måske bare gammel, og har mindre lyst til at eksperimentere, så gør hvad du har lyst til, men det er selvfølgelig - som alt her i Ubuntu Danmarks Sandkasse - på eget ansvar.

Prøver du det, så start med en ny installation på en virtuel maskine, med en bcache partition på et fysisk block device, som for eksempel kunne hedde /dev/sde1.

Det fysiske block device skal selvfølgelig være en SSD, eller et RAID af SSD diske.
Senest rettet af lath 28. dec 2018, 12:47, rettet i alt 1 gang.
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Claus Henriksen
Forfatter
Indlæg: 794
Tilmeldt: 21. jan 2007, 17:45
Geografisk sted: Christianshavn

Re: bcache: Have you cake and eat it too, SSD hastighed med HDD lager kapacitet

Indlæg af Claus Henriksen »

Meget interessant,- tusind tak for intro + links!
Claus Gårde Henriksen / Jeg bruger ikke Ubuntu / Debian Stable 12