今後数週間、Raspberry Pi によるクラスタ コンピューティングについて説明するビデオをいくつか投稿する予定ですが、ビデオとその記録を私のブログに掲載する予定です。
そしてこれが 7 つの Raspberry Pi Compute Module のスタックです。
これは Raspberry Pi model B と同じものですが、より柔軟なフォームファクターにするためにすべての IO ポートを削除し、Rasbperry Pi Foundation は「産業用途に適しています」と述べています。 しかし私の場合は、Raspberry Pi のクラスタを構築するために使用することに興味があります。
Raspberry Pi を使用したクラスタ コンピューティングの概念を探求するつもりですが、ゲームを変える Raspberry Pi ベースのクラスタ ボード、Turing Pi を手に入れることができ、とても嬉しく思っています。
Turing Pi についてはすぐに紹介しますが、この最初のエピソードでは、なぜ私が Raspberry Pi をクラスターに使うのが好きなのかを説明したいと思います。 時には、膨大な数の訪問者に Web ページを提供するようなことも行います。 これには、多くの帯域幅と、数百万のリクエストのそれぞれを処理するための多くの「バックエンド」コンピューターが必要です。
この種の処理を高速化する方法は 2 つあります。
- 垂直方向のスケーリングにより、1 台のサーバーに、より高速な CPU、より多くの RAM、およびより高速な接続を導入する。
- 水平方向に拡張して、タスクを分割し、複数のコンピュータを使用する。
初期には、Cray スーパーコンピュータなどのシステムが垂直方向の拡張を極端に行いました。 何百万ドルもする 1 つの巨大なコンピューターは、一時期、最速のコンピューターとなりました。 しかし、このアプローチには限界があり、1 台のマシンにすべてを投資することは、メンテナンスが必要なときのダウンタイムや、限定された (しばしばひどく高価な) アップグレードを意味します。
ほとんどの場合、水平方向に拡張する方が手頃で、場合によっては、大規模計算や大量の Web トラフィックを処理するために多くのコンピュータを使用できる唯一の方法となります。
クラスタリングは、90 年代の Beowulf スタイルのクラスタや、Kubernetes などの新しいソフトウェアの出現により容易になりました。 数台のコンピュータではこれは大きな問題ではありませんが、5 台以上のコンピュータを持つようになると、整理整頓と冷却が難しくなります。
コンピュータ、またはクラスタ用語で「ノード」の管理は、1~2 台であれば簡単です。 しかし、5台、10台と規模が大きくなると、サーバーの再起動や新しいジョブのキックオフといった簡単なことをするにも、すべてを調整するソフトウェアが必要になります。 The Raspberry Pi Dramble
2015年に、私は初めて「bramble」を立ち上げることにしました。 ブランブルとは、Raspberry Piのサーバーのクラスタのことです。 “なぜブランブルと呼ばれるのか?”と思われるかもしれません。
そこで私は、Ansible というソフトウェアを使って、Drupal を実行するための共通のソフトウェア スタックをサーバーにインストールし、bramble を構築しはじめました。 これは一般に「LAMP」スタックとして知られています。
私のブランブルで Drupal を実行したので、「dramble」という造語を作り、Raspberry Pi Dramble が生まれました。
最初のバージョンのクラスタには 6 つのノードがあり、USB 電源アダプタに接続されたマイクロ USB ケーブルの束と、8 ポート Ethernet スイッチに接続された Ethernet ケーブルの束を持っていました。
Raspberry Pi model 3 が登場したとき、私はそれを 5 ノードに減らしました。
その後、バブルガムのスティックほどの大きさの Raspberry Pi Zero が登場したとき、私はそれを 5 台購入し、USB WiFi アダプターを使って小さなクラスタを作成しましたが、Zero の古いプロセッサは非常に力不足であるとすぐに気付き、このクラスタはあきらめました。
2017 年に、Drupal と LAMP スタックを管理するために Kubernetes を使い始めることにしましたが、個々の Pis を構成して Kubernetes をインストールさせるには、まだ Ansible を使用していました。
そして、4 つの Raspberry Pi model 4 ボードで構成される今日の Dramble は、公式の Power-over-Ethernet (PoE) ボードを使用しており、USB 電源ケーブルのもつれを捨てることができましたが、より高価な PoE スイッチが必要です。
![]()
Pi Dramble は真剣そのものではないんですけどね。 私が好きだった古い映画へのオマージュも含めて、楽しみました。
この経験全体を通じて、すべての Ansible プレイブックを含む構築のあらゆる側面を文書化し、オープン ソース プロジェクトとして pidramble.com からリンクしており、多くの人がこれらの計画に従って自分で Pi Dramble を構築しました。
Why Raspberry Pi?
これはすべて、私が Raspberry Pi のクラスタの管理に多くの時間を費やしてきたことと、通常聞かれる最初の質問が、「なぜクラスタに Raspberry Pis を選んだのですか」
これは非常に良い質問です。 また、RAM にも制限があります (最新の Pi モデル 4 でさえ、RAM はせいぜい 4 GB です)。 より多くの生の CPU パフォーマンス、より多くの RAM、高速な SSD、およびより多くの拡張機能を備えた小型の NUC (Next Unit of Computing) マシンを構築または購入する方が、わずかにコスト効率が良く、通常はより電力効率も良くなります。 まあ、Raspberry Pis のクラスターを構築するほどではありませんが。
また、仮想マシンではなく「ベアメタル」サーバーを管理するには、プロビジョニング、ネットワーキング、オーケストレーションについてより多くの規律が必要とされます。 この 3 つのスキルは、現代の IT 関連の多くの仕事で非常に役立ちます!
また、純粋なパフォーマンスを最適化したい場合もありますが、Kubernetes クラスターを構築する場合などには、CPU コア数を最適化したい場合もあります。 32 個の CPU コアを持つ 1 台のコンピューターを構築したい場合、32 個のコアを持つ AMD ThreadRipper 3970x を検討することができます。 問題は、このプロセッサが 2,000 ドル近くすることで、プロセッサだけで、コンピュータの残りのコンポーネントは、このリグのために合計 3,000 ドルを超えてしまいます。 ほぼ同じ数のコアが、合計で 300 ドル未満で手に入ります。 Turing Pi と電源のコストを加えても、同じ数の CPU コアを 1/4 のコストで手に入れたことになります!
そうですね、1 ThreadRipper コア ≠ 1 Pi CM コアですが、多くの K8s アプリケーションでは、コアはコアであり、多ければ多いほどいいのです。 すべての操作が CPU に依存しているわけではなく、4~8 倍の高速な生のスループットや、ThreadRipper が提供する他の多くの小さな機能 (キャッシュの増加など) によって恩恵を受けることができるはずです。
Raspberry Pi でうまく動作させることができない場合、次のことを考えてみてください。多くのスマートフォンやローエンド コンピューターにも同様の制約があり、これらのデバイスを使用している人は、同じような経験をすることになるでしょう。 Raspberry Pi で実行することで、これらの問題をすばやく特定できます。
Why Turing Pi?
さて、Turing Pi に戻りますが、これは Pi Dramble のような標準 Raspberry Pi のクラスターよりも優れています。 このコンテンツが気に入って、もっと見たい場合は、GitHub または Patreon で私をサポートすることを検討してください。