bcache vs dm-cache: Srovnání ukládání do mezipaměti SSD v systému Linux

11 min čtení - 28. května 2026

hero section cover
Obsah
  • bcache vs dm-cache: SSD Caching na Linuxu
  • Jak funguje bcache
  • Jak funguje dm-cache
  • Režimy ukládání do mezipaměti
  • bcache vs dm-cache: Který použít
  • Závěr
Sdílet

Porovnání bcache a dm-cache pro ukládání do mezipaměti SSD v systému Linux. Nastavení, výkonnost, režimy ukládání do mezipaměti a kdy je třeba jednotlivé režimy použít.

bcache vs dm-cache: SSD Caching na Linuxu

SSD disky jsou rychlé, ale drahé na gigabajt. HDD disky jsou levné, ale pomalé. Linux nabízí dva nástroje na úrovni jádra, které je kombinují: bcache a dm-cache. Oba používají SSD jako transparentní cache před větším HDD diskem, liší se však architekturou, požadavky na nastavení a tím, kde podávají nejlepší výkon.


 

Jak funguje bcache

Bcache je součástí jádra Linuxu od verze 3.10 (červen 2013). Funguje na blokové úrovni, takže je kompatibilní s jakýmkoli souborovým systémem, který podporuje UUID.

Interně bcache používá hybridní strukturu B+ stromu a logu. Rozděluje úložiště SSD na bloky pevné velikosti (128 kB až 2 MB), zarovnané k hranicím mazacích bloků. To převádí náhodné zápisy na sekvenční, což snižuje amplifikaci zápisu a prodlužuje životnost SSD. Sekvenční I/O operace nad 4 MB automaticky obcházejí cache, čímž se SSD soustředí na vzorce náhodného přístupu, kde přináší největší přínos.

Bcache také monitoruje latenci SSD v reálném čase. Pokud latence čtení překročí 2 ms nebo latence zápisu překročí 20 ms, omezí provoz, aby se zařízení cache nestalo úzkým hrdlem.

Nastavení

Nainstalujte bcache-tools, poté naformátujte záložní zařízení a zařízení cache:

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

Ladění za běhu se provádí prostřednictvím /sys/block/bcache<N>/bcache/ rozhraní sysfs, kde můžete upravit režimy ukládání do mezipaměti, prahové hodnoty sekvenčního I/O a cílové hodnoty latence. U polí RAID použijte --data-offset pro přizpůsobení šířce pruhu.

Háček: nastavení je destruktivní. Obě zařízení musí být naformátována jako cíle bcache, takže nemůžete přidat bcache do existujícího souborového systému, aniž byste jej nejprve vymazali. Velikost zařízení bcache také nelze po vytvoření měnit.

Výkon

Konsolidace zápisu v bcache mu zajišťuje vysoké hodnoty náhodného zápisu. V benchmarkových testech dosáhl přibližně 18 500 IOPS náhodného zápisu 4K ve srovnání s 12 200 IOPS na samotném SSD. Průchodnost náhodného čtení může s výkonným hardwarem dosáhnout přibližně 1 000 000 IOPS.

Pro šifrované úlohy použijte vrstvu dm-crypt nad /dev/bcache<N> zařízení, místo abyste šifrovali jednotlivé podkladové disky. To obvykle přináší lepší výkon, protože bcache může i nadále konsolidovat zápisy před šifrováním.

Jak funguje dm-cache

dm-cache je cíl Device Mapper, který se nachází nad existujícím logickým svazkem. Používá tři podzařízení: původní zařízení (HDD), zařízení cache (SSD nebo NVMe) a zařízení metadat, které sleduje umístění bloků a stavy změn. Výchozí zásada cache je smq (Stochastic Multi-Queue), která identifikuje často používaná data ve smíšených pracovních zatíženích.

Hlavní výhoda: dm-cache lze vrstvit na živý svazek LVM bez zničení stávajících dat. Jeho velikost lze také měnit pomocí standardních příkazů LVM.

Nastavení s LVM

Praktickým způsobem konfigurace dm-cache je použití lvmcache. Ruční dmsetup konfigurace je možná, ale je náchylná k chybám a po restartu se nezachová. Přístup LVM:

  1. Vytvořte fyzické svazky (PV) na pevném disku i SSD.
  2. Přidejte oba PV do jedné skupiny svazků (VG).
  3. Vytvořte tři logické svazky: jeden pro záložní data (HDD), jeden pro mezipaměť (SSD) a jeden pro metadata (SSD).
  4. Spojte logické svazky pro mezipaměť a metadata do mezipaměťového fondu:
    lvconvert --type cache-pool --poolmetadata <meta_lv> <cache_lv>
  5. Připojte pool k originu:
    lvconvert --type cache --cachepool <pool_lv> <data_lv>

Jedna věc, na kterou je třeba dávat pozor: připojte souborový systém přes jeho /dev/mapper/ cestu, nikoli pomocí UUID. Připojení pomocí UUID může obejít vrstvu mezipaměti a přistupovat přímo k původnímu zařízení.

Výkon a paměť

V režimu writeback při Zipfově zátěži 90/10 (čtení/zápis) dosáhl dm-cache rychlosti čtení přibližně 193 MB/s a rychlosti zápisu zhruba 21 MB/s. V jiném benchmarku zvýšilo ukládání do mezipaměti 100 GB HDD s 10 GB NVMe oddílem náhodné IOPS zápisu ze 118 na 798.

Nevýhodou je paměť. Režie metadat dm-cache závisí na velikosti bloku. Blok o velikosti 512 bajtů může spotřebovat přes 16 GB RAM na 100 GB cache. Zvýšení na 4 096 bajtů sníží využití paměti na přibližně 2 GB na 100 GB. Zvolte velikost bloku blízkou vaší průměrné velikosti I/O (64 KB je rozumný výchozí bod) a ujistěte se, že je to násobek 64 sektorů (32 KB), v rozmezí 32 KB až 1 GB.

Metadata se vyprázdní při každém zápisu FLUSH nebo FUA, nebo alespoň jednou za sekundu. Pro vysokou dostupnost zrcadlete zařízení metadat, abyste se vyhnuli jedinému bodu selhání.

Režimy ukládání do mezipaměti

Jak bcache, tak dm-cache podporují stejné základní režimy ukládání do mezipaměti. Volba ovlivňuje jak výkon, tak bezpečnost dat.

RežimJak to fungujeRychlostRiziko
ZápisZápisy směřují současně na SSD i HDDPouze zvýšení rychlosti čteníNízká. HDD vždy obsahuje aktuální data.
Zápis zpětZápisy se nejprve ukládají na SSD, později se přenášejí na HDDZvýšení rychlosti čtení i zápisuVyšší. Selhání SSD před zapsáním znamená ztrátu dat.
Obcházení zápisu / PrůchodZápisy zcela obcházejí mezipaměťZrychlení pouze čtení, snížené opotřebení SSDNízká. HDD má vždy aktuální data.

Writethrough je bezpečné výchozí nastavení pro oba nástroje. Writeback je rychlejší, ale představuje reálné riziko: pokud SSD selže při uchovávání nevyprázdněných dat, tato data jsou ztracena a souborový systém může být poškozen. Používejte writeback pouze v případě, že máte redundantní SSD nebo můžete tolerovat příležitostnou ztrátu dat.

bcache vs dm-cache: Který použít

Faktorbcachedm-cache
Nastavení na stávajících datechDestruktivní (vyžaduje vymazání)Nedestruktivní (online konverze)
Změna velikostiNení podporovánoPodporováno prostřednictvím LVM
Optimalizace náhodného zápisuSilná (konsolidace sekvenčního zápisu)Standardní
Obcházení sekvenčního I/OAutomatické (>4 MB)Spravováno politikou smq
Zátěž pamětiNízká (strom B+)Vyšší (závisí na velikosti bloku)
MetadataNa zařízení cacheSamostatné zařízení, lze zrcadlit

Použijte bcache, pokud budujete nový systém od základů a chcete dosáhnout co nejlepšího náhodného I/O výkonu. Je to lepší volba pro úlohy s vysokým zatížením zápisem, jako jsou databáze a úložiště VM, a pro pole RAID 6, kde jsou penalizace za náhodný zápis značné.

Použijte dm-cache, pokud potřebujete přidat cache na server, který je již v provozu. Díky integraci s LVM můžete připojit cache bez výpadků nebo migrace dat. Je vhodnější pro úlohy s vysokým podílem čtení a pro prostředí, kde potřebujete flexibilitu pro změnu velikosti nebo rekonfiguraci úložiště za běhu.

Závěr

Oba nástroje řeší stejný problém, ale hodí se pro různé situace. Bcache je výkonnostní volbou pro nové sestavy. dm-cache je praktickou volbou pro stávající systémy LVM. Ať už si vyberete cokoli, začněte s režimem writethrough, dokud si nebudete jisti spolehlivostí SSD, a poté přepněte na writeback, pokud potřebujete výkon při zápisu.

Pokud potřebujete dedikované servery s konfigurací SSD caching, prozkoumejte možnosti dedikovaných serverů od FDC.

Blog

Tento týden byly představeny

Další články
XDP a eBPF pro zpracování paketů v systému Linux

XDP a eBPF pro zpracování paketů v systému Linux

Jak XDP a eBPF zpracovávají miliony paketů za sekundu na úrovni ovladače síťové karty. Srovnávací testy, případy použití DDoS, nastavení řetězce nástrojů a požadavky na hardware.

14 min čtení - 27. května 2026

Proč je důležité mít výkonný a neměřený VPS

3 min čtení - 9. května 2025

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení