2015-10-27 44 views
3

我已經看了全部,但看不到有沒有辦法。我有一個在Ubuntu 14.04主機上運行Ubuntu 14.04的幾個LXC容器。它們對我來說變得非常重要,所以如果主機的硬件出現故障,我希望能夠輕鬆地將LXC容器備份/遷移到另一臺服務器。將lxc遷移到lxd

我已經使用LXD構建了一個新的Ubuntu 15.1服務器,並已註銷並返回並查看新組。爲了測試,我tar'd我現有的LXC容器了與--numeric-owner開關的一個對我的14.04主持人:

tar --numeric-owner -czvf ContToBeMoved.tgz /var/lib/lxc/my_container

---那麼新的服務器上---

tar --numeric-owner -xzvf ContToBeMoved.tgz -C /var/lib/lxc/

...並已成功恢復新服務器15.1服務器上的LXC容器。

雖然我運行LXD命令,但LXD沒有看到容器。我嘗試將容器移動到/var/lib/lxd/containers目錄,但仍然沒有看到它。有沒有辦法編輯/克隆/遷移LXC容器,以便我們可以使用LXD前進?

在此先感謝。

回答

4

LXD使用sqlite數據庫進行容器配置,所以只需將容器的rootfs轉儲就位不夠。

最簡單的做法是用LXD創建一個新的容器,然後從/ var/lib/lxd/containers/NAME/rootfs中刪除它的rootfs,並替換原來的主機。

請注意,如果您的源容器有特權(/ var/lib/lxc/NAME/rootfs由root:root擁有,而不是100000:100000),那麼LXD默認運行非特權容器,那麼您需要運行以下也是:

lxc config set NAME security.privileged true 
+0

非常感謝您的反饋,您的信息非常有意義。我會盡快給你一個機會。現在已經配置了一臺備份的LXC服務器,但使用LXD進行實時遷移太令人印象深刻,無法通過! =)乾杯。 – user3097597

+0

非常感謝這個有用的答案,但是,這似乎沒有考慮到IPv4網絡配置,可能恰恰是因爲只有rootfs內容被複制過了。 我剛剛偶然發現了https://github.com/lxc/lxd/blob/master/scripts/lxc-to-lxd腳本,但是似乎也不喜歡'lxc.network.ipv4'配置密鑰? – djvdorp