Przewodnik po Raspberry Pi w 60 sekund

W zeszłym tygodniu użyłem każdego Raspberry Pi, które miałem do zbudowania sześciowęzłowego klastra obliczeniowego HexaPi.

Od tego czasu pytano mnie wiele razy: do czego to jest dobre? Więc mam zamiar spojrzeć na ostatni kawałek Projekty Raspberry Pi – Zbuduj OctaPi, i dodać prosty przykład mojego własnego, jak również.

Oh, i dodałem jeden więcej serwer Raspberry Pi do klastra, przy jednoczesnym przestrzeganiu mojej zasady „nie ma dwóch takich samych serwerów”, więc jest to faktycznie teraz HeptaPi siedem-serwer klaster. Na końcu tego wpisu dodam opis niektórych nowych urządzeń, które nabyłem i wykorzystałem do tego projektu.

Po pierwsze, do czego to jest dobre? Mam prosty przykład z własnego doświadczenia. Dużo podróżuję, lubię robić dużo zdjęć lustrzanką cyfrową i często robię wieloobrazowe panoramy (Alpy Szwajcarskie są szczególnie dobrym obiektem do tego typu fotografii). Kiedy wracam do domu, używam programu Hugin Panorama Photo Stitcher, aby połączyć te partie pojedynczych zdjęć w dużo większe panoramy.

Jeśli wykonuję to przetwarzanie panoram na jednym komputerze, muszę samemu wykonać „harmonogram” – to znaczy, muszę mieć na to oko, a kiedy jedna panorama jest skończona, muszę zacząć następną.

Jeśli będę nieco bardziej ambitny, mogę skonfigurować program do sterowania partiami, a następnie ustawić w kolejce grupy zdjęć do połączenia, ale nadal będą one wykonywane tylko jedno po drugim. Jeśli mam do dyspozycji więcej komputerów, to muszę sam zająć się dystrybucją zdjęć i odzyskiwaniem panoram, i znów muszę sam wykonać „planowanie” na każdym komputerze. Tak czy inaczej, jest to stosunkowo żmudny i czasochłonny proces i niestety często okazuje się, że brakuje mi czasu (lub cierpliwości) zanim wszystkie moje zdjęcia zostaną przetworzone.

W przypadku klastra HeptaPi, mógłbym skonfigurować procesor wsadowy, oparty na którymś z przykładów Pythona zawartych w projekcie klastra OctaPi, a następnie zainstalować hugin na każdym z serwerów klastra. Następnie mógłbym podawać grupy zdjęć do procesora wsadowego, który dystrybuowałby je do serwerów klastra w celu przetworzenia i otrzymałby gotowy obraz panoramy jako zwrot.

Moją inwestycją w to byłoby napisanie specyficznego dla aplikacji programu sterującego wsadem, a następnie zidentyfikowanie grup zdjęć, które mają być przetwarzane razem. Gdy to było zrobione, rzeczywisty czas wymagany aż miałem wszystkie moje piękne zdjęcia panoramiczne byłoby dramatycznie zmniejszone – i mógłbym zmniejszyć go jeszcze bardziej po prostu dodając więcej systemów Raspberry Pi do klastra w dowolnym czasie!

A bardziej ogólna odpowiedź na pytanie, co Pi Cluster jest dobre dla jest: każdy rodzaj pracy lub zadania, które mogą być podzielone na kilka niezależnych kawałków. Zauważ, że to tylko same zadania muszą być niezależne — wyniki też mogą być, jak w przypadku moich zdjęć panoramicznych, ale może być też tak, że wynik każdego zadania przyczynia się do jakiegoś większego wyniku. W takim przypadku wyniki mogą być gromadzone w systemie klienckim, a następnie dalej przetwarzane (być może nawet przez wysłanie ich z powrotem jako nowe zadanie) w celu uzyskania ostatecznego wyniku.

Oczywiście nie jest to jedyne zastosowanie dla komputerów klastrowych. Istnieją rzeczy takie jak redundancja i odporność na błędy, oparte na fakcie, że twój klient wysyła pracę do dowolnej liczby dostępnych serwerów; jeśli serwer zostanie wyłączony z powodu konserwacji (lub awarii, lub cokolwiek innego), przetwarzanie może nadal być kontynuowane na pozostałych serwerach w klastrze.

To wszystko są koncepcje, które są zwykle stosowane do znacznie większych, bardziej wyrafinowanych systemów klastrowych — nawet do całych centrów danych usług w chmurze. Ale mój punkt tutaj jest to, że można zbudować prosty klaster przy użyciu bardzo tanich systemów Raspberry Pi, i nie tylko zdobyć bardzo przydatną wiedzę i doświadczenie w robieniu tego, ale także skończyć z użytecznym zasobem, gdy jesteś done.

Teraz, przechodząc na sprzęt, który użyłem do tego projektu. Wspomniałem, że dodałem kolejny serwer do klastra od czasu, gdy opublikowałem oryginalny opis. To się stało, ponieważ byłem przeglądania Pi-Shop.ch stronie internetowej i zauważył Raspberry Pi 2 v1.2.

Ogólne specyfikacje są takie same jak oryginalne Pi 2, ale nowy model wykorzystuje ten sam procesor jak Pi 3 (ale z niższą prędkością zegara). Nie jest to wielka sprawa, i prawdopodobnie nawet nie strasznie interesujące dla większości ludzi, ponieważ Pi 3 jest znacznie bardziej popularne teraz i tak. Ale to wystarczyło, aby zmotywować mnie do zdobycia jednego i dodania go do klastra.

Ważną rzeczą do odnotowania w tym dodatku było to, że nie musiałem nic robić z systemem klienta (kontrolera), ani z żadnym z pozostałych serwerów. Po prostu przygotowałem nowe Pi 2 w dokładnie taki sam sposób, w jaki przygotowałem pozostałe, a następnie podłączyłem je do dedykowanej sieci bezprzewodowej Pi Cluster. Następnym razem, gdy rozpocząłem pracę na kliencie, zauważył on, że nowy serwer jest dostępny i zaczął go używać wraz z całą resztą.

Wspomniałem również w oryginalnym projekcie, że nie miałem wystarczająco dużo adapterów USB wi-fi, aby podłączyć wszystkie moje systemy Pi, i oczywiście dodanie nowego Pi 2 oznaczało, że potrzebowałem adaptera dla tego jednego, jak również. Pi-Shop ma kilka nowych adapterów wymienionych, więc uznałem, że to dobra okazja, aby wypróbować je.

Najważniejsze kryteria, aby pamiętać przy zakupie adaptera USB wi-fi dla Raspberry Pi jest to, że chcesz mieć pewność, że działa prawidłowo po wyjęciu z pudełka.

Wiem, że może to brzmieć głupio, ale jest to dokładne przeciwieństwo podejścia, które biorę przy zakupie takich urządzeń peryferyjnych dla reszty moich laptopów i komputerów stacjonarnych z systemem Linux. Zakładam, że większość ludzi kupuje i używa systemów Raspberry Pi w jakimś konkretnym celu – czy to edukacyjnym, hobbystycznym, czy też dla jakiegoś konkretnego projektu lub urządzenia. Oczywiście, jest to możliwe, aby uzyskać prawie każdy adapter USB pracy z prawie każdej dystrybucji Linuksa, ale chyba że chcesz ryzykować konieczności spędzenia znacznej ilości czasu w szkole / hobby / pracy uzyskanie sterowników skonfigurować, po prostu wziąć łatwe wyjście i upewnij się, że kupujesz adapter, który został już przetestowany i działa.

Najprostszym sposobem, aby upewnić się, że to jest kupić od autoryzowanego dystrybutora Raspberry Pi, i upewnij się, że mówi na ich stronie internetowej, że adapter kupujesz został zweryfikowany do pracy z Pi.

The pierwszy, że próbowałem był Miniature WiFi (802.11b/g/n) 150Mbps urządzenia. Wierzę, że jest to właściwie Adafruit Miniature WiFi Module, chociaż zdjęcia nie wyglądają tak samo — być może jest to niestandardowe opakowanie lub coś takiego. W każdym razie ten, który dostałem wygląda jak na zdjęciu tutaj i rzeczywiście działał od razu po wyjęciu z pudełka, tak jak go reklamowano. Kosztował tylko 9,90 CHF (około €8.99/£8.00/$10.50).

Jest oparty na układzie Realtek RTL5370, i ma niebieską diodę LED power/link/status.

Skoro byłem w trybie „wypróbowywania nowych rzeczy”, i zauważyłem, że jest inny adapter USB wi-fi o wyższej przepustowości oferowany w Pi-Shop, zdecydowałem się wypróbować również ten. Nazywa się po prostu 'USB WiFi Adapter for Raspberry Pi (300Mbps)’, i wygląda jak na zdjęciu po prawej.

Jest znacznie droższy w CHF 23.90 (około € 21.70/£19.40/$25) więc jest to prawdopodobnie warte drugiej myśli przed zakupem go niż jeden powyżej. Pamiętaj, że są to systemy Raspberry Pi mówimy o, i nie są one znane z szybkości i wydajności ich połączeń USB. Więc różnica w prędkości, która jest dość dużo jedyną zaletą tego adaptera, może nie być znacząca w rzeczywistym użyciu urządzenia.

To urządzenie jest oparte na chipie Realtek 8192SU, a także posiada diodę LED power/link/status.

Obraz: TP-Link Technologies

Ostatnim nowym sprzętem dla tego projektu jest ten, który moim zdaniem okaże się najbardziej ogólnie przydatny – TP-Link TL WR802N Wireless N Nano Router.

To niedrogie urządzenie (około 30 CHF/€27/£24/$32) jest bardzo małe i lekkie, i zawiera wiele predefiniowanych i wstępnie skonfigurowanych trybów dla typowych zastosowań. Użyłem go do skonfigurowania odizolowanej sieci WLAN bez połączenia z Internetem (Router Mode), ale oczywiście może zapewnić łączność z Internetem albo przez przewodowe złącze sieciowe RJ45 (Access Point Mode), lub przez bezprzewodowe połączenie WISP (Hotspot Mode).

Może być również używany do uzupełnienia istniejącej sieci Wi-Fi (Range Extender Mode), lub jako adapter Wi-Fi dla urządzenia, które ma tylko przewodowe połączenie sieciowe (Client Mode).

The WR802N pochodzi z własnym zasilaczem, ale może być również zasilany przez Raspberry Pi zasilacz (lub inny MicroUSB smartphone ładowarki), lub nawet poprzez podłączenie do portu USB w komputerze.

Moje pierwsze wrażenia z tego urządzenia były bardzo pozytywne i spodziewam się, że będzie to bardzo przydatne zarówno w domu, jak i kiedy jestem traveling.

Gdy zdecydowałem się zbudować Pi Cluster, spodziewałem się, że będzie to gee-whiz rodzaj interesującej rzeczy do zrobienia, ale również założyć, że będę go rozebrać ponownie przed zbyt długo. Teraz, gdy jest już gotowy i działa, odkrywam, że myślę o innych ciekawych sposobach jego wykorzystania i ulepszenia.

Pamiętajcie, że nie musicie mieć dużej liczby systemów Raspberry Pi, aby uruchomić jeden – dwa serwery i klient wystarczą na początek. Ale uwaga, raz masz to działa może się okazać, że jest to dobry pretekst, aby kupić więcej i lepsze bity i kawałki, aby rozszerzyć go.

  • Raspberry Pi: How I built an OctaPi-style computing cluster
  • Raspberry Pi: Hands-on z Fedorą 26
  • Raspbian GNU/Linux: Nowe wydanie zawiera instalowalny obraz x86
  • Raspberry Pi Zero W, hands-on: Bardzo mile widziany nowy członek rodziny
  • Ręka-On: Raspberry Pi 7-calowy wyświetlacz dotykowy i obudowa

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.