bcache vs dm-cache: Linux SSD gyorsítótárazás összehasonlítva

11 perc olvasás - 2026. május 28.

hero section cover
Tartalomjegyzék
  • bcache vs dm-cache: SSD-gyorsítótár Linuxon
  • Hogyan működik a bcache
  • Hogyan működik a dm-cache
  • Caching módok
  • bcache vs dm-cache: Melyiket használjuk?
  • Következtetés
Megosztás

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 cache

A 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:

  1. Hozzon létre fizikai köteteket (PV-ket) mind a HDD-n, mind az SSD-n.
  2. Adja hozzá mindkét PV-t egy egyetlen kötetcsoporthoz (VG).
  3. 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).
  4. 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>
  5. 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ódHogyan működikSebességKockázat
Írás átvitelAz írási műveletek egyszerre történnek az SSD-re és a HDD-reCsak olvasási gyorsításAlacsony. A HDD-n mindig a legfrissebb adatok találhatók.
VisszaírásAz írások először az SSD-re kerülnek, majd később a HDD-reOlvasási és írási gyorsításMagasabb. Az SSD meghibásodása az átmásolás előtt adatvesztést jelent.
Íráskerülés / ÁtadásAz írások teljesen megkerülik a gyorsítótáratCsak az olvasás gyorsul, csökken az SSD kopásaAlacsony. 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őbcachedm-cache
Beállítás meglévő adatokonDestruktív (törlést igényel)Nem romboló (online konverzió)
ÁtméretezésNem támogatottLVM-en keresztül támogatott
Véletlenszerű írás optimalizálásaErős (szekvenciális írási konszolidáció)Alap
Szekvenciális I/O megkerülésAutomatikus (>4 MB)Smq-házirend által kezelt
Memória-terhelésAlacsony (B+ fa)Magasabb (a blokkmérettől függ)
MetadatokA gyorsítótár-eszközönKü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.

Blog

Kiemelt ezen a héten

További cikkek
XDP és eBPF Linux csomagfeldolgozáshoz

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.

További cikkek
background image

Kérdése van, vagy egyedi megoldásra van szüksége?

icon

Rugalmas lehetőségek

icon

Globális elérés

icon

Azonnali telepítés

icon

Rugalmas lehetőségek

icon

Globális elérés

icon

Azonnali telepítés