オープンソース

Keepalived〜LVSと併用する冗長化のOSS〜

Keepalivedとは、サービスの稼働状態を監視し、LVSの設定を変更したり、冗長化機能を提供したりするオープンソースソフトウェアです。KeepalivedとLVSを組み合わせ冗長化した負荷分散システムを構築する事で、負荷分散装置の利用コストを削減しながら、障害に強いシステムを実現することができます。さらに、デージーネットで開発したILUKAというWebインターフェースを使えば、コマンド操作なしで簡単にKeepalivedの設定を行うことができます。この記事では、Keepalivedのメリットや管理方法について紹介します。

Keepalivedとは

Keepalivedとは、サービスの稼働状態を監視するオープンソースソフトウェアです。Keepalivedは、LVS(Linux Virtual Server)が負荷を分散する実サーバを監視して、状況にあわせてLVSの設定を変更したり、冗長化機能を提供します。そのため、LVSと組み合わせて利用されることが多いソフトウェアです。

Keepalivedのイメージ図

KeepalivedとLVSを組み合わせたシステムイメージ

Keepalivedは、ルーターなどを冗長化する際に利用されるVRRP(Virtual Router Redundancy Protocol)というプロトコルを使って、仮想IPアドレスを管理します。VRRPの仕組みでは、参加する複数の機器(ノード)が協調し、サービスで利用する代表IPアドレスを割り当てるノードを決定します。もし、代表のノードが故障した場合には、自動的に検知し他のノードに切り替えが行われます。

Keepalivedのメリット

Keepalivedを使うことで以下のようなメリットがあります。

実サーバを監視してLVSの設定を変更できる

Keepalivedを使うことで、LVSだけでは実現できない機能を補うことができます。

LVSとは、Linuxカーネルにも正式に取り入られている、Linux上でL4ロードバランサの機能を実現するためのソフトウェアです。指定したルールに基づいて、リクエストを複数台のサーバへ振り分けるロードバランサの機能を提供しています。また同時に、同じクライアントからの通信を常に同じサーバに転送するよう、送信元IPアドレスを見てパケットの転送を行います。この仕組みにより、サイト等へアクセスする利用者に安定したサービスを提供します。

ただし、LVSは外部からのリクエストを振り分けるのみで、実サーバのサービス提供状態を把握する機能は持っていません。そのため、万が一ロードバランサの対象となるサーバがダウンしてしまっても、LVSはそれらのサーバにそのままリクエストを振り分けてしまう可能性があります。

Keepalivedは、LVSが負荷を分散する実サーバを監視し、サーバの稼働状態によってLVSの振り分けの設定を変更します。正常に動作しているサーバを負荷分散対象に追加したり、障害が発生したサーバを負荷分散対象から切り離したりすることが可能です。

サーバ停止時

実サーバ停止時のイメージ

LVS自体の冗長化も行う

Keepalivedは、負荷分散対象のサーバだけでなく、ロードバランサ自体の稼働状態を監視することもできます。万が一ロードバランサが停止した際には、自動でバックアップ用の他のロードバランサーに切り替える機能もあります。 実サーバだけでなくLVS自体の冗長化も行うことで、より障害に強いシステムを構築することができます。

LVSサーバ停止時

LVSサーバ停止時のイメージ

低コストで負荷分散システムを実現できる

オンプレミス環境やクラウド環境で少し大きめのシステムを構成する際、サービスを停止させないために負荷分散装置を使う事が少なくありません。しかし、負荷分散装置のほとんどは、非常に高価な利用料が設定されています。オープンソースソフトウェアであるLVSとKeepalived、さらに後述する管理GUIのILUKAを組み合わせて負荷分散システムを構築する事で、ロードバランサの利用料を削減することができます。そのため、安全で便利なシステムを低コストで構築することが可能です。

Keepalivedの課題

以上で挙げたように、KeepalivedとLVSを併用すれば、専用の負荷分散装置がなくても負荷分散を行うことができ、メリットが多くあります。しかし、Keepalivedには、設定にコマンド操作が必要という課題があります。

Keepalivedでは、仮想サーバや実サーバを設定ファイルで管理します。そのため、新しく負荷分散の設定を追加したり、実サーバを追加したりするなど、設定を変更する際はLinuxサーバ上で直接ファイルを編集して、コマンドで設定を反映する必要があります。このようなテキストベースでの管理は手間がかかるだけでなく、Linuxのスキルが無いオペレーターにとってはハードルが高いため、負担が集中してしまいます。また、タイプミスなどによって設定を失敗すると、負荷分散処理を止めてしまうリスクもあります。そこで、導入する場合は対策として、別の管理GUIも同時に導入するのが望ましいです。

負荷分散システムの管理用WebUI「ILUKA」

上記の課題を解決するソフトウェアのひとつに、ILUKA(Interface for Lvs Under KeepAlived)があります。Keepalivedの管理用WebUIとして弊社が開発を行い、オープンソースソフトウェアとして公開しています。ILUKAを使うことで、サーバにログインしなくても、仮想サーバ(バーチャルサーバ)やそれに紐づく実サーバ(リアルサーバ)の追加・削除等をWebインターフェース上で行うことができます。そのため、Linuxの知識が無い人でも簡単に負荷分散システムの設定ができ、管理の負担を低減することができます。また、Web画面に一覧表示された現在の設定を確認したり、バーチャルサーバやリアルサーバの有効化/無効化も設定できるため、メンテナンスの際にも便利です。

LVSサーバ停止時

ILUKAで設定できる機能は次の通りです。

  • バーチャルサーバの設定

    バーチャルサーバの一覧表示、新規追加、更新、有効/無効等の設定が可能です。バーチャルサーバに紐づくリアルサーバの監視間隔、バーチャルサーバ名、Sorryサーバポート番号なども設定・登録できます。

  • リアルサーバの設定

    バーチャルサーバが接続するリアルサーバの一覧表示、新規追加、更新、有効/無効、ヘルスチェックの選択等の設定が可能です。ヘルスチェックとは定期的にサーバ側にリクエストを送信し、返されたステータスやレスポンスを確認することで、サーバの稼動状況のチェックを実行することです。

  • グローバル設定

    Keepalivedは、監視するリアルサーバの障害を検知して負荷分散対象から外す時、また、そのサーバが復旧して負荷分散対象に戻す時に、通知メールを送信することができます。グローバル設定では、通知メッセージの送信に使用するSMTPサーバの指定と、通知先アドレス/送信元アドレスの設定が可能です。

デージーネットの取り組み

デージーネットでは、コストや機能的な制約からクラウドサービスで用意された負荷分散機能を利用できない場合に、LVSを使った負荷分散サーバを提案しています。以前は、Heartbeatとldirectordを利用して負荷分散サーバを構築することが多かったですが、最近はKeepalivedを利用して負荷分散サーバを冗長構成で構築する事例が増えてきています。

また、自社での構築が不安なお客様向けに、ILUKAの商用サポートを行っています。弊社でシステムを構築した場合、Open Smart Assistanceという保守サービスに加入することができます。この保守サービスでは、OSSそのものではなく、運用中のシステムが適切に運用できることをサポートしています。使い方から運用方法まで幅広い範囲でのQ&Aや、適正に運用できるようなセキュリティの情報提供、障害調査、回避を行い、安心して利用して頂けるよう管理者の業務をサポートします。

情報の一覧

Keepalived/LVSで冗長化した負荷分散システム構築事例

事例(Keepalived/LVS)

今回、Keepalived/LVSで冗長化したシステムを構築し、Webとメールのアクセスを分散させたことで、導入後はアクセス数が多い状態にも耐えられるようにしました。また、管理GUIにはILUKAを用い、導入前に比べ簡単に設定変更が行えるようになりました。

ILUKA〜OSSでロードバランサを設定する方法〜

OSS情報(ILUKA)

ILUKAは、デージーネットが開発したオープンソースソフトウェアです。冗長化を提供するKeepalivedの設定を、Web上で簡単に行うことができます。

ILUKA マニュアル

マニュアル(ILUKA)

このページではインストールの手順や使い方、機能の説明などを記載したマニュアルを公開しています。目次から必要なガイドを確認でき、構築の参考にしていただけます。

無料で使えるプロキシサーバ/ロードバランサおすすめ20選

OSS比較(プロキシ/ロードバランサ)

プロキシやロードバランサは、クライアントとサーバーの間に配置して、サーバーや回線のリソースを活用し、システムの性能を最大限引き出したり、セキュリティを高めるために使われます。この記事では、各カテゴリーごとにプロキシ/ロードバランサのOSSの種類、メリットなどを比較します。

デモのお申込み

もっと使い方が知りたい方へ
操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

Keepalived〜LVSと併用する冗長化のOSS〜の先頭へ