Tárolási absztrakciók

Befejeződött

Az adatok alapvetően bináris kódolással vannak tárolva egy objektumon (például mágneses vagy SSD-tárolón). A kihívást az adatok oly módon történő, szisztematikus rendszerezése jelenti, amellyel azok elérhetők a felhasználók és alkalmazások számára. Ezek a rendezési rendszerek absztrakciókat tesznek elérhetővé a felhasználók és alkalmazások számára fájlrendszerbeli fájlok vagy adatbázis-entitások formájában.

Various layers of abstraction of data.

6. ábra: Az adatok absztrakciójának különböző rétegei

Fontos tudni, hogy az alkalmazások az absztrakciók bármely rétegét használhatják, így a blokkolási szintet is (ami ritka nem rendszerprogramok esetén). A blokkeszközök nyújtják a legnagyobb teljesítményt, azonban ezek rendelkeznek a legkevesebb metaadattal, így ezzel a réteggel rendkívül nehéz programokat írni. Számos alkalmazás használ fájlrendszert, a több metaadatot igénylő alkalmazásokhoz pedig az adatbázisrendszerek jobb és hatékonyabb absztrakciókat kínálnak, amelyekkel kezelhetik az adatokat.

Blokkeszközök

Az előző oldalakon megismerkedett a különböző adat- és tárolóeszköz-típusokkal. Bár a jobb teljesítmény érdekében mindig találhatók adatok különböző gyorsítótár-memóriákban, az adatok végső soron egy állandó (más néven nem felejtő) helyre kerülnek, például mágneses vagy SSD-lemezekre. Mivel ezek az eszközök jellemzően nem magától értetődő architektúrával és elrendezéssel rendelkeznek, az operációs rendszer által használt felület egy általános blokkeszköz.

A blokk bájtok gyűjteménye. A blokk mérete azt jelzi, hogy hány bájt található a blokkban, például 512 bájt, 64 kiB vagy 1 MiB. A blokkok mérete a 2 hatványain alapul. A legkisebb felhasználható egység a blokk, így egy blokk minden bájtját egyszerre kell olvasni vagy írni. Ez hasonló ahhoz, ahogyan a CPU egyenként, (32 vagy 64 bites) szavakkal fér hozzá a memóriához. Ha a regiszterek vagy a főmemória egyetlen bájtnyi adatát szeretné módosítani a CPU-utasítás alatt, be kell olvasnia 8 bájtot (64 bites processzor esetén), módosítania kell 1 bájtot, majd ki kell írnia az új szót (1 új bájt + 7 eredeti bájt) a memóriába. A blokkok ezt a folyamatot könnyítik meg. Egy egyetlen bájtot módosító alkalmazáshoz így 512 bájt beolvasására, 1 bájt módosítására, majd 512 bájt visszaírására van szükség. Ez ritkán fordul elő, mivel az alkalmazások jellemzően több összefüggő blokkot olvasnak egyszerre, amelyek a memóriahierarchia egy részében már meglehetnek a gyorsítótárban.

A blokkeszközök hozzáférést nyújtanak az operációs rendszernek a blokkokhoz egy felületen keresztül. A blokkeszközök a gyakorlatban fizikai vagy virtuális, illetve helyi vagy távoli eszközök lehetnek. Alábbiakban bemutatjuk a blokkeszközök besorolását (példákkal együtt):

Helyi Távoli Tárolórendszer
Physical Belső: HDD, SSD, optikai, szalagos meghajtók. Külső: közvetlenül csatlakoztatott tároló (DAS), cserélhető meghajtók (USB, Firewire, eSATA) SAN (egy az egyhez típusú leképezéssel)
Virtuális Szoftveres blokkeszközök: virtuális meghajtók (VHD, VDI, VMDK, CDROM stb.), RAMDisk SAN (dinamikus kiépítés, deduplikálás). DRBD, eszközszolgáltatások letiltása: Amazon EBS

A fizikai tárolóeszközök egy-az-egyhez típusú leképezést használnak a fizikai tárblokkok és az operációs rendszer számára elérhető blokkok között. A virtuális eszközök elvonják az operációs rendszertől a fizikai blokkeszköz adatait, és egy virtualizált blokkeszközt mutatnak be az operációs rendszernek.

A helyi tároló a számítógéphez közvetlenül csatlakozó blokkeszközökre utal. Ezek lehetnek belső eszközök (SCSI- vagy ATA-felületen keresztül csatlakozva) vagy külső eszközök (USB-, Firewire-, vagy eSATA-kapcsolattal és hasonlókkal.). A távtároló olyan tároló, amely nincs közvetlenül csatlakoztatva a számítógéphez, és egy hálózaton keresztül érhető el (például Fibre Channel- vagy iSCSI-protokollal).

A számítógép helyi fizikai blokkeszközei közé tartoznak a leggyakoribb merevlemez-meghajtók, optikai meghajtók és a belső vagy külső felületen keresztül közvetlenül csatlakozó szalagos meghajtók. Egy számítógéphez külsőleg csatlakozó fizikai blokkeszköz legjobb példája egy olyan SAN, amely egy-az-egyhez kapcsolattal rendelkezik az SAN és az operációs rendszer által elért blokkok között.

A számítógépek helyi blokkeszközei olyan blokkeszközök, amelyek fájlként jelennek meg. Ilyen például a virtuálisgép-lemez (VMDK, a VMware virtuálislemez-formátuma), a virtuális lemezkép (VDI, a VirtualBox lemezformátuma) és a virtuális merevlemez (VHD).

A távolról elért virtuális blokkeszközök közé tartoznak az SAN-ek, amelyek nem rendelkeznek egy-az-egyhez típusú leképezéssel fizikailag lefoglalt blokkokkal. Az SAN-ek például dinamikusan kiépíthetnek egy 1 TB-s blokkeszközt egy kiszolgálón, az SAN-en valójában felhasznált lemezterület azonban a kiszolgáló által az aktuális pillanatban használt tárhely pontos mértéke. Ha egy operációs rendszer további adatot ír a blokkeszközre, az SAN blokklefoglalásai megnőnek. Az SAN-ek olyan funkciókkal rendelkezhetnek, mint a deduplikáció, amely azonosítja az azonos blokkokat, és csak egyetlen példányt tárol.

Fájlrendszerek

A tárhely egyik alapszintű absztrakciója a fájlok és a fájlrendszerek fogalma. A tárolók kontextusában a fájl a számítógépes programok számára elérhető információblokk. A fájlrendszer egy felhasználók és alkalmazások által használható absztrakció, amely tartalmazza a fájlok tárolásához, lekéréséhez és frissítéséhez szükséges adatstruktúrát. A fájlrendszer általában kezeli az adatokhoz és a metaadatokhoz való hozzáférést (a metaadatok a fájlokat ismertető további adatok és paraméterek). A fájlrendszerek rengeteg feladatot látnak el a tárterület-kezelésről az elnevezésen, a metaadat-kezelésen és a hozzáférés-vezérlésen át a rendszerben tárolt fájlok megbízhatóságának és integritásának megőrzéséig.

A fájlrendszerek számos típusba sorolhatók. A 7. ábra a fájlrendszerek a Storage Networking Industry Association (SNIA) által készített hierarchikus besorolását mutatja be.

File system taxonomy.

7. ábra: Fájlrendszer-osztályozás1

Az SNIA architektúrája és implementálása alapján a fájlrendszerek három kategóriába sorolhatók:

  • Helyi fájlrendszerek: Ezek olyan fájlrendszerek, amelyeket úgy terveztek, hogy egy vagy több lemezen működjenek, és hozzáférést biztosítanak az operációs rendszer egyetlen példányához a tárolóeszközök számára. Ilyen a FAT, az ext, a HFS és a ReiserFS.
  • Megosztott fájlrendszerek: Ezek olyan speciális célú fájlrendszerek, amelyek lehetővé teszik, hogy több lemezt egyesítsünk az elérhető blokkeszközök egy olyan csoportjába, amelyet több gép között oszthatnak meg egy hálózaton keresztül. Ilyen például az IBM GPFS és SanFS rendszere.
  • Hálózati fájlrendszerek: A hálózati fájlrendszerek magasabb szintű tárolási szolgáltatásokat kínálnak az alkalmazások számára (szemben a helyi és megosztott fájlrendszerek egyszerű blokkeszközeivel). Ilyen például a CIFS és az NFS. Ebben a modulban egy speciális hálózati fájlrendszert vizsgálunk meg, az elosztott fájlrendszert.

Databases

A tárolási rendszerek egy másik rétegét képviselik az adatbázisok. Az adatbázisok általában a fájlrendszereken futnak. Előfordulhatnak olyan esetek, amikor az adatbázisok közvetlenül blokkeszközökön futnak a teljesítmény javítása érdekében, ez azonban ritka. Ahogy ebben a modulban részletesen látni fogjuk, az adatbázisok adatok tárolására és lekérésére szolgálnak. Az adatbázisok nagyobb láthatósággal rendelkeznek az adatokra való tekintettel, így esetenként bonyolult lekérdezéseket és műveleteket végezhetnek el az adatokon.


Hivatkozások

  1. Thomas Rivera (2012). The Evolution of File Systems SNIA Tutorial

Tesztelje tudását

1.

Az alkalmazások a következő absztrakciókkal használhatnak tárolóeszközöket: