bcache vs dm-cache: Linuxi SSD vahemälu võrdlus
11 min lugemine - 28. mai 2026

Võrdle bcache ja dm-cache SSD vahemälu jaoks Linuxis. Seadistamine, jõudlus, vahemälu režiimid ja millal neid kasutada.
bcache vs dm-cache: SSD-puhverdamine Linuxis
SSD-d on kiired, kuid gigabaidi kohta kallid. HDD-d on odavad, kuid aeglased. Linux pakub kaht tuumatasandi tööriista nende ühendamiseks: bcache ja dm-cache. Mõlemad kasutavad SSD-d läbipaistva vahemäluna suurema HDD ees, kuid need erinevad arhitektuuri, seadistamisnõuete ja parima toimivuse poolest.
Kuidas bcache töötab
Bcache on olnud Linuxi tuumas alates versioonist 3.10 (juuni 2013). See töötab plokkide tasandil, seega sobib see igasuguse failisüsteemiga, mis toetab UUID-sid.
Sisemiselt kasutab bcache hübriidset B+ puu/logi struktuuri. See jagab SSD-mälu kindla suurusega osadeks (128K kuni 2MB), mis on joondatud kustutusplokkide piiridega. See muudab juhuslikud kirjutused järjestikusteks, mis vähendab kirjutamise võimendust ja pikendab SSD eluiga. Järjestikused I/O operatsioonid üle 4MB mööduvad automaatselt vahemälust, hoides SSD keskendununa juhuslikele juurdepääsumustritele, kus see annab kõige rohkem väärtust.
Bcache jälgib ka SSD-i latentsust reaalajas. Kui lugemislatentsus ületab 2 ms või kirjutamislatentsus 20 ms, piirab see liiklust, et vältida vahemäluseadme muutumist pudelikaelaks.
Seadistamine
Paigaldage bcache-tools, seejärel vormindage oma alus- ja vahemäluseade:
make-bcache -B /dev/sdb # format HDD as backing device
make-bcache -C /dev/sdc # format SSD as cache device
echo <UUID> > /sys/block/bcache0/bcache/attach # attach cacheKäitamise ajaline häälestamine toimub /sys/block/bcache<N>/bcache/ sysfs-liidese kaudu, kus saate reguleerida vahemälurežiime, järjestikuse sisend-väljundi künniseid ja latentsuse sihtmärke. RAID-massiivide puhul kasutage --data-offset , et kohandada seda oma triibulaiusega.
Aga on üks konks: seadistamine on hävitav. Mõlemad seadmed tuleb vormindada bcache-sihtmärkidena, seega ei saa bcache'i lisada olemasolevale failisüsteemile ilma seda esmalt tühjendamata. Bcache-seadmete suurust ei saa pärast loomist muuta.
Jõudlus
Bcache'i kirjutamise konsolideerimine annab sellele tugevad juhusliku kirjutamise näitajad. Võrdlustestides on see saavutanud ligikaudu 18 500 juhuslikku 4K kirjutamis-IOPS-i võrreldes 12 200 IOPS-iga pelgalt toores SSD-l. Juhusliku lugemise läbilaskevõime võib võimeka riistvaraga ulatuda ligikaudu 1 000 000 IOPS-ini.
Krüpteeritud töökoormuste puhul kasutage dm-crypti kihina /dev/bcache<N> , selle asemel et krüpteerida aluseks olevaid draive eraldi. See toimib tavaliselt paremini, kuna bcache saab kirjutusi ikkagi konsolideerida enne krüpteerimist.
Kuidas dm-cache töötab
dm-cache on Device Mapperi sihtmärk, mis asub olemasoleva loogilise mahu kohal. See kasutab kolme alamseadet: algseadet (HDD), vahemäluseadet (SSD või NVMe) ja metadate seadet, mis jälgib plokkide asukohti ja muutunud seisundeid. Vaikimisi kasutatav vahemälupoliitika on smq (Stochastic Multi-Queue), mis tuvastab segatud töökoormuste puhul aktiivselt kasutatavaid andmeid.
Peamine eelis: dm-cache'i saab paigutada töötavale LVM-mahule ilma olemasolevaid andmeid hävitamata. Samuti saab selle suurust muuta tavaliste LVM-käskudega.
Seadistamine LVM-iga
Praktiline viis dm-cache'i konfigureerimiseks on lvmcache. Käsitsi dmsetup konfigureerimine on võimalik, kuid see on veaprobleemidele altis ja ei säili taaskäivitamisel. LVM-lähenemine:
- Loo füüsilised mahud (PV-d) nii HDD-le kui ka SSD-le.
- Lisage mõlemad PV-d ühte mahugruppi (VG).
- Loo kolm loogilist mahtu: üks andmete varundamiseks (HDD), üks vahemäluks (SSD) ja üks metaandmeteks (SSD).
- Ühendage vahemälu ja metaandmete loogilised mahud vahemälupooliks:
lvconvert --type cache-pool --poolmetadata <meta_lv> <cache_lv> - Ühendage pool originaaliga:
lvconvert --type cache --cachepool <pool_lv> <data_lv>
Üks asi, mida tuleb jälgida: kinnitage failisüsteem selle /dev/mapper/ , mitte UUID-i kaudu. UUID-i kaudu ühendamine võib vahemälukihti mööda minna ja pöörduda otse algseadme poole.
Jõudlus ja mälu
Kirjutamisrežiimis 90/10 lugemis-/kirjutamiskoormuse juures on dm-cache saavutanud lugemiskiiruse umbes 193 MB/s ja kirjutuskiiruse umbes 21 MB/s. Teises võrdlustestis suurendas 100 GB HDD ja 10 GB NVMe partitsiooni vahemällu salvestamine juhusliku kirjutamise IOPS-i 118-lt 798-le.
Kompromiss on mälu. dm-cache'i metaandmete koormus sõltub ploki suurusest. 512-baidise ploki suurusega võib 100 GB vahemälu kohta kuluda üle 16 GB RAM-i. Selle suurendamine 4096 baitini vähendab mälukasutust umbes 2 GB-ni 100 GB kohta. Valige ploki suurus, mis on lähedane teie keskmisele I/O suurusele (64 KB on mõistlik lähtepunkt), ja veenduge, et see on 64 sektori (32 KB) kordne, jäädes vahemikku 32 KB kuni 1 GB.
Metadata tühjendatakse iga FLUSH- või FUA-kirjutuse korral või vähemalt kord sekundis. Kõrge kättesaadavuse tagamiseks peegeldage metadataseadet, et vältida ühtset rikkeallikat.
Puhverdamisrežiimid
Nii bcache kui ka dm-cache toetavad samu põhilisi vahemälurežiime. Valik mõjutab nii jõudlust kui ka andmete turvalisust.
| Režiim | Kuidas see toimib | Kiirus | Risk |
|---|---|---|---|
| Läbikirjutamine | Kirjutamine toimub samaaegselt nii SSD-le kui ka HDD-le | Ainult lugemise kiirendus | Madal. HDD-l on alati olemas ajakohased andmed. |
| Tagasi kirjutamine | Kirjutamine toimub esmalt SSD-le, hiljem salvestatakse andmed HDD-le | Lugemis- ja kirjutamiskiirendus | Kõrgem. SSD-kõvaketta rike enne andmete salvestamist tähendab andmete kaotust. |
| Kirjutamine ümber / läbiviimine | Kirjutused mööduvad vahemälust täielikult | Ainult lugemise kiirendus, väiksem SSD-kõvaketta kulumine | Madal. HDD-l on alati olemas ajakohased andmed. |
Läbikirjutamine on mõlema tööriista puhul ohutu vaikimisi valik. Tagasikirjutamine on kiirem, kuid toob kaasa reaalse riski: kui SSD rikneb, hoides endas tühjendamata andmeid, kaovad need andmed ja failisüsteem võib rikkuda. Kasutage tagasikirjutamist ainult siis, kui teil on dubleeritud SSD-d või suudate taluda aeg-ajalt esinevat andmete kaotust.
bcache vs dm-cache: kumba kasutada
| Tegur | bcache | dm-cache |
|---|---|---|
| Seadistamine olemasolevatel andmetel | Destruktiivne (nõuab andmete kustutamist) | Mittehävitav (online-muundamine) |
| Suuruse muutmine | Ei toeta | Toetatud LVM-i kaudu |
| Juhusliku kirjutamise optimeerimine | Tugev (järjekorras kirjutamise konsolideerimine) | Standard |
| Järjekorras I/O ümbersuunamine | Automaatne (>4 MB) | Haldab smq-poliitika |
| Mälukasutus | Madal (B+ puu) | Kõrgem (sõltub ploki suurusest) |
| Metadata | Vahemäluseadmes | Eraldi seade, mida saab peegeldada |
Kasutage bcache'i, kui ehitate uut süsteemi nullist ja soovite parimat võimalikku juhusliku sisend-väljundi jõudlust. See on parem valik kirjutamisintensiivsetele töökoormustele, nagu andmebaasid ja VM-salvestusruum, ning RAID 6 massiividele, kus juhusliku kirjutamise karistused on ranged.
Kasutage dm-cache'i, kui peate lisama vahemälu serverile, mis on juba tootmises. Selle LVM-integratsioon tähendab, et saate lisada vahemälu ilma seisaku- või andmete rändamiseta. See sobib paremini lugemisintensiivsetele töökoormustele ja keskkondadele, kus vajate paindlikkust salvestusruumi suuruse muutmiseks või ümberkonfigureerimiseks lennult.
Kokkuvõte
Mõlemad tööriistad lahendavad sama probleemi, kuid sobivad erinevatesse olukordadesse. Bcache on parim valik uute süsteemide jaoks. dm-cache on praktiline valik olemasolevate LVM-süsteemide jaoks. Millise valiku te ka ei teeks, alustage kirjutamisrežiimiga, kuni olete kindel oma SSD-kõvaketta töökindluses, ning vahetage seejärel kirjutamisjärgse režiimi peale, kui vajate suuremat kirjutuskiirust.
Kui vajate pühendatud servereid SSD-puhverdamise konfiguratsioonidega, uurige FDC pühendatud serverite valikuid.
XDP ja eBPF Linuxi pakettide töötlemiseks
Kuidas XDP ja eBPF töötlevad miljoneid pakette sekundis võrguühenduse draiveri tasandil. Võrdlusnäitajad, DDoS-kasutusjuhtumid, tööriistaketi seadistamine ja riistvaranõuded.
14 min lugemine - 27. mai 2026
Miks on oluline, et VPS oleks võimas ja mittemeterdatud
3 min lugemine - 9. mai 2025

Kas teil on küsimusi või vajate kohandatud lahendust?
Paindlikud võimalused
Ülemaailmne haare
Kohene kasutuselevõtt
Paindlikud võimalused
Ülemaailmne haare
Kohene kasutuselevõtt