dm -cache - dm-cache

dm-cache
Vývojáři Joe Thornber, Heinz Mauelshagen, Mike Snitzer a další
Napsáno C
Operační systém Linux
Typ Funkce jádra Linuxu
Licence GNU GPL
webová stránka jádro .org

dm-cache je složka (konkrétně cíl) z jádra systému Linux je zařízení mapovačem , který je rámec pro mapování bloková zařízení na vyšší úrovni bloková zařízení virtuální. Umožňuje jednomu nebo více rychlým úložným zařízením, jako jsou flash disky SSD, fungovat jako mezipaměť pro jedno nebo více pomalejších paměťových zařízení, jako jsou pevné disky (HDD); to efektivně vytváří hybridní svazky a poskytuje vylepšení výkonu sekundárního úložiště .

Návrh dm-cache vyžaduje tři fyzická úložná zařízení pro vytvoření jediného hybridního svazku; dm-cache používá tato paměťová zařízení k samostatnému ukládání skutečných dat, dat mezipaměti a požadovaných metadat . Konfigurovatelné provozní režimy a zásady mezipaměti, s posledně jmenovanými ve formě samostatných modulů, určují způsob, jakým se ukládání dat do mezipaměti skutečně provádí.

dm-cache je licencována podle podmínek GNU General Public License (GPL), přičemž primárními vývojáři jsou Joe Thornber, Heinz Mauelshagen a Mike Snitzer.

Přehled

dm-cache používá solid-state disky ( SSD ) jako další úroveň nepřímého přístupu k pevným diskům ( HDD ), čímž zlepšuje celkový výkon pomocí rychlých flash disků na bázi flash jako cache pro pomalejší mechanické pevné disky založené na rotačních magnetických médiích . Výsledkem je kombinace nákladné rychlosti disků SSD s úložnou kapacitou nabízenou pomalejšími, ale méně nákladnými pevnými disky. Navíc v případě sítí úložných oblastí (SAN) používaných v cloudových prostředích jako systémy sdílených úložišť pro virtuální počítače může dm-cache také zlepšit celkový výkon a snížit zatížení SAN poskytováním ukládání do mezipaměti dat pomocí místního úložiště na straně klienta.

dm-cache je implementována jako součást mapovače zařízení jádra Linuxu , což je rámec pro správu svazků, který umožňuje vytváření různých mapování mezi fyzickými a virtuálními blokovými zařízeními. Způsob vytváření mapování mezi zařízeními určuje, jak jsou virtuální bloky přeloženy do základních fyzických bloků, přičemž konkrétní typy překladu jsou označovány jako cíle . Jako cíl mapování dm-cache umožňuje, aby mezipaměť založená na SSD byla součástí vytvořeného zařízení virtuálního bloku, zatímco konfigurovatelné provozní režimy a zásady mezipaměti určují, jak interně funguje dm-cache. Provozní režim vybírá způsob, jakým jsou data synchronizována mezi pevným diskem a SSD, zatímco zásady mezipaměti, volitelné ze samostatných modulů, které implementují každou ze zásad, poskytují algoritmus pro určení, které bloky jsou podporovány (přesunuty z HDD to SSD), degradováno (přesunuto z SSD na HDD), vyčištěno atd.

Když je nakonfigurován pro použití multiqueue (MQ) nebo stochastické multiqueue (SMQ) mezipaměti politiku, přičemž druhý ventil je výchozí, dm-cache pou¾ije SSD pro ukládání dat spojených s prováděny namátkově čte a píše , vydělávat na téměř nulové hledat časy z SSD a vyhýbání se takovým I/O operacím, jako jsou typické překážky výkonu pevného disku. Data spojená se sekvenčním čtením a zápisem nejsou ukládána do mezipaměti na jednotkách SSD, aby se zabránilo nežádoucímu zneplatnění mezipaměti během takových operací; z hlediska výkonu je to výhodné, protože sekvenční I/O operace jsou díky své mechanické povaze vhodné pro pevné disky. Ukládání sekvenčních I/O do mezipaměti také pomáhá prodloužit životnost jednotek SSD používaných jako mezipaměti.

Dějiny

Další projekt dm-cache s podobnými cíli oznámil Eric Van Hensbergen a Ming Zhao v roce 2006 jako výsledek stáže v IBM .

Později Joe Thornber, Heinz Mauelshagen a Mike Snitzer poskytli vlastní implementaci konceptu, což mělo za následek začlenění dm-cache do linuxového jádra. dm-cache byla sloučena do hlavní řady jádra Linuxu ve verzi jádra 3.9, která byla vydána 28. dubna 2013.

Design

V dm-cache vyžaduje vytvoření mapovaného zařízení virtuálního bloku, které funguje jako hybridní svazek, tři fyzická úložná zařízení:

  • Původní zařízení  - poskytuje pomalé primární úložiště (obvykle pevný disk)
  • Zařízení s mezipamětí  - poskytuje rychlou mezipaměť (obvykle SSD)
  • Zařízení metadat  -zaznamenává umístění bloků a jejich špinavé vlajky, jakož i další interní data vyžadovaná zásadou mezipaměti, včetně počtu zásahů za blok; zařízení s metadaty nelze sdílet mezi více zařízeními s mezipamětí a doporučuje se zrcadlit

Interně odkazy dm-cache na každé z původních zařízení prostřednictvím řady bloků pevné velikosti; velikost těchto bloků, rovnající se velikosti rozsahu ukládání do mezipaměti , je konfigurovatelná pouze během vytváření hybridního svazku. Velikost rozsahu ukládání do mezipaměti se musí pohybovat mezi 32  KB a 1  GB a musí být násobkem 32 KB; typicky je velikost rozsahu ukládání do mezipaměti mezi 256 a 1024 KB. Volba rozsahů ukládání do mezipaměti větších než sektorů disku působí jako kompromis mezi velikostí metadat a možností plýtvání mezipamětí. Příliš malé rozsahy ukládání do mezipaměti zvyšují velikost metadat, a to jak na zařízení metadat, tak v paměti jádra, zatímco příliš velké rozsahy ukládání do mezipaměti zvyšují množství zbytečného prostoru v mezipaměti v důsledku ukládání do mezipaměti celých rozsahů, a to i v případě vysokého počtu přístupů pouze u některých jejich částí.

Provozní režimy podporované mezipamětí dm jsou zpětný zápis , což je výchozí, přepis a předávání . V provozním režimu zpětného zápisu přecházejí zápisy do bloků uložených v mezipaměti pouze do mezipaměti, zatímco bloky na zařízení původu jsou v metadatech označeny pouze jako špinavé. V provozním režimu pro zápis nejsou požadavky na zápis vráceny jako dokončené, dokud data nedosáhnou jak zařízení původu, tak mezipaměti, přičemž žádné čisté bloky nebudou označeny jako špinavé. V provozním režimu pass-through jsou všechna čtení prováděna přímo z původního zařízení, vyhýbá se mezipaměti, zatímco všechny zápisy směřují přímo do původního zařízení; jakékoli zásahy zápisu do mezipaměti také způsobí zneplatnění bloků uložených v mezipaměti. Režim pass-through umožňuje aktivaci hybridního svazku, pokud není známo, že je stav zařízení s mezipamětí konzistentní s původním zařízením.

Rychlost migrace dat, kterou dm-cache provádí v obou směrech (tj. Propagace dat a snížení úrovně), lze omezit na nakonfigurovanou rychlost, takže lze zachovat běžné I/O zařízení původu a mezipaměti. Vyřazení hybridního svazku z provozu nebo zmenšení mezipaměti zařízení vyžaduje použití zásady čističe , která účinně vymaže všechny bloky označené v metadatech jako špinavé z mezipaměti do původního zařízení.

Zásady mezipaměti

Od srpna 2015 a verze 4.2 jádra Linuxu jsou s hlavní linkou jádra Linuxu distribuovány následující tři zásady mezipaměti, z nichž dm-cache ve výchozím nastavení používá zásady stochastické více front :

více front (mq)
Zásada multiqueue (mq) má tři sady 16 front , přičemž první sada obsahuje položky čekající na mezipaměť a zbývající dvě sady položky, které již jsou v mezipaměti, přičemž druhá sada je oddělena, takže čisté a špinavé položky patří ke každé z nich. dvě sady. Stáří položek mezipaměti ve frontách je založeno na jejich přidruženém logickém čase. Výběr záznamů přecházejících do mezipaměti (tj. Povýšení) je založen na proměnných prahových hodnotách a výběr fronty je založen na počtu přístupů záznamu. Tato zásada má za cíl zohlednit různé náklady na vynechání mezipaměti a provést automatické úpravy různých vzorců zatížení.
Tato zásada interně sleduje sekvenční I/O operace, takže je lze směrovat kolem mezipaměti s různými konfigurovatelnými prahovými hodnotami pro rozlišení mezi náhodnými I/O a sekvenčními I/O operacemi. Výsledkem je, že velké souvislé I/O operace jsou ponechány k provedení původním zařízením, protože takové vzory přístupu k datům jsou vhodné pro pevné disky a protože zabraňují nežádoucímu zneplatnění mezipaměti.
stochastický víceřadý (smq)
Zásada stochastické více front (smq) funguje podobným způsobem jako politika více front , ale k provozu vyžaduje méně prostředků; zejména používá podstatně menší množství hlavní paměti ke sledování bloků uložených v mezipaměti. Nahrazuje také počítání přístupů z víceřádkové politiky frontou „hotspot“ a rozhoduje o podpoře a degradaci dat na základě nejméně nedávno využívaného (LRU). Výsledkem je, že tato zásada poskytuje lepší výkon ve srovnání se zásadou více front , automaticky se lépe přizpůsobuje různým vzorcům zatížení a eliminuje konfiguraci různých prahových hodnot.
Čistič
Zásady čističe zapisují zpět do zařízení původu všechny bloky, které jsou v metadatech označeny jako špinavé. Po dokončení této operace lze hybridní svazek vyřadit z provozu nebo zmenšit velikost mezipaměti.

Použijte s LVM

Obsahuje Logical Volume Managerlvmcache , který poskytuje wrapper pro dm-cacheintegraci s LVM.

Viz také

  • bcache  - mezipaměť blokové vrstvy jádra Linuxu, vyvinutá společností Kent Overstreet
  • Flashcache  - součást mezipaměti disku pro jádro Linuxu, původně vyvinutá společností Facebook
  • Hybridní pohon  -úložné zařízení, které kombinuje technologie ukládání na flash a spřádání magnetických médií
  • ReadyBoost  - softwarová součást pro ukládání do mezipaměti disku v operačních systémech Windows Vista a novějších
  • Smart Response Technology (SRT) - proprietární mechanismus ukládání do mezipaměti disků, vyvinutý společností Intel pro její čipsety
  • ZFS  -systém správy úložiště mezi operačními systémy, který má podobnou podporu integrovaného zařízení pro ukládání do mezipaměti (L2ARC)

Reference

externí odkazy