LXDイメージとテンプレートの登録
LXD用のイメージファイルとテンプレートを登録します。前述の通り,
$ onemarketapp list | egrep -i 'ubuntu|^..ID' ID NAME VERSION SIZE STAT TYPE REGTIME MARKET ZONE 2 Ubuntu 16.04 - KVM 5.4.0 2.2G rdy img 06/14/16 OpenNebula Public 0 5 Ubuntu 17.04 - KVM 5.4.0 2.2G rdy img 06/14/16 OpenNebula Public 0 10 Ubuntu for Docker Machine 0.6.0-2 10G rdy img 02/23/16 OpenNebula Public 0 11 Ubuntu 14.04 - KVM 5.4.0 2.2G rdy img 08/11/14 OpenNebula Public 0 16 Ubuntu 16.04 - LXD 2 1024M rdy img 07/25/17 OpenNebula Public 0
ID: 16の
$ onemarketapp export 16 ubuntu1604lxd -d default IMAGE ID: 1 VMTEMPLATE ID: 1
onetemplate updateコマンドでテンプレートにネットワークリソースを追加しておきましょう。KVM用Appの時と同様にmynetworkを追加することにします。
$ onetemplate update ubuntu1604lxd
エディタが立ち上がるので,
NIC = [ NETWORK = "mynetwork", NETWORK_UNAME = "oneadmin" ]
LXDコンテナインスタンスの作成
これでLXDコンテナをデプロイする準備が整いました。onetemplate instantiateコマンドでデプロイしてみましょう。
$ onetemplate instantiate ubuntu1604lxd VM ID: 26 $ onevm list ID USER GROUP NAME STAT UCPU UMEM IP HOST TIME 26 oneadmin oneadmin ubuntu1604lxd-26 runn 0 0K 192.168.1.160 host001 0d 00h01
STAT欄が
MarketPlaceのLXDoNe用Appはディスク容量が1GBしかありません。デプロイ時のイメージサイズの拡張にも対応していないため,
KVM用ホストとLXD用ホストを共存させる
OpenNebulaはイメージファイルの形式とホストのドライバスクリプトの組み合わせを判断しません。このため,
大規模なクラウド環境では,
VM Groups定義ファイルの作成
例として,
NAME = "HypervisorGroup"
ROLE = [
NAME = "LXD",
HOST_AFFINED = "0, 2" ]
ROLE = [
NAME = "KVM",
HOST_ANTI_AFFINED = "0, 2" ]
冒頭のNAME属性はこのVM Groupsルールの名称です。ここではHypervisorGroupとしています。
その下のROLEは仮想マシンの配置の制約とルールを定義します。ここではLXDロールとKVMロールを定義しています。LXDロールはID: 0,
onevmgroup createコマンドに定義ファイルを指定して実行し,
$ onevmgroup create hypervisorgroup.txt ID: 3 $ onevmgroup list ID USER GROUP NAME VMS ROLES 0 oneadmin oneadmin Yama 0 AoHina, KokoHono 3 oneadmin oneadmin HypervisorGroup 0 LXD, KVM
HypervisorGroupルールがID: 3として登録されました。
続いて,
$ onetemplate update ubuntu1604kvm (以下を追記) VMGROUP=[ VMGROUP_NAME="HypervisorGroup", ROLE="KVM" ]
$ onetemplate update ubuntu1604lxd (以下を追記) VMGROUP=[ VMGROUP_NAME="HypervisorGroup", ROLE="LXD" ]
各テンプレートからインスタンスを作成してみましょう。
KVM用ホストのhost002にはまだ仮想マシンを受け入れるだけのリソースの余裕がありますが,
まとめ
二回にわたってOpenNebula 5.