移動 LXC 容器的備份儲存
我有一堆 LXC 容器在機器上執行。他們都在預設位置有他們的rootfs
/var/lib/lxc/*/rootfs
。該目錄位於主機上一個相當小的分區上。我有一個更大的分區安裝在/home
.是否有將備份儲存移動到的選項
/home
?最好每個容器。我知道在我有幾個正在執行的容器( )之前
lxc-create -P PATH
我可以做到這一點。但現在他們起來了,我不想失去他們。
rootfs 是配置選項。如果容器已停止,您可以將備份目錄移動到任何您想要的位置並在配置文件中指定:
lxc.rootfs = /home/utsname
這可能比使用符號連結更好。
LXC 還允許備份文件。您可以使用塊設備和原始圖像。
來源:https ://linuxcontainers.org/lxc/manpages/man5/lxc.container.conf.5.html
我個人更喜歡不同的方法。鑑於容器的作業系統部分相對較小(執行大量服務的 debian jessie 伺服器最多 2GB,帶有遠端桌面的工作 ubuntu 映像大約 3Gb),我將作業系統留在 /var/lib/lxc 並使用容器數據的單獨分區。
這只需修改 /var/lib/lxc/container/fstab 文件即可完成:
/mnt/data/container-data/ /var/lib/lxc/container/rootfs/home/ none bind 0 0
在主主機上創建文件夾(源和目標),停止容器,移動數據並重新啟動容器!
在上面的例子中,兩個目錄都駐留在 lxc 主機上的 /mnt/data 分區上,在我的例子中是一個大磁碟。
這種方法有很多優點:拆分作業系統和數據允許您在必須完成危險任務時快速複製和啟動測試容器(例如:“aptitude -f dist-upgrade”):
- 停止容器(fstab 中的分區將從 /var/lib/lxc/container/rootfs/ 目錄分離):
lxc-stop -n container
- 複製容器:
mkdir /var/lib/lxc/containertest rsync -Pavv /var/lib/lxc/container/ /var/lib/lxc/containertest/
記得相應地修改 /var/lib/lxc/containertest/config 和 /var/lib/lxc/containertest/fstab
- 啟動新的容器測試,使用它並查看結果!
lxc-start -n containertest
此外,回答您的問題,您不必擔心以前沒有這樣做過*:* lxc 的一大優勢是它的多功能性!