Sheepdog

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Sheepdog je škálovatelný systém, který poskytuje virtuálním strojům distribuovaná bloková zařízení. Za jeho vývojem, který začal v r. 2009, stojí vývojáři japonské firmy Nippon Telegraph and Telephone Corporation. Sheepdog je opensource aplikace s GPL2 licencí. Zatím poslední verzi 0.9.3, vydanou v listopadu 2015, by měla následovat verze 1.0 použitelná i pro komerční nasazení[1].

Jen pro zajímavost, první verzi (0.1.0) vývojáři vydali v srpnu 2010 - v téže době byla zahrnuta podpora sheepdogu i do hlavní vývojové větve QEMU. První testy sheepdogu jsem dělal v listopadu 2011[2] a z hlediska výkonu I/O operací nebyly výsledky vůbec špatné. Ovšem tehdy měl ještě systém Sheepdog problém s opětovným připojením odpadlého nodu. Tento problém byl pravděpodobně záhy odstraněn, neboť vývoj aplikace je poměrně živý, ale mezi tím jsem použil jiné řešení.


Vlastnosti

Jak funguje Sheepdog je velice srozumintelně popsáno v publikované prezentaci[1], proto se omezím pouze na stručný přehled.

Je škálovatelný
Datový prostor lze za běhu libovolně navyšovat jak na úrovni nodů, tím že se zvětšuje jejich datová kapacit, tak i jejich počtem. Čím větší počet nodů, tím vyšší I/O výkon VDI
Je jednoduchý
Na rozdíl od jiných systému jakým je kupř. CEPH, Sheepdog nepracuje přímo se souborovým systémem, ale s bloky dat o fixní velikosti, tudíž nepotřebuje mít separátní démony pro údržbu metadat. Veškerá správa se provádí prostřednictvím jednoho nástroje dog, který komunikuje přímo s ovečkami (sheep)
Počítá s výpadkem nodu
Každé VDI je tvořeno právě těmito bloky (objektů), které se současně replikují přes několik nodů, takže pokud některý z nich vypadne jsou data stále dostupná, a objekty se místo nodu který vypadnul začnou replikovat na jiný nod.
Podporuje snapshoty na úrovni blokového zařízení
Snapshotování u Sheepdogu funguje podobně jako u Btrfs. Bloky snapshotovaného VDI zůstávají zachovány a nová data se zapisují do nových bloků.

Problematické vlastnosti

Mezi problematické patří u Sheepdogu dvě věci:

Nemá SPOF
Pokud se používá VDI jako blokové zařízení prostřednictvím QEMU, tak zde není SPOF[3] zabezpečení (podobně jako u NBD). To znamená, že Sheepdog dokáže zabránit tomu, aby se na jedno VDI zařízení hrabalo z několika instancí QEMU současně.
Životní cyklus datových objektů
Objekty VDI svazku s daty nelze odstranit, dokud nejsou odstraněny všechny VDI, které na ně nějakým způsobem odkazují. Nevyužívané datové objekty, tak zbytečně zaplevelují datový prostor. Ovšem to je věc, na které se stále pracuje.

Sestavení ze zdrojových kódů

Upozornění Sheepdog se stará primárně o distribuci dat. Pokud jde o vzájemnou komunikaci mezi nody, předpokládá, že ji zajistí nějaký komunikační démon. I kdy se při sestavení zdrojového kódu vytvoří i komunikační démon shepherd, jeho vývoj zatím nepřekročil testovací stadium. A domnívám se, že pravděpodobně bude časem z kódu ostraněn, protože věci které měl původně řešit byly přesunuty do administrační utility dog. Sheepdog tak předpokládá, že komunikace nodů už je zajištěna jiným způsobem.

Primárně má podporu pro komunikaci prostřednictvím corosyncu, který používá i Pacemaker. Ovšem může být sestaven i podporou komunikace přes zookeeper, který je naprogramován v javě. Podle autorů Sheepdogu je prý i lepší, pravděpodobně proto, že má srozumitelnější a jednodušší konfiguraci nodů, ale skripty pro sestavení instalačního balíku pro Debian s ním nepočítají.

Důvodem proč si sestavit Sheepdog ze zdrojových kódů je fakt, že v oficiálním repozitáři Debianu je v současné době víc jak rok a půl stará verze 0.8.3 ze srpna 2014, ale vývojáři pro komerční nasazení doporučují verzi 0.9.1 a vyšší.

Zdrojový kód v repozitáři Sheepdogu, má podporu pro sestavení .deb balíku.

Spuštění clusteru

VDI


  1. 1,0 1,1 Viz informace v závěru prezentace z června 2015 http://events.linuxfoundation.jp/sites/events/files/slides/COJ2015_Sheepdog_20150604.pdf
  2. http://www.abclinuxu.cz/blog/kenyho_stesky/2011/11/sheepdog-hrajeme-si-v-hampejzu
  3. SPOF (Single point of failure) zabezpečení zajišťuje, že se na jedno blokové zařízení může připojit právě jen jeden ověřený klient, ke kterému patří. Podporu pro SPOF mají VDI, pokud jsou exportované jako iSCSI zažízení přes tgtd

Odkazy

https://github.com/collie/sheepdog/wiki - wiki, která je součástí repozitáře se zdrojovými kódy
http://www.osrg.net/sheepdog/ - stránky projektu na webu Nippon Telegraph and Telephone Corporation
http://www.sheepdog-project.org/doc/index.html - Administrátorská příručka pro Sheepdog verze 0.8.0; autorem je Valerio Pachera
http://www.admin-magazine.com/Archive/2014/23/Distributed-storage-with-Sheepdog - Článek Udo Seidela o nasazení Sheepdogu, publikovaný ve 23. čísle magazínu Admin z října 2014