LXD用ホストをセットアップする
続いてホスト側の作業です。こちらもOpenNebulaのKVM用ホストの標準的なセッティングが終わっているものとします。
パッケージとPythonライブラリインストール
LXDoNeのドライバスクリプトが動作するために必要なパッケージをインストールします。
$ sudo apt install lxd lxd-tools python-pylxd/xenial-updates criu bridge-utils python-ws4py python-pip
pipコマンドでPythonライブラリのisoparserをインストールします。
$ sudo pip install isoparser
SunstoneのVNCコンソール接続用に,
$ wget https://github.com/OpenNebula/addon-lxdone/releases/download/v5.2-4.1/svncterm_1.2-1ubuntu_amd64.deb $ sudo apt install ./svncterm_1.2-1ubuntu_amd64.deb
UNIXアカウントoneadminの権限設定
UNIXアカウントoneadminがパスワード入力なしでsudoできるように設定します。強力な権限を与えることになるので気をつけましょう。あわせて,
$ sudo bash -c 'echo "oneadmin ALL= NOPASSWD: ALL" >> /etc/sudoers.d/lxdone' $ sudo usermod -a -G lxd oneadmin
LXDセットアップ
ホスト上でlxd initコマンドを実行し,
- ※3
- network-address,
trust-password, network-portはネットワーク越しにホスト上のLXDサービスを操作したい時に設定します。LXDoNeの場合は, ホスト上のpylxdからLXDサービスを操作するため, 必ずしも設定する必要はなく, 省略しても構いません。必要に応じて適宜読み替えてください。
$ sudo lxd init --auto \ --storage-backend dir \ --network-address 0.0.0.0 \ --network-port 8443 \ --trust-password password
LXDoNeではOpenNebulaの管理するネットワークリソースをLXDコンテナに割り当てます。eth0デバイスもデプロイ時にコンテナごとに設定するので,
$ lxc profile device remove default eth0
これでホスト側の準備が整いました。
LXD用ホストのOpenNebulaへの登録
ここから再びフロントエンド上での作業に戻ります。
OpenNebulaではホスト単位でハイパーバイザを指定します。一つのホストに複数のハイパーバイザを指定することはできません。LXDoNeを利用する場合は,
新しくLXD用ホストを登録する
LXD用にホストを新規に登録する場合は,
$ onehost create host002 -i lxd -v lxd
上記により,
既存のKVM用ホストをLXD用に登録する
既にKVM用のホストとして登録してあるハイパーバイザをLXD用に変更することも可能です。ここでは前回のRecipeで登録したhost001をLXD用に変更してみます。
まず,
$ onehost disable host001 $ onehost list ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT 0 host001 default 0 0 / 200 (0%) 0K / 7.7G (0%) dsbl
onehost syncコマンドを--forceオプション付きで実行し,
$ onehost sync host001 --force * Adding host001 to upgrade [========================================] 1/1 host001 All hosts updated successfully.
host001のハイパーバイザ,
$ onehost update host001
以下の3属性をlxdに変更し,
(変更前)
HYPERVISOR="kvm"
IM_MAD="kvm"
VM_MAD="kvm"
(変更後)
HYPERVISOR="lxd"
IM_MAD="lxd"
VM_MAD="lxd"
onehost enableコマンドでhost001を使用可能状態に戻します。onehost listコマンドでSTAT欄が
$ onehost enable host001