第521回から紹介しているLXD 3.
LXDコンテナのバックアップとリストア
LXDはシステムコンテナです。つまりDockerコンテナのように不変
今そこにあるLXDコンテナが,
ただし実験目的でちょっと作ったコンテナにそこまで手間をかけていられないかもしれません。また
そこでLXDでは,
- 停止中のコンテナを他のホストへ移動するマイグレーション機能
- 停止中のコンテナを他のホストへ複製するコピー機能
- 稼働中のコンテナをステートレスに保存するスナップショット機能
- 稼働中のコンテナをステートフルに保存するスナップショット機能
- スナップショットされたコンテナをリストアする機能
- スナップショットをベースイメージとしてエクスポートする機能
- ベースイメージをインポートする機能
- クラスタとして構成されたLXDホスト間でイメージを同期する機能
- 稼働中のコンテナを他のホストへ移動するライブマイグレーション機能
(実験的な機能)
今回はこのスナップショットを利用したバックアップとリストア,
今回もUbuntu 18.
LXDのスナップショット機能
コンテナのスナップショットを取る方法は至極簡単です。まずは適当なコンテナを作っておきます。
$ lxc launch ubuntu:18.04 kasumi Creating kasumi Starting kasumi $ lxc info kasumi Name: kasumi Remote: unix:// (中略) Resources: (中略) lo: Bytes received: 1.02kB Bytes sent: 1.02kB Packets received: 12 Packets sent: 12
lxc info
はスナップショット作成後との比較のために表示しています。
さて,lxc snapshot コンテナ名 スナップショット名
」
$ lxc snapshot kasumi arisa $ lxc info kasumi (中略) Snapshots: arisa (taken at 2019/06/16 08:24 UTC) (stateless)
コンテナの情報にスナップショットが追記されていることがわかりますね。
さっそく作ったスナップショットをリストアしてみましょう。リストアされたことがわかるよう,
$ lxc exec kasumi touch /home/ubuntu/snap0 $ lxc exec kasumi ls /home/ubuntu/ snap0 $ lxc exec kasumi uptime 09:02:37 up 2:49, 1 user, load average: 0.07, 0.04, 0.00
最後のuptimeは,
実はLXDの普通のリストアは,
一時的であれコンテナが停止すると困る場合は,--stateful
」
- ※1
- ここでの
「コンテナが停止する困る場合」 はより正確に言うと 「コンテナ上のサービスが終了すると困る場合」 です。ステートフルなリストアであっても, 一時的にコンテナが応答できない期間は発生します。ステートフルなスナップショットを利用するには, 後述の 「LXDのライブマイグレーション」 で言及しているように, CRIUを用意する必要があります。
リストアはlxc restore コンテナ名 スナップショット名
」
$ lxc restore kasumi arisa $ lxc exec kasumi ls /home/ubuntu/ $ lxc exec kasumi uptime 09:11:56 up 0 min, 0 users, load average: 1.19, 0.30, 0.09
先ほど作成したsnap0が,
LXDコンテナはシステムコンテナとは言え,
スナップショットの削除はコンテナの削除と同様にlxc delete
」
$ lxc delete kasumi/arisa
ちなみにLXD 3.