Elosztott fájlrendszerek

Befejeződött

Most pedig sebességet váltunk, és áttérünk az elosztott fájlrendszerekre (DFS). Az elosztott fájlrendszer egy olyan fájlrendszer, amelynek fájljai számos fájlkiszolgáló között vannak elosztva.

Fontos tudni, hogy az elosztott fájlrendszerben az ügyfél egyetlen globális névteret lát, amely a fájlrendszer összes kiszolgálóján található összes fájlt magába foglalja – az alábbi ábrán látható módon.

A megosztott fájlrendszerhez hasonlóan az elosztott fájlrendszerben is szükség van a metaadatok kezelésére annak érdekében, hogy az ügyfelek az összes kiszolgálón megtalálhassák a keresett fájlokat és fájlblokkokat. A metaadat-kiszolgáló a megosztott fájlrendszerekhez hasonlóan lehet aszimmetrikus (különálló metaadat-kiszolgáló) vagy szimmetrikus (metaadat-kiszolgálók minden fájlkiszolgálón).

Distributed file system.

12. ábra: Elosztott fájlrendszer1

Az elosztott fájlrendszerek eredete és fejlődése

A DFS-ek közé tartozik például az Andrew fájlrendszer (AFS). Az AFS egy elosztott fájlrendszer, amely helyi és szélesebb körű hálózatokon egyaránt lehetővé teszi a gazdagépek (ügyfelek és kiszolgálók) összehangolását a fájlrendszer erőforrásainak megosztásához. Az AFS a kiszolgálók felügyeleti csoportjaiból, az úgynevezett cellákból áll, amelyek egy egységes fájlrendszerré állnak össze. A cellák egyesítésével egyetlen, globális névtér hozható létre. Az AFS-ben tárolt adatokhoz hozzáférő ügyfelek kimásolják a fájlt a helyi ügyfélre. Amíg a fájl nyitva van, addig helyileg módosítható. A fájl bezárását követően az AFS-ügyfél szinkronizálja a módosításokat a kiszolgálóval. Az AFS továbbfejlesztett változata a CODA elosztott fájlrendszer, amely főleg a szemantika és a replikáció megosztása terén nyújt hatékonyabb megoldásokat.

2003-ban a Google közzétette a GFS2nevű elosztott fájlrendszerének tervét, amely eleve úgy készült, hogy szokványos hardverekből álló nagy méretű fürtök használatával biztosítson hatékony és megbízható adatelérést. A GFS kialakítása lehetővé teszi nagy, általában 64MB méretű fájltömbök replikált tárolását. Bár a GFS-nek az AFS-hez hasonlóan csak egyetlen ügyfélnézete van, a felhasználó látja a tömbök elhelyezését, így lehetősége van beolvasni a legközelebbi hozzáférhető replikában található fájlokat. A GFS ihlette a Hadoop elosztott fájlrendszert (HDFS-t), amelyet részletesen a következő modulban ismertetünk.

Az elosztott fájlrendszerek kialakítási jellemzői

A DFS-ek általában több fájlmegosztási csomóponton vannak telepítve, és több felhasználó egyidőben használhatja őket. Ahogy a megosztott erőforrások esetében lenni szokott, a tervezésnek itt is számos fontos szempontja van:

  • Hibatűrés
  • Replikáció
  • Konzisztencia
  • Fájlmegosztás-szemantika

A megosztott és hálózatba kötött fájlrendszerek kialakításakor számolni kell a hibákkal. A hibatűrés egy rendszer arra vonatkozó képessége, hogy hatékonyan reagáljon a váratlan hardveres és szoftveres hibákra. Fájlrendszerek esetén a hibatűrés megköveteli, hogy a fájlrendszer zökkenőmentesen válaszoljon a lemez, csomópontra vagy hálózati hibáira. Megosztott és hálózatba kötött fájlrendszerek esetén a lemezhibák esélye a tömbben/készletben található lemezek számával együtt nő. A hardver szintjén a hibák a RAID valamilyen formájával kezelhetők.

A fájlrendszer szintjén a rendszer replikálhatja az elosztott rendszerek adatait, illetve megőrizheti ezeket az elosztott fájlrendszer egy vagy több csomópontján. A replikálás célja a következő:

  • A teljesítmény javítása (az ügyfél könnyebben találhatja meg a hozzá közel eső replikákat).
  • A rendszer méretezhetőségének növelése (az egyidejű adatkéréseket különböző kiszolgálók kezelhetik).
  • A megbízhatóság növelése (a replikák hibatűrést biztosíthatnak, és egy ellenőrzőösszeg-mechanizmussal gondoskodhatnak az adatok integritásáról).

A replikáció a DFS-ek elsődleges mechanizmusa a hibatűrésre. A DFS-ek kapacitását általában befolyásolja a replikációs tényező (a fenntartandó aktív replikák száma). Egy 15 TB-os nyers kapacitással konfigurált DFS például csak 5 TB-nyi adat tárolására képes, ha az összes adat háromszorosan van replikálva.

A replikáció konzisztenciabeli kihívást is jelent. Egy nagyméretű elosztott rendszerben a fájlfrissítéseket minden replikán alkalmazni kell. A DFS által támogatott konzisztenciaszint a fájlrendszerrel folytatott ügyfél-interakciókat is érinti.

Ha egy erőforrás (például egy fájl) több felhasználó között van megosztva, meg kell határozni a fájl olvasásának és írásának szemantikáját. Íme néhány, DFS-ben megvalósítható szemantika:

  • UNIX szemantika: A UNIX szemantikában az írási művelet után közvetlenül végrehajtott olvasási művelet mindig az imént írt értéket adja vissza. A UNIX a fájlrendszerek legszigorúbb fájlmegosztási szemantikáját alkalmazza. A UNIX-szemantika hatással lehet a teljesítményre, mivel bizonyos esetekben az olvasási és írási műveleteket szerializálni kell, hogy az összes fájlrendszerművelet konzisztens maradjon.
  • Munkamenet-szemantikák: A munkamenet-szemantikában a megnyitott fájlok módosításai kezdetben csak a fájlt módosító folyamat számára láthatók. A fájl bezárása után a módosítások láthatóvá válnak más folyamatok számára is. A munkamenet-szemantikák enyhítik a UNIX szemantikája által alkalmazott szigorú követelményeket, de felmerül az ütközéskezelés kérdése: Amikor két ügyfél egyszerre szerkeszti ugyanazt a fájlt, amelynek a munkamenetét tiszteletben tartják? Néhány módszer csak a fájlt legutóbb bezáró ügyfél módosításait tekinti érvényesnek, mások pedig nem szabják meg ennek módját.
  • Nem módosítható szemantikák: A nem módosítható szemantikában a fájlok csak egyszer írhatók egy fájlrendszerbe, és nem nyithatók meg újra további módosítás céljából. A fájlok törölhetők, vagy új fájlok hozhatók létre a régiek helyett. Ha két vagy több folyamat próbálja egyszerre lecserélni a fájlt, a fájlrendszer a „first in, first out” (FIFO) módszerrel, nem determinisztikus módon oldja fel az ütközést. A fájlrendszernek figyelembe kell vennie azt a lehetőséget is, hogy az egyik folyamat lecserélheti a fájlt, amíg egy másik olvassa. Ebben az esetben a fájlrendszernek gondoskodnia kell arról hogy az olvasó továbbra is a régi fájlt használja, vagy észlelnie kell a fájlcserét, és meg kell vonnia a fájlelérési engedélyt az olvasási folyamattól.
  • Atomi tranzakciók: Az atomi tranzakciós modellben az olvasási és írási műveletek sorozatának kezdete és vége olyan tranzakcióként van megjelölve, amelyben a fájlok módosításai atomi módon történnek (a módosítások vagy egészként vannak véglegesve, vagy egyáltalán nem véglegesítettek).

Hivatkozások

  1. Thomas Rivera (2012). The Evolution of File Systems SNIA Tutorial
  2. Sanjay Ghemawat, Howard Gobioff, és Shun-Tak Leung (2003). The Google File Systems 19th ACM Symposium on Operating Systems Principles

Tesztelje tudását

1.

A Hadoop elosztott fájlrendszer (HDFS) lehetővé teszi, hogy a fájlok csak egyszer jöjjenek létre a névtérben. A már megírt fájlok nem frissíthetők és bővíthetők. Milyen fájlmegosztási szemantikát követ a HDFS?

2.

A Dropbox egy felhőalapú szolgáltatás, amellyel a felhasználók a felhőben tárolhatnak és oszthatnak meg fájlokat. A felhasználók egy ügyfélalkalmazást telepíthetnek, amely automatikusan szinkronizálja a fájlokat a felhasználó helyi fájlrendszere és a felhő között. Amikor egy megosztott fájlt megnyitnak és módosítják, a Dropbox megvárja, míg a fájlt bezárják, mielőtt véglegesíti a módosításokat a felhőben. A fájlokat bármely ügyfél frissítheti. Milyen fájlmegosztási szemantikát követ a Dropbox?