当部では「LifeKeeper」というHAクラスタ製品を取り扱っています。
HAクラスタ製品の市場として、クラウドでの需要の高まりはよく話題になりますが、
IoT分野でのHA(高可用性)やクラスタ技術の需要・役割も近年、ニーズの高まりを見せています。
今後のLifeKeeperビジネスにおける新たな機会創出を見据え、
今回、IoTクラスタ化の普及について探るべく、オープンソースの Pacemaker と Corosync を活用し、Raspberry Piを用いて、IoT環境でのクラスタ構築をLifeKeeperチームが検証してきたいと思います。
なぜ、IoTに高可用性が必要なのか?
そもそも、IoTにおけるクラスタ化のニーズについてですが、
技術的・ビジネス的な観点から高まっている背景として、以下の要因があります。
1. デバイス数の爆発的増加
世界中でIoTデバイスが指数関数的に増加し、2030年には約290億台に達すると予測されています。
この膨大なデバイスを効率的に管理し、障害時にサービスを継続する仕組みが求められています。
2. 高可用性(HA)の要求
製造業などの分野では、システム停止が直接的な損失や安全リスクにつながります。
クラスタ化をすることで、障害発生時に自動フェイルオーバーを実現し、ダウンタイムを最小化できます。
3. スケーラビリティと負荷分散
クラスタ単位で処理を分散することで、クラウドへの依存を減らし、ネットワーク負荷を軽減します。
IoT分野においてデバイスが集める大量データや制御システムは「止められない」ものが多く、サーバやゲートウェイのHAクラスタ化が求められており、現場からクラウド中継、分析基盤まで広くHAのニーズが高まっています。
特に、IoTゲートウェイやエッジサーバが停止すると、サービス全体が中断し、ビジネスに深刻な影響を与える可能性があります。
こうしたリスクを回避するために注目されているのが「クラスタ化による高可用性(HA)構成」となります。
IoTのクラスタ構築を検証するにあたって
IoTのクラスタ化の必要性・ニーズが高まっていることを理解したところで、
今回、IoT環境でクラスタ構築を実現するためにはどうすればいいかを考えました。
そうです、低コストで手に入る機器とツールを使えば良いのです。
そこで今回選ばれたのは、 「Raspberry Pi 5」さんです👏
選定理由としては、手の届く範囲の値段、かつLinuxベースで動作する機器となるためです。
Raspberry Piは、コストパフォーマンスが高く、IoTや産業用途に適したコンパクトなコンピュータとして、
商用利用が広がっているため、今後の活用も見据え、こちらで検証をしていこうと思います。
備考として、Raspberry Piについてあまり知らないといった方向けに特徴や利点を記載しておきます。
- コストパフォーマンス
Raspberry Piはお手頃な価格帯であり、特に小規模なプロジェクトやスタートアップにとって、初期投資を抑えることができます。 - 豊富なインターフェース
多くのI/Oポートを持ち、センサーやカメラなどの周辺機器の接続が可能となります。 - オープンソースソフトウェアの利用
LinuxベースのOSを使用しており、Pythonなどのプログラミング言語をサポートしています。AIやデータ処理の開発環境をスムーズに構築できます。 - 豊富な情報
多くのユーザーが情報を共有しているため、トラブルシューティングの際は参考となる記事が多くスムーズに解決へ向かうことがあります。
Pacemakerとは?
今回、Raspberry Piに導入するクラスタツールとしては、「Pacemaker」を選定しました。
選定理由については、IoTに導入できるクラスタ製品であること、そして無料で利用できる点です。
そもそもPacemakerとはなんぞや、という方向けに説明をすると、
Pacemakerは、クラスタ内のリソース(サービス、IPアドレス、ストレージなど)を監視・制御し、障害発生時に自動的に別ノードへ切り替える(フェイルオーバー)仕組みを提供しているクラスタソフトウェアです。
Pacemakerの役割としては、クラスタ内のリソース(サービス、IPアドレス、ストレージなど)を監視・制御し、障害発生時に自動的に別ノードへ切り替える(フェイルオーバー)仕組みを提供します。
動作についてですが、Pacemaker単体では動作せず、
クラスタ通信レイヤー(CorosyncやHeartbeat)と連携してノード間の状態を共有します。
サービスの起動・停止・監視を実行する際は、スクリプトを使用して制御します。
Corosyncとは?
Pacemakerを利用するにあたり、クラスタ通信レイヤーである「Corosync」を今回利用していきます。
Corosyncは、オープンソースのクラスタ通信エンジンで、Linux環境で高可用性クラスタを構築する際に、
ノード間の状態同期やメッセージ交換を担うコンポーネントとなります。
主な役割として、クラスタ通信の基盤として複数ノード間で「誰が生きているか(ノードの稼働状態)」を共有してくれます。
クラスタ動作のフェイルオーバーについてはトリガーとして、ノード障害を検知し、Pacemakerに通知することでリソース移動を行い、冗長性を確保しております。
PacemakerとCorosyncの役割をおさらいしておきましょう。
- Pacemaker:リソース管理(サービス、IP、ストレージ)
- Corosync:クラスタ通信(ノード間の状態同期)
PacemakerはCorosyncから「ノード障害」や「クラスタ状態」の情報を受け取り、リソースをどのノードで稼働させるかを判断します。
つまり、PacemakerとCorosyncを用いることで、IoT環境に「高可用性クラスタ」を構築できるということです。
前段について記載してきましたが、
次回は実際に、Raspberry PiにPacemakerとCorosyncの設定を行い、クラスタ構築手順とスイッチオーバー、スイッチバック、フェイルオーバーといった動作確認を通じて、IoTでの高可用性を実践していきます。
