Szerző: Bodnár Ádám

2009. november 3. 14:59

Natív deduplikáció a ZFS-ben

Megérkezett a natív deduplikáció a Sun által fejlesztett ZFS-be, a fájlrendszerek Rolls-Royce-ába. Az adatok által igényelt tárkapacitást csökkentő technológiát ma még sokszor feláras extraként adják az adattárolással foglalkozó szoftverek és hardverek gyártói, a ZFS-ben azonban ingyen használható, ráadásul pofonegyszerűen.

Mi is az a deduplikáció?

Nagy mennyiségű adat tárolásánál, biztonsági mentéseknél jelentős megtakarítás érhető el azáltal, hogy minden adatot csak egyszer tárolunk el, a redundánsakat kiszűrjük és azokat eldobjuk, csak egy ellenőrző összeggel hivatkozunk rájuk. A deduplikálás történhet fájlok, blokkok vagy akár bájtok szintjén is. Természetesen ahogy csökken a granularitás, vagyis minél kisebb részletekben történik a deduplikálás, annyival nő a folyamat terhelése. Minden egyes egységhez (fájl, blokk vagy akár bájt) külön ellenőrző összeget kell rendelni, amely egyértelműen azonosítja annak tartalmát.

A fentiek miatt érdemes megfontolni, milyen szintű deduplikálásra van szükség. A fájlszintű jól működhet akkor, ha kis állományok vannak több példányban (pl. levelezőszerveren az e-mailek és csatolmányok), a blokkszintű megoldás viszont akkor előnyös, ha nagy állományaink vannak, amelyek sok azonos részt tartalmaznak, ilyenek például a virtuális gépek lemezképei, amelyek jellemzően sok közös adatot tartalmaznak, például a rajtuk futó operációs rendszer adatait. A ZFS blokkszintű deduplikációt alkalmaz, a blokkokat 256 bites ellenőrző összeg azonosítja, alapesetben SHA256 hash - írja blogjában Jeff Bonwick, aki fellow, azaz a lehető legmagasabb műszaki pozícióban van a Sunnál és a ZFS fejlesztéseinek irányítója.

Deduplikálni lehet folyamatosan, valós időben, vagy pedig utólag, a ZFS valós idejű deduplikációt kínál, vagyis a fájlrendszerre írt adatokból a szoftver azonnal kiszűri a redundáns blokkokat. A Sun azért döntött e megoldás mellett, mert az utóbbi időben a nagyvállalati környezetben általában az I/O bizonyult az alkalmazások szűk keresztmetszetének, nem pedig a processzorok teljesítménye, amelyet a deduplikálás igénybe vesz. Lehetőség van SHA256 helyett \"gyengébb\", fletcher4 ellenőrző összeg használatára is, amelynek kiszámítása gyorsabb így összességében kevéssé terheli a rendszert.

Mi kell hozzá?

ZFS-felhasználóknak nem kell mást tenniük, csak kiadniuk a zfs set dedup=on tank parancsot. A Sun szerint a deduplikálással járó extra terhelés kicsi, bár előfordulhatnak olyan esetek, amikor a hatása elhanyagolható, ha például olyan állományok vannak a fájlrendszeren, amelyek kevés azonos blokkot tartalmaznak, ekkor a deduplikáció nyilvánvalóan felesleges, Bizonyos esetekben, például a fent említett, virtuális gépeket tartalmazó lemez példájánál maradva jelentősen csökkenthető vele az igényelt tárterület. A ZFS-ben a deduplikáció gyakorlatilag könyvtárak szintjén be- és kikapcsolható, így a felhasználók a számukra leginkább megfelelő módon tudják alkalmazni, figyelembe véve az elérhető megtakarítást és az eljárással járó többlet CPU-terhelést.

Érdemes szem előtt tartani, hogy bár a ZFS esetében semmilyen korlátja nincs a deduplikációnak, vagyis akár petabájtos méretű fájlrendszereken is használható, ha a deduplikációs tábla nem fér el a memóriában, a teljesítményigénye látványosan megnövekszik az extra diszkterhelés miatt. A Sun azonban fontosnak tartja hangsúlyozni, hogy elvi korlát nincs, a memóriaproblémán pedig bővítéssel úrrá lehet lenni, legalábbis egy darabig biztosan.

A deduplikázióval felturbózott ZFS a Sun fejlesztőinek ígérete szerint nagyjából egy hónap múlva bukkan fel az OpenSolaris fejlesztői buildben. A Solaris 10-be várhatóan a következő nagy frissítéssel, a májusban esedékes update-tel kerülhet bele a technológia.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról