Comments (9)
This should work. The important thing is that the received_uuid on the backup side must point to the original subvolume (on the source host, NOT the one on the USB disk). You can check this with btrfs subvolume show <subvol>
.
Note that kernels >=4.1 have a bug when re-sending subvolumes, see this thread:
http://thread.gmane.org/gmane.comp.file-systems.btrfs/48798
This patch is scheduled for the 4.4 kernel.
So if you have one of these kernels, the received_uuid will probably point to the subvolume on your USB disk, loosing the original relationship.
If this is the case, I'm afraid you'll have to patch your kernel with the patch provided in the thread mentioned above (works fine, I used it for 4.2.x and 4.3).
from btrbk.
So I tried this today, and it looks like doing a send / received from the USB HDD to the target btrfs volume causes the critical received_uuid
to be changed to the UUID of the USB HDD subvolume. Trying to figure out if there's a way around that.
from btrbk.
I just realized I'm being incredibly stupid here. I used btrfs send and then 'received' the filesystem on the USB disk's btrfs. I should have just saved the output of btrfs send to a file and replayed that on the server. D'oh. Will go through the motions again... that will work, I'm sure of it. Thanks.
from btrbk.
Yes that will work, and would be the real "sneakernet" approach :)
from btrbk.
@ktims Would you mind detailing your process here? I'm very interesting in doing this myself. Thanks
from btrbk.
Just wrote a FAQ entry on this topic. Hope it helps!
Feel free to comment!
from btrbk.
Fantastic. Thank you very much. So after transferring subvolumes to my removable storage and receiving them on the remote side, how do I link the subvolume that is now on the remote side with btrbk so that it will continue to make incremental backups to the remote site?
from btrbk.
No need to link anything, btrfs has already done that for you. Just point your target to the location where you restored the streams. For the examples in the FAQ this would then be something like:
volume /source
subvolume subvolX
target send-receive ssh://backup-host.tld/target
btrbk will find the restored subvolumes there, and take them into account for incremental backups (no matter of the subvolume names, btrfs keeps track of the source in the "received_uuid").
If you want to be certain, run btrbk -l debug dryrun
, and grep for "Latest common snapshots for: /source/subvolX ...".
from btrbk.
Awesome. Thanks
from btrbk.
Related Issues (20)
- Failed to fetch subvolume detail for snapshot_dir HOT 1
- Double daily backups sometimes... HOT 1
- understanding target_preserve_min
- Is 650 GB per day between hard disks connected by 1 GBit ethernet ok? HOT 1
- Feature request : BTRBK + grub-btrfs - Restore the snapshot currently booted - like Timeshift
- Why is btrbk only creating snapshots and not transfering?
- dry-run ignores lock
- whatever default shell is used despite it is not a posix compatible shell
- Not optimal behavior for low quality network connections
- [Question] How to specify clone sources from snapshots of other unrelated subvolumes?
- ERROR: ... unable to destroy quota group: Device or resource busy
- ERROR: clone: did not find source subvol HOT 3
- Question: duplicated instance when /etc/crontab set to run hourly at 00 minute HOT 1
- [Question] Quarterly retention
- [Feature Request] configurable timestamps / names for snapshots
- snapshot_dir required even when `snapshot_create` set to `no`
- btrbk doesn't append a command with "sudo -n" if ssh is used and backend_local_user=btrfs-progs-sudo
- [Bug Report] "btrbk diff" without "sudo" throws error (backend_local_user=btrfs-progs-sudo)
- Backup of backups HOT 1
- send to a raw target which does not support output redirection
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from btrbk.