[筆記] 如何搬移比較複雜的 LXD 容器

這次要帶大家一起動手搬移設定了 idmap 等功能的 LXD Conainer 喔!

圖片:Container Ship – Freighter. Photog of the cargo ship in the Baltic Sea in Poland.(來源,Public Domain)

先前在『使用 LXD 的一些小技巧』一文中,介紹了一些額外的功能,讓 LXD 可以有更多的應用。

當然也要來補充一下如何遷移(migrate)他們囉!

Host 環境:

  • OS: Ubuntu 20.04.1 LTS
  • Kernel: 5.4.0-58-generic
  • LXD: lxd 4.8 (snap)
    • Storage Pool: zfs-0.8.3-1ubuntu12.5

測試各種 LXD 設定:

一、資料夾分享

  • 名稱:dir-map

  • 資料夾 /share –> ~/share

    lxc config device add dir-map myshare disk path=/share source=/home/使用者/share
    
  • id 1000 1000 –> 1000 1000

    lxc config set dir-map raw.idmap 'both 1000 1000'
    

exportscp 到另一部主機:

lxc export dir-map dir-map.tar.bz2 --compression bzip2
scp dir-map.tar.bz2 192.168.1.17:/home/play_pc/

使用 import 匯入:

lxc import dir-map.tar.bz2

這邊要注意原本的分享資料夾要先建立起來,否則會出現以下錯誤訊息

Error: Internal import request: Create instance: Invalid devices: Device validation failed for "myshare": Missing source "/home/play_pc/share" for disk "myshare"

另外,若是原本有使用自訂的 idmap,也要記得在主機設定好,不然會出問題(lxc 裡面看是對的,外面看卻不是):

echo "root:1000:1" | sudo tee -a /etc/subuid
echo "root:1000:1" | sudo tee -a /etc/subgid

二、網路橋接

exportscp 到另一部主機:

lxc export bridged bridged.tar.bz2 --compression bzip2
scp bridged.tar.bz2 192.168.1.17:/home/play_pc/

使用 import 匯入:

lxc import bridged.tar.bz2

如果沒有事先設好 profile 的話,會出現以下訊息:

Error: Internal import request: Create instance: Requested profile 'bridge0' doesn't exist

三、使用 OpenVPN

exportscp 到另一部主機:

lxc export openVPN openVPN.tar.bz2 --compression bzip2
scp openVPN.tar.bz2 192.168.1.17:/home/play_pc/

使用 import 匯入:

lxc import openVPN.tar.bz2

無須額外設定,連線正常:

root@openVPN:~# ip a
...
2: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none
    inet 10.17.112.93/24 brd 10.17.112.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::67e3:1b2f:d8d2:6be6/64 scope link stable-privacy
       valid_lft forever preferred_lft forever
...

後記

其實這篇文章沒什麼特別的用意,只是我「又」把自己的 Server 玩炸了,順便筆記一下其中一小段修復過程的心得 Orz

總之,謝謝收看!

發表迴響