2020年11月22日日曜日

OSSのロードバランサ「ZEVENET Community Edition」をESXi上にインストールしてみた

自宅検証環境ではPacmekaerで冗長化したプロキシサーバ (兼DNS/メール/NTPサーバ) を構築している。このサーバは、PacmekaerでActive-Standby構成としていたが、ロードバランサを導入してActive-Active構成に変更したいと考えていた。

そんなことを計画しながら、OSSで使えそうなロードバランサを探していると、スペインに本社を置くZEVENET社の「ZEVENET」という製品を見つけることができた。

ZEVENET Enterprise EditionとZEVENET Community Editionの2つが用意されており、Community Editionであれば無償利用が可能となる。各エディションの差異は、以下公式サイトに情報がある。ちなみに、以下URLではクラスタ構成はEnterprise Editionのみ可能と読めるが、Community Editionであってもクラスタ構成は可能となる。

ZEVENETは残念ながら日本では人気がないらしく、ググっても日本語の情報はほとんどヒットしなかったが、マニュアル自体は充実しておりインストールと設定には困らなそうなので、自宅のESXi環境に、「ZEVENET Community Edition」を導入してみることにした

以後、ZEVENET Community Editionの表記について、特に断りがない限りは単に「ZEVENET」として記載をすることにする。

環境

  • ESXi 6.7 Update 3
  • ZEVENET Community Edition 5.11

ダウンロード

1. ZEVENETのISOイメージをダウンロード

ダウンロードは以下サイトから実施する。ZEVENETは、ソースコード、ISOイメージ、Dockerイメージの3種類がダウンロードできる。今回は、ESXi上の仮想マシンとして構築することから「DOWNLOAD ISO IMAGE」を選択して、ISOイメージをダウンロードする。

2. 仮想マシンの作成

ZEVENETをインストールするための仮想マシンを作成する。以下構成で仮想マシンを作成する。インストール後にuname -aで確認すると「Debian 4.19.67-2 (2019-08-28) x86_64」と表示されるので、OS自体はどう見てもDebian 10ベースのようなだが、ゲストOSのバージョンは「その他のLinux」を選択する必要があるので注意。

設定項目 設定値
ゲストOSのバージョン その他の Linux 4.x 以降 (64 ビット)
CPU 1コア
メモリ 1GB
ディスク 8GB
NIC 1枚 ※VMXNET 3でOK
CD/DVDドライブ ZEVENETのISOイメージを指定

設定で来たら、仮想マシンをパワーオンし「Install」を選択してインストールを開始する。

インストール

1. 言語設定

「Select a Language」の画面では「日本語」を選択しておく。

2. ネットワーク設定

ZEVENETに割り当てるIPアドレス等を以下の通り指定する。

設定項目 設定値
IPアドレス ZEVENETに設定するIPアドレス。x.x.x.x/xの形式で記載する。x.x.x.xの形式で記載した場合は、次の画面でサブネットマスクの設定画面が表示される
ゲートウェイ ZEVENETに設定するデフォルトゲートウェイ。なお、ZEVENET Community Editionではスタティックルートの設定はできないので注意
ネームサーバアドレス 空白でOK
ホスト名 ZEVENETに設定するホスト名
ドメイン名 空白でOK

3. rootパスワード設定

rootパスワードの設定を聞かれるので、任意のパスワードを設定する。なお、ZEVENET Community Editionでは、rootユーザのみ設定が可能で、その他のユーザ作成を行うことはできない。

4. ディスクのパーティション設定

ディスクのパーティション設定は、以下の通りディスク全体を使う設定をすれば問題ない。

設定項目 設定値
パーティショニングの方法 ガイド - ディスク全体を使う
パーティション設定の確認 パーティショニングの終了とディスクへの変更の書き込み
ディスクに変更を書き込みますか? はい

5. GRUBの設定

GRUB設定は以下の通り設定しておく。

設定項目 設定値
GRUBをインストールするデバイス /dev/sdaと/dev/sda1を選択
ブートローダをインストールするデバイス /dev/sdaを選択

6. 管理GUIにログイン

以上でインストールは完了となる。再起動後、以下URLにアクセスするとログイン画面が表示されるはずだ。rootユーザと設定したパスワードを使ってログインしてみよう。

https://<ZEVENETのIPアドレス>:444

open-vm-toolsのインストール

ZEVENETは標準ではopen-vm-toolsがインストールされていないので、SSHでログインしたのち、手動でインストールを行う。いきなりインストールを試みると失敗するようなので、apt updateを1回実行してからインストールすること。

# apt update
# apt install open-vm-tools -y

ロードバランサ設定

1. Virtual Interfaceを設定

「Network」→「Virtual Interfaces」にてサービス提供用の仮想インタフェースを設定する。シングル構成で動作させる場合は設定しなくても動作させることはできるが、クラスタ構成として冗長化する場合も考慮して、仮想インタフェースの設定は実施することをお勧めする。

2. Farmを設定

ZEVENETでは負荷分散の設定を「Farm」という名前で設定する。Farmの設定には以下が含まれる。

  • 使用する仮想インタフェースと待ち受けるポート番号
  • 振り分け先サーバとポート番号
  • 振り分け先サーバの監視方式 (PingチェックやTCPチェック等)
  • 振り分けのアルゴリズム (Round Robin等)
  • パーシステント方式 (送信元IPに応じて振り分け先を決定等)

設定方法は、「LSLB」→「Farms」で行う。「CREATE FARM」ボタンでFarmを作成したのち、鉛筆マークの「Edit」ボタンを押して、詳細な負荷分散の設定を行う。このあたりの設定の詳細は割愛するが、たとえば、メールサーバに対する振り分け設定は以下の通りとなる。

設定項目 設定値
Load balancer Algorithm Round Robin
Persistence No persistence
Health Checks for backend check_tcp
Backend メールサーバ2台を25番ポートで登録。PriorityとWeightはデフォルトの1を設定

まとめ

最後にまとめとして、ZEVENETのメリット・デメリットを以下に記載する。

メリット

  • OSイメージが約570MBと軽量
  • 軽量なため、少ないリソースでも十分に動作する
  • 軽量なため、OSの起動がすごく早い
  • Debianベースとなっているため、OSコマンドである程度対処ができる (aptによるパッケージ管理やsystemdによるサービス管理など)
  • ZEVENET公式のマニュアルが比較的充実
  • 良くも悪くもCommunity Editionでは設定項目が必要最低限に絞られているので、マニュアル見なくてもあまり迷うことなく直感的に設定できる
  • Community Editionでもクラスタ構成が組める

デメリット

  • UIを日本語に変更できるが、翻訳が直訳で雑 (Farmが農場と翻訳されていたりする)
  • 公式サイトも日本語サイトがあるが、機械翻訳によるものとなっており、あやしさが漂う
  • おそらく日本国内の人気は低く、日本語で記載されたブログ等の情報は皆無
  • Community Editionであってもクラスタによる冗長化が組めるが、GUIからは実施できない
  • スタティックルートが設定できない

参考

0 件のコメント:

コメントを投稿

人気の投稿