Rinnakkainen virtuaalinen tiedostojärjestelmä - Parallel Virtual File System

Rinnakkainen virtuaalinen tiedostojärjestelmä
Alkuperäinen kirjoittaja (t) Clemsonin yliopisto , Argonnen kansallinen laboratorio , Ohion supertietokonekeskus
Kehittäjä (t) Walt Ligon, Rob Ross, Phil Carns, Pete Wyckoff, Neil Miller, Rob Latham, Sam Lang, Brad Settlemyer
Alkuperäinen julkaisu 2003
Vakaa vapautus
2.8.2 / 1. tammikuuta 2010 ; 11 vuotta sitten  ( 2010-01-01 )
Kirjoitettu C
Käyttöjärjestelmä Linux-ydin
Lisenssi LGPL
Verkkosivusto verkko .arkisto .org / web / 20160701052501 / http: // www .pvfs .org /

Parallel Virtual File System ( PVFS ) on avoimen lähdekoodin rinnakkaista tiedostojärjestelmä . Rinnakkainen tiedostojärjestelmä on eräänlainen hajautettu tiedostojärjestelmä, joka jakaa tiedostotiedot useille palvelimille ja tarjoaa samanaikaisen pääsyn rinnakkaisen sovelluksen useilla tehtävillä. PVFS on suunniteltu käytettäväksi laajamittaisessa klusterilaskennassa . PVFS keskittyy suurten tietojoukkojen korkeaan suorituskykyyn. Se koostuu palvelinprosessista ja asiakaskirjastosta, jotka molemmat on kirjoitettu kokonaan käyttäjätason koodista. Linux ydinmoduulin ja pvfs-client prosessi sallivat tiedostojärjestelmän asennettava ja käyttää standardin apuohjelmia. Asiakaskirjasto tarjoaa korkean suorituskyvyn pääsyn MPI- viestin kautta . PVFS: ää kehitetään yhdessä Clemsonin yliopiston rinnakkaisarkkitehtuurin tutkimuslaboratorion , Argonnen kansallisen laboratorion matematiikan ja tietojenkäsittelytieteen osaston sekä Ohion supertietokonekeskuksen välillä . PVFS-kehitystä ovat rahoittaneet NASA Goddardin avaruuslentokeskus , DOE: n tieteellisen tietojenkäsittelytieteen tutkimusohjelma , NSF PACI- ja HECURA-ohjelmat sekä muut valtion ja yksityiset virastot. PVFS tunnetaan nyt OrangeFS: nä uusimmalla kehityshaarallaan.

Historia

Walt Ligon ja Eric Blumer kehittivät PVFS: n ensimmäisen kerran vuonna 1993 rinnakkaistiedostojärjestelmänä rinnakkaisvirtuaalikoneelle (PVM) osana NASA-apurahaa rinnakkaisten ohjelmien I / O-kuvioiden tutkimiseen. PVFS-versio 0 perustui IBM TJ Watson Research Centerissä kehitettyyn rinnakkaiseen tiedostojärjestelmään Vesta . Vuodesta 1994 lähtien Rob Ross kirjoitti PVFS: n uudelleen käyttämään TCP / IP: tä ja poikkesi monista alkuperäisistä Vesta-suunnittelupisteistä. PVFS-versio 1 kohdistettiin DEC Alpha -työasemien klusteriin, jotka oli verkotettu kytketyllä FDDI: llä . Kuten Vesta, PVFS raitasi dataa useilla palvelimilla ja salli I / O-pyynnöt tiedostonäkymän perusteella, joka kuvasi hajautettua käyttömallia. Toisin kuin Vesta, raidat ja näkymä eivät olleet riippuvaisia ​​yhteisestä levyn koosta. Rossin tutkimus keskittyi levyn I / O-aikatauluun, kun useat asiakkaat käyttivät samaa tiedostoa. Aikaisemmat tulokset olivat osoittaneet, että ajoitus parhaan mahdollisen levyn käyttömallin mukaan oli parempi. Ross osoitti, että tämä riippui useista tekijöistä, mukaan lukien verkon suhteellinen nopeus ja tiedostonäkymän yksityiskohdat. Joissakin tapauksissa verkkoliikenteeseen perustuva aikataulutus oli parempi, joten dynaamisesti mukautuva aikataulu tarjosi parhaan kokonaissuorituskyvyn.

Vuoden 1994 lopulla Ligon tapasi Thomas Sterlingin ja John Dorbandin Goddardin avaruuslentokeskuksessa (GSFC) ja keskusteli heidän suunnitelmistaan ​​rakentaa ensimmäinen Beowulf- tietokone. Sovittiin, että PVFS siirretään Linuxiin ja se näkyy uudessa koneessa. Seuraavien vuosien aikana Ligon ja Ross työskentelivät GSFC-ryhmän kanssa, mukaan lukien Donald Becker, Dan Ridge ja Eric Hendricks. Vuonna 1997 CA Sterling pyysi Pasadenassa klusterikokouksessa, että PVFS vapautetaan avoimen lähdekoodin pakettina.

PVFS2

Vuonna 1999 Ligon ehdotti uuden version kehittämistä PVFS: stä, joka alun perin kutsuttiin PVFS2000: ksi ja myöhemmin PVFS2: ksi. Suunnittelun ovat alun perin kehittäneet Ligon, Ross ja Phil Carns. Ross valmistui tohtoriksi vuonna 2000 ja muutti Argonnen kansalliseen laboratorioon . Suunnittelun ja toteutuksen suorittivat Ligon, Carns, Dale Witchurch ja Harish Ramachandran Clemsonin yliopistossa , Ross, Neil Miller ja Rob Latham Argonnen kansallisessa laboratoriossa sekä Pete Wyckoff Ohion supertietokonekeskuksessa. Uusi tiedostojärjestelmä julkaistiin vuonna 2003. Uusi muotoilu sisälsi objektipalvelimia, jaettuja metatietoja, MPI: hen perustuvia näkymiä, tuen useille verkkotyypeille ja ohjelmistoarkkitehtuurin helpottamaan kokeilua ja laajennettavuutta.

PVFS-versio 1 poistettiin käytöstä vuonna 2005. PVFS-versiota 2 tukevat edelleen Clemson ja Argonne. Carns valmistui tohtoriksi vuonna 2006 ja liittyi Axicom, Inc.:yn, jossa PVFS sijoitettiin useisiin tuhansiin solmuihin tiedonlouhintaa varten. Vuonna 2008 Carns muutti Argonneen ja jatkaa PVFS: n parissa Rossin, Lathamin ja Sam Langin kanssa. Brad Settlemyer kehitti peilausosajärjestelmän Clemsonissa ja myöhemmin yksityiskohtaisen simulaation PVFS: stä, jota käytettiin uuden kehityksen tutkimiseen. Settlemyer on nyt Oak Ridgen kansallisessa laboratoriossa . vuonna 2007 Argonne aloitti PVFS: n siirtämisen käytettäväksi IBM Blue Gene / P -laitteessa . Vuonna 2008 Clemson aloitti laajennusten kehittämisen suurten pienten tiedostojen hakemistojen, suojausparannusten ja redundanssivalmiuksien tukemiseksi. Koska monet näistä tavoitteista olivat ristiriidassa Blue Gene -kehityksen kanssa, CVS-lähdepuun toinen haara luotiin ja kutsuttiin nimellä "Orange" ja alkuperäinen haara kutsuttiin nimellä "Blue". PVFS ja OrangeFS seuraavat toisiaan hyvin tarkasti, mutta edustavat kahta erilaista käyttäjien vaatimusten ryhmää. Suurin osa korjauksista ja päivityksistä asennetaan molempiin haaroihin. Vuodesta 2011 OrangeFS on tärkein kehityslinja.

ominaisuudet

PVFS: ää käyttävässä klusterissa solmut määritetään yhdeksi tai useammaksi seuraavista: asiakas, datapalvelin, metatietopalvelin. Datapalvelimet pitävät tiedostotietoja. Metatietopalvelimilla on metatietoja, jotka sisältävät tilastotietoja, määritteitä ja datatiedostojen kahvat sekä hakemistomerkinnät. Asiakkaat käyttävät tiedostojärjestelmää hyödyntäviä sovelluksia lähettämällä pyyntöjä palvelimille verkon kautta.

Objektipohjainen suunnittelu

PVFS: llä on objektipohjainen suunnittelu, eli kaikki PVFS-palvelinpyynnöt sisälsivät objekteja, joita kutsutaan dataspaceiksi. Tietotilaa voidaan käyttää tiedostotietojen, tiedostojen metatietojen, hakemistojen metatietojen, hakemistomerkintöjen tai symbolisten linkkien pitämiseen. Jokaisella tiedostojärjestelmän tietotilalla on ainutlaatuinen kahva. Jokainen asiakas tai palvelin voi etsiä, mikä palvelin pitää tietotilaa kädensijan perusteella. Tietotilassa on kaksi komponenttia: tavutream ja joukko avain / arvo-pareja. Tavu-virta on järjestetty tavusarja, jota käytetään tyypillisesti tiedostotietojen säilyttämiseen, ja avain / arvo-pareja käytetään tyypillisesti metatietojen säilyttämiseen. Objektipohjaisesta suunnittelusta on tullut tyypillistä monille hajautetuille tiedostojärjestelmille, mukaan lukien Luster , Panasas ja pNFS .

Tietojen ja metatietojen erottaminen

PVFS on suunniteltu siten, että asiakas voi käyttää metatietopalvelinta kerran, ja käyttää sitten datapalvelimia ilman muita vuorovaikutuksia metatietopalvelimien kanssa. Tämä poistaa kriittisen pullonkaulan järjestelmästä ja mahdollistaa paljon paremman suorituskyvyn.

MPI-pohjaiset pyynnöt

Kun asiakasohjelma pyytää tietoja PVFS: ltä, se voi toimittaa kuvauksen MPI_Datatypes-pohjaisiin tietoihin. Tämän toiminnon avulla tiedostojärjestelmä voi toteuttaa MPI-tiedostot suoraan. MPI_Datatypes voi kuvata monimutkaisia, ei vierekkäisiä tietomalleja. PVFS-palvelin ja datakoodit toteuttavat tietovirrat, jotka siirtävät dataa tehokkaasti useiden palvelinten ja asiakkaiden välillä.

Useiden verkkojen tuki

PVFS käyttää BMI-nimistä verkkokerrosta, joka tarjoaa ei-estävän viestiliittymän, joka on suunniteltu erityisesti tiedostojärjestelmille. BMI: llä on useita toteutusmoduuleja useille eri verkoille, joita käytetään korkean suorituskyvyn tietojenkäsittelyssä, mukaan lukien TCP / IP, Myrinet , Infiniband ja Portals .

Tilattomat (lukittomat) palvelimet

PVFS-palvelimet on suunniteltu siten, että ne eivät jaa mitään tilaa keskenään tai asiakkaiden kanssa. Jos palvelin kaatuu, toinen voidaan helposti käynnistää uudelleen. Päivitykset suoritetaan ilman lukkoja.

Käyttäjätason toteutus

PVFS-asiakkaat ja palvelimet toimivat käyttäjätasolla. Ytimen muutoksia ei tarvita. On valinnainen ytimoduuli, jonka avulla PVFS-tiedostojärjestelmä voidaan asentaa kuten mikä tahansa muu tiedostojärjestelmä, tai ohjelmat voivat linkittää suoraan käyttöliittymään, kuten MPI-IO tai Posix-tyyppinen käyttöliittymä. Tämän ominaisuuden ansiosta PVFS on helppo asentaa ja vähemmän alttiina järjestelmän kaatumisille.

Järjestelmätason käyttöliittymä

PVFS-liitäntä on suunniteltu integroitumaan järjestelmätasolla. Siinä on yhtäläisyyksiä Linux VFS: n kanssa , mikä tekee siitä helpon toteuttaa asennettavana tiedostojärjestelmänä, mutta on yhtä mukautettavissa käyttäjätason rajapintoihin, kuten MPI-IO- tai Posix- tyyppisiin rajapintoihin. Se paljastaa monia taustalla olevan tiedostojärjestelmän ominaisuuksia, jotta rajapinnat voivat hyödyntää niitä haluttaessa.

Arkkitehtuuri

PVFS koostuu 4 pääkomponentista ja useista apuohjelmista. Komponentit ovat PVFS2-palvelin, pvfslib, PVFS-asiakasydin ja PVFS-ytimen moduuli. Apuohjelmat sisältävät karmanhallintatyökalun, apuohjelmat (esim. Pvfs-ping, pvfs-ls, pvfs-cp jne.), Jotka kaikki toimivat suoraan tiedostojärjestelmässä käyttämättä ytimen moduulia (ensisijaisesti ylläpitoon ja testaukseen). Toinen keskeinen suunnittelupiste on PVFS-protokolla, joka kuvaa asiakkaan ja palvelimen välillä välitetyt viestit, vaikka se ei olekaan tiukasti komponentti.

PVFS2-palvelin

PVFS-palvelin toimii prosessina solmulla, joka on nimetty I / O-solmuksi. I / O-solmut ovat usein omistettuja solmuja, mutta ne voivat olla tavallisia solmuja, jotka suorittavat myös sovellustehtäviä. PVFS-palvelin toimii yleensä pääkäyttäjänä, mutta voidaan käyttää käyttäjänä, jos se on edullista. Jokainen palvelin voi hallita useita erillisiä tiedostojärjestelmiä ja on nimetty toimimaan metatietopalvelimena, datapalvelimena tai molempina. Kaikkia kokoonpanoja ohjaa komentorivillä määritetty kokoonpanotiedosto, ja kaikki tietyn tiedostojärjestelmän hallinnassa olevat palvelimet käyttävät samaa kokoonpanotiedostoa. Palvelin vastaanottaa pyyntöjä verkon kautta, suorittaa pyynnön, johon saattaa liittyä levyn I / O, ja vastaa takaisin alkuperäiselle pyytäjälle. Pyynnöt tulevat yleensä asiakassolmuilta, jotka suorittavat sovellustehtäviä, mutta voivat tulla muilta palvelimilta. Palvelin koostuu pyynnön prosessorista, työtasosta, Trove-, BMI- ja vuokerroksista.

Pyydä prosessoria

Pyyntöprosessori koostuu palvelinprosessin pääpiiristä ja useista tilakoneista. Tilakoneet perustuvat PVFS: lle kehitettyyn yksinkertaiseen kieleen, joka hallitsee samanaikaisuutta palvelimen ja asiakkaan sisällä. Tilakone koostuu useista tiloista, joista kukin joko suorittaa C-tilan toimintofunktion tai kutsuu sisäkkäisen (aliohjelman) tilakoneen. Kummassakin tapauksessa palautuskoodit valitsevat seuraavaan tilaan. Valtion toimintotoiminnot lähettävät tyypillisesti työn työtason kautta, joka suorittaa jonkinlaisen I / O: n Troven tai BMI: n kautta. Työt ovat estämättömiä, joten kun työ on annettu, valtion koneen suorittamista lykätään, jotta toinen valtion kone voi suorittaa toisen pyynnön huollon. Kun työt ovat valmistuneet, pääsilmukka käynnistää liittyvän tilakoneen uudelleen. Pyyntöprosessorilla on tilakoneita kullekin PVFS-pyyntöprotokollassa määritetylle pyyntötyypille sekä useita sisäisesti käytettyjä sisäkkäisiä tilakoneita. Tilakonearkkitehtuurin avulla on suhteellisen helppoa lisätä uusia pyyntöjä palvelimelle ominaisuuksien lisäämiseksi tai optimoimiseksi tiettyihin tilanteisiin.

Työkerros

Job-kerros tarjoaa yhteisen käyttöliittymän Trove-, BMI- ja flow-töiden lähettämiseen ja niiden valmistumisen raportointiin. Se toteuttaa myös pyyntöaikatajan estämättömänä tehtävänä, joka tallentaa minkälaisia ​​pyyntöjä millä kohteilla on käynnissä, ja estää saman tiedostotietojen samanaikaisesta käytöstä johtuvat johdonmukaisuusvirheet.

Löytö

Trove hallitsee I / O: ta paikalliselle palvelimelle tallennettuihin objekteihin. Trove toimii tietotilojen kokoelmissa. Kokoelmalla on oma itsenäinen kahvatila, ja sitä käytetään erillisten PVFS-tiedostojärjestelmien toteuttamiseen. Tietotila on PVFS-objekti ja sillä on oma ainutlaatuinen (kokoelman sisällä) kahva ja se on tallennettu yhteen palvelimeen. Kahvat kartoitetaan palvelimille kokoonpanotiedoston taulukon kautta. Datatila koostuu kahdesta osasta: tavuvirta ja joukko avain / arvo-pareja. Tavuvirta on määrittelemättömän tavujen sarja, jota käytetään tiedostotietojen tallentamiseen, tyypillisesti paikallisen tiedostojärjestelmän tiedostoon. Avain / arvo-pareja käytetään metatietojen, määritteiden ja hakemistomerkintöjen tallentamiseen. Trovella on hyvin määritelty käyttöliittymä ja se voidaan toteuttaa monin eri tavoin. Tähän päivään mennessä ainoa toteutus on ollut Trove-dbfs-toteutus, joka tallentaa tavutiedostot tiedostoihin ja avain / arvo-parit Berkeley DB -tietokantaan. Trove-toiminnot eivät ole estäviä, API tarjoaa postitoiminnot lukemaan tai kirjoittamaan eri komponentit ja toiminnot tarkistettavaksi tai odottamaan valmistumista.

BMI

Virrat

pvfslib

PVFS-asiakas-ydin

PVFS-ytimen moduuli

Katso myös

Viitteet

Ulkoiset linkit