Distribuovaný souborový systém Ceph¶
On 12 prosince, 2021 by adminCeph je distribuovaný síťový souborový systém navržený pro zajištění dobrého výkonu, spolehlivosti a škálovatelnosti.
Mezi základní vlastnosti patří:
- POSIXová sémantika
- Plynulé škálování od 1 do mnoha tisíc uzlů
- Vysoká dostupnost a spolehlivost. Žádný jediný bod selhání.
- N-cestná replikace dat napříč uzly úložiště
- Rychlé obnovení po selhání uzlu
- Automatické vyvážení dat při přidání/odebrání uzlu
- Snadné nasazení: většina komponent FS jsou démoni v uživatelském prostoru
Také,
- Pružné snímky (v libovolném adresáři)
- Rekurzivní účtování (vnořené soubory, adresáře, bajtů)
Na rozdíl od clusterových souborových systémů jako GFS, OCFS2 a GPFS, které spoléhají na symetrický přístup všech klientů ke sdíleným blokovým zařízením, Cephodděluje správu dat a metadat do nezávislých serverových clusterů, podobně jako Lustre. Na rozdíl od Lustre však uzly metadat a úložiště běží výhradně jako démoni v uživatelském prostoru. Souborová data jsou prokládána napříč úložnými uzly po velkých částech, aby se rozložila pracovní zátěž a usnadnila vysoká propustnost. Při selhání úložných uzlů jsou data distribuovaně replikována samotnými úložnými uzly (s minimální koordinací ze strany monitoru clusteru), díky čemuž je systém extrémně efektivní a škálovatelný.
Metadatové servery efektivně vytvářejí velkou, konzistentní, distribuovanou mezipaměť nad souborovým jmenným prostorem, která je extrémně škálovatelná, dynamicky redistribuuje metadata v reakci na změny pracovní zátěže a dokáže tolerovat libovolné (tedy ne byzantské) selhání uzlů. Metadatový server využívá poněkud netradiční přístup k ukládání metadat, který výrazně zvyšuje výkon pro běžné pracovní zátěže. Konkrétně inody s jediným odkazem jsou vloženými adresáři, což umožňuje načítat celé adresáře dentry a inody do jeho mezipaměti jedinou I/O operací. Obsah extrémně velkých adresářů může být fragmentován a spravován nezávislými metadatovými servery, což umožňuje škálovatelný souběžný přístup.
Systém nabízí automatické vyvážení/migraci dat při škálování z malého clusteru o několika uzlech na mnoho stovek, aniž by správce musel rozdělit datovou sadu na statické svazky nebo podstupovat zdlouhavý proces migrace dat mezi servery.Když se souborový systém blíží k naplnění, lze snadno přidat nové uzly a věci budou „prostě fungovat“.
Ceph obsahuje flexibilní mechanismus snímků, který umožňuje uživateli vytvořit snímek libovolného podadresáře (a jeho vnořeného obsahu) v systému. Vytváření a mazání snímků je tak jednoduché jako ‚mkdir.snap/foo‘ a ‚rmdir .snap/foo‘.
Ceph také poskytuje určité rekurzivní účtování v adresářích pro vnořené soubory a bajty. To znamená, že příkaz ‚getfattr -d foo‘ na libovolném adresáři v systému odhalí celkový počet vnořených běžných souborů a podadresářů a součet velikostí všech vnořených souborů. Díky tomu je identifikace velkých spotřebitelů diskového prostoru relativně rychlá, protože není nutné žádné ‚du‘ nebo podobné rekurzivní skenování souborového systému.
Systém Ceph také umožňuje nastavit kvóty na libovolný adresář v systému.Kvóta může omezit počet bajtů nebo počet souborů uložených pod daným bodem v hierarchii adresářů. Kvóty lze nastavit pomocírozšířených atributů ‚ceph.quota.max_files‘ a ‚ceph.quota.max_bytes‘, např:
setfattr -n ceph.quota.max_bytes -v 100000000 /some/dirgetfattr -n ceph.quota.max_bytes /some/dir
Omezení současné implementace kvót spočívá v tom, že se spoléhá na spolupráci klienta připojujícího souborový systém, který zastaví zápis při dosažení limitu. Upravenému nebo nepřátelskému klientovi nelze zabránit v zápisu tolika dat, kolik potřebuje.
Mount Options¶
ip=A.B.C.D Určete IP a/nebo port, ke kterému se má klient lokálně vázat. obvykle k tomu není mnoho důvodů. Pokud IP není zadána, IP adresa klienta se určí podle adresy, ze které pochází jeho připojení k monitoru. wsize=X Zadejte maximální velikost zápisu v bajtech. Výchozí hodnota: 64 MB. rsize=X Zadejte maximální velikost pro čtení v bajtech. Výchozí: 64 MB. rasize=X Určuje maximální velikost předčítání v bajtech. Výchozí: 8 MB. mount_timeout=X Zadejte hodnotu časového limitu pro připojení (v sekundách) v případě, že systém souborů Ceph neodpovídá. Výchozí hodnota je 60 sekund. caps_max=X Zadejte maximální počet uložených souborů. Nepoužité caps jsou uvolněny, když počet caps překročí limit. Výchozí hodnota je 0 (bez limitu) rbytes Když je funkce stat() volána na adresář, nastavte hodnotu st_size na ‚rbytes‘, což je součet velikostí souborů všech souborů vnořených pod tímto adresářem. Toto je výchozí hodnota. norbytes Když je funkce stat() volána na adresář, nastavte st_size na počet záznamů v tomto adresáři. nocrc Zakázat výpočet CRC32C pro zápis dat. Pokud je nastaveno, musí se uzel úložiště spoléhat na opravu chyb TCP při detekci poškození dat v datovém nákladu. dcache Použijte obsah dcache k negativnímu vyhledávání a čtení adresáře, když má klient celý obsah adresáře ve své mezipaměti. (Tím se nemění správnost; klient používá metadata z cache pouze tehdy, když pronájem nebo schopnost zajišťuje jejich platnost.) nodcache Nepoužívejte dcache, jak je uvedeno výše. Tím se vyhnete značnému množství složitého kódu, obětujete výkon bez vlivu na správnost a je to užitečné pro dohledávání chyb. noasyncreaddir Nepoužívejte dcache jako výše pro readdir. noquotadf Uvádějte celkové využití souborového systému ve statfs místo použití kvóty kořenového adresáře. nocopyfrom Nepoužívejte operaci RADOS ‚copy-from‘ pro provádění vzdálených kopií objektů. V současné době se používá pouze v copy_file_range, který se při použití této volby vrátí k výchozí implementaci VFS. recover_session=<no|clean>Nastavení režimu automatického opětovného připojení v případě, že je klient blokován. Dostupné režimy jsou „no“ a „clean“. Výchozí je „no“.
- no: nikdy se nepokouší znovu připojit, pokud klient zjistí, že byl zařazen do seznamu blokovaných. Operace po zařazení na blokovací seznam zpravidla selžou.
- clean: klient se automaticky znovu připojí ke clusteru ceph, když zjistí, že byl zařazen na blokovací seznam. Během opětovného připojení klient zahodí špinavá data/metadata, zneplatní mezipaměť stránek a zapisovatelná držadla souborů. po opětovném připojení se zámky souborů stanou neaktuálními, protože MDS o nich ztratí přehled. Pokud inode obsahuje nějaké zastaralé zámky souborů, není na něm povoleno čtení/zápis, dokud aplikace neuvolní všechny zastaralé zámky souborů.
Napsat komentář