LXDを用いてサーバー(Linux)の準仮想化を行ってみました

LXDを用いてサーバー(Linux)の準仮想化を行ってみました

- Tatsuya Shirai の投稿
返信数: 0

 他校の先生から「LXDいいぞ」とお聞きして,この夏の間に試してみました.いまは完全にLXD環境に移行済みです.結論から言いますと「LXDいいぞ」.

 LXDに移行する前はVMWare社のESXiによる仮想化環境を利用していました.コンピューターのハードウェアから仮想化されていますので,WindowsでもLinuxでも仮想環境下にインストールできるという意味では多様な使い方ができます.ただ問題は,無料版ですと仮想サーバーの完全なバックアップをとることができない(無理やり取る方法はあるようですが).
 LXDはUbuntuなどのLinuxのサーバー上で動作する準仮想環境です.ハードウェアのエミュレーションは行わないため,動作が高速である代わりにLinux coreは仮想サーバーOSのものをそのまま使います.つまりLinux環境しか仮想サーバーを構築することはできません.ファイルシステムはサーバーOSのファイルシステムをそのまま使うI/O方式とループバックデバイス(単一の大きなバイナリーファイルを確保して,その中に好みのファイルシステムを構築する)を用いる方法が選択できます.
 Ubuntuが正式なサポートOSですので,LXDサーバーのOSとしてはUbuntuが最適です.今回は,Ubuntu18.04LTS Server上に CentOS7.5を仮想サーバーとして稼働させてMoodleを運用しました.Ubuntu18.04LTS Serverには最初からLXDが組み込まれています.インストールの細かな話は全て省略します.難易度は「わたし程度のLinux初心者でも何とかなった」です.一番,手間が掛かったのはLXDのコンテナー上のCentOS7.5の再セットアップ(標準的な状態のコンテナイメージが提供されています)でした….

(現在の環境)

 運用サーバー(10年近く前のHPのサーバー):Ubuntu18.04LTS Sever 上に CentOS7.5,その上でMoodle3.3を運用
 バックアップ用サーバー(同じく古いDellのサーバー):Ubuntu18.04LTS Server

肝はここです,バックアップ用のサーバー.当初は実験環境用として準備したものです.実験終了後はmoodledataフォルダーとmysqlのダンプをscpでバックアップする先に考えていました.ところがLXDについて調べていくと,コンテナー(仮想サーバー)を別のLXDサーバーにリモートでコピーできる機能があることを知りました.つまり,運用サーバー上で動作しているコンテナーのスナップショット作成をリモートのバックアップ用サーバーから指令し,その作成されたスナップショットを(サーバーを落とすことなく)バックアップ用サーバーにコンテナーとしてコピー(インポート)できる.

 本校ではLinuxサーバーはファイアーウォールの内側に隔離された学内ネットワークにブラ下がります(アップデートやインストールのためのいくつかのサイトにはファイヤーウォールを越えてアクセスできますが,外部からはアクセスできません).ただし,Moodleの動作する仮想サーバー(NICのMACアドレスにより識別)のみは外部からのアクセスを許されています.
 つまりコピーされたスナップショットは単にリストアするためのバックアップではなく,そのまま(MACアドレスも含めて)完全に即座に起動可能です.運用サーバーが物理的に壊れてしまっても,バックアップ用サーバー上にコピーされたコンテナを起動すれば即座にサービスを再開できます.

 コンテナのLXDサーバー間のコピーに要する時間.正確には計っていませんが,それまでデイリーなバックアップとして行っていたmoodledataフォルダの全ファイルとMySQLダンプ,その圧縮に掛かっていた時間と大差ない感じです.そのバックアップファイルを外部に転送するにはさらに時間が掛かっていましたので,その合計時間よりは確実に短い.いままでは毎日バックアップを取りつつもそれを外部に退避するのは気が向いた時,というルーズなバックアップ体制(全学利用のMoodleではなく個人の実験用のサーバーだからです)でしたが,LXD化したことにより,これからは完全なバックアップを毎日,別の物理サーバーにコピーできます.

 どうやらLXDコンテナーのライブマイグレーションの機能もあるようですが…それはまだ情報不足で取り掛かっていません.詳しい方がいたら教えて下さい.

P.S.1 ESXiの場合はGUIの管理ツール(VSphere)がありましたが,LXDにはありません.全てコマンド打ち込みです.ただ,とてもシンプルかつ直感的なコマンド体系ですので,すぐに慣れます.
P.S.2 ESXiですとスナップショットはツリー構造で管理できましたが,LXDの場合はその機能がありません.スナップショット名で自分で分かり易く管理するしかないでしょう.スナップショットが枝分かれするような状態になることはそう多くは無いと思いますが.また,ESXiですとスナップショット作成は仮想マシンを停止させる必要がありましたが,LXDでは停止させなくても構いません.

評点平均: お役立ち度: ★★★★★★★ (1)