先週、手持ちのすべてのRaspberry Piを使って、6ノードのHexaPiコンピューティングクラスタを構築してみました。
それ以来、何度も「何に使うのか? そこで、Raspberry Pi Projects – Build an OctaPi の最後の部分を参照し、私自身の簡単な例も追加します。
それから、「同じサーバーは2つまで」という私のルールを尊重しつつ、Raspberry Pi サーバーをもう 1 つ追加したので、実際には HeptaPi 7 サーバーのクラスタになっています。 この投稿の最後に、このプロジェクトで入手し使用した新しいハードウェアのいくつかについて説明を加えます。
まず、何に役立つか? 私自身の経験から、簡単な例を挙げます。 私はよく旅行に行くのですが、デジタル一眼レフカメラで写真をたくさん撮るのが好きで、よくマルチピクチャーパノラマを撮ります(スイスアルプスは特にこの種の撮影に適した被写体です)。
このパノラマ処理を1台のコンピュータで行う場合、「スケジューリング」を自分で行わなければなりません。つまり、私が目を離さず、1つのパノラマが終わると次のパノラマを始めなければならないのです。
もう少し野心的になれば、バッチ制御プログラムをセットアップして、結合する写真のグループをキューに入れることができますが、それでも次々に処理されるだけです。 このタスクに使用できるコンピュータが多い場合は、写真の配布とパノラマの復元を自分で行う必要があり、また、各コンピュータで「スケジューリング」を行う必要があります。 どちらにしても、これは比較的退屈で時間のかかるプロセスで、残念ながら、すべての写真が処理される前に時間 (または忍耐) がなくなってしまうことがよくあります。
HeptaPi クラスタでは、OctaPi クラスタ プロジェクトに含まれる Python の例のいずれかに基づいてバッチ処理システムを設定し、クラスタの各サーバーに hugin をインストールすることができました。 バッチ プロセッサは、写真のグループを処理のためにクラスタ サーバーに配布し、完成したパノラマ画像をリターンとして受け取ります。
これに対する私の投資は、アプリケーション固有のバッチ制御プログラムを書くことと、一緒に処理される写真のグループを識別することです。 そして、いつでもクラスタに Raspberry Pi システムを追加するだけで、さらに時間を短縮できます。
Pi Cluster は何に適しているかという質問に対するより一般的な答えは、いくつかの独立したピースに分割できるあらゆる種類のジョブまたはタスクです。 私のパノラマ写真の場合のように、結果もそうかもしれませんが、各タスクの結果がより大きな結果に貢献することもあり得ます。 その場合、結果はクライアント システムに集められ、さらに処理されて (おそらく新しいタスクとして再び送り出される)、最終的な出力を生成することができます。 クライアントが利用可能なサーバーの数だけ仕事をディスパッチしているという事実に基づいて、冗長性やフォールト トレランスといったことがあります。 しかし、ここで私が言いたいのは、非常に低コストの Raspberry Pi システムを使って簡単なクラスターを構築し、それを行うことで非常に有益な知識と経験を得られるだけでなく、完成したときには有用なリソースを手に入れることができるということです。 最初の記事を投稿してから、クラスターにもう 1 台サーバーを追加したことを述べました。 これは、Pi-Shop.ch の Web サイトを見ていて、Raspberry Pi 2 v1.2.
全体のスペックはオリジナルの Pi 2 と同じですが、新しいモデルは Pi 3 と同じ CPU を使用しています (ただしクロック速度は低下しています)。 どうせ今は Pi 3 の方がずっと人気があるので、大したことではありませんし、おそらくほとんどの人にとってもひどく興味があるわけでもないでしょう。
この追加について注意すべき重要な点は、クライアント (コントローラー) システムや他のサーバーに何もする必要がなかったということです。 新しい Pi 2 を他のものとまったく同じ方法で準備し、Pi Cluster 専用の無線ネットワークに接続しただけです。
また、元のプロジェクトで、すべての Pi システムを接続するのに十分な USB wi-fi アダプターがないと書きましたが、もちろん新しい Pi 2 を追加することは、そのアダプターも必要だということでした。 Raspberry Pi 用の USB wi-fi アダプターを購入する際に念頭に置くべき最も重要な基準は、箱から出してすぐに正しく動作することを確認したい、ということです。
バカバカしいと思われるかもしれませんが、これは、私が他の Linux ラップトップやデスクトップ用にこのような周辺機器を購入する際に取っているアプローチとは正反対です。 私は、ほとんどの人が、教育、趣味、あるいは特定のプロジェクトやデバイスの使用など、何らかの特定の目的のために Raspberry Pi システムを購入し使用していると想定しています。 もちろん、どんなUSBアダプタでも、どんなLinuxディストリビューションでも動作させることは可能ですが、ドライバのセットアップに学校/趣味/仕事の時間を費やしたくない場合は、簡単な方法で、すでにテストされ動作するアダプタを購入することを確認してください。
これを確認する最も簡単な方法は、Raspberry Pi の正規代理店から購入し、購入するアダプターが Pi で動作することが確認されていることを Web ページに記載されていることを確認することです。 写真では同じに見えませんが、これは実際には Adafruit Miniature WiFi Module だと思います — おそらく、カスタム パッケージか何かでしょう。 とにかく、私が入手したものはここに示した写真のようなもので、広告にあるように箱から出してすぐに確かに動作しました。
これは Realtek RTL5370 チップに基づいており、青色の電源/リンク/ステータス LED を備えています。
私は「新しいことを試す」モードにあり、Pi ショップで、よりスループットが高い別の USB wi-fi アダプターが販売されていることに気づいたため、そちらも試してみることにしました。 その名もずばり「USB WiFi Adapter for Raspberry Pi (300Mbps)」で、右の写真のような感じです。
23.90スイスフラン(約21.70ユーロ/19.40ポンド/25ドル)とかなり高価なので、上のものよりも購入前にもう一度考える価値があるかもしれません。 これらはRaspberry Piシステムであり、USB接続のスピードと効率性には定評がないことを忘れないでください。
このデバイスは、Realtek 8192SUチップをベースにしており、電源/リンク/ステータスLEDも搭載しています。 TP-Link Technologies
このプロジェクトの最後の新しいハードウェアは、最も一般的に役立つと思われる TP-Link TL WR802N Wireless N Nano Router です。
この低価格のデバイス (約 30 スイスフラン/27 ユーロ/24 ユーロ/32 ドル) は非常に小型軽量で、一般的な用途向けにあらかじめ定義され設定されたモードが多数用意されています。
この製品は、従来の製品に比べ、より高い信頼性を実現するために開発されました。
WR802Nには専用の電源アダプターが付属していますが、Raspberry Pi電源アダプター(または他のMicroUSBスマートフォン充電器)、またはコンピューターのUSBポートに接続しても電源を供給することができます。
このデバイスの第一印象は非常にポジティブで、自宅でも旅行先でも非常に役に立つだろうと期待しています。
Pi Cluster を作ろうと決めたとき、ジーウイッシュ的な面白さを期待しましたが、またすぐに分解してしまうだろうとも想定していました。 今、稼働してみると、他の面白い使い方や改良を考えていることに気づきます。
Raspberry Piのシステムを大量に用意しなくても、2台のサーバーと1台のクライアントで十分です。 しかし、いったん稼働させると、拡張のためにもっと良い部品を買う良い口実になることに気づくかもしれません。
- Raspberry Pi: 私はどのように OctaPi- スタイルのコンピューティング クラスターを構築したか
- Raspberry Pi: Fedora 26 でハンズオン
- Raspbian GNU/Linux: 新しいリリースにはインストール可能なx86イメージが含まれています
- Raspberry Pi Zero W、ハンズオン。 非常に歓迎される新しい家族の一員
- Hands-On: Raspberry Pi 7-inch Touch Display and case