bcache vs dm-cache: Linux SSD gyorsítótárazás összehasonlítva
11 perc olvasás - 2026. május 28.

A bcache és a dm-cache összehasonlítása az SSD gyorsítótárazáshoz Linuxon. Beállítás, teljesítmény, gyorsítótárazási módok, és mikor érdemes használni őket.
bcache vs dm-cache: SSD-gyorsítótár Linuxon
Az SSD-k gyorsak, de gigabájtonként drágák. A HDD-k olcsók, de lassúak. A Linux két kernel szintű eszközt kínál ezek kombinálásához: a bcache-t és a dm-cache-t. Mindkettő SSD-t használ átlátszó gyorsítótárként egy nagyobb HDD előtt, de eltérnek egymástól az architektúrájuk, a beállítási követelményeik és a legjobb teljesítményüket nyújtó területek tekintetében.
Hogyan működik a bcache
A bcache a Linux kerneltől a 3.10-es verziótól (2013. június) kezdve része. A blokk rétegen működik, így bármely UUID-t támogató fájlrendszerrel kompatibilis.
Belsőleg a bcache hibrid B+ fa/napló struktúrát használ. Az SSD-tárolót fix méretű (128K–2MB) blokkokra osztja, amelyek az írási blokkhatárokhoz igazodnak. Ez a véletlenszerű írásokat szekvenciális írásokká alakítja, ami csökkenti az írási amplifikációt és meghosszabbítja az SSD élettartamát. A 4MB-nál nagyobb szekvenciális I/O műveletek automatikusan megkerülik a gyorsítótárat, így az SSD azokra a véletlenszerű hozzáférési mintákra koncentrálhat, ahol a legnagyobb értéket képviseli.
A bcache valós időben figyeli az SSD késleltetését is. Ha az olvasási késleltetés meghaladja a 2 ms-ot, vagy az írási késleltetés meghaladja a 20 ms-ot, akkor korlátozza a forgalmat, hogy megakadályozza a gyorsítótár-eszköz szűk keresztmetszetté válását.
Beállítás
Telepítse bcache-tools, majd formázza a háttér- és a gyorsítótár-eszközt:
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 cacheA futásidejű hangolás a /sys/block/bcache<N>/bcache/ sysfs felületen történik, ahol beállíthatja a gyorsítótár módokat, a szekvenciális I/O küszöbértékeket és a késleltetési célértékeket. RAID tömbök esetén használja a --data-offset a csíkszélességhez igazodva.
A bökkenő: a beállítás destruktív. Mindkét eszközt bcache célként kell formázni, így nem adhat hozzá bcache-t egy meglévő fájlrendszerhez anélkül, hogy előbb törölné azt. A bcache eszközök mérete a létrehozás után sem módosítható.
Teljesítmény
A bcache írási konszolidációja kiváló véletlenszerű írási teljesítményt biztosít. A benchmark tesztek során körülbelül 18 500 véletlenszerű 4K írási IOPS-t ért el, szemben a puszta SSD 12 200 IOPS-ével. A véletlenszerű olvasási átviteli sebesség megfelelő hardverrel körülbelül 1 000 000 IOPS-t érhet el.
Titkosított terhelések esetén a dm-crypt réteget a /dev/bcache<N> eszköz tetejére, ahelyett, hogy az alapul szolgáló meghajtókat egyenként titkosítaná. Ez általában jobb teljesítményt nyújt, mivel a bcache a titkosítás előtt még mindig összevonhatja az írási műveleteket.
Hogyan működik a dm-cache
A dm-cache egy Device Mapper cél, amely egy meglévő logikai kötet felett helyezkedik el. Három aleszközt használ: egy eredeti eszközt (HDD), egy gyorsítótár-eszközt (SSD vagy NVMe) és egy metaadat-eszközt, amely nyomon követi a blokkok helyét és a piszkos állapotokat. Az alapértelmezett gyorsítótár-szabályzat az smq (Stochastic Multi-Queue), amely vegyes terhelés esetén azonosítja a gyakran használt adatokat.
A legfőbb előny: a dm-cache rétegezhető egy aktív LVM-kötetre a meglévő adatok megsemmisítése nélkül. Méretét a szokásos LVM-parancsokkal is módosíthatja.
Beállítás LVM-mel
A dm-cache konfigurálásának praktikus módja a lvmcache. A kézi dmsetup beállítás lehetséges, de hibalehetőségekkel jár, és az újraindítás után nem marad meg. Az LVM-megközelítés:
- Hozzon létre fizikai köteteket (PV-ket) mind a HDD-n, mind az SSD-n.
- Adja hozzá mindkét PV-t egy egyetlen kötetcsoporthoz (VG).
- Hozzon létre három logikai kötetet: egyet az adatok tárolására (HDD), egyet a gyorsítótárra (SSD) és egyet a metaadatokra (SSD).
- Egyesítse a gyorsítótár és a metaadatok LV-it egy gyorsítótár-poolba:
lvconvert --type cache-pool --poolmetadata <meta_lv> <cache_lv> - Csatlakoztassa a poolt az eredetihez:
lvconvert --type cache --cachepool <pool_lv> <data_lv>
Egy dologra figyelni kell: a fájlrendszert a /dev/mapper/ , ne az UUID-jén keresztül. Az UUID-n keresztüli csatlakoztatás megkerülheti a gyorsítótár réteget, és közvetlenül az eredeti eszközt érinti.
Teljesítmény és memória
Írási módban, 90/10 olvasási/írási Zipf terhelés mellett a dm-cache körülbelül 193 MB/s olvasási és nagyjából 21 MB/s írási sebességet ért el. Egy másik tesztben egy 100 GB-os HDD 10 GB-os NVMe partícióval történő gyorsítótárazása 118-ról 798-ra növelte a véletlenszerű írási IOPS-t.
A kompromisszum a memória. A dm-cache metaadat-terhelése a blokkmérettől függ. Egy 512 bájtos blokkméret 100 GB cache-enként több mint 16 GB RAM-ot fogyaszt. Ha ezt 4096 bájtra növeljük, a memóriahasználat 100 GB-onként körülbelül 2 GB-ra csökken. Válasszon egy blokkméretet, amely közel áll az átlagos I/O-mérethez (64 KB egy ésszerű kiindulási pont), és győződjön meg arról, hogy az 64 szektor (32 KB) többszöröse, 32 KB és 1 GB közötti tartományban.
A metaadatok minden FLUSH vagy FUA íráskor, vagy legalább másodpercenként egyszer kiürülnek. A magas rendelkezésre állás érdekében tükrözze a metaadat-eszközt, hogy elkerülje az egyetlen hibaforrást.
Caching módok
A bcache és a dm-cache egyaránt támogatja ugyanazokat az alapvető gyorsítótár-módokat. A választás hatással van mind a teljesítményre, mind az adatbiztonságra.
| Mód | Hogyan működik | Sebesség | Kockázat |
|---|---|---|---|
| Írás átvitel | Az írási műveletek egyszerre történnek az SSD-re és a HDD-re | Csak olvasási gyorsítás | Alacsony. A HDD-n mindig a legfrissebb adatok találhatók. |
| Visszaírás | Az írások először az SSD-re kerülnek, majd később a HDD-re | Olvasási és írási gyorsítás | Magasabb. Az SSD meghibásodása az átmásolás előtt adatvesztést jelent. |
| Íráskerülés / Átadás | Az írások teljesen megkerülik a gyorsítótárat | Csak az olvasás gyorsul, csökken az SSD kopása | Alacsony. A HDD-n mindig a legfrissebb adatok találhatók. |
A Writethrough a biztonságos alapbeállítás mindkét eszköz esetében. A Writeback gyorsabb, de valódi kockázatot jelent: ha az SSD meghibásodik, miközben még nem öblített adatokat tárol, azok az adatok elvesznek, és a fájlrendszer megsérülhet. A Writeback-et csak akkor használja, ha redundáns SSD-kkel rendelkezik, vagy elviseli az alkalmi adatvesztést.
bcache vs dm-cache: Melyiket használjuk?
| Tényező | bcache | dm-cache |
|---|---|---|
| Beállítás meglévő adatokon | Destruktív (törlést igényel) | Nem romboló (online konverzió) |
| Átméretezés | Nem támogatott | LVM-en keresztül támogatott |
| Véletlenszerű írás optimalizálása | Erős (szekvenciális írási konszolidáció) | Alap |
| Szekvenciális I/O megkerülés | Automatikus (>4 MB) | Smq-házirend által kezelt |
| Memória-terhelés | Alacsony (B+ fa) | Magasabb (a blokkmérettől függ) |
| Metadatok | A gyorsítótár-eszközön | Külön eszköz, tükrözhető |
Használja a bcache-t, ha teljesen új rendszert épít, és a lehető legjobb véletlenszerű I/O teljesítményt szeretné elérni. Ez a jobb választás írásintenzív terhelések, például adatbázisok és virtuális gépek tárolása esetén, valamint olyan RAID 6 tömböknél, ahol a véletlenszerű írási veszteségek jelentősek.
Használja a dm-cache-t, ha már üzemelő szerverhez kell hozzáadnia gyorsítótárat. Az LVM-integrációja azt jelenti, hogy leállás vagy adatmigráció nélkül csatlakoztathat gyorsítótárat. Ez jobban megfelel az olvasásintenzív munkaterheléseknek és olyan környezeteknek, ahol rugalmasságra van szükség a tároló méretének vagy konfigurációjának azonnali megváltoztatásához.
Következtetés
Mindkét eszköz ugyanazt a problémát oldja meg, de különböző helyzetekhez alkalmasak. A Bcache a legjobb választás új rendszerekhez. A dm-cache a legpraktikusabb választás meglévő LVM-rendszerekhez. Bármelyiket is választja, kezdje a writethrough móddal, amíg meg nem győződött az SSD megbízhatóságáról, majd váltson writeback módra, ha írási teljesítményre van szüksége.
Ha dedikált szerverekre van szüksége SSD-gyorsítótár-konfigurációval, tekintse meg az FDC dedikált szerver-kínálatát.
XDP és eBPF Linux csomagfeldolgozáshoz
Hogyan dolgozza fel az XDP és az eBPF másodpercenként több millió csomagot a hálózati kártyavezérlő szintjén. Benchmarkok, DDoS felhasználási esetek, eszközlánc beállítása és hardverkövetelmények.
14 perc olvasás - 2026. május 27.
Miért fontos egy nagy teljesítményű és mérő nélküli VPS
3 perc olvasás - 2025. május 9.

Kérdése van, vagy egyedi megoldásra van szüksége?
Rugalmas lehetőségek
Globális elérés
Azonnali telepítés
Rugalmas lehetőségek
Globális elérés
Azonnali telepítés