Lxc copy --refresh fails

I have two LXD hosts (norton and trixie) both running LXD version 5.0.2. For containers on each host I’m trying to create a backup on the other host. I’ve used lxc copy to copy the container to the other host, but when I use lxc copy --refresh I get the following:

$ lxc copy --refresh argus trixie:argus
Error: Failed instance creation: Error transferring instance data: Failed creating instance on target: Failed to run: btrfs receive -e /var/snap/lxd/common/lxd/storage-pools/default/containers/migration.4271173957/pre-nagios-install: exit status 1 (ERROR: cannot find parent subvolume)

It seems to have something to do with a snapshot (pre-nagios-install) that exists on the source (norton) but does not exist on the destination (trixie). But I would not expect any of the snapshots to exist on the destination after runing lxc copy.

Any guidance would be great. Thanks.

Anyone have any ideas why this is happening? Still a mystery.

Please can you provide the output of sudo zfs list -t all on both servers?

Also please can you provide the output of lxc info <instance> on both servers?

Hi @tomp. Thanks for replying. I’m using btrfs, not zfs, and I don’t know the equivalent command to run.

Here is the lxc info <instance> you requested:

Source:

$ lxc info argus
Name: argus
Status: RUNNING
Type: container
Architecture: x86_64
PID: 2316
Created: 2023/02/24 14:46 EST
Last Used: 2023/03/03 15:57 EST

Resources:
  Processes: 92
  CPU usage:
    CPU usage (in seconds): 1157
  Memory usage:
    Memory (current): 1.51GiB
  Network usage:
    eth0:
      Type: broadcast
      State: UP
      Host interface: vethb35d1cee
      MAC address: 00:16:3e:42:1d:a7
      MTU: 1500
      Bytes received: 153.56MB
      Bytes sent: 29.66MB
      Packets received: 262145
      Packets sent: 270323
      IP addresses:
        inet:  10.173.120.49/24 (global)
        inet6: fd42:6b70:a5f3:4878:216:3eff:fe42:1da7/64 (global)
        inet6: fe80::216:3eff:fe42:1da7/64 (link)
    lo:
      Type: loopback
      State: UP
      MTU: 65536
      Bytes received: 8.51MB
      Bytes sent: 8.51MB
      Packets received: 88842
      Packets sent: 88842
      IP addresses:
        inet:  127.0.0.1/8 (local)
        inet6: ::1/128 (local)

Snapshots:
+--------------------+----------------------+------------+----------+
|        NAME        |       TAKEN AT       | EXPIRES AT | STATEFUL |
+--------------------+----------------------+------------+----------+
| pre-nagios-install | 2023/02/27 08:57 EST |            | NO       |
+--------------------+----------------------+------------+----------+
| now                | 2023/03/10 14:17 EST |            | NO       |
+--------------------+----------------------+------------+----------+

Destination:

$ lxc info argus
Name: argus
Status: STOPPED
Type: container
Architecture: x86_64
Created: 2023/03/16 08:59 EDT

Thanks.

Hi @tomp,

Is there an equivalent command to sudo zfs list -t all that I should run and post here? I still can’t figure out why this doesn’t work.

John

Hi @tomp. Is this something you can help with? I don’t know where to go from here.

Thanks.

Please can you show output of lxc storage show <pool> thanks

Please excuse my excitement, but I’m so glad to hear back from you @tomp. Thanks.

Here’s the info you requested:

Source:

$ lxc storage show default
config:
  source: /var/snap/lxd/common/lxd/storage-pools/default
  volatile.initial_source: /var/snap/lxd/common/lxd/storage-pools/default
description: ""
name: default
driver: btrfs
used_by:
- /1.0/images/5c035e7bc2eed8a377491458814c6db1bfff75df93c576cd57135f06567aa656
- /1.0/instances/argus
- /1.0/instances/argus/snapshots/now
- /1.0/instances/argus/snapshots/pre-nagios-install
- /1.0/instances/container-2204
- /1.0/instances/container-2204/snapshots/for-image-creation
- /1.0/instances/container-2204/snapshots/post-domain-join
- /1.0/instances/container-2204/snapshots/pre-domain-join
- /1.0/instances/idea
- /1.0/profiles/default
status: Created
locations:
- none

Destination:
(In case you just want info for the container in question:)

$ lxc storage show default
config:
  source: /var/snap/lxd/common/lxd/storage-pools/default
  volatile.initial_source: /var/snap/lxd/common/lxd/storage-pools/default
description: ""
name: default
driver: btrfs
used_by:
- /1.0/instances/argus
***(deleted other containers here)***
- /1.0/profiles/default
status: Created
locations:
- none

(In case you want all the info from the command:)

$ lxc storage show default
config:
  source: /var/snap/lxd/common/lxd/storage-pools/default
  volatile.initial_source: /var/snap/lxd/common/lxd/storage-pools/default
description: ""
name: default
driver: btrfs
used_by:
- /1.0/instances/apps-biochem
- /1.0/instances/apps-biochem/snapshots/backup20230315
- /1.0/instances/apps-biochem/snapshots/backup20230316
- /1.0/instances/apps-biochem/snapshots/backup20230317
- /1.0/instances/apps-biochem/snapshots/backup20230318
- /1.0/instances/apps-biochem/snapshots/backup20230319
- /1.0/instances/apps-biochem/snapshots/backup20230320
- /1.0/instances/apps-biochem/snapshots/backup20230321
- /1.0/instances/apps-biochem/snapshots/backup20230322
- /1.0/instances/apps-biochem/snapshots/backup20230323
- /1.0/instances/apps-biochem/snapshots/backup20230324
- /1.0/instances/apps-biochem/snapshots/backup20230325
- /1.0/instances/apps-biochem/snapshots/backup20230326
- /1.0/instances/apps-biochem/snapshots/backup20230327
- /1.0/instances/apps-biochem/snapshots/backup20230328
- /1.0/instances/apps-biochem/snapshots/backup20230329
- /1.0/instances/argus
- /1.0/instances/athena
- /1.0/instances/athena/snapshots/current
- /1.0/instances/athena/snapshots/now
- /1.0/instances/athena/snapshots/pre-cert-renewal-2023
- /1.0/instances/barnes
- /1.0/instances/barnes/snapshots/backup20230315
- /1.0/instances/barnes/snapshots/backup20230316
- /1.0/instances/barnes/snapshots/backup20230317
- /1.0/instances/barnes/snapshots/backup20230318
- /1.0/instances/barnes/snapshots/backup20230319
- /1.0/instances/barnes/snapshots/backup20230320
- /1.0/instances/barnes/snapshots/backup20230321
- /1.0/instances/barnes/snapshots/backup20230322
- /1.0/instances/barnes/snapshots/backup20230323
- /1.0/instances/barnes/snapshots/backup20230324
- /1.0/instances/barnes/snapshots/backup20230325
- /1.0/instances/barnes/snapshots/backup20230326
- /1.0/instances/barnes/snapshots/backup20230327
- /1.0/instances/barnes/snapshots/backup20230328
- /1.0/instances/barnes/snapshots/backup20230329
- /1.0/instances/bmbbooking
- /1.0/instances/bmbbooking/snapshots/backup20230315
- /1.0/instances/bmbbooking/snapshots/backup20230316
- /1.0/instances/bmbbooking/snapshots/backup20230317
- /1.0/instances/bmbbooking/snapshots/backup20230318
- /1.0/instances/bmbbooking/snapshots/backup20230319
- /1.0/instances/bmbbooking/snapshots/backup20230320
- /1.0/instances/bmbbooking/snapshots/backup20230321
- /1.0/instances/bmbbooking/snapshots/backup20230322
- /1.0/instances/bmbbooking/snapshots/backup20230323
- /1.0/instances/bmbbooking/snapshots/backup20230324
- /1.0/instances/bmbbooking/snapshots/backup20230325
- /1.0/instances/bmbbooking/snapshots/backup20230326
- /1.0/instances/bmbbooking/snapshots/backup20230327
- /1.0/instances/bmbbooking/snapshots/backup20230328
- /1.0/instances/bmbbooking/snapshots/backup20230329
- /1.0/instances/bmbdept
- /1.0/instances/bmbdept/snapshots/backup20221121
- /1.0/instances/bmbdept/snapshots/backup20221122
- /1.0/instances/bmbdept/snapshots/backup20221123
- /1.0/instances/bmbdept/snapshots/backup20221124
- /1.0/instances/bmbdept/snapshots/backup20221125
- /1.0/instances/bmbdept/snapshots/backup20221126
- /1.0/instances/bmbdept/snapshots/backup20221127
- /1.0/instances/bmbdept/snapshots/backup20221128
- /1.0/instances/bmbdept/snapshots/backup20221129
- /1.0/instances/bmbdept/snapshots/backup20221130
- /1.0/instances/bmbdept/snapshots/backup20221201
- /1.0/instances/bmbdept/snapshots/backup20221202
- /1.0/instances/bmbdept/snapshots/backup20221203
- /1.0/instances/bmbdept/snapshots/backup20221204
- /1.0/instances/bmbdept/snapshots/backup20221205
- /1.0/instances/btp
- /1.0/instances/btp/snapshots/backup20230315
- /1.0/instances/btp/snapshots/backup20230316
- /1.0/instances/btp/snapshots/backup20230317
- /1.0/instances/btp/snapshots/backup20230318
- /1.0/instances/btp/snapshots/backup20230319
- /1.0/instances/btp/snapshots/backup20230320
- /1.0/instances/btp/snapshots/backup20230321
- /1.0/instances/btp/snapshots/backup20230322
- /1.0/instances/btp/snapshots/backup20230323
- /1.0/instances/btp/snapshots/backup20230324
- /1.0/instances/btp/snapshots/backup20230325
- /1.0/instances/btp/snapshots/backup20230326
- /1.0/instances/btp/snapshots/backup20230327
- /1.0/instances/btp/snapshots/backup20230328
- /1.0/instances/btp/snapshots/backup20230329
- /1.0/instances/cbi
- /1.0/instances/cbi/snapshots/backup20230315
- /1.0/instances/cbi/snapshots/backup20230316
- /1.0/instances/cbi/snapshots/backup20230317
- /1.0/instances/cbi/snapshots/backup20230318
- /1.0/instances/cbi/snapshots/backup20230319
- /1.0/instances/cbi/snapshots/backup20230320
- /1.0/instances/cbi/snapshots/backup20230321
- /1.0/instances/cbi/snapshots/backup20230322
- /1.0/instances/cbi/snapshots/backup20230323
- /1.0/instances/cbi/snapshots/backup20230324
- /1.0/instances/cbi/snapshots/backup20230325
- /1.0/instances/cbi/snapshots/backup20230326
- /1.0/instances/cbi/snapshots/backup20230327
- /1.0/instances/cbi/snapshots/backup20230328
- /1.0/instances/cbi/snapshots/backup20230329
- /1.0/instances/cbitest
- /1.0/instances/cbitest/snapshots/current
- /1.0/instances/chembooking
- /1.0/instances/chembooking/snapshots/backup20230315
- /1.0/instances/chembooking/snapshots/backup20230316
- /1.0/instances/chembooking/snapshots/backup20230317
- /1.0/instances/chembooking/snapshots/backup20230318
- /1.0/instances/chembooking/snapshots/backup20230319
- /1.0/instances/chembooking/snapshots/backup20230320
- /1.0/instances/chembooking/snapshots/backup20230321
- /1.0/instances/chembooking/snapshots/backup20230322
- /1.0/instances/chembooking/snapshots/backup20230323
- /1.0/instances/chembooking/snapshots/backup20230324
- /1.0/instances/chembooking/snapshots/backup20230325
- /1.0/instances/chembooking/snapshots/backup20230326
- /1.0/instances/chembooking/snapshots/backup20230327
- /1.0/instances/chembooking/snapshots/backup20230328
- /1.0/instances/chembooking/snapshots/backup20230329
- /1.0/instances/chienbrowser
- /1.0/instances/chienbrowser/snapshots/backup20230315
- /1.0/instances/chienbrowser/snapshots/backup20230316
- /1.0/instances/chienbrowser/snapshots/backup20230317
- /1.0/instances/chienbrowser/snapshots/backup20230318
- /1.0/instances/chienbrowser/snapshots/backup20230319
- /1.0/instances/chienbrowser/snapshots/backup20230320
- /1.0/instances/chienbrowser/snapshots/backup20230321
- /1.0/instances/chienbrowser/snapshots/backup20230322
- /1.0/instances/chienbrowser/snapshots/backup20230323
- /1.0/instances/chienbrowser/snapshots/backup20230324
- /1.0/instances/chienbrowser/snapshots/backup20230325
- /1.0/instances/chienbrowser/snapshots/backup20230326
- /1.0/instances/chienbrowser/snapshots/backup20230327
- /1.0/instances/chienbrowser/snapshots/backup20230328
- /1.0/instances/chienbrowser/snapshots/backup20230329
- /1.0/instances/container-2204
- /1.0/instances/container-2204/snapshots/backup20221121
- /1.0/instances/container-2204/snapshots/backup20221122
- /1.0/instances/container-2204/snapshots/backup20221123
- /1.0/instances/container-2204/snapshots/backup20221124
- /1.0/instances/container-2204/snapshots/backup20221125
- /1.0/instances/container-2204/snapshots/backup20221126
- /1.0/instances/container-2204/snapshots/backup20221127
- /1.0/instances/container-2204/snapshots/backup20221128
- /1.0/instances/container-2204/snapshots/backup20221129
- /1.0/instances/container-2204/snapshots/backup20221130
- /1.0/instances/container-2204/snapshots/backup20221201
- /1.0/instances/container-2204/snapshots/backup20221202
- /1.0/instances/container-2204/snapshots/backup20221203
- /1.0/instances/container-2204/snapshots/backup20221204
- /1.0/instances/container-2204/snapshots/backup20221205
- /1.0/instances/cyclone
- /1.0/instances/cyclone/snapshots/current
- /1.0/instances/cyclone/snapshots/now
- /1.0/instances/dokuwiki
- /1.0/instances/dokuwiki/snapshots/backup20230315
- /1.0/instances/dokuwiki/snapshots/backup20230316
- /1.0/instances/dokuwiki/snapshots/backup20230317
- /1.0/instances/dokuwiki/snapshots/backup20230318
- /1.0/instances/dokuwiki/snapshots/backup20230319
- /1.0/instances/dokuwiki/snapshots/backup20230320
- /1.0/instances/dokuwiki/snapshots/backup20230321
- /1.0/instances/dokuwiki/snapshots/backup20230322
- /1.0/instances/dokuwiki/snapshots/backup20230323
- /1.0/instances/dokuwiki/snapshots/backup20230324
- /1.0/instances/dokuwiki/snapshots/backup20230325
- /1.0/instances/dokuwiki/snapshots/backup20230326
- /1.0/instances/dokuwiki/snapshots/backup20230327
- /1.0/instances/dokuwiki/snapshots/backup20230328
- /1.0/instances/dokuwiki/snapshots/backup20230329
- /1.0/instances/duchenelab
- /1.0/instances/duchenelab/snapshots/backup20230315
- /1.0/instances/duchenelab/snapshots/backup20230316
- /1.0/instances/duchenelab/snapshots/backup20230317
- /1.0/instances/duchenelab/snapshots/backup20230318
- /1.0/instances/duchenelab/snapshots/backup20230319
- /1.0/instances/duchenelab/snapshots/backup20230320
- /1.0/instances/duchenelab/snapshots/backup20230321
- /1.0/instances/duchenelab/snapshots/backup20230322
- /1.0/instances/duchenelab/snapshots/backup20230323
- /1.0/instances/duchenelab/snapshots/backup20230324
- /1.0/instances/duchenelab/snapshots/backup20230325
- /1.0/instances/duchenelab/snapshots/backup20230326
- /1.0/instances/duchenelab/snapshots/backup20230327
- /1.0/instances/duchenelab/snapshots/backup20230328
- /1.0/instances/duchenelab/snapshots/backup20230329
- /1.0/instances/eexambooking
- /1.0/instances/eexambooking/snapshots/backup20230315
- /1.0/instances/eexambooking/snapshots/backup20230316
- /1.0/instances/eexambooking/snapshots/backup20230317
- /1.0/instances/eexambooking/snapshots/backup20230318
- /1.0/instances/eexambooking/snapshots/backup20230319
- /1.0/instances/eexambooking/snapshots/backup20230320
- /1.0/instances/eexambooking/snapshots/backup20230321
- /1.0/instances/eexambooking/snapshots/backup20230322
- /1.0/instances/eexambooking/snapshots/backup20230323
- /1.0/instances/eexambooking/snapshots/backup20230324
- /1.0/instances/eexambooking/snapshots/backup20230325
- /1.0/instances/eexambooking/snapshots/backup20230326
- /1.0/instances/eexambooking/snapshots/backup20230327
- /1.0/instances/eexambooking/snapshots/backup20230328
- /1.0/instances/eexambooking/snapshots/backup20230329
- /1.0/instances/elements
- /1.0/instances/elements-dev
- /1.0/instances/elements-dev/snapshots/current
- /1.0/instances/elements/snapshots/backup20230105
- /1.0/instances/elements/snapshots/backup20230106
- /1.0/instances/elements/snapshots/backup20230107
- /1.0/instances/elements/snapshots/backup20230108
- /1.0/instances/elements/snapshots/backup20230109
- /1.0/instances/genchem
- /1.0/instances/genchem/snapshots/current
- /1.0/instances/genchem/snapshots/now
- /1.0/instances/growthchambers
- /1.0/instances/growthchambers/snapshots/current
- /1.0/instances/growthchambers/snapshots/now
- /1.0/instances/hammer
- /1.0/instances/hammer/snapshots/backup20230315
- /1.0/instances/hammer/snapshots/backup20230316
- /1.0/instances/hammer/snapshots/backup20230317
- /1.0/instances/hammer/snapshots/backup20230318
- /1.0/instances/hammer/snapshots/backup20230319
- /1.0/instances/hammer/snapshots/backup20230320
- /1.0/instances/hammer/snapshots/backup20230321
- /1.0/instances/hammer/snapshots/backup20230322
- /1.0/instances/hammer/snapshots/backup20230323
- /1.0/instances/hammer/snapshots/backup20230324
- /1.0/instances/hammer/snapshots/backup20230325
- /1.0/instances/hammer/snapshots/backup20230326
- /1.0/instances/hammer/snapshots/backup20230327
- /1.0/instances/hammer/snapshots/backup20230328
- /1.0/instances/hammer/snapshots/backup20230329
- /1.0/instances/haproxy
- /1.0/instances/haproxy-alice
- /1.0/instances/haproxy/snapshots/current
- /1.0/instances/haproxy/snapshots/now
- /1.0/instances/hardylab
- /1.0/instances/hardylab/snapshots/current
- /1.0/instances/hardylab/snapshots/now
- /1.0/instances/high-pressure
- /1.0/instances/high-pressure/snapshots/current
- /1.0/instances/high-pressure/snapshots/now
- /1.0/instances/idea
- /1.0/instances/idea/snapshots/current
- /1.0/instances/idea/snapshots/now
- /1.0/instances/idea/snapshots/now2
- /1.0/instances/idea/snapshots/now3
- /1.0/instances/idea/snapshots/now4
- /1.0/instances/idea/snapshots/now5
- /1.0/instances/idea/snapshots/pre-modify-token-description-page
- /1.0/instances/isbbooking
- /1.0/instances/isbbooking/snapshots/current
- /1.0/instances/isbbooking/snapshots/now
- /1.0/instances/isbinstruments
- /1.0/instances/isbinstruments/snapshots/current
- /1.0/instances/isbinstruments/snapshots/now
- /1.0/instances/it
- /1.0/instances/it/snapshots/current
- /1.0/instances/it/snapshots/now
- /1.0/instances/itwiki
- /1.0/instances/itwiki/snapshots/current
- /1.0/instances/itwiki/snapshots/now
- /1.0/instances/lecturedemos
- /1.0/instances/lecturedemos/snapshots/backup20230315
- /1.0/instances/lecturedemos/snapshots/backup20230316
- /1.0/instances/lecturedemos/snapshots/backup20230317
- /1.0/instances/lecturedemos/snapshots/backup20230318
- /1.0/instances/lecturedemos/snapshots/backup20230319
- /1.0/instances/lecturedemos/snapshots/backup20230320
- /1.0/instances/lecturedemos/snapshots/backup20230321
- /1.0/instances/lecturedemos/snapshots/backup20230322
- /1.0/instances/lecturedemos/snapshots/backup20230323
- /1.0/instances/lecturedemos/snapshots/backup20230324
- /1.0/instances/lecturedemos/snapshots/backup20230325
- /1.0/instances/lecturedemos/snapshots/backup20230326
- /1.0/instances/lecturedemos/snapshots/backup20230327
- /1.0/instances/lecturedemos/snapshots/backup20230328
- /1.0/instances/lecturedemos/snapshots/backup20230329
- /1.0/instances/martinlab
- /1.0/instances/martinlab/snapshots/current
- /1.0/instances/martinlab/snapshots/now
- /1.0/instances/people
- /1.0/instances/people/snapshots/current
- /1.0/instances/people/snapshots/now
- /1.0/instances/pitemp
- /1.0/instances/pitemp/snapshots/backup20230315
- /1.0/instances/pitemp/snapshots/backup20230316
- /1.0/instances/pitemp/snapshots/backup20230317
- /1.0/instances/pitemp/snapshots/backup20230318
- /1.0/instances/pitemp/snapshots/backup20230319
- /1.0/instances/pitemp/snapshots/backup20230320
- /1.0/instances/pitemp/snapshots/backup20230321
- /1.0/instances/pitemp/snapshots/backup20230322
- /1.0/instances/pitemp/snapshots/backup20230323
- /1.0/instances/pitemp/snapshots/backup20230324
- /1.0/instances/pitemp/snapshots/backup20230325
- /1.0/instances/pitemp/snapshots/backup20230326
- /1.0/instances/pitemp/snapshots/backup20230327
- /1.0/instances/pitemp/snapshots/backup20230328
- /1.0/instances/pitemp/snapshots/backup20230329
- /1.0/instances/redirected-sites
- /1.0/instances/redirected-sites/snapshots/current
- /1.0/instances/redirected-sites/snapshots/now
- /1.0/instances/rt4-3-3
- /1.0/instances/rt4-3-3/snapshots/backup20230315
- /1.0/instances/rt4-3-3/snapshots/backup20230316
- /1.0/instances/rt4-3-3/snapshots/backup20230317
- /1.0/instances/rt4-3-3/snapshots/backup20230318
- /1.0/instances/rt4-3-3/snapshots/backup20230319
- /1.0/instances/rt4-3-3/snapshots/backup20230320
- /1.0/instances/rt4-3-3/snapshots/backup20230321
- /1.0/instances/rt4-3-3/snapshots/backup20230322
- /1.0/instances/rt4-3-3/snapshots/backup20230323
- /1.0/instances/rt4-3-3/snapshots/backup20230324
- /1.0/instances/rt4-3-3/snapshots/backup20230325
- /1.0/instances/rt4-3-3/snapshots/backup20230326
- /1.0/instances/rt4-3-3/snapshots/backup20230327
- /1.0/instances/rt4-3-3/snapshots/backup20230328
- /1.0/instances/rt4-3-3/snapshots/backup20230329
- /1.0/instances/samson
- /1.0/instances/samson/snapshots/backup20230315
- /1.0/instances/samson/snapshots/backup20230316
- /1.0/instances/samson/snapshots/backup20230317
- /1.0/instances/samson/snapshots/backup20230318
- /1.0/instances/samson/snapshots/backup20230319
- /1.0/instances/samson/snapshots/backup20230320
- /1.0/instances/samson/snapshots/backup20230321
- /1.0/instances/samson/snapshots/backup20230322
- /1.0/instances/samson/snapshots/backup20230323
- /1.0/instances/samson/snapshots/backup20230324
- /1.0/instances/samson/snapshots/backup20230325
- /1.0/instances/samson/snapshots/backup20230326
- /1.0/instances/samson/snapshots/backup20230327
- /1.0/instances/samson/snapshots/backup20230328
- /1.0/instances/samson/snapshots/backup20230329
- /1.0/instances/sites
- /1.0/instances/sites/snapshots/current
- /1.0/instances/sites/snapshots/now
- /1.0/instances/skouta
- /1.0/instances/skouta/snapshots/current
- /1.0/instances/skouta/snapshots/now
- /1.0/instances/walshsrv
- /1.0/instances/walshsrv/snapshots/backup20230315
- /1.0/instances/walshsrv/snapshots/backup20230316
- /1.0/instances/walshsrv/snapshots/backup20230317
- /1.0/instances/walshsrv/snapshots/backup20230318
- /1.0/instances/walshsrv/snapshots/backup20230319
- /1.0/instances/walshsrv/snapshots/backup20230320
- /1.0/instances/walshsrv/snapshots/backup20230321
- /1.0/instances/walshsrv/snapshots/backup20230322
- /1.0/instances/walshsrv/snapshots/backup20230323
- /1.0/instances/walshsrv/snapshots/backup20230324
- /1.0/instances/walshsrv/snapshots/backup20230325
- /1.0/instances/walshsrv/snapshots/backup20230326
- /1.0/instances/walshsrv/snapshots/backup20230327
- /1.0/instances/walshsrv/snapshots/backup20230328
- /1.0/instances/walshsrv/snapshots/backup20230329
- /1.0/instances/welab
- /1.0/instances/welab/snapshots/current
- /1.0/instances/welab/snapshots/now
- /1.0/instances/wptest
- /1.0/instances/wptest/snapshots/current
- /1.0/instances/wptest/snapshots/now
- /1.0/profiles/default
status: Created
locations:
- none

What happens if you delete the instance on the target using lxc delete <instance> and then re-run lxc copy --refresh multiple times?

Huh, it works fine.

Target:

$ lxc delete argus

Source:

$ lxc copy --refresh argus trixie:argus
$ lxc copy --refresh argus trixie:argus
$ 

Target:

$ lxc list argus
+-------+---------+------+------+-----------+-----------+
| NAME  |  STATE  | IPV4 | IPV6 |   TYPE    | SNAPSHOTS |
+-------+---------+------+------+-----------+-----------+
| argus | STOPPED |      |      | CONTAINER | 2         |
+-------+---------+------+------+-----------+-----------+

Should I have run lxc copy --refresh argus trixie:argus to start instead of lxc copy argus trixie:argus?

1 Like

Can you delete it and try again using no --refresh initially and then subsequently using --refresh to see. It may be that a bug has been fixed in the current snap channel.

Not so good.

Target:

$ lxc delete argus

Source:

$ lxc snapshot argus now2
$ lxc copy argus/now2 trixie:argus
$ lxc copy --refresh argus trixie:argus
Error: Failed instance creation: Error transferring instance data: Failed creating instance on target: Failed to run: btrfs receive -e /var/snap/lxd/common/lxd/storage-pools/default/containers/migration.1822080087/pre-nagios-install: exit status 1 (ERROR: cannot find parent subvolume)

Thats copying a snapshot, followed by a refresh, which should work, but isn’t the same as doing:

lxc copy argus trixie:argus
lxc copy --refresh argus trixie:argus

Which should be equivalent to doing:

lxc copy --refresh argus trixie:argus
lxc copy --refresh argus trixie:argus

Lets confirm one thing works at a time :slight_smile:

Also, I’m not sure what you’re intention is with:

lxc copy argus/now2 trixie:argus
lxc copy --refresh argus trixie:argus

But I’m not sure it’ll do what you perhaps think it will. It will create a new instance from the snapshot on trixie, called argus, and then the refresh should then delete that instance and then transfer the snapshot(s) and the instance from the source to trixie.

It maybe that this will work more efficiently in later releases of LXD 5.0.x when/if this gets backported:

So that it uses rsync to only sync the differences between the instance created from the snapshot on trixie, and the later source instance.

Although I’m still not sure, because the source instance has snapshots, it won’t just delete everything on the target and resync using the optimized transfer mode supported by BTRFS.

Perhaps doing lxc copy --refresh --instance-only argus trixie:argus would work in that situation to use rsync (if running a version of LXD with https://github.com/lxc/lxd/pull/11479).

If you want to benefit from snapshots for reducing --refresh time when using an optimized storage pool (BTRFS or ZFS) then you should just do:

lxc snapshot argus
lxc copy --refresh argus trixie:argus
lxc snapshot argus
lxc copy --refresh argus trixie:argus

So only the differences between each snapshot are sent.

It would also be worth checking this behaviour when using LXD from latest/stable channel on both sides (use a fresh setup for this so you don’t prevent downgrading back to the 5.0 LTS series), as if that error still occurs its a bug.

A lot for me to unpack here, thank you.

I tried this and it didn’t go well. What is CRIU, and how do I install it?

Target:

$ lxc delete argus

Source:

$ lxc copy argus trixie:argus
Error: Unable to perform live container migration. CRIU isn't installed on the source server. To migrate the container, stop the container before migration or install CRIU on the source server

CRIU is for live (stateful) migration for containers, although it is very limited.

Does lxc copy argus trixie:argus --stateless work?
You may also want to add --allow-inconsistent to avoid any attempt to freeze the instance when doing a copy.

Yes! I think this is going to work. I’ll study your previous comments, but I think I can establish a reliable backup server now.

Thanks again, @tomp. I may have to revisit this post and ask a question or two, but I think I’m in good shape. Thanks.

1 Like