Ubuntu Weekly Recipe

第484回 UbuntuとOpenNebulaでKVMとLXDのインスタンスを起ち上げてみよう

この記事を読むのに必要な時間:およそ 9 分

OpenNebulaのAdd-on

前ページまでで基本的な環境構築が終わりましたので,ここからは少し趣向を変えてOpenNebulaのAdd-on機能について紹介します。

OpenNebulaはハイパーバイザやストレージ形式などの差異をドライバスクリプトで吸収しています。ドライバスクリプトはAdd-onとして追加が可能で,様々なAdd-onが非公式のコミュニティにより開発されています。これらのAdd-onはOpenNebulaの公式サイトのAdd-ons Catalogにまとまっています。

今回はLXD用Add-onのLXDoNeをOpenNebulaに追加して,OpenNebulaでLXDコンテナを管理してみましょう。

LXDoNe

LXDはコンテナ技術を利用したソフトウェアです。Ubuntu Weekly Recipeでは第459回479回などで取り上げられています。

LXDoNeはOpenNebulaでLXDコンテナを操作するための仮想マシンドライバスクリプトとインフォメーションドライバスクリプトをまとめたAdd-onです。ライセンスはApache License 2.0です。主要な部分はPythonで書かれており,pylxdライブラリを利用してAPIからLXDを操作します※2)⁠

※2
pylxdのバージョンに依存しており,pylxd 2.0.5以外のバージョンでは正常に動作しないようです。

特殊な点として,LXDoNeはLXDネイティブなイメージファイルからではなくRAW形式のイメージファイルからコンテナを起動します。

今回インストールするLXDoNe 5.2-4.1のREADMEによると,Tested versionはUbuntu 16.04,OpenNebula 5.2系となっていますが,手元で確認したところOpenNebula 5.4でも動作するようです。

フロントエンドにLXDoNe Add-onを追加する

まずはフロントエンド側の作業です。OpenNebulaフロントエンドの標準的なセッティングは終わっているものとします。

ドライバスクリプトのインストール

GitHubからリリース版のLXDoNeをフロントエンド上にダウンロードします。今回は執筆時の最新版のバージョン5.2-4.1をダウンロードしました。

$ wget https://github.com/OpenNebula/addon-lxdone/archive/v5.2-4.1.tar.gz

tar.gzファイルを適当なディレクトリで展開します。

$ tar xvzpf v5.2-4.1.tar.gz

展開されたドライバスクリプトを/var/lib/one/remotes以下にコピーし,オーナー,グループ,パーミッションを整えます。

$ cd addon-lxdone-5.2-4.1
$ sudo cp -rp src/remotes /var/lib/one
$ sudo chown -R oneadmin:oneadmin /var/lib/one/remotes/

$ cd /var/lib/one/remotes/
$ sudo chmod 755 -R vmm/lxd im/lxd*
$ sudo chmod 644 im/lxd.d/collectd-client.rb

ネットワークリソースで802.1Qドライバを使用する場合は以下のスクリプトも差し替えます。今回作成したネットワークリソースのmynetworkはdummyドライバを使用しているので,ここはスキップしても構いません。

$ sudo cp -p src/one_wait/nic.rb /var/lib/one/remotes/vnm/nic.rb
$ chown oneadmin:oneadmin /var/lib/one/remotes/vnm/nic.rb
$ chmod 755 /var/lib/one/remotes/vnm/nic.rb

Add-onの有効化

フロントエンドの/etc/one/oned.confを編集し,LXDoNeのインフォメーションドライバ設定と仮想マシンドライバ設定を追記します。

$ sudo vi /etc/one/oned.conf

Information Driver Configurationセクション内の適当な場所に以下の内容でインフォメーションドライバ設定を追記します。

#-------------------------------------------------------------------------------
# lxd Information Driver Manager Configuration
# -r number of retries when monitoring a host
# -t number of threads, i.e. number of hosts monitored at the same time
#-------------------------------------------------------------------------------
IM_MAD = [ NAME = "lxd",
      EXECUTABLE = "one_im_ssh",
      ARGUMENTS = "-r 3 -t 15 lxd" ]
#-------------------------------------------------------------------------------

また,Virtualization Driver Configurationセクション内の適当な場所に以下の内容で仮想マシンドライバ設定を追記します。

#-------------------------------------------------------------------------------
# lxd Virtualization Driver Manager Configuration
# -r number of retries when monitoring a host
# -t number of threads, i.e. number of actions performed at the same time
#-------------------------------------------------------------------------------
VM_MAD = [ NAME = "lxd",
    EXECUTABLE = "one_vmm_exec",
    ARGUMENTS = "-t 15 -r 0 lxd",
    KEEP_SNAPSHOTS = "yes",
    TYPE = "xml",
    IMPORTED_VMS_ACTIONS = "migrate, live-migrate, terminate, terminate-hard,
        undeploy, undeploy-hard, hold, release, stop, suspend, resume, delete,
        delete-recreate, reboot, reboot-hard, resched, unresched, poweroff,
        poweroff-hard, disk-attach, disk-detach, nic-attach, nic-detach,
        snap-create, snap-delete"
]
#-------------------------------------------------------------------------------

OpenNebulaサービスを再起動します。

$ sudo systemctl restart opennebula.service

著者プロフィール

大田晃彦(おおたあきひこ)

株式会社 創夢 所属。UbuntuとGentooでアニメを録画したりしながら暮らしています。全体的に浅いです。

コメント

コメントの記入