MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Paralelní souborové systémy pro Linux BAKALÁŘSKÁ PRÁCE
Libor Vaněk
Brno, leden 2007
Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vedoucí práce: Mgr. Lukáš Hejtmánek
-2-
Poděkování Děkuji Mgr. Lukášovi Hejtmánkovi za odborné konzultace a pomoc při instalaci a testování.
-3-
Shrnutí Tato bakalářská práce se zabývá zkoumáním problematiky clusterových souborových systémů. Motivací tohoto zkoumání je výběr nového souborového systému pro výzkumný projekt METACentrum. Součástí práce je výběr vhodných kandidátů, popis jejich instalace a konfigurace, provedení základního otestování jejich výkonu, vzájemné srovnání a doporučení budoucího postupu.
-4-
Klíčová slova File system, parallel, souborový systém, Linux, PVFS2, Lustre, OCFS2, cluster, výkon, METACentrum
-5-
Obsah 1.
Úvod ................................................................................................................................... 8 1.1. METACentrum........................................................................................................... 8 1.1.1. Projekt METACentrum ...................................................................................... 8 1.1.2. Stávající souborový systém................................................................................ 8 2. Úvod do paralelních souborových systémů ....................................................................... 9 2.1. Úvod do problematiky................................................................................................ 9 2.2. Specifika distribuovaných souborových systémů ...................................................... 9 2.2.1. Konzistence cache .............................................................................................. 9 2.2.2. Rozdílné verze.................................................................................................... 9 2.2.3. Výpadky ............................................................................................................. 9 2.3. Terminologie ............................................................................................................ 10 2.3.1. POSIX kompatibilní souborový systém ........................................................... 10 2.3.2. Síťový souborový systém................................................................................. 10 2.3.3. Globální souborový systém.............................................................................. 10 2.3.4. SAN souborový systém .................................................................................... 11 2.3.5. Symetrické souborové systémy........................................................................ 11 2.3.6. Asymetrické souborové systémy...................................................................... 12 2.3.7. Clusterové (distribuované) souborové systémy ............................................... 12 2.3.8. Paralelní souborové systémy............................................................................ 13 3. Popis zvolených souborových systémů............................................................................ 14 3.1. PVFS2 ...................................................................................................................... 14 3.1.1. Historie vzniku a vývoje .................................................................................. 14 3.1.2. Vlastnosti.......................................................................................................... 14 3.1.3. Instalace a konfigurace..................................................................................... 14 3.2. Lustre........................................................................................................................ 15 3.2.1. Historie vzniku a vývoje .................................................................................. 15 3.2.2. Vlastnosti.......................................................................................................... 16 3.2.3. Instalace a konfigurace..................................................................................... 16 3.3. OCFS2...................................................................................................................... 17 3.3.1. Historie vzniku a vývoje .................................................................................. 17 3.3.2. Vlastnosti.......................................................................................................... 18 4. Další varianty souborových systémů................................................................................ 19 4.1. GFS........................................................................................................................... 19 4.2. GPFS ........................................................................................................................ 19 4.3. CEPH........................................................................................................................ 19 5. Srovnání vybraných souborových systémů...................................................................... 20 5.1. Testovací prostředí ................................................................................................... 20 5.1.1. Konfigurace stroje w54-198............................................................................. 20 5.1.2. Konfigurace stroje w54-199............................................................................. 20 5.1.3. Konfigurace stroje w54-200............................................................................. 20 5.1.4. Konfigurace SW pro PVFS2 ............................................................................ 21 5.1.5. Konfigurace SW pro Lustre ............................................................................. 21 5.1.6. Testovací program IOZone .............................................................................. 21 5.2. Výsledky testů lokální disku .................................................................................... 22 5.2.1. Čtení ................................................................................................................. 22 5.2.2. Zápis ................................................................................................................. 23 5.2.3. Interpretace výsledků ....................................................................................... 23
-6-
5.3. Výsledky testů PVFS2 ............................................................................................. 24 5.3.1. Čtení ................................................................................................................. 24 5.3.2. Zápis ................................................................................................................. 25 5.3.3. Interpretace výsledků ....................................................................................... 25 5.4. Výsledky testů Lustre............................................................................................... 26 5.4.1. Čtení ................................................................................................................. 26 5.4.2. Zápis ................................................................................................................. 27 5.4.3. Interpretace výsledků ....................................................................................... 27 6. Závěr................................................................................................................................. 28 7. Použitá literatura .............................................................................................................. 29 8. Příloha .............................................................................................................................. 30 8.1. Kompletní výsledky testů lokální disku ................................................................... 30 8.2. Kompletní výsledky testů PVFS2 ............................................................................ 33 8.3. Kompletní výsledky testů Lustre.............................................................................. 35
-7-
1. Úvod V posledních několika letech se rozšiřují výpočetní clustery s OS Linux. To s sebou přináší řadu nových požadavků. Základním je souborový systém umožňující efektivně sdílet data mezi jednotlivými uzly clusteru. V rámci projektu METACentrum bylo vytvořeno několik clusterů, které v současnosti využívají souborový systém AFS. Tento souborový systém však již přestává postačovat novým požadavkům, a proto je nutné vybrat nový. Cílem této práce je provést úvod do problematiky clusterových souborových systémů a vybrat vhodné kandidáty pro METACentrum. Součástí je také popis instalace a konfigurace, provedení základního testu výkonu a srovnání vlastností těchto kandidátů.
1.1. 1.1.1.
METACentrum Projekt METACentrum
METACentrum (http://meta.cesnet.cz) je společný projekt Cesnetu, Masarykovy univerzity v Brně, Západočeské univerzity v Plzni a Univerzity Karlovy v Praze. Projekt zkoumá nové trendy v oblasti distribuovaných a clusterových aplikací a tvorbu výpočetních i storage gridů. Projekt obsahuje (prosinec 2006) 257 strojů s 620 CPU na platformách i386 a x86_64. Jako operační systém je použit Linux a distribuce Debian, SuSE a RedHat.
1.1.2.
Stávající souborový systém
Jako současný souborový systém využívá METACentrum AFS s podporou autorizace za pomocí Kerberos lístků. AFS podporuje rozšířené řízení přístupu k souborům (ACL) a rozšiřuje standardní UNIX model přístupových práv Read, Write a Execute o možnosti Lookup, Insert, Delete, Lock a Administrate. AFS nepodporuje zamykání souborů jinak než přes volání flock(). AFS v případě zápisu do souboru voláním write() provede změnu pouze v lokální cache a na AFS server je změna propagována až po provedení volání fsync() nebo close(). Toto chování může způsobovat problémy u aplikací, které s tímto chováním nepočítají a spoléhají na konzistentost dat po zápisu nebo vyžadují pokročilé zamykání souborů (či části souboru). Souborový systém AFS se taktéž chová nestabilně při výpadku jednoho nebo více uzlů, což je velmi nežádoucí chování vzhledem k charakteru clusteru, který je geograficky i organizačně rozdělen mezi několik měst a organizací. AFS má také výkonnostní problémy kvůli latenci způsobené touto strukturou.
-8-
2. Úvod do paralelních souborových systémů 2.1.
Úvod do problematiky
Tradiční souborové systémy vycházejí z předpokladu, že i při souběžné aktivitě několika procesů existuje jeden centrální bod (typicky jádro operačního systému), který jako jediný pracuje s úložným zařízením (diskem, diskovým polem). Tímto je kromě konzistence dat zajištěna i konzistence „pohledu“ na souborový systém (soubory, adresáře) a jeho metadata (vlastníci, přístupová práva, časy poslední změny apod.). Paralelní souborové systémy pracují s jiným paradigmatem. Slouží k tomu, aby s jedním jmenným prostorem mohlo současně pracovat několik (desítky, stovky až tisíce) klientů. Data také nejsou ukládána na jedno úložiště, ale jsou distribuována na několik datových serverů. Velmi často jsou odděleny data od svých metadat a na jejich správu slouží jiný server (metadata server). Ten se stará o jednotný pohled na souborový systém, správu zámků a distribuci samotných dat na datové servery. Metadata i datový server mohou běžet fyzicky na jednom stroji, nicméně bývá vhodné tyto role oddělit. Často se doporuč uje nasazovat pouze jeden hlavní a jeden záložní metadata server, zatímco datových serverů může být třeba několik desítek a mohou se často přidávat dle potřeby.
2.2.
Specifika distribuovaných souborových systémů
Distribuovaným souborovým systémem v této podkapitole rozumíme jakýkoliv jiný souborový systém, který je rozdělen dvou nebo více částí fyzicky běžících na oddělených strojích. Narozdíl od „tradičních“ systémů běžících v rámci jedné instance OS (jako např. ext2/3, FAT, NTFS) se musejí vypořádat s celou řadou problémů [4].
2.2.1.
Konzistence cache
I/O cache je v dnešním IT světe naprosto nepostradatelná. Bez ní by systémy dosahovaly zlomku výkonnosti. V systému existuje několik I/O cache na různých úrovních – od cache přímo na pevných discích, přes cache blokového zařízení, specifickou cache jednotlivých souborových systémů, cache VFS vrstvy až po cache jednotlivých aplikací. V případě, že všechny tyto komponenty jsou součástí jednoho logického stroje, je poměrně snadné zajistit její konzistenci. Ovšem v okamžiku, kdy jsou tyto cache odděleny přes např. počítačovou síť a k jednomu souborovému systému je připojeno několik klientů, je potřeba zajistit při změně dat z jednoho klienta update cache i na jiných klientech.
2.2.2.
Rozdílné verze
V okamžiku, kdy v rozsáhlejším clusteru běží současně několik datových serverů, správců metadat a desítky až tisíce klientů, není příliš žádoucí provést upgrade na novou verzi souborového systému na všech strojích v jeden okamžik. Je to z toho důvodu, že většinou je nutno přerušit aktuálně běžící procesy a stroj restartovat. Proto je více než žádoucí, aby bylo možné provozovat na různých strojích ve stejný okamžik různé verze souborového systému. Není pochopitelně možné požadovat plnou kompatibilitu pro rozdílné tzv. „major verze“, kdy často dochází ke změně binárního formátu (na disku nebo třeba síťového protokolu), nicméně u bezpečnostních a jiných updatech – tzv. „minor verze“ – je žádoucí mít možnost takto nasazovat.
2.2.3.
Výpadky
V případě souborových systémů pracujících pouze v jedné instanci OS je při kritickém výpadku souborového systému nebo diskového úložiště relativně akceptovatelný výpadek celého stroje a nutný restart. Oproti tomu u síťových distribuovaných souborových systému se s výpadky setkáváme mnohem častěji. Nemusí se jednat přímo o výpadek stroje nebo síťové konektivity, ale třeba jenom o nečekané nadměrné přetížení sítě vedoucí k výraznému zvýšení latence. V těchto případech je naprosto neakceptovatelné, aby výpadek jednoho klienta ovlivnil jiné klienty nebo dokonce server. Klient by měl být schopen práce také v případě výpadku serveru.
-9-
Negativním příkladem jsou problémy s NFS v3 v synchroním režimu, kde při restartu/nedostupnosti serveru dochází u některých OS ke kompletnímu pádu celého klientského systému. S tímto tématem souvisí i řešení fail-overu (zachování funkčnosti systému jako celku při výpadku jeho části) jednotlivých částí clusteru (diskového úložiště, diskového serveru a metadata serveru). Fail-over na úrovni diskového úložiště lze řešit volbou technologie RAID (nejlépe s „hotspare“ diskem) a redundantními datovými cestami mezi úložištěm a datovým serverm („multipath“). Nejčastějším řešením fail-over na úrovni datového (a metadata) serveru je pomocí připraveného sekundárního (tzv. „hot-backup“) záložního serveru připojeného ke stejnému datovému úložišti jako primární („produkční“) server, detekcí výpadku primárního serveru pomocí technologie „heart-beat“ a automatického či poloautomatického (nutnost manuálního odsouhlasení) převzetí IP adresy a provozu primárního serveru. Tato varianta řešení vyžaduje, aby klienti zopakovali poslední požadované operace, které nebyly z důvodu výpadku provedeny. V současnosti není znám distribuovaný souborový systém, který by umožňoval tzv. „replikaci session-state“ (replikaci kompletního vnitřního stavu souborového systému primarního serveru) a tedy možnost fail-overu bez nutnosti retransmise klientských požadavků. Namísto fail-over řešení se nejčastěji používá zrcadlení dat na fyzicky různé datové servery a úložiště – distribuovaných souborových systémů s touto vlastností je však jen několik.
2.3.
Terminologie
Pro ujasnění uvádím krátký přehled základních pojmů z oblasti souborových systémů [2] [3]
2.3.1.
POSIX kompatibilní souborový systém
Jedná se o souborový systém, který splňuje standard POSIX (IEEE 1003.1). Jedná se o základní sadu operací (API) pro práci se soubory, adresáři a metadaty. Díky tomuto standardu můžou aplikace pracovat na libovolném POSIX-kompatibilním souborovém systému. Některé souborové systémy poskytují vlastní sadu funkcí optimalizovaných pro danou oblast – např. Reiser4 obsahuje vlastní paradigma práce se soubory optimalizované pro větší rychlost a bezpečnost (http://www.namesys.com/v4/v4.html#api). Programy, využívající tato rozšíření jsou vázána na konkrétní souborový systém, avšak tato menší portabilita je akceptovatelná u specializovaných programů. Existují i některé úzce specializované souborové systémy, které nejsou POSIX kompatibilní – např. MogileFS (http://www.danga.com/mogilefs/), Files-11 (používaný v OS OpenVMS) nebo MVS (používaný v IBM mainframech). Tyto souborové systémy bývají typicky určeny pro ryze specifickou úlohu, většinou i pro ně existuje POSIX kompatibilní „nástavba“.
2.3.2.
Síťový souborový systém
Jedná se o souborový systém, který je rozdělen na část serverovou a klientskou. Typicky tyto části komunikují přes počítačovou síť. Uživatelská data jsou uložena centrálně na serveru a jsou přes síť zpřístupněna klientům. Vztah mezi serverem a klienty je tedy 1:N. Do této kategorie spadají souborové systémy jako NFS nebo CIFS. Server představuje „single point of failure“ a souborové systémy nijak neřeší dostupnost dat v případě jeho selhání (pouze se snaží zajistit, aby selhání či i jenom reboot z důvodu údržby nevedly k selhání klienta a minimalizovala se možná ztráta dat). Výhodou těchto souborových systému je relativní jednoduchost – není nutné řešit odděleně data a jejich metadata a problém zajištění konzistence je omezen na zajištění konzistence cache na jednotlivých klientech.
2.3.3.
Globální souborový systém
Termín globální souborový systém označuje systém, kde jsou data (či objekty) označeny jednoznačným jménem ve jmenném prostoru. Tento jmenný prostor je identický pro všechny uzly. Příkladem je třeba AFS, kde je možnost udržovat za pomocí tzv. „AFS cells“ globální jmenný prostor i mezi jednotlivými organizacemi. Za globální souborový systém můžeme považovat i WWW, kde je objekt jednoznačně identifikován svým URL ze kteréhokoliv připojeného počítače.
- 10 -
2.3.4.
SAN souborový systém
SAN souborový systém značí takový systém, v němž je jedno datové úložiště sdíleno mezi více uzlů v rámci SAN (Storage Area Network). Typicky jsou uzly s datovým úložištěm (např. RAID polem) propojeny pomocí protokolu SCSI over FC (Fibre Channel). Toto propojení je omezeno geograficky – standardně na jednu lokalitu, nicméně disková pole nejvyšší třídy umožňují budovat i geografické clustery. Vzhledem k velmi vysoké ceně se tato varianta používá jen velmi zřídka. Dnes však s nástupem protokolu iSCSI (SCSI over TCP/IP) je i tato kategorie souborových systémů finančně dostupnější a více rozšířená. Problematika SAN souborových systému je analogická problematice distribuovaných souborových systémů – v distribuovaných souborových systémech existuje jeden centrální server a několik klientů, v SAN souborových systémech je jedno centrální datové úložiště a několik serverů (či klientů – dle úhlu pohledu). Hlavní rozdíl ovšem je, že datové úložiště nemůže poskytovat žádné jiné služby kromě práce s bloky dat. Zjednodušeně – poskytuje pouze služby „načti blok dat“ nebo „zapiš blok dat“. Neřeší již problematiku zamykání jednotlivých bloků ani konzistenci cache mezi jednotlivými servery. Tuto funkcionalitu zajišťuje správce zámků („lock manager“). Je pochopitelně nutné řešit redundanci (fail-over) a škálovatelnost tohoto správce zámků. Zástupci této třídy souborových systémů jsou cXFS (fy SGI), GPFS (fy IBM), GFS (fy RedHat) nebo OCFS (fy Oracle). Tyto souborové systémy se v praxi kombinují s globálními nebo distribuovanými souborovými systémy (např. NFS klienti používající NFS servery s redundantním úložištěm na bázi SAN s GFS).
2.3.5.
Symetrické souborové systémy
Symetrickými souborovými systémy se rozumíme takové systémy, na jejichž (všech) klientských uzlech běží také správce metadat jako nedělitelná součást klientské části souborového systému. Jinými slovy – všechny uzly rozumí struktuře souborového systému na diskovém úložišti. Jedná se o velmi důležitou charakteristiku, protože nesprávně či neefektivně navržený nebo implementovaný správce metadat může mít podstatný dopad na výkon jednotlivých uzlů. Taktéž návrhem správce metadat je dán reálný maximální počet uzlů v clusteru. Nelze jednoduše navrhnout takového správce, který by škáloval od jednotek až po tisíce uzlů při zachování rozumné linearity růstu výkonu. Bylo by možné použít několik algoritmů a/nebo implementací pro různé počty uzlů, což by však přineslo velkou komplexnost řešení a tedy i chybovostí kódu. Mezi symetrické souborové systémy patří GFS, GPFS nebo CFS (fy HP).
- 11 -
Obrázek 1 - Schéma SAN souborového systému
2.3.6.
Asymetrické souborové systémy
Asymetrické souborové systémy mají narozdíl od symetrických v clustru vyhrazen jeden nebo více správců metadat, které spravují strukturu prvků souborového systému a i následnou strukturu na sdíleném úložišti. Typicky mohou, ale nemusí, tito správci běžet na stejném stroji jako datové úložiště nebo klient. Zástupci této kategorie jsou SanFS (fy IBM), Lustre, PVFS, NFS nebo CIFS.
m Sa ná ot da ta
Obrázek 2 - Schéma asymetrického souborového systému
2.3.7.
Clusterové (distribuované) souborové systémy
Termín clusterové či distribuované souborové systémy označuje ty systémy, které nemají jeden centrální server, ke kterému by se klienti napojovali (jako např. NFS). Obsahují cluster serverů, které
- 12 -
společně poskytují služby klientům. Z hlediska klientů je toto uspořádání naprosto transparentní a je na vnitřní implementaci souborového systému, jakým způsobem zajistí distribuci požadavků jednotlivým uzlům serverového clusteru. Hlavním důvodem pro používání těchto souborových systému je docílení velmi vysokého výkonu, který není limitován výkonem jednoho serveru. Jako příklad můžeme uvést souborový systém používaný v HP Tru64 clusterech nebo souborový systém ActiveScale (fy Panasas).
2.3.8.
Paralelní souborové systémy
Paralelní souborové systémy jsou používány v paralelních aplikacích – např. různé vědecké aplikace vyžadující MPI (Message Passing Interface) nebo aplikace z oblasti lékařského výzkumu. Tyto souborové systémy jsou navrženy a optimalizovány pro paralelní přístup k souboru (souborům) za pomocí standardních funkcí read() a write(). Často také podporují speciální přístup pro účely MPI. Příklady paralelních souborových systémů jsou GPFS (fy IBM), Lustre, ActiveScale (fy Pananas) nebo GFS (fy RedHat).
- 13 -
3. Popis zvolených souborových systémů 3.1. 3.1.1.
PVFS2 Historie vzniku a vývoje
PVFS2 – Paralel Virtual File System (www.pvfs.org) vznikl jako projekt „Parallel Architecture Research Laboratory at Clemson University“, „The Mathematics and Computer Science Division at Argonne National Laboratory“ a „NASA Goddard Space Flight Center“. První verze byla uvolněna v roce 1998. Při vývoji PVFS2 byl kladen důraz na: •
Snadnou instalaci
•
Uživatelskou kontrolu rozkládání („stripování“) souborů napříč uzly
•
Podporu pro MPI, konkrétně MPI-IO (knihovna ROMIO)
•
Kompatibilitu se stávajícími knihovnami
•
Využití již existujícího a běžně dostupného hardware
V současnosti je k dispozici verze PVFS2.
3.1.2.
Vlastnosti
Hlavní vlastnosti: •
Instalace bez nutnosti patchování jádra (jen kompilace dalšího modulu)
•
Modulární design
•
Podpora komunikace nejen přes TCP/IP, ale i přes rozhraní rozhraní Myrinet a Infiniband
•
Distribuovaná metadata
•
Bezestavové servery a klienty (není nutný subsystém pro správu zámků)
•
Podpora redundance dat i metadat
•
Těsná integrace s MPI-IO
•
Podpora platforem s různou endianitou
Mezi ne zcela běžné vlastnosti mezi clusterovými souborovými systémy patří právě podpora pro zajištění redundance dat, která umožňuje, aby mohl cluster pracovat i v případě výpadku některého z uzlů. Taktéž integrace MPI-IO umožňuje aplikacím používat PVFS pro práci se strukturovanými zprávami (narozdíl od např. nestrukturovaného přístupu UNIX sockets). PVFS2 také automaticky rozděluje soubor do bloků, které ukládá na různé I/O servery. Díky tomu lze vytvářet velmi velké soubory (větší než disková kapacita jednotlivých I/O serverů). Je tak také maximalizován výkon, který je pak (teoreticky) omezen na rychlost síťového připojení jednotlivých klientů,
3.1.3.
Instalace a konfigurace
Mezi velmi příjemné vlastnosti PVFS2 patří, že nevyžaduje žádnou modifikaci (patch) již nainstalovaného jádra Linuxu. Vyžaduje alespoň jádro verze 2.4.19, 2.6.0 či novější. Při instalaci jsem postupoval krok po kroku dle dokumentu „A Quick Start Guide to PVFS2“ (http://www.pvfs.org/pvfs2-quickstart.html). Systém obsahuje i nástroj (wizard) pro vygenerování konfiguračních souborů („pvfs2genconfig“). Tímto nástrojem lze velmi snadno vygenerovat konfiguraci pro celý storage cluster a následně již jen jednotlivé konfigurační soubory distribuovat na jednotlivé uzly.
- 14 -
Dle získaných zkušeností bych v případě problémů s nastartováním souborového systému doporučoval nejprve zkontrolovat, zda mají všechny uzly hostname identické s DNS jménem a správně funguje převod DNS jména na IP adresu (i reverzně). PVFS2 byl nakonfigurován příkazem: pvfs2-genconfig /etc/pvfs2-fs.conf /etc/pvfs2-server.conf Při průvodci konfigurací byly použity standardní hodnoty, kromě nastavení I/O a metadata serverů: Next you must list the hostnames of the machines that will act as I/O servers. Acceptable syntax is "node1, node2, ..." or "node{#-#,#,#}". * Enter hostnames [Default is localhost]: w54-198.fi.muni.cz, w54199.fi.muni.cz Now list the hostnames of the machines that will act as Metadata servers. This list may or may not overlap with the I/O server list. * Enter hostnames [Default is localhost]: w54-198.fi.muni.cz, w54199.fi.muni.cz Takto jsem vytvořil soubory: /etc/pvfs2-fs.conf, /etc/pvfs2-server.confw54-198.fi.muni.cz a /etc/pvfs2-server.conf-w54-199.fi.muni.cz. Soubor /etc/pvfs2-fs.conf byl zkopírován na stroje w54-198 a w54-199. Dále jsem zkopíroval soubor /etc/pvfs2-server.conf-w54-199.fi.muni.cz na stroj w54-199 jako soubor /etc/pvfs2-server.conf a soubor /etc/pvfs2-server.conf-w54199.fi.muni.cz na stroj w54-199 jako soubor /etc/pvfs2-server.conf. Pak jsem na všech strojích zavedl jaderný modul příkazem: insmod /lib/modules/`uname -r`/kernel/fs/pvfs2/pvfs2.ko Poté jsem na uzlech w54-198 a w54-199 spustil I/O a metadata servery příkazem: /usr/sbin/pvfs2-server /etc/pvfs2-fs.conf /etc/pvfs2-server.conf Na klientovi jsem spustil klientskou část PVFS2 příkazem: /usr/sbin/pvfs2-client –p /usr/sbin/pvfs2-client-core Nakonec již zbývalo jen připojit souborový systém příkazem: mount -t pvfs2 tcp://w54-198:3334/pvfs2-fs /mnt/pvfs2
3.2. 3.2.1.
Lustre Historie vzniku a vývoje
Souborový systém Lustre je vyvíjený od roku 2001 firmou Cluster File System Inc. Je navrhován a používán v masivně paralelních clusterech a superpočítačích. Systém podporuje až 15 000 klientů a přes 400 I/O serverů. V běžném provozu jsou instalace s více než 10 000 klienty, petabyty úložného místa a přenášející stovky GB/s. Lustre podporuje maximálně 2 instance metadata serverů (MDS), nicméně systém je navržen tak, aby i při tisících současně připojených klientech nebylo MDS úzkým místem systému – MDS zpracovává pouze požadavky na procházení souborového systému a po otevření souboru jsou veškeré další operace (zamykání, zápis, apod.) přeneseny na příslušné I/O servery, kde je soubor uložen.
- 15 -
3.2.2.
Vlastnosti
Hlavní vlastnosti: •
Podpora vysoce paralelních clusterů s tisíci klienty a superpočítačů s MPP (Massive Parallel Processor) jako např. Cray XT3, XD1, HP StorageWorks SFS
•
Podpora komunikace nejen přes TCP/IP, ale i přes rozhraní Myrinet a Infiniband, QsNet
•
Podpora pro „portály“ – stroje zajišťující komunikaci mezi např. gigabitovým ethernetem a QsNetem
•
Podpora ukládání souborů v módu RAID-0 (stripping) pro zvýšení výkonu, systém je navržen pro výkony v řádu stovek GB/sec
•
Systém je od začátku navržen tak, aby neobsahoval žádý „single point of failure“
•
Žádná speciální podpora MPI-I/O
Jedním z důvodů, proč Lustre vyžaduje patchování a rekompilaci jádra (namísto pouze kompilace dalšího modulu), je úprava VFS vrstvy pro tzv. „intent locking“. Tato úprava spočívá v tom, že při zamčení souboru/adresáře je spolu s požadavkem na uzamčení odeslána i informace o účelu („intent“). Příklad: uzamčení adresáře za účelem vytvoření nového souboru s jedinečným jménem. „Intent locking“ umožňuje provést tuto operaci v rámci jedné síťové transakce, zatímco standardně je nutné provést odděleně operace lookup, create, open a lock.. Tím je výrazně zvýšena síťová propust a škálovatelnost metadata serverů. Součástí projektu Lustre je i knihovna “LibLustre”. Jedná se o knihovnou, která by měla zpřístupnit souborový systém Lustre pro libovolný program na POSIX platformě (např. Windows). V současnosti knihovna podporuje pouze platformu Linux a bez podpory ACL. Jedná se velmi zajímavý koncept, jak využít vlastností systému Lustre pouze pro daný program bez nutnosti zásahu do operačního systému pod (teoreticky) libovolnou platformou. Pro běh ani instalaci knihovna nevyžaduje práva superuživatele („root“) a každá aplikace může běžet s vlastní instancí knihovny a/nebo konfigurace. Toto vše umožní zvýšit bezpečnost a stabilitu systému.
3.2.3.
Instalace a konfigurace
Lustre oficiálně podporuje RedHat Enterprise Linux 4 a SuSE Linux Enterprise Server 9. Pro tyto systémy jsou distribuovány jak binární tak zdrojové RPM balíky. Dále systém podporovuje jádro 2.6.12 s tím, že je nutné aplikovat příslušné patche a celé jádro překompilovat. Popis celého instalačního procesu lze najít v „Lustre HowTo“ (https://projects.clusterfs.com/lustre/LustreHowto) a „Kernel Patch Management“ (https://mail.clusterfs.com/wikis/lustre/KernelPatchManagement), celý proces patchování jádra je však poměrně zbytečně komplikovaný a nestandardní. Osvědčilo se mi postupat tak, že podle souboru „lustre/kernel_patches/series/2.6.12-vanilla.series” a „lustre/kernel_patches/series/ldiskfs-2.6.12-vanilla.series” jsem aplikoval jednotlivé patche z adresáře „lustre/kernel_patches/patches/”. Po opatchování jádra, jeho kompilaci a nabootovaní lze postupovat podle výše uvedeného HowTo. Lustre obsahuje nástroj („lmc“) pro tvorbu konfiguračního souboru (uloženého ve formátu XML). Tento XML soubor je pak distribuován na všechny uzly clusteru a na jednotlivých uzlech se za pomocí nástroje „lconf“ spustí příslušná role uzlu (MDS, I/O server a/nebo klient). Lustre podporuje tzv. patch-less klienty – tedy klienty, kde lze Lustre dokompilovat jako modul do stávajícího jádra bez nutnosti rebootu – pro jádra 2.6.15 a 2.6.16. Vzhledem k uváděnému nižšímu výkonu těchto klientů nebyla tato varianta testována. Lustre byl nakonfigurován tímto shell skriptem: #!/bin/sh rm -f config.xml
- 16 -
lmc -m config.xml tcp lmc -m config.xml tcp lmc -m config.xml tcp lmc -m config.xml tcp lmc -m config.xml
--add net --node w54-198 --nid w54-198 --nettype --add net --node w54-199 --nid w54-199 --nettype --add net --node w54-198 --nid w54-198 --nettype --add net --node w54-199 --nid w54-199 --nettype --add net --node client --nid '*' --nettype tcp
# Cofigure MDS lmc -m config.xml --add mds --node w54-198 --mds mds-test --fstype ext3 --dev /tmp/mds-test1 --size 50000 lmc -m config.xml --add mds --node w54-199 --mds mds-test --fstype ext3 --dev /tmp/mds-test2 --size 50000 # Configures OSTs lmc -m config.xml --add lov --lov lov-test --mds mds-test -stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0 lmc -m config.xml --add lov --lov lov-test --mds mds-test -stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0 lmc -m config.xml --add ost --node w54-198 --lov lov-test --ost ost1-test --fstype ext3 --dev /tmp/ost1-test --size 100000000 lmc -m config.xml --add ost --node w54-199 --lov lov-test --ost ost2-test --fstype ext3 --dev /tmp/ost2-test --size 100000000 # Configure client (this is a 'generic' client used for all client mounts) lmc -m config.xml --add mtpt --node client --path /mnt/lustre --mds mds-test --lov lov-test Následně jsem vygenerovaný soubor „config.xml“ zkopíroval na všechny uzly. Na každém uzlu byly zavedeny jaderné moduly příkazy: insmod /lib/modules/`uname -r`/kernel/net/lustre/lnet.ko insmod /lib/modules/`uname -r`/kernel/net/lustre/ksocklnd.ko insmod /lib/modules/`uname -r`/kernel/fs/lustre/lvfs.ko insmod /lib/modules/`uname -r`/kernel/fs/lustre/obdclass.ko Finálně byly jednotlivých strojích byly spuštěny tyto příkazy, kterými byl spuštěn celý cluster a na uzlu w54-200 souborový systém připojen do adresáře /mnt/lustre:
3.3. 3.3.1.
•
w54-198: lconf --reformat --node w54-198 config.xml
•
w54-199: lconf --reformat --node w54-199 config.xml
•
w54-200: lconf --reformat --node w54-200 config.xml
OCFS2 Historie vzniku a vývoje
Souborový systém OCFS2 (Oracle Cluster File System) firmy Oracle vznikl z původního systému OCFS. Ten byl určen pouze pro běh databáze Oracle RAC (Oracle Real Application Cluster) nad jinými než RAW zařízeními, nebyl POSIX kompatibilní a byl uvolněn v roce 2002. Od verze 2.6.16 je OCFS2 součástí standardní distribuce jádra [5]. OCFS2 je rozdělen do několika modulů:
- 17 -
3.3.2.
•
Kernel-space modulu, zajištujícího vlastní operace filesystému a práci s blokovými zařízeními
•
Node manageru, spravujícího a sledujícího stav jednotlivých uzlů v clusteru
•
Heart-beat modulu, sledujícího stav jednotlivých uzlů
•
TCP modulu, zajišťujícího vlastní komunikaci mezi jednotlivými uzly
•
DLM (Distributed Lock Manager) – distribuovaného správce zámků, který je velmi podobný správci zámků z operačního systému OpenVMS
Vlastnosti
Hlavní vlastnosti: •
Inspirace souborovým systémem ext3 (adresář je soubor, použití JBD pro žurnál)
•
Jednoduchá instalace (od jádra verze 2.6.16 součástí každé distribuce) a správa včetně grafické konzole
•
Optimalizovaný pro běh Oracle databáze
•
Možnost „Context Dependent Symbolic Links“ – symbolické odkazy, které se mění dle názvu („hostname“) stroje, vhodné např. pro odkazy na konfigurační soubory
•
Od verze 1.2 i podpora pro systémy s různou endianitou
•
Standardně podporováno maximálně 256 uzlů
OCFS2 je souborový systém určený pouze pro provoz nad jedním sdíleným blokovým zařízením (SAN souborový systém). Toto blokové zařízení může být sdíleno i přes např. LAN za pomocí NBD („Network Block Devices“) či iSCSI, nicméně OCFS2 neumožňuje rozložit jeden souborový systém na více blokových zařízení. Důsledkem toho je, že lze prakticky použít jen jeden I/O server. Teoreticky je možné použití více I/O serverů a jednoho hlavního uzlu, který by vytvořil nad těmito I/O servery SW RAID pole a poskytoval jedno blokové zařízení. Toto uspořádání by však znamenalo vytvoření „single point of failure“ a vzniklo by tím úzké místo z hlediska výkonu, což je pro zvažované nasazení v MetaCentru naprosto nepřijatelné. Z těchto důvodů nebyl souborový systém OCFS2 dále zkoumán a ani měřen jeho výkon.
- 18 -
4. Další varianty souborových systémů Níže uvádím přehled některých více rozšířených clusterových souborových systému pro Linux.
4.1.
GFS
GFS (Global File System – http://www.redhat.com/software/rha/gfs/) je clusterový souborový systém firmy RedHat. Od verze 2.6.19 je standardní součástí jádra. Jedná se o velmi propracovaný souborový systém s podobnou architekturou jako OCFS2 – jde o SAN souborový systém s distribuovaným správcem zámků [6]. Narozdíl od OCFS2 je součástí nástrojů GFS i CLVM (Cluster Logical Volume Manager) a GNBD (Global Network Block Device). CLVM je velmi podobný nástroj standardnímu Linuxovému LVM2, je však navržen tak, aby byl schopen pracovat nad sdíleným blokovým zařízením a všechny změny byly viditelné na všech uzlech clusteru. Avšak nelze pomocí něho snadno nastavit redundanci dat (zrcadlení), aby při výpadku jednoho I/O serveru nedošlo k výpadku celého clusteru. GNBD je upravený standardní Linuxový nástroj NBD optimalizovaný pro běh GFS. Podobně jako OCFS2 je GFS navržen pro běh nad jedním (či několika málo) sdílenými blokovými zařízeními a není pro účely MetaCentra vhodný.
4.2.
GPFS
GPFS (General Parallel File System – http://www-03.ibm.com/systems/clusters/software/gpfs.html) firmy IBM je pokročilý souborový systém pocházející z platformy AIX. GPFS může pracovat jak v čistě SAN režimu (všechny uzly mají přístup ke sdílenému blokovému zařízení), tak i v smíšenén režimu (ke sdílenému blokovému zařízení mají přístup pouze některé uzly clusteru) [7]. GPFS podporuje také HSM (Hiearchical Storage Management) a ILM (Information Lifecycle Management). HSM je metoda ukládání dat na různě rychlá (a drahá) disková pole dle požadavku na dostupnost a rychlost. ILM slouží k definování a řízení „životností“ a důležitosti jednotlivých informací (dokumentů). GPFS není volně dostupný souborový systém – jde o komerční produkt firmy IBM. Verze 2.3, která byla pro účely testování dostupná, podporuje pouze jádra řady 2.4. Aktuální verze GPFS 3.1 podporuje systémy RHEL (jádro 2.6.9), SLES 10 (jádro 2.6.16) a SLES 9 (jádro 2.6.5).
4.3.
CEPH
CEPH (http://ceph.sourceforge.net/) je nově vyvíjený paralelní souborový systém. Obsahuje stejné rozdělení rolí jako PVFS nebo Lustre – klienti, metadata servery a I/O servery. Projekt je zastřešován Kalifornskou univerzitou a v 22.10.2006 byla uveřejněna verze 1.0. Systém je od začátku navrhován až pro desítky tisíc klientů, s celkovým objemem dat v řádu PB, automatickou redundancí dat v I/O serverech („no single-point-of-failure“) a automatické ladění výkonu metadata serverů podle aktuálního typu zátěže (např. často používaný adresář je cachován na všech metadata serverech) [8]. V současnosti je souborový systém podporován pouze přes FUSE (File system in userspace) rozhraní jádra, což s sebou přináší dopad na výkon systému. Stávající verze taktéž neumožňuje obnovu po výpadku metadata serveru, nejsou podporovány všechny POSIX volání a ani ACL.
- 19 -
5. Srovnání vybraných souborových systémů 5.1.
Testovací prostředí
Testovací prostředí bylo složeno z 3 strojů, z nichž 2 stroje (w54-198, w54-199) byly v roli I/O a metadata serverů a jeden stroj (w54-200) jako testovací klient. Nejprve jsem pro referenci provedl měření lokální disku na testovacím klientovi a teprve následně měření souborových systémů PVFS2 a Lustre. Před každým měřením byly všechny stroje restartovány.
5.1.1.
Konfigurace stroje w54-198 Hardware: •
CPU: 1x Dual Core AMD Opteron 280
•
RAM: 2 GB
•
Disk: 1x WD 320 GB SATA, 8 MB cache
•
Chipset: AMD-8131
•
Síťová karta: Broadcom BCM5703X
Software:
5.1.2.
•
Debian unstable/testing v 32 bitovém režimu (i386)
•
GCC verze 4.0.4
•
Lokální souborový systém ext3.
Konfigurace stroje w54-199 Hardware: •
CPU: 1x Dual Core AMD Opteron 250
•
RAM: 2 GB
•
Disk: 1x WD 320 GB SATA, 8 MB cache
•
Chipset: AMD-8131
•
Síťová karta: Broadcom BCM5703X
Software:
5.1.3.
•
Ubuntu 6.10 v 32 bitovém režimu (i386)
•
GCC verze 4.1.2
•
Lokální souborový systém ext3.
Konfigurace stroje w54-200 Hardware: •
CPU: 2x Dual Core AMD Opteron 285
•
RAM: 2 GB
•
Disk: 2x WD 160 GB SATA, 16 MB cache
•
Chipset: nVidia CK804
•
Síťová karta: on-board nVidia
Software: •
Ubuntu 6.10 v 64 bitovém režimu (x86_64)
•
GCC verze 4.1.2
- 20 -
•
5.1.4.
Lokální souborový systém ext3.
Konfigurace SW pro PVFS2
Pro otestování PVFS2 jsem použil verzi 2.6.0 a na jádro 2.6.17 na node1 a node2. Na w54-200 byla použita stejná verze PVFS2 a jádro 2.6.18.3. PVFS2 jsem zkompiloval se standardními parametry.
5.1.5.
Konfigurace SW pro Lustre
Pro otestování Lustre jsem použil verzi 1.4.7.3 a jádro 2.6.12.6 na všech uzlech. Lustre jsem zkompiloval se standardními parametry. Pro použití jádra verze 2.6.12.6 na uzlech s OS Ubuntu bylo nutné nahradit init program „upstart“ za standardní SysVinit příkazem „apt-get install sysvinit“. Tato verze jádra nepodporuje ještě všechny vlastnosti, které „upstart“ vyžaduje, proto systém korektně nenastartuje.
5.1.6.
Testovací program IOZone
Pro účely testování rychlosti clusteru jsem použil testovací program IOZone (http://iozone.org/) ve verzi 3.221 zkompilovaný pro 64-bitový mód. Tento program testuje tzv. serializané I/O operace – po každé I/O operaci (např. čtení bloku) čeká na její dokončení a až poté provede další. Test byl spouštěn příkazem: /usr/bin/iozone -A -b result -g 2g -M -n 1m –R > result2 Zvolené parametry: •
-A – proveď kompletní sadu testů
•
-b result – ulož výsledky do souboru result pro následné zpracování v programu Excel
•
-g 2g – nastav maximální velikost testovacího souboru na 2 GB
•
-M – vlož do výsledku jméno testovacího stroje
•
-n 1m – nastav nejmenší velikost testovacího souboru na 1 MB
•
-R – vypiš na standardní výstup výsledky testů pro následné zpracování
- 21 -
Čtení Rychlost čtení lokálního disku
2500000
2000000
1500000 Propustnost kB/s 1000000
1
500000 4 16 0
2048
4096
1024
256
Velikost bloku kB
1024 512
64
128
16
Velikost souboru MB
256 32
4
8
64
Rychlost opětovného čtení lokálního disku
3000000
2500000
2000000
Propustnost 1500000 kB/s
1000000 1 500000
4 16
0
- 22 -
2048
4096
1024
256
1024 512
Velikost bloku kB
128
32
256 64
16
64 4
5.2.1.
Výsledky testů lokální disku
8
5.2.
Velikost souboru MB
5.2.2.
Zápis Rychlost zápisu lokálního disku
450000 400000 350000 300000 250000 200000
Propustnost kB/s
150000 100000 50000 0
4 4
2
1
16
2048
512
4096
1024
64
128
1024
256
16
256 Velikost bloku kB
32
8
64
Velikost souboru MB
Rychlost opětovného zápisu lokálního disku
1200000
1000000
800000
600000
Propustnost kB/s
400000
200000
0
4 4
2
1
16
2048
5.2.3.
512
4096
1024
64
128
1024
256
16
256 Velikost bloku kB
32
8
64
Velikost souboru MB
Interpretace výsledků
Výsledky ukazují na stabilní výkon celkového systému. V testu čtení je zřejmý, že data byla čtena z cache v lokální paměti (necelé 2 GB, levá část grafu) a až při jejím vyčerpání je úzkým hrdlem samotná SATA sběrnice (150 MB/s, pravá část grafu). Při testu opětovného čtení je vidět vliv cache na samotných CPU.
- 23 -
Je zřetelné, že při testu zápisu se data uchovávala v cache lokální paměti. Z testu opakovaného zápisu se ukazuje, že úzkým místem je zde rychlost zápisu dat na samotný disk. V tomto testu se taktéž projevuje vliv 8 MB cache umístěných přímo na disku.
Čtení Rychlost čtení PVFS2
120000
100000
80000
Propustnost kB/s
60000
40000 1 20000
4 16
0
4096
2048
1024 512
Velikost bloku kB
1024
256
64
128
16
Velikost souboru MB
256 32
4
8
64
Rychlost opětovného čtení PVFS2
120000
100000
80000
60000
40000 1 20000
4 16
0
- 24 -
4096
2048
512
1024 1024
Velikost bloku kB
256
64
256 128
16
64 32
Propustnost kB/s
4
5.3.1.
Výsledky testů PVFS2
8
5.3.
Velikost souboru MB
5.3.2.
Zápis Rychlost zápisu PVFS2
120000
100000
80000 Propustnost kB/s
60000 1 40000
4 16
20000 64 0
Velikost souboru MB
4096
1024
Velikost bloku kB
2048
512
128
1024 256
64
16
32
4
8
256
Rychlost opětovného zápisu PVFS2
120000
100000
80000 Propustnost kB/s
60000 1 40000 4 16 20000 64 0
4096
1024
2048
512
128
Velikost bloku kB
5.3.3.
Velikost souboru MB
1024 256
64
16
32
4
8
256
Interpretace výsledků
Nestabilní výkon při testu čtení i při opakovaném čtení u velkých naznačuje možné problémy PVFS2 při čtení větších bloků dat. Ukazuje se tak slabá stránka PVFS – serializované I/O operace [1]. Test zápisu ukazuje stabilní výkon a škálovatelnost, nicméně i u něj nedochází k saturaci síťové přenosové kapacity a úzkým místem se jeví souborový systém.
- 25 -
Čtení Rychlost čtení Lustre
1600000
1400000 1200000 1000000 Propustnost kB/s
800000 600000 400000 1 4
200000 16 0
2048
4096
1024
256
Velikost bloku kB
1024 512
64
128
16
Velikost souboru MB
256 32
4
8
64
Rychlost opětovného čtení Lustre
1600000
1400000 1200000 1000000 800000 600000 400000 1 4
200000 16 0
- 26 -
2048
4096
256
1024 1024
Velikost bloku kB
512
64
256 128
16
64 32
Propustnost kB/s
4
5.4.1.
Výsledky testů Lustre
8
5.4.
Velikost souboru MB
5.4.2.
Zápis Rychlost zápisu Lustre
700000
600000
500000
400000 Propustnost kB/s 300000 200000 100000 0
4 4
2
1
16
2048
512
4096
1024
64
128
1024
256
16
256 Velikost bloku kB
32
8
64
Velikost souboru MB
Rychlost opětovného zápisu Lustre
800000 700000 600000 500000 400000
Propustnost kB/s
300000 200000 100000 0
4 4
2
1
16
2048
5.4.3.
512
4096
1024
64
128
1024
256
16
256 Velikost bloku kB
32
8
64
Velikost souboru MB
Interpretace výsledků
Test čtení i opětovného čtení ukazuje stabilní výkon a v jeden okamžik je prakticky saturován použitý gigabitový ethernet. Následný pokles výkonu při větších velikostech bloku lze vysvětlit ne zcela optimálním rozložením částí („stripů“) souborového systému. Test zápisu naznačuje menší nestabilitu výkonu a ne příliš dobré výsledky pro větší soubory.
- 27 -
6. Závěr Při srovnání souborových systémů PVFS2 a Lustre jsem dospěl k závěru, že z hlediska výkonu jsou tyto systémy srovnatelné a nelze označit jasného vítěze. PVFS2 dosahuje lepších výsledků při zápisu, naproti tomu Lustre exceluje při testu čtení. Oba systémy obsahují řadu nástrojů pro ladění výkonu přímo a umožňují tedy optimalizovat výkon souborového systému na míru dané aplikaci. Další možností pro dosažení optimálního výkonu aplikace je použití vhodné velikosti bloku, se kterým bude aplikace pracovat. Dále lze optimalizovat souborové systémy vypnutím některých vlastností – např. ukládáním času posledního čtení souboru (tzv. „atime“), vypnutí konzistence uzamykání souborů pomocí systémového volání flock() atd.). Nicméně tyto optimalizace jsou již podmíněny detailní vnitřní znalostí aplikací, protože by mohlo dojít např. k narušení datové integrity či nefunkčnosti aplikace. Z hlediska instalace a konfigurace se mi jevila práce s PVFS2 více přívětivější. PVFS2 lze snadno nainstalovat a otestovat v rámci aktuálně běžícího jádra. Lustre vyžaduje jádro řady 2.6.12, které je poměrně staré. Některé novější aplikace mohou vyžadovat vlastnosti, které toto jádro nepodporuje. Testovací prostředí (pouze 2 I/O a metadata servery a 1 klient) i použitý testovací program neodpovídají plně zvažovanému nasazení, avšak umožnily získat reálné zkušenosti s instalací a konfigurací těchto souborových systémů. Pro budoucí výzkum by bylo vhodné nainstalovat pokusně oba souborové systémy na větší počet I/O serverů (cca. 10) a vyzkoušet chování systému při větším počtu (desítky až stovky) klientů a co nejreálnějším typu zátěže. Oba souborové systémy jsou v současnosti aktivně vyvíjené a podporované. Do budoucna bych doporučil sledovat nové verze Lustre (verze 1.6 má přinést podporu pro jádro 2.6.18) a hlavně pokrok ve vývoji souborového systému CEPH. Ten vychází ze stejného paradigmatu jako PVFS či Lustre a snaží se implementovat některé velmi zajímavé vlastnosti (automatické ladění metadata serverů, snapshoty, redundance dat). Za předpokladu, že splní navrhovanou road–mapu, měl by být připravený na plné produkční nasazení koncem roku 2007.
- 28 -
7. Použitá literatura [1] [2]
Rob Latham, Rob Ross, Rajeev Thakur, Bill Loewe, Parallel I/O in Practise, http://www.fi.muni.cz/~xhejtman/sc2005-parallel-io-submit.pdf Dominic A. Heger, An Introduction to File System Technologies in a Cluster Environment, http://www.fortuitous.com/docs/primers/Cluster_Filesystems_Intro.pdf
[3] [4]
Brent Welch, What is a Cluster Filesystem?, http://www.beedub.com/clusterfs.html Cluster File Systems Inc, Selecting a Scalable Cluster Filesystem, http://www.lustre.org/docs/selecting-a-cfs.pdf
[5]
Mark Fasheh, OCFS2: The Oracle Cluster Filesystem, Version 2, http://oss.oracle.com/projects/ocfs2/dist/documentation/fasheh.pdf
[6]
Matthew O'Keefe, Paul Kennedy, Enterprise data sharing with Red Hat Global File System, http://www.redhat.com/magazine/009jul05/features/gfs_overview/, RedHat Magazine #9, July 2006 Frank Schmuck, Roger Haskin, GPFS: A Shared-Disk File System for Large Computing Clusters, http://www.almaden.ibm.com/StorageSystems/file_systems/GPFS/Fast02.pdf, Proceedings of the Conference on File and Storage Technologies, January 2002
[7]
[8]
Sage Weil, Scott A. Brandt, Ethan L. Miller, Darrell D. E. Long, Carlos Maltzahn. Ceph: A Scalable, High-Performance Distributed File System, http://www.usenix.org/events/osdi06/tech/weil.html, Proceedings of the 7th Conference on Operating Systems Design and Implementation (OSDI '06), November 2006.
- 29 -
8. Příloha 8.1.
Kompletní výsledky testů lokální disku Iozone: Performance Test of File I/O Version $Revision: 3.221 $ Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Jean-Marc Zucconi, Jeff Blomberg, Erik Habbinga, Kris Strecker. Run began: Wed Dec 27 00:06:55 2006 Auto Mode 2. This option is obsolete. Use -az -i0 -i1 Using maximum file size of 2097152 kilobytes. Machine = Linux w54-200.fi.muni.cz 2.6.18.3 #2 SMP Mon Nov 20 13:29:09 CET 200 Using minimum file size of 1024 kilobytes. Using minimum file size of 1024 kilobytes. Excel chart generation enabled Command line used: /usr/bin/iozone -A -b /root/testresult -g 2g -M -n 1m -R Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. KB 1024 1024 1024 1024 1024 1024 1024 1024 1024 2048 2048 2048 2048 2048 2048 2048 2048 2048 2048 4096 4096 4096 4096 4096 4096
reclen 4 8 16 32 64 128 256 512 1024 4 8 16 32 64 128 256 512 1024 2048 4 8 16 32 64 128
write 361717 396258 408935 404734 401856 400171 386836 346765 326941 347239 367219 373787 375093 374962 372232 367880 347183 334371 328791 348980 361865 371113 370712 362285 363281
rewrite 936782 994250 1046071 1064479 1052480 1063425 1010864 907105 857654 871826 927457 956583 966920 976705 973826 957863 871118 802512 799673 855622 914075 949226 955456 951698 960155
- 30 -
read 1523683 1689730 1768345 1809317 1815435 1874871 1834824 1466957 1324868 1610168 1760663 1854954 1878893 1889639 1914061 1941313 1493692 1212615 1204623 1779964 1959649 2094134 2117884 2070660 2104910
reread 2295784 2625597 2782064 2710090 2573677 2573677 2183727 1625154 1302766 1937809 2223755 2348384 2364545 2308622 2290767 2242916 1539744 1217600 1217600 1971116 2190246 2312913 2316655 2284616 2295912
4096 4096 4096 4096 4096 8192 8192 8192 8192 8192 8192 8192 8192 8192 8192 8192 8192 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 131072 131072 131072 131072 131072
256 512 1024 2048 4096 4 8 16 32 64 128 256 512 1024 2048 4096 8192 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64
356482 341705 332306 331556 324897 337396 349785 353590 354539 356237 357855 356718 338790 327289 328547 329992 328139 333910 343661 351188 363224 364413 354003 364291 333938 325105 325705 325797 323168 333129 332575 352507 350474 360428 354593 362481 351083 344043 325560 334323 326371 333367 324041 339712 341696 355978 351000 359211 350428 358572 331343 329444 324495 330269 324972 332034 331323 351451 349371 358975 350591
938595 834225 775446 788291 783331 848560 913681 940749 957127 948802 947050 944758 835742 773331 779224 774289 784597 862596 919006 955846 955448 948419 946343 942578 833490 786481 783290 784560 778675 777635 862179 923432 950708 960152 949630 957257 936125 840508 770943 775152 775685 769492 775099 851063 912949 955389 959575 956520 957456 949246 831032 776954 777609 775398 778995 780655 855829 917981 955334 963127 952246
- 31 -
2088787 1484118 1152175 1161288 1147711 1884087 2122831 2226697 2259943 2170572 2166603 2126246 1446615 1133057 1131341 1136805 1134628 1924117 2157542 2283812 2308904 2246556 2263576 2208152 1466647 1134231 1128383 1134624 1132512 1143803 1951875 2204674 2331773 2357410 2287796 2273529 2237770 1471464 1137816 1135804 1127252 1133565 1136753 1950888 2203027 2386946 2400579 2304441 2340246 2262671 1457389 1135864 1139084 1135217 1136790 1135433 1968455 2224238 2395629 2433519 2295116
2248142 1523874 1160346 1167284 1151249 1975400 2195116 2250027 2364776 2299109 2220079 2224823 1476326 1139029 1140806 1140920 1139218 1943984 2204539 2302792 2395007 2311856 2323346 2224593 1478035 1139214 1132344 1139667 1136275 1143498 1966171 2237042 2378091 2376569 2328455 2293255 2271763 1485540 1134660 1140592 1132584 1139203 1142413 1939682 2218245 2417597 2443819 2338972 2366091 2291951 1466259 1145034 1143415 1139580 1139561 1140133 1948474 2230474 2426537 2468351 2320841
131072 131072 131072 131072 131072 131072 131072 131072 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152
128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
360880 350077 339626 325880 331137 323388 324246 325668 330201 359008 347190 368244 354317 349142 353867 333477 327705 327537 329167 327948 329485 329876 338614 332540 347210 348541 369914 358517 332426 347102 327609 338901 346208 323949 155983 160753 157779 157403 158106 157882 160100 159452 160010 157081 162858 161447 161100 75372 75253 75301 75570 75525 75298 75546 75188 74980 75153 75185 75227 75207
963885 953250 830837 780790 777990 782211 777072 774868 818593 867222 943642 911954 907496 924357 907142 799319 755608 755453 764865 767894 778044 813308 871867 909879 944224 939075 939693 924611 789226 762611 751565 761762 758916 759394 211270 160077 160105 160175 160288 160510 160079 211775 210606 162185 210650 162438 162824 77584 74214 74323 74183 74112 74369 74364 74220 74308 77506 77443 73949 73040
- 32 -
2355667 2272443 1448071 1137817 1140778 1136406 1127801 1141999 1986058 2224634 2401268 2462209 2306163 2356141 2255663 1421590 1144209 1144273 1141131 1139398 1143431 1870539 2177249 2321552 2359925 2244508 2313531 2237486 1373474 1123926 1135006 1129628 1110203 1121749 1744292 2102474 2276795 2294576 2192201 2217832 2133042 1409963 1135240 1146570 1142300 1142570 1152205 95082 102558 105603 98488 100642 104804 98569 104998 110227 91201 92858 106074 99587
2382434 2294436 1458560 1144333 1145372 1140937 1141999 1146536 1997957 2279887 2447798 2501159 2334133 2380530 2278975 1427442 1149204 1149098 1144933 1145759 1147359 1967531 2235684 2370424 2429452 2299933 2371142 2286132 1401865 1140173 1142053 1141859 1135835 1131753 1874472 2111013 2300204 2330987 2217593 2237978 2157834 1418612 1152134 1152229 1148368 1148322 1157083 94311 92740 95787 89932 92019 95372 91156 96770 99570 89368 90217 94413 93664
8.2.
Kompletní výsledky testů PVFS2 Iozone: Performance Test of File I/O Version $Revision: 3.221 $ Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Jean-Marc Zucconi, Jeff Blomberg, Erik Habbinga, Kris Strecker. Run began: Sat Dec
2 17:37:24 2006
Auto Mode 2. This option is obsolete. Use -az -i0 -i1 Using maximum file size of 2097152 kilobytes. Machine = Linux w54-200.fi.muni.cz 2.6.18.3 #2 SMP Mon Nov 20 13:29:09 CET 200 Using minimum file size of 1024 kilobytes. Using minimum file size of 1024 kilobytes. Excel chart generation enabled Command line used: /usr/bin/iozone -A -b /root/testresult -g 2g -M -n 1m -R Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. KB 1024 1024 1024 1024 1024 1024 1024 1024 1024 2048 2048 2048 2048 2048 2048 2048 2048 2048 2048 4096 4096 4096 4096 4096 4096 4096 4096 4096 4096
reclen 4 8 16 32 64 128 256 512 1024 4 8 16 32 64 128 256 512 1024 2048 4 8 16 32 64 128 256 512 1024 2048
write rewrite 12205 12621 22427 23254 29071 30449 42818 45631 56977 61660 72567 77178 80763 84782 82948 88611 93438 97367 12374 12701 22472 23248 29211 30284 43140 45609 57150 61289 74627 77475 78857 82952 83869 87189 92385 95260 97579 100166 12444 12689 22511 23176 29270 30350 43301 45600 57311 61446 74225 77465 78396 82509 82698 86735 91622 94156 98437 99848
- 33 -
read 1442 23985 38583 54947 69343 83422 88589 90268 93108 1226 24430 38888 54950 69612 83585 89074 89417 3293 94696 1288 24403 38709 55027 69857 83100 88846 89093 7320 78867
reread 1324 24352 39036 55423 69749 83860 89968 89714 92484 1433 24497 38976 55179 70079 84138 89350 89160 36907 82574 1307 24372 38973 55237 70131 83879 88956 89350 6412 93196
4096 8192 8192 8192 8192 8192 8192 8192 8192 8192 8192 8192 8192 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 131072 131072 131072 131072 131072 131072 131072 131072 131072
4096 4 8 16 32 64 128 256 512 1024 2048 4096 8192 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024
100780 12404 22436 29302 43218 56978 72183 79358 80883 91684 97549 101471 100888 12400 21512 29549 38239 57857 72733 80297 81253 91987 97659 101400 101011 101315 12373 22427 29374 43661 57246 73336 77809 82270 90949 97757 100943 101194 100954 12172 22328 29427 43669 56832 71439 77714 80325 91483 97109 101129 100895 101348 11939 21942 29386 41278 56299 74326 77293 80621 90184
102185 12637 23130 30418 45605 61236 76652 82830 85520 94094 99120 102122 102035 12623 22171 30669 43949 62370 76907 84018 85424 94352 99142 102114 101842 102297 12668 23075 30434 45903 61598 77265 82154 86299 93670 99171 101814 102041 101986 12504 23020 30584 46007 60356 76502 82860 85221 94092 98799 101825 101798 101984 12550 22418 30212 44713 61413 77736 82740 85470 93690
- 34 -
97477 1403 23685 38116 54231 68685 82571 88371 88683 91725 95281 98959 99960 1229 23939 38366 54426 68779 83710 87509 88566 90592 35845 100142 100134 100067 1335 24179 38044 53171 67074 80713 86709 87215 90626 84992 98799 99307 99875 1346 23638 37810 52977 67220 82252 85609 87740 19105 41504 98419 99006 98435 1346 23825 37838 54073 68359 82712 87463 87803 12256
101140 1450 24305 38132 54391 68838 82718 88477 88753 91964 87718 100687 99778 1279 23983 38466 54539 68747 83849 87620 88616 90809 87177 99194 99635 100384 1330 24126 38082 53298 67040 80704 86719 87240 90826 86799 98973 99788 99995 1421 23569 37871 54454 67449 82163 85610 87811 7507 87419 98709 99610 99998 1402 23778 37833 54108 68391 82780 87698 88127 9845
131072 131072 131072 131072 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152
8.3.
2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
97212 100780 100899 100756 12106 21785 28572 41250 56622 69957 78815 79925 90921 96605 100979 100717 101044 12134 21690 28190 41749 54895 71785 76899 80459 89661 96863 100505 100599 100399 12071 21557 27986 41052 54444 70267 76910 78741 89621 96237 100475 99965 100830 12038 21469 28119 41353 54130 70176 75346 79280 87524 95994 99916 100284 98628
98688 101773 101753 101923 12396 22420 29840 45307 61360 77219 82572 85543 93852 98946 101727 101706 101878 12426 22516 29541 44256 60187 76725 81518 85456 93425 98648 101558 101723 101499 12398 22334 29355 44028 59670 74636 81394 84334 93334 98284 101379 100991 101386 12379 22328 29766 44037 59142 74632 80333 83980 92320 98133 101138 101350 101071
22454 98809 99463 99073 1417 23928 38012 53731 68282 81675 85323 87558 6836 74608 99256 99249 69064 1340 23908 38346 53103 68001 83025 87684 87728 18421 79352 99285 89129 72496 1380 23703 37974 53831 68372 82295 87300 87957 8620 54073 91613 63260 77680 1360 23801 38249 54121 68049 83324 87676 87257 21594 75238 99909 78890 89023
Kompletní výsledky testů Lustre Iozone: Performance Test of File I/O Version $Revision: 3.221 $
- 35 -
58525 99472 99790 31731 1400 23909 37932 53662 68324 81626 85087 87559 7964 77996 99237 99476 99603 1353 24095 38254 54039 68657 83017 87708 87930 22687 79985 68552 93893 99696 1373 23585 38092 53444 68481 83743 87347 87992 6992 69489 91114 76198 77295 1358 23808 38206 53738 67633 83313 87869 87240 7310 62400 76477 85961 92170
Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Jean-Marc Zucconi, Jeff Blomberg, Erik Habbinga, Kris Strecker. Run began: Sat Dec
9 17:58:35 2006
Auto Mode 2. This option is obsolete. Use -az -i0 -i1 Using maximum file size of 2097152 kilobytes. Machine = Linux w54-200.fi.muni.cz 2.6.12.6 #14 SMP Fri Dec 8 21:26:58 CET 200 Using minimum file size of 1024 kilobytes. Using minimum file size of 1024 kilobytes. Excel chart generation enabled Command line used: /usr/bin/iozone -A -b /root/testresult -g 2g -M -n 1m -R Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. KB 1024 1024 1024 1024 1024 1024 1024 1024 1024 2048 2048 2048 2048 2048 2048 2048 2048 2048 2048 4096 4096 4096 4096 4096 4096 4096 4096 4096 4096 4096 8192 8192 8192
reclen 4 8 16 32 64 128 256 512 1024 4 8 16 32 64 128 256 512 1024 2048 4 8 16 32 64 128 256 512 1024 2048 4096 4 8 16
write rewrite 82619 86449 147787 156912 240873 264944 371286 413223 483025 556789 575285 686337 621755 768769 575670 738753 537555 744774 82723 85369 147901 154102 242600 255555 347126 383808 455293 508436 552485 621162 581626 684467 513788 626691 509975 610435 532517 663837 81206 83431 145838 150438 237988 252219 345186 376233 449972 502396 544255 609068 579504 656928 530983 603314 534169 606381 541510 612914 544169 632105 80855 82463 144329 149489 235971 246315
- 36 -
read 66506 130594 234751 420506 683606 1005892 1304348 1304745 1220575 66805 129333 237226 424177 687040 1028019 1371579 1232980 1119238 1167617 65193 126100 238484 423318 709741 1073687 1415401 1259908 1075906 1061678 1101357 64862 126166 237744
reread 67354 132487 241279 442515 750107 1136593 1460472 1358390 1221964 67253 130463 241135 438646 727787 1118509 1493692 1262519 1120405 1168888 65289 126999 240194 430801 726488 1111835 1495487 1285263 1079015 1113998 1160738 64933 127007 239552
8192 8192 8192 8192 8192 8192 8192 8192 8192 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 16384 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 65536 131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 131072
32 64 128 256 512 1024 2048 4096 8192 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
346166 460507 534650 572263 522614 532776 548949 536721 556371 80460 143507 234805 350769 451873 532933 585206 528019 539692 536917 550518 555237 589179 80455 141247 229154 350164 451343 544436 609569 565804 564672 584692 569889 579310 591716 80118 137941 190376 196976 198184 197844 198250 197824 196901 197567 197825 197815 198253 79676 135381 136247 136645 136794 136719 137206 136821 136267 136525 39596 136910 136473
371349 498084 590416 633419 579971 586565 595832 603736 622822 82089 148641 245552 372752 495794 587201 647766 594871 598743 598456 615364 624008 650236 82571 146752 246717 383126 506476 613657 703567 636150 631503 648909 646042 658892 684222 81987 148507 199094 199857 200701 200705 200831 200538 199535 200476 200355 200565 200641 81569 136253 46296 46222 29636 137627 31391 48861 137569 137565 137542 39175 41707
- 37 -
429487 705961 1087615 1476580 1220299 1059086 1116670 1136016 1172655 65398 126723 237181 428966 720014 1094820 1475496 1213014 1035574 1086339 1109652 1140083 1145824 64829 125867 239061 429777 720304 1100772 1484128 1207906 1048033 1094417 1111158 1135213 1144210 64527 125627 238916 428858 719574 1104207 1479366 1198514 1039001 1082896 1100851 1127483 1132467 64957 124878 238592 428967 717188 1089341 1469386 1199468 1035905 1076405 1102287 1119958 1124105
428608 728364 1112296 1517870 1231319 1062788 1116670 1143654 1151666 65469 126737 239668 428049 723455 1104338 1485929 1232441 1047444 1101224 1126903 1125040 1150236 65150 125604 238522 431117 718707 1096434 1479639 1211067 1045498 1090120 1122648 1132155 1143858 64787 125424 238081 428584 719781 1106354 1493732 1202915 1041461 1084815 1106897 1130925 1135686 64441 125476 239078 430307 718483 1093743 1475019 1206256 1040674 1079199 1110517 1126030 1129444
262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 262144 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152 2097152
4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
80585 116748 118440 117810 118255 118398 118370 118193 117955 118143 118378 41141 118235 78713 110836 110281 110630 44281 111184 71157 110850 69050 110928 51847 110892 41821 80139 61690 106635 77208 54045 23518 106777 26996 99773 30073 59446 43357 100998 27954 49255 38213 32710 33132 35128 43497 40559 33146 52405 33830 32603 34455
44964 118518 48445 118815 118919 48123 78004 32835 118844 118890 118871 61456 38718 60366 60919 61914 50278 62571 52269 41142 52103 40349 49254 39781 50006 53125 76303 104323 71800 47468 61729 49735 61421 35880 48411 68975 62573 48053 58592 32965 33149 37491 31778 32186 37687 38392 37543 30679 28501 39921 34757 30760
- 38 -
64931 126654 236869 428893 708353 1083069 1465154 1178370 1032380 1080328 1110515 1121615 1125907 64934 125859 236651 427042 713936 1082928 1461299 1175051 1032790 1079541 1097578 1113606 895883 64677 126148 236059 421340 697050 1088743 1396790 1177856 1061668 1102084 1127312 928267 1157451 38213 41168 40768 46669 37576 41633 33951 34427 43105 41915 35268 35189 34735
64521 126096 236103 429203 712740 1091479 1472660 1183740 1036839 1084597 1116523 1128224 1132479 64177 125773 236046 425155 716704 1091830 1465837 1180116 1036342 1083181 1103982 1120082 900278 64755 126864 235826 425168 700446 1092630 1405132 1184812 1065854 1106768 1133762 934523 1164039 44816 44143 39166 40082 37588 41173 36732 39533 38695 44033 40052 39005 39102