Flashcache

flashcache este un  modul kernel Linux care rulează pe stiva Device Mapper și vă permite să utilizați un dispozitiv bloc pentru a stoca în cache accesul la alte dispozitive bloc. Dezvoltat de Facebook și publicat în primăvara anului 2010 în condițiile licenței GPL . Inițial, a fost destinat să utilizeze unități SSD pentru a stoca în cache accesul la unități de disc mai lente (dar mult mai încăpătoare și mai ieftine) .

Eficiența utilizării flashcache-ului depinde de mulți factori, în general, tehnologia ajută în sarcinile a căror performanță este limitată de I/O, cu predominanța operațiunilor de citire, iar volumul setului de date de lucru este prea mare pentru a fi stocat în cache în RAM . Ca și în cazul oricărei tehnologii de stocare în cache, cu un număr mare de citiri „la rece” (necache), performanța poate fi mai mică decât cea a unui dispozitiv în cache; poate dura mult timp pentru a „încălzi” cache-ul [1] .

Spre deosebire de bcache și dm-cache incluse în kernel , flashcache trebuie să fie construit ca un modul separat. Furk of flashcache - proprietar EnhanceIO , nu folosește Device Mapper.

Cum funcționează

Flashcache folosește Device Mapper pentru a crea un dispozitiv bloc . Când este creat, alte două dispozitive îi sunt transmise (ambele folosind Device Mapper și nu). Unul dintre ele este „lent și mare”, al doilea este „mic și rapid” (de obicei SSD sau bloc de disc electronic ). Când modul de cache este activat, fiecare acces la dispozitivul flashcache este verificat pentru prezența în cache, iar dacă este prezent în cache, este returnat de acolo și nu citit de pe un disc lent. Dacă datele nu sunt găsite în cache, atunci sunt citite de pe disc lent și scrise în cache.

Există politici diferite pentru scriere - în modul writeback , datele sunt scrise mai întâi pe un dispozitiv de stocare în cache și apoi transferate de acolo pe un dispozitiv lent în fundal (de obicei în blocuri semnificativ mai mari și secvenţial, ceea ce crește performanța hard disk-urilor cu ritm lent). operațiuni aleatoare după ordine de mărime).acces, dar rate de acces secvenţial relativ ridicate). În plus, „datele fierbinți” (date utilizate frecvent) sunt adesea suprascrise, ceea ce duce la o situație în care datele sunt suprascrise de mai multe ori în cache, dar în realitate, o singură dată sunt stocate pe un dispozitiv lent. O serie de opțiuni de scriere leneșă sunt disponibile pentru personalizare.

În modul writethrough , datele sunt scrise mai întâi pe un dispozitiv lent și apoi în cache, în așteptarea că vor fi citite în viitorul apropiat). Există, de asemenea, un mod de scriere intermediar , când datele sunt scrise pe un dispozitiv lent și intră în cache numai după prima citire.

Cache-ul acceptă algoritmii de excludere a datelor FILO - și FIFO - , în plus, există posibilitatea de a reseta manual memoria cache. Cache-ul de write-back este persistent (persiste între reporniri) și poate fi încărcat. Modurile de scriere și modul de scriere nu sunt persistente, ceea ce înseamnă că memoria cache trebuie recreată la fiecare pornire.

Vezi și

Note

  1. Schwartz, Zaitsev, Tkachenko, 2012 , pp. 409-410.

Literatură

Link -uri