Paralelní virtuální souborový systém - Parallel Virtual File System
| Původní autoři | Clemson University , Argonne National Laboratory , Ohio Superpočítačové centrum |
|---|---|
| Vývojáři | Walt Ligon, Rob Ross, Phil Carns, Pete Wyckoff, Neil Miller, Rob Latham, Sam Lang, Brad Settlemyer |
| První vydání | 2003 |
| Stabilní uvolnění | 2.8.2 / 1. ledna 2010
|
| Napsáno | C |
| Operační systém | Linuxové jádro |
| Licence | LGPL |
| webová stránka | web |
Parallel Virtual File System ( PVFS ) je open-source systém paralelní souboru . Paralelní souborový systém je typ distribuovaného souborového systému, který distribuuje souborová data na více serverů a zajišťuje souběžný přístup více úloh paralelní aplikace. PVFS byl navržen pro použití ve velkých klastrových výpočtech . PVFS se zaměřuje na vysoce výkonný přístup k velkým datovým sadám. Skládá se ze serveru a klientské knihovny, které jsou psány výhradně z kódu na úrovni uživatele. Linux kernel module a proces PVFS-client, aby systém souborů, které mají být namontovány a používat standardní nástroje. Knihovna klientů poskytuje vysoce výkonný přístup prostřednictvím rozhraní pro předávání zpráv (MPI). PVFS je vyvíjen společně mezi The Parallel Architecture Research Laboratory na Clemson University a Mathematics and Computer Science Division v Argonne National Laboratory a Ohio Supercomputer Center . Vývoj PVFS byl financován z NASA Goddard Space Flight Center , programu DOE Office of Science Advanced Scientific Computing Research, programů NSF PACI a HECURA a dalších vládních a soukromých agentur. PVFS je nyní ve své nejnovější vývojové větvi známý jako OrangeFS .
Dějiny
PVFS byl poprvé vyvinut v roce 1993 Waltem Ligonem a Ericem Blumerem jako paralelní souborový systém pro Parallel Virtual Machine (PVM) jako součást grantu NASA ke studiu I / O vzorů paralelních programů. PVFS verze 0 byl založen na Vesta, paralelním souborovém systému vyvinutém v IBM TJ Watson Research Center . Od roku 1994 Rob Ross přepsal PVFS, aby používal TCP / IP, a odklonil se od mnoha původních návrhových bodů Vesta. PVFS verze 1 byla zacílena na klastr pracovních stanic DEC Alpha připojených k síti pomocí přepnutých FDDI . Stejně jako Vesta PVFS prokládal data napříč více servery a umožňoval I / O požadavky na základě zobrazení souboru, které popisovalo stridovaný přístupový vzor. Na rozdíl od Vesty pruhy a zobrazení nebyly závislé na běžné velikosti záznamu. Rossův výzkum se zaměřil na plánování I / O disku, když více klientů přistupovalo ke stejnému souboru. Předchozí výsledky ukázaly, že je vhodnější plánování podle nejlepšího možného vzoru přístupu k disku. Ross ukázal, že to záviselo na řadě faktorů, včetně relativní rychlosti sítě a podrobností zobrazení souboru. V některých případech bylo vhodnější plánování založené na síťovém provozu, takže dynamicky přizpůsobitelný plán poskytoval nejlepší celkový výkon.
Na konci roku 1994 se Ligon setkal s Thomasem Sterlingem a Johnem Dorbandem v Goddardově vesmírném letovém středisku (GSFC) a diskutovali o jejich plánech na vybudování prvního počítače Beowulf . Bylo dohodnuto, že PVFS bude portován na Linux a bude uveden na novém stroji. V příštích několika letech Ligon a Ross pracovali se skupinou GSFC, včetně Donalda Beckera, Dana Ridge a Erica Hendrickse. V roce 1997 požádala společnost CA Sterling na setkání klastrů v Pasadeně o vydání PVFS jako balíčku open source.
PVFS2
V roce 1999 Ligon navrhl vývoj nové verze PVFS původně nazvané PVFS2000 a později PVFS2. Design původně navrhli Ligon, Ross a Phil Carns. Ross dokončil doktorát v roce 2000 a přestěhoval se do Argonne National Laboratory a návrh a implementaci provedli Ligon, Carns, Dale Witchurch a Harish Ramachandran na Clemson University , Ross, Neil Miller a Rob Latham v Argonne National Laboratory a Pete Wyckoff v Ohio Supercomputer Center. Nový souborový systém byl vydán v roce 2003. Nový design obsahoval objektové servery, distribuovaná metadata, pohledy založené na MPI, podporu více typů sítí a softwarovou architekturu pro snadné experimentování a rozšiřitelnost.
PVFS verze 1 byla vyřazena v roce 2005. PVFS verze 2 je stále podporována Clemsonem a Argonne. Carns dokončil doktorát v roce 2006 a připojil se k Axicom, Inc., kde byl PVFS nasazen na několik tisíc uzlů pro těžbu dat. V roce 2008 se Carns přestěhoval do Argonne a nadále pracuje na PVFS spolu s Rossem, Lathamem a Samem Langem. Brad Settlemyer vyvinul v Clemsonu zrcadlový subsystém a později podrobnou simulaci PVFS použitou pro výzkum nového vývoje. Settlemyer je nyní v Oak Ridge National Laboratory . v roce 2007 Argonne začal portovat PVFS pro použití na IBM Blue Gene / P. V roce 2008 začala společnost Clemson vyvíjet rozšíření pro podporu velkých adresářů malých souborů, vylepšení zabezpečení a možnosti redundance. Protože mnoho z těchto cílů bylo v rozporu s vývojem pro Blue Gene, byla vytvořena druhá větev zdrojového stromu CVS s názvem „Orange“ a původní větev s názvem „Blue“. PVFS a OrangeFS se navzájem velmi pečlivě sledují, ale představují dvě různé skupiny požadavků uživatelů. Většina oprav a upgradů se aplikuje na obě větve. Od roku 2011 je OrangeFS hlavní vývojovou linií.
Funkce
V klastru používajícím PVFS jsou uzly označeny jako jeden nebo více z následujících: klient, datový server, server metadat. Datové servery uchovávají data souborů. Servery metadat obsahují metadata zahrnující stat-info, atributy a datafile-handles stejně jako položky adresáře. Klienti spouští aplikace využívající souborový systém zasíláním požadavků na servery přes síť.
Objektový design
PVFS má objektový design, což znamená, že všechny servery PVFS vyžadují zapojené objekty zvané datové prostory. Datový prostor lze použít k uložení dat souboru, metadat souboru, metadat adresáře, položek adresáře nebo symbolických odkazů. Každý datový prostor v systému souborů má jedinečný popisovač. Libovolný klient nebo server může vyhledat, který server obsahuje datový prostor na základě popisovače. Datový prostor má dvě složky: bytestream a sadu párů klíč / hodnota. Bytestream je uspořádaná posloupnost bajtů, která se obvykle používá k uchovávání dat souboru, a páry klíč / hodnota se obvykle používají k uchovávání metadat. Objektový design se stal typickým pro mnoho distribuovaných souborových systémů, včetně Luster , Panasas a pNFS .
Oddělení údajů a metadat
PVFS je navržen tak, aby klient mohl přistupovat k serveru pro metadata jednou, a poté mohl přistupovat k datovým serverům bez další interakce se servery metadat. Tím se ze systému odstraní kritické úzké místo a umožní se mnohem vyšší výkon.
Požadavky založené na MPI
Když klientský program požaduje data z PVFS, může poskytnout popis dat, který je založen na MPI_Datatypes. Toto zařízení umožňuje přímo implementovat zobrazení souborů MPI souborovým systémem. MPI_Datatypes mohou popisovat složité nesouvislé vzory dat. Server PVFS a datové kódy implementují datové toky, které efektivně přenášejí data mezi více servery a klienty.
Podpora více sítí
PVFS používá síťovou vrstvu s názvem BMI, která poskytuje neblokující rozhraní zpráv navržené speciálně pro systémy souborů. BMI má několik implementačních modulů pro řadu různých sítí používaných ve vysoce výkonných počítačích, včetně TCP / IP, Myrinet , Infiniband a Portals .
Bezstavové (bezzámkové) servery
Servery PVFS jsou navrženy tak, aby nesdílely žádný stav mezi sebou ani s klienty. Pokud dojde k chybě serveru, lze místo něj snadno restartovat. Aktualizace se provádějí bez použití zámků.
Implementace na uživatelské úrovni
Klienti a servery PVFS běží na uživatelské úrovni. Úpravy jádra nejsou nutné. K dispozici je volitelný modul jádra, který umožňuje připojení systému souborů PVFS jako jakýkoli jiný systém souborů, nebo programy mohou odkazovat přímo na uživatelské rozhraní, jako je MPI-IO nebo rozhraní podobné systému Posix . Tato funkce usnadňuje instalaci PVFS a je méně náchylná k selhání systému.
Rozhraní na úrovni systému
Rozhraní PVFS je navrženo pro integraci na úrovni systému. Má podobnosti s Linuxem VFS , což usnadňuje jeho implementaci jako připojitelný souborový systém, ale je stejně adaptabilní na uživatelská rozhraní, jako jsou rozhraní MPI-IO nebo Posix . Vystavuje mnoho funkcí základního systému souborů, aby je rozhraní mohla v případě potřeby využít.
Architektura
PVFS se skládá ze 4 hlavních komponent a řady obslužných programů. Komponenty jsou server PVFS2, pvfslib, PVFS-klient-jádro a modul jádra PVFS. Mezi nástroje patří nástroj pro správu karmy, nástroje (např. Pvfs-ping, pvfs-ls, pvfs-cp atd.), Které fungují přímo v systému souborů bez použití modulu jádra (primárně pro údržbu a testování). Dalším klíčovým bodem návrhu je protokol PVFS, který popisuje zprávy předávané mezi klientem a serverem, ačkoli to není přísně součást.
PVFS2-server
Server PVFS běží jako proces na uzlu označeném jako I / O uzel. I / O uzly jsou často vyhrazené uzly, ale mohou to být běžné uzly, které také spouští úlohy aplikací. Server PVFS obvykle běží jako root, ale může být spuštěn jako uživatel, pokud je to preferováno. Každý server může spravovat několik odlišných souborových systémů a je určen ke spuštění jako server metadat, datový server nebo obojí. Celá konfigurace je řízena konfiguračním souborem uvedeným na příkazovém řádku a všechny servery spravující daný systém souborů používají stejný konfigurační soubor. Server přijímá požadavky po síti, provádí požadavek, který může zahrnovat I / O disku a odpovídá zpět původnímu žadateli. Požadavky obvykle pocházejí z klientských uzlů se spuštěnými aplikačními úkoly, ale mohou pocházet z jiných serverů. Server se skládá z procesoru požadavků, pracovní vrstvy, Trove, BMI a vrstev toku.
Vyžádejte si procesor
Procesor požadavku se skládá z hlavní smyčky procesu serveru a řady stavových strojů. Stavové stroje jsou založeny na jednoduchém jazyce vyvinutém pro PVFS, který spravuje souběžnost v rámci serveru a klienta. Stavový automat se skládá z několika stavů, z nichž každý buď spouští akční funkci stavu C, nebo volá vnořený (podprogramový) stavový automat. V obou případech návratové kódy vyberte, do kterého státu přejdete další. Funkce státní akce obvykle odesílají úlohu prostřednictvím vrstvy úlohy, která provádí určitý druh I / O prostřednictvím Trove nebo BMI. Úlohy neblokují, takže jakmile je úloha vydána, provedení stavového stroje je odloženo, aby mohl jiný stavový stroj spustit obsluhu jiného požadavku. Když jsou úlohy dokončeny, hlavní smyčka restartuje přidružený stavový stroj. Procesor požadavku má stavové automaty pro každý z různých typů požadavků definovaných v protokolu požadavku PVFS a navíc několik interně používaných stavových automatů. Architektura stavového stroje umožňuje relativně snadné přidávání nových požadavků na server za účelem přidání funkcí nebo optimalizace pro konkrétní situace.
Pracovní vrstva
Vrstva Job poskytuje společné rozhraní pro odesílání úloh Trove, BMI a flow a hlášení jejich dokončení. Implementuje také plánovač požadavků jako neblokující úlohu, která zaznamenává, jaké druhy požadavků probíhají na kterých objektech a zabraňují chybám konzistence v důsledku současného provozu na stejných datech souboru.
Trove
Trove spravuje I / O k objektům uloženým na místním serveru. Trove pracuje na kolekcích datových prostorů. Kolekce má svůj vlastní nezávislý prostor popisovače a používá se k implementaci odlišných souborových systémů PVFS. Datový prostor je objekt PVFS a má svůj vlastní jedinečný popisovač (v rámci kolekce) a je uložen na jednom serveru. Popisovače jsou mapovány na servery prostřednictvím tabulky v konfiguračním souboru. Datový prostor se skládá ze dvou částí: bytestream a sada párů klíč / hodnota. Bytestream je posloupnost bajtů neurčité délky a používá se k ukládání dat souboru, obvykle do souboru v místním systému souborů. Páry klíč / hodnota se používají k ukládání metadat, atributů a položek adresáře. Trove má dobře definované rozhraní a lze jej implementovat různými způsoby. K dnešnímu dni byla jedinou implementací implementace Trove-dbfs, která ukládá bytestreams do souborů a párů klíč / hodnota v databázi Berkeley DB . Trove operace neblokují, API poskytuje funkce post ke čtení nebo zápisu různých komponent a funkcí ke kontrole nebo čekání na dokončení.
BMI
Teče
pvfslib
PVFS-klient-jádro
Modul jádra PVFS
Viz také
Reference
externí odkazy
- Oficiální webové stránky
- Orange File System - Větev paralelního virtuálního systému souborů
- Architektura paralelního systému souborů nové generace
- Video archiv