Klastry na Raspberry Pi jsou na internetu trendovým tématem (všude najdete testy, návody a úžasné obrázky).
Před několika měsíci jsem také napsal návod, jak vytvořit základní cluster se dvěma Raspberry Pi, ale dostal jsem mnoho dotazů, k čemu by nám mohl být.
Přečtěte si, pokud chcete znát odpověď 🙂
K čemu je cluster na Raspberry Pi?
Cílem clusteru Raspberry Pi je spojit výkony několika zařízení do jednoho stohu.
Stavba clusteru je zábavný projekt a může být užitečná i pro aplikace, které vyžadují mnoho jader procesoru, ale ne tolik rychlosti provádění.
Abychom se dostali dále, začnu vysvětlením logiky clusteru Raspberry Pi a pak vám poskytnu inspiraci na několika zajímavých příkladech.
Obsah
Kdy může být cluster Raspberry Pi užitečný?
Ano, Raspberry Pi je levné, ale jeho výkony nejsou optimální.
K čemu by nám tedy mohl být cluster Raspberry Pi?
Více paměti RAM?
Prvním nápadem může být sestavení clusteru, abyste získali více paměti RAM.
To může být dobrý nápad, pokud vaše aplikace potřebuje hodně paměti RAM, ale celkové náklady nebudou nejlepší volbou.
Koupě 4x Raspberry Pi 4 8 GB bude pro cluster drahá (8 GB na Amazonu).
Pokud chcete zachovat své peníze, 32 GB celkové paměti s výpočetním modulem bude mnohem levnější než to (podívejte se na cenu na Amazonu).
Ano, řešení s paměťovým modulem potřebuje počítač, který ho bude hostit, ale můžete použít jakýkoli starý počítač, pravděpodobně bude lepší než čtyři Raspberry Pi 4.
Postupte na další úroveň.
Jsem tu, abych vám pomohl začít s Raspberry Pi a naučit se všechny potřebné dovednosti ve správném pořadí.
Více procesorů?
Druhým nápadem může být pořízení výkonného procesoru s několika levnými Raspberry Pi namísto nákupu tradičního počítače nebo serveru
Stále to ale není nejlepší důvod pro stavbu clusteru Raspberry Pi.
Jak můžete vidět v tomto benchmarku (zdroj: Reddit), procesory Raspberry Pi mají opravdu nízké výkony. Takže jakýkoli levný počítač na tom bude z hlediska rychlosti CPU lépe:
Potřebujete více než 10 Raspberry Pi 4, abyste se vyrovnali výkonům Intel i3.
Procesor Intel i3 z benchmarku stojí téměř stejně jako Raspberry Pi 4 (podívejte se na aktuální cenu na Amazonu).
Ano, to je pouze za procesor, ale můžete použít i starý počítač (první i3 byl vydán před více než 10 lety!)
Můžete místo něj použít i Intel NUC. Tento NUC má 8 GB RAM, 240 GB SSD a Windows 10 v ceně, takže je celkově výhodnější (všechny podrobnosti zde na Amazonu).
Rychlejší přístup na disk?
Tady budu rychlý, už víte, že SD karta není rychlejší způsob ukládání nebo přístupu k datům.
Obecně se domníváme, že nejnovější modely SSD jsou více než 10krát rychlejší než jakákoli SD karta.
I když Datalight našel způsob, jak zvýšit rychlost SD karet (podívejte se na shrnutí na ZDNet), není to způsob, jakým používáme SD karty na našem Raspberry Pi. A čtyři SD karty, nikdy nebudou rychlejší než SSD.
Takže pokud chceš rychlejší disk, zapoj SSD disk (je teď levný), použij NUC nebo jakýkoli počítač, ale cluster není dobrý nápad.
Více jader CPU?
Poslední myšlenka, kterou chceme prozkoumat, je mít s clusterem obrovské množství jader CPU.
A to je vlastně téměř jediný důvod, proč byste mohli chtít postavit Raspberry Pi Cluster.
Přibližně všechny modely Raspberry Pi mají čtyřjádrový procesor (jedinou výjimkou jsou Raspberry Pi 1 a Zero).
Takže pokud použijete 4x Raspberry Pi 4 1GB, získáte 16 jader dostupných za méně než 150 dolarů (dvojnásobek ceny na Amazonu).
Počítáte-li ve vláknech, ekvivalentem je špičkový Intel i7 (něco takového). Pokud ne, jediný procesor od Intelu s 16 jádry je v současnosti nejnovější Intel i9 Extreme Edition (na Amazonu desetkrát dražší).
A ještě obtížněji se hledá alternativa, pokud naskládáte více Raspberry Pi (8x Raspberry Pi je 32 jader!).
Poznámka: AMD by mohlo být levnější jen na jádra, ale tuto značku opravdu neznám.
Raspberry Pi 4 vs Compute Module
Takže ano, jediné důvody pro sestavení clusteru Raspberry Pi jsou:
- Hledáte mnoho jader procesoru (ale není potřeba výkon)
- Učíte se, jak to funguje
- Pro zábavu 🙂
Pro úplnost, v této části chci představit Raspberry Pi Compute Module.
Málokdy o něm píšu, protože pro domácího uživatele je téměř nezajímavý.
Myšlenkou tohoto produktu je umožnit komukoli použít technologii Raspberry Pi na jiné základní desce. Vypadá tedy jako Raspberry Pi zero, bez externích portů, podobně jako paměťový modul (více informací na Pi-Supply).
Kromě jiného využití to může být úžasný nápad postavit cluster Raspberry Pi pouze s výpočetními moduly!
Každý modul má čtyřjádrový procesor a je levnější než většina Raspberry Pi (aktuální cenu najdete na výše uvedeném odkazu).
Ale jak ho postavit, když nemá ethernetový port?
Potřebujete specifickou desku a k sestavení clusteru je ideální Clusterboard (k dispozici na Pine64).
Můžete na ni zapojit 7 výpočetních modulů za celkovou cenu pod 300 dolarů!
Znáte počítač s 28 jádry levnější než 300 dolarů?
Já ne 🙂
5 příkladů clusterů Raspberry Pi
Podám vám nyní pět příkladů clusterů s Raspberry Pi, abyste si mohli udělat lepší představu o tom, jak je používat a proč.
Stáhněte si elektronickou knihu.
Odhalte tajemství Raspberry Pi v 30denní výzvě.
Základní cluster
První z nich je právě k sestavení vašeho prvního clusteru. Nemá žádný konkrétní konečný cíl, kromě toho, že se naučíte, jak to funguje.
Pokud máte doma například dva Raspberry Pi (libovolné modely), můžete to podle mého návodu zkusit.
Budete mít hlavní uzel a druhý uzel.
V tomto základním příkladu používám knihovnu Python: MPI4PY
Takto můžete spustit libovolný příkaz na obou uzlech
Spouštění příkazu dvakrát není moc užitečné, ale pokud máte nějaký skript, který může běžet na více jádrech, je to už dobrá ukázka.
Docker
Další dva jsou spíše technologie než příklady, ale je důležité vědět, jak to funguje po softwarové stránce.
Docker je technologie umožňující spustit aplikaci v izolovaném prostředí na libovolném operačním systému.
Toto prostředí se jmenuje kontejner, je to něco jako virtuální stroj, chcete-li.
Na jednom počítači můžete mít několik kontejnerů.
Docker byl vytvořen, aby usnadnil život vývojářům. Je jednodušší s ním kódovat, nasazovat a spouštět aplikace než se přizpůsobovat každému systému.
Docker ale obsahuje i funkce clusteru, které se dají snadno nainstalovat na cluster.
Píšu příspěvek na blog o @docker a @Raspberry_Pi – vytvořit cluster a nasadit kód asi nikdy nebylo jednodušší 🐝 obr.twitter.com/KD2MIIrAx9
– Alex Ellis (@alexellisuk) 19. srpna 2017
Nemám k tomu žádný návod, ale můžete si přečíst tento, který vše vysvětluje
Kubernetes
Kubernetes je dalším krokem, jakmile zvládnete, co je Docker a jak funguje.
V předchozím tutoriálu jste si mohli všimnout, že pro správu aplikací používáme Docker a pro jejich použití na několika uzlech Swarm.
Kubernetes je jako upgrade Swarmu s dalšími funkcemi pro škálování, provoz a monitorování aplikací.
Já jsem to zatím nezkoušel, takže vám to nebudu blíže popisovat, ale na webu o tom najdete spoustu návodů (pro Raspberry Pi nebo Linux obecně).
Například na oficiálních stránkách je návod krok za krokem.
Superpočítač
Přejděme teď k něčemu konkrétnějšímu.
Jakmile pochopíte a vyzkoušíte základy clusteru, můžete začít uvažovat ve větším. Je to téměř stejný proces, mnohokrát opakovaný 🙂
Na tomto obrázku vidíte superpočítač z laboratoře Los Alamos (zdroj: ExtremeTech). Je postaven z ne méně než 750 počítačů Raspberry Pi.
Vědci tento úžasný cluster používají neustále.
Celkové náklady jsou nižší než 20 000 dolarů a především potřebný výkon je 5 000krát nižší než u jiných superpočítačů. Ano, není to tak výkonné, ale už je k dispozici 3 000 jader CPU a jsou rádi, že to mají na „malé“ úlohy.
Takže pro specifické potřeby a nízký rozpočet je to opravdu dobrý příklad toho, co se dá dělat s velkým množstvím Raspberry Pi!
Webový server
Není to úplně jiný příklad, ale jako konkrétnější příklad lze použít i cluster pro provoz webového serveru.
Mimochodem, přesně to udělala nadace Raspberry Pi Foundation při uvedení počítače Raspberry Pi 4 na trh
Použili cluster s 18 počítači Raspberry Pi 4, aby demonstrovali, že cluster zvládne hostovat velkou část jejich webového provozu v den uvedení na trh.
Nic náročného, co se týče technologií, jen Apache a PHP pro webovou část.
Ano, Apache může běžet na několika serverech a nativně provádět rozkládání zátěže (všechny podrobnosti zde).
Pokud vás tento projekt zajímá, na blogu Raspberry Pi Blog je příspěvek.
Mythic beats je hostitel, kterého použili. Mimochodem, jejich služby si můžete vyzkoušet zde.
Související otázka
Můžu použít cluster Raspberry Pi pro hraní her? I když je myšlenka správná, spuštění hry na clusteru vyžaduje, aby pro něj byla hra napsána. V současné době k tomu většina produktů není optimalizována. Dokonce i herní servery, většinou využívají jeden procesor najednou.
Nezapomínejte také, že jste na Linuxu, s low-endovým procesorem, ne tak velkou pamětí RAM a bez herní grafické karty.
Závěr
To je vše, nyní máte lepší představu o tom, co je to cluster Raspberry Pi a co s ním můžete dělat.
Pokud máte zájem, můžete si podle mého návodu zde postavit svůj první cluster!
.