Home » スタッフBlog » LXDによるコンテナ技術での検証用環境の構築

LXDによるコンテナ技術での検証用環境の構築

category : スタッフBlog 2018.2.1 

技術部の久保田です。

複数システムの検証環境として、データベースやバージョンなどシステム構成の違いから、仮想化環境を用いるのが一般的かと思います。
仮想化環境はKVMやVMwareなどが有名ですが、有料であったりハイパーバイザのオーバーヘッド、リソースの事前割当など、気軽に使用するには少し敷居の高さを感じてしまいます。
テストパターンやテスト要員に合わせて同一の環境を作りたい、修正前後の比較テストのためにバージョンの異なる環境を用意したい、そんな使い捨てができる検証用環境はできないものかと、コンテナ技術について調査しました。

仮想環境ではなくコンテナであれば、事前のリソース割当も不要ですし、オーバーヘッドも少なく、なにより無料です。
コンテナ技術としてはDockerが有名ですが、今回はLXDを紹介したいと思います。
Dockerは「アプリケーションコンテナ」という、単一のコンテナに単一のサービス(httpd, MySQL等)を動かす使い方が一般的ですが、LXDは「システムコンテナ」という、単一のコンテナに複数サービス(というかinit以下のフルシステム)を動かす使い方を目的としております。
なので既にあるシステムの検証環境をコンテナ技術を使って構築するという要件であれば、LXDではないかと思った次第です。
もちろん、Dockerでもシステムコンテナは作成可能ですし、LXDのシステムコンテナ上にDockerのアプリケーションコンテナを作成する、といったことも可能です。

LXDはUbuntuの開発元であるCanonicalが開発していて、公式サイトによると、
「仮想マシンと同じようなユーザ体験を提供しますが、仮想マシンではなくLinuxコンテナを使います。」
と謳っております。
実際にLXD環境を構築してみたのですが、確かにVMware vSphereと同じような感覚で利用できました。
さらにコンテナ技術を使用しているだけあって高速かつ軽量で、CentOSイメージからコンテナの作成、コンテナ内で検証構築の構築、構築した検証環境のイメージ化や複製など、サクサクと作業することができました。
スナップショットの作成と復元は高速で、スナップショットから新規コンテナの作成もコマンド一つで実現可能となれば、ちょっとした機能改修の新旧比較も捗るのではないでしょうか。
まだ試していないのですが、別のサーバへシステムコンテナを移動させるライブマイグレーション機能もあるようです。

画像はコンテナの一覧と、スナップショットの取得⇒復元⇒削除の実行確認です。


LXDは2015年に初めてリリースされ、2016年4月にLXD 2.0の長期サポート対象版が、2017年12月時点ではXLD 2.21と活発に開発が行われている新しいプロジェクトです。
今後、各種システムの検証環境を管理する上で、仮想化環境に取って代わる有力な候補かと思います。

タグ

サイト内検索

Copyright(c) 2018 IT-TERA All Rights Reserved.