MAASを3.0から3.1に変えてしばらく気がついていなかったのですが、KVM VMを作成しようとしたらLXDのバージョンアップを要求されてしまい、そのままではVMの作成ができない問題が発生しました。MAAS Dashboardにエラー表示はされていましたが、rackd.logにも次のようなメッセージが出ていました。
以下、/var/log/maas/rackd.log
の抜粋です。
2022-05-16 01:37:48 provisioningserver.rpc.pods: [critical] bay12-gen8: Failed to compose machine: RequestedMachine(hostname='eks-admin', architecture='amd64/generic', cores=2, memory=4096, block_devices=[RequestedMachineBlockDevice(size=40000000000, tags=['default'])], interfaces=[RequestedMachineInterface(ifname=None, attach_name=None, attach_type=None, attach_options=None, attach_vlan=None, requested_ips=[], ip_mode=None)], cpu_speed=None, known_host_interfaces=[KnownHostInterface(ifname='eno1', attach_type='macvlan', attach_name='eno1', attach_vlan=None, dhcp_enabled=True), KnownHostInterface(ifname='eno2', attach_type='macvlan', attach_name='eno2', attach_vlan=None, dhcp_enabled=False), KnownHostInterface(ifname='eno3', attach_type='macvlan', attach_name='eno3', attach_vlan=None, dhcp_enabled=False), KnownHostInterface(ifname='eno4', attach_type='macvlan', attach_name='eno4', attach_vlan=None, dhcp_enabled=False), KnownHostInterface(ifname='eno5', attach_type='macvlan', attach_name='eno5', attach_vlan=None, dhcp_enabled=False), KnownHostInterface(ifname='eno6', attach_type='macvlan', attach_name='eno6', attach_vlan=None, dhcp_enabled=False), KnownHostInterface(ifname='br-eno1', attach_type='bridge', attach_name='br-eno1', attach_vlan=None, dhcp_enabled=True), KnownHostInterface(ifname='lxdbr0', attach_type='bridge', attach_name='lxdbr0', attach_vlan=None, dhcp_enabled=False), KnownHostInterface(ifname='tap163824ef', attach_type='macvlan', attach_name='tap163824ef', attach_vlan=None, dhcp_enabled=True), KnownHostInterface(ifname='tap5e3bd0c0', attach_type='macvlan', attach_name='tap5e3bd0c0', attach_vlan=None, dhcp_enabled=True), KnownHostInterface(ifname='tapfebb6e73', attach_type='macvlan', attach_name='tapfebb6e73', attach_vlan=None, dhcp_enabled=True), KnownHostInterface(ifname='tapb2f4e181', attach_type='macvlan', attach_name='tapb2f4e181', attach_vlan=None, dhcp_enabled=True), KnownHostInterface(ifname='tape581dc1d', attach_type='macvlan', attach_name='tape581dc1d', attach_vlan=None, dhcp_enabled=True)], pinned_cores=[], hugepages_backed=False) Traceback (most recent call last): File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/usr/lib/python3.8/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3/dist-packages/twisted/_threads/_threadworker.py", line 46, in work task() File "/usr/lib/python3/dist-packages/twisted/_threads/_team.py", line 190, in doWork task() --- <exception caught here> --- File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 250, in inContext result = inContext.theWork() File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 266, in <lambda> inContext.theWork = lambda: context.call(ctx, func, *args, **kw) File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 122, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 85, in callWithContext return func(*args,**kw) File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 202, in wrapper result = func(*args, **kwargs) File "/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/lxd.py", line 440, in compose self._check_required_extensions(client) File "/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/lxd.py", line 501, in _check_required_extensions raise LXDPodError( provisioningserver.drivers.pod.lxd.LXDPodError: Please upgrade your LXD host to 4.16 or higher to support the following extensions: custom_block_volumes
ログの最終行に解決策が書いてありました。
現在この環境にインストール済みのLXDは、4.0/stableチャンネルのバージョン4.0.9みたいです。バージョン4.16以降にしろと言われているので、バージョン的に近い4.24/stableを選択することにしました。
$ snap info lxd ... channels: latest/stable: 5.1-1f6f485 2022-05-12 (23037) 84MB - latest/candidate: 5.1-cd7fe68 2022-05-15 (23077) 84MB - latest/beta: ↑ latest/edge: git-f381aad 2022-05-14 (23072) 84MB - 5.1/stable: 5.1-1f6f485 2022-05-12 (23037) 84MB - 5.1/candidate: 5.1-cd7fe68 2022-05-15 (23077) 84MB - 5.1/beta: ↑ 5.1/edge: ↑ 5.0/stable: 5.0.0-b0287c1 2022-04-20 (22923) 83MB - 5.0/candidate: 5.0.0-b0287c1 2022-04-19 (22923) 83MB - 5.0/beta: ↑ 5.0/edge: ↑ 4.24/stable: 4.24-c92c0b2 2022-04-01 (22754) 82MB - 4.24/candidate: 4.24-c92c0b2 2022-04-01 (22754) 82MB - 4.24/beta: ↑ 4.24/edge: ↑ 4.0/stable: 4.0.9-8e2046b 2022-03-26 (22753) 71MB - 4.0/candidate: 4.0.9-8e2046b 2022-03-24 (22753) 71MB - 4.0/beta: ↑ 4.0/edge: git-407205d 2022-03-31 (22797) 73MB - 3.0/stable: 3.0.4 2019-10-10 (11348) 55MB - 3.0/candidate: 3.0.4 2019-10-10 (11348) 55MB - 3.0/beta: ↑ 3.0/edge: git-81b81b9 2019-10-10 (11362) 55MB - installed: 4.0.9-8e2046b (22753) 71MB -
とりあえず以下を実行しました。
$ sudo snap refresh lxd --channel=4.24/stable lxd (4.24/stable) 4.24-c92c0b2 from Canonical✓ refreshed
バージョンが更新されたらサービスの再起動までは自動で行われます。ほんと楽。
snap refresh
コマンドはsnapパッケージのアップデートやアップグレードを行うためのコマンドです。実行前に--classic
オプションなどが現在のバージョンの導入に利用されていないことを確認します。これを間違えると、アップグレードに失敗するか、アップグレードはできたことになっているが実際はコンフィグレーションミスでまともに動かない状態になってしまいます(一度私は、Microstackのアップグレードを失敗しました)。今回は、アップグレード先のLXDバージョンを--channel
オプションで指定しました。
アップグレード後に少し落ち着いたら、VMが作成できることを確認します。
今回の例ではLXD KVMホストのLXDのバージョンアップのみの実行であり、MAASのサービス再起動およびLXD KVMホストのサービス再起動は不要でした。 LXD KVMホストによって生成されたVMはパワーステートがエラー(赤色)になっていましたが、「Check Power」を実行したところ全て正常に戻りました。
とりあえず、問題を解決できてよかったです。MAASは物理マシン(物理ハードウェア)にOSのプロビジョニングができて便利ですが、仮想マシンホストの作成やそのホストを使った仮想マシン作成、仮想マシンへのSSHアクセスができて便利です。
簡単な方法で問題解決してホッとしました。