0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LXDで作成したコンテナをエクスポートし、incusへインポートして動かす

Last updated at Posted at 2024-12-07

はじめに

とある案件でLXDからincusへの乗り換えを行うことになったため、コンテナの移行手順をまとめてみました。

LXDからincusへ乗り換えの方法としてはマイグレーションツールを利用する方法もありますが、マイグレーションツールを利用せずにLXDからincusへ移行したいケースもあるかと思います。

今後LXDからincusへ移行を検討されている方の参考になりましたら幸いです。

前提

各手順は以下の前提をもとに記載しています。この前提より外れる場合は、適宜読み替えや記載外の設定調整が必要となります。

  • LXDにおいてコンテナのネットワークはlxdbr0がアタッチされている
  • incusにおいてコンテナのネットワークはincusbr0がアタッチされている
  • プロファイルはdefaultである
  • ストレージプールはdefaultである

手順

ホストのバックアップ、スナップショット

  • ホスト環境をイメージレベルでバックアップする
  • IaaSやKVM, Hyper-Vなどを利用している場合は、スナップショットが手軽でおすすめ
  • 後述するLXDバージョンアップ後は、何があっても基本的には旧バージョンに戻せなくなるため、不測の事態を考慮して(失敗してもやり直せるよう)対応しておくこと

LXDバージョンアップ

  • LXDのバージョンが5.21でない(5.21よりも古い)場合は、5.21までバージョンアップする
    • snapでインストールされている場合は、以下のコマンドを順番に実行
      • snap refresh lxd --channel=5.0/stable
      • snap refresh lxd --channel=5.21/stable 
    • LXD 4.xの場合は、LXD 4.x -> LXD5.0 -> LXD 5.21の順にバージョンアップする
      (5.0を飛ばして4.x -> 5.21へいきなりバージョンアップすると、LXDがエラーで立ち上がらなくなるため注意)

LXDコンテナのエクスポート

  • LXDホスト上でlxc export --instance-only <コンテナ名> <アーカイブファイル名(tar.gz)> でコンテナをエクスポートする
    (LXD 4.xでコンテナをエクスポートすると、incusでインポート時にエラーとなりインポートできないので注意)
  • エクスポートしたアーカイブファイルをincusホストへコピーする

ホスト側への共有先ディレクトリ配置

  • エクスポートしたLXDコンテナで共有ディレクトリを設定していた(LXD運用時に共有ディレクトリを利用していた)場合は、LXDホストとincusホスト間で共有先ディレクトリを同じ構成とする
  • incusへの当該コンテナインポート前に対応する
    (incusホスト側に共有先ディレクトリが未設定の場合、コンテナインポート時にエラーとなる)

incusへのLXDコンテナインポート

  • incusホスト上でincus import <アーカイブファイル名(tar.gz)> <incusコンテナ名> を実行し、コンテナをインポートする

incusコンテナ上の/var/log/journalディレクトリ削除

  • /var/lib/incus/storage-pools/default/containers/<コンテナ名>/rootfs/var/log/journalフォルダが存在する場合は削除する
  • 当該フォルダが存在する場合、以下のエラーが発生する場合がある
Error: Failed to handle idmapped storage: invalid argument - Failed to change ACLs on /var/lib/incus/storage-pools/default/containers/<コンテナ名>/rootfs/var/log/journal

※参考

incusコンテナのconfigを変更

  • incus config edit <コンテナ名> を実行する
  • lxdbr0incusbr0 へ文字列置換する
    (未設定の場合、コンテナ起動時にエラーとなる)

※以下の手順で固定IPアドレスを割り当てていない場合は、不要かもしれない

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?