New settings handling
The major change with server 2.5.x and client 2.5.x is a complete redesign how settings are handled. The goal is to make it more explicit and consistent.
- Each setting has a button next to it which switches between inheriting the setting from the group, using the configuration value on the configuration page and using the value from the client, and for some setting merging client and server settings together
- File backup paths are now a normal setting just like any other. No more separation between paths to backup configured on the client and default directories to backup
This is a critical area of UrBackup and as such needs a lot of testing. Focus should be on if the 2.4.x client still more or less works with the 2.5.x server (and especially doesn’t loose its connection settings for Internet servers).
Connect via web sockets
With 2.5.x clients can connect via web sockets to the server. Setup should be easy. Instead of “Internet server name/IP” of e.g. “example.com” use “ws://example.com:55414/socket”. The real advantage comes into play if a real web server with SSL is setup in front. Either proxy the whole page, or serve the files and only proxy “/x” via FastCGI (see manual), additionally proxy “/socket” via web socket to “ws://127.0.0.1:55414/socket”. Then setup the clients to connect to “Internet server name” “wss://example.com/socket”. Basic authentication, a different name and a different port should also work, e.g. “wss://username:email@example.com/socket”.
Linux image backups
2.5.x can backup Linux clients (via dattobd only). The use case is e.g. backing up a DigitalOcean instance. It is explicitly not to create image backups of all possible configurations e.g. LVM, mdraid, btrfs, …
It can “live restore” a root volume, i.e., overwrite the root volume of a currently running machine. So one can image backup e.g. a DigitalOcean droplet. To restore create a new instance (tested with Debian 10/buster) then run the restore script which overwrites the current instance with the backed up instance using a trick to put the currently running system files into (compressed) memory.
Dattobd supports Changed Block Tracking (CBT), so image (and file) backups are done with CBT.
Linux image backup howto
- Install dattobd https://github.com/datto/dattobd/blob/master/INSTALL.md
- To only backup used space install partclone (e.g.
apt install partclone). This is currently supported for ext* and xfs. If partclone is not present it’ll backup unused space.
- Install the (binary) client and select dattobd for snapshotting
- On the server browse to the image backup to restore
- Click on “Restore Linux image”
- Copy & paste the command into a new instance and follow the instructions (the command has a timeout (token), so after a while it should not work anymore)
Testing (image backup + file backup with CBT)
To test if CBT works correctly with file backups please enable
Debugging: Verify file backups using client side hashes (for Internet clients with client-side hashing) or
Debugging: End-to-end verification of all file backups in the advanced settings.
To test image backups enable md5sums creation on the client via
touch /usr/local/var/create_md5sums_imagebackup. The client will then create a file (with date+time in the name) at
/usr/local/var/md5sums-* for each image backup listing all files in the image plus their md5sum. Copy that file to server, mount the image backup then verify the md5sums with
cd /backup/client/image_mnt; md5sums --quiet -c /path/to/md5sums-file.txt. The only files with checksum errors should be the
.overlay-* files in the root directory and swap files (those get automatically excluded from backup).
Thanks for any help with testing and feedback!
As always: Replace the executables (via the installers) and the database of the server/client will be updated on first running it.
Place the files from the update directory into C:\Program Files\UrBackupServer\urbackup or /var/urbackup to auto-update clients. Disable Download client from update server in the server settings to prevent the server from downloading the current version.
On Linux e.g. with this update script: https://github.com/ptempier/get_urbackupclient/blob/master/updateclient.sh
Downgrade process (server)
Stop the UrBackup server, restore
C:\Program Files\UrBackupServer\urbackup or
/var/urbackup from a backup before upgrade and then install the previous version over the beta release.
On testing beta/WIP versions
Please see Having problems with UrBackup? Please read before posting for what kind of information to add when reporting issues with the beta/WIP version. Reports such as “X does not work” are useless. In general, at the very least, think about what kind of information one would need to reproduce the problem in a different environment. Also a reminder that this is a community project which depends on your contribution and help. Testing is a way to contribute, but without detailed reports on the issues you are finding, you might as well wait for the final release. Best case you debug the problem yourself and then post the fix.
I’ll ignore any issue reports that don’t follow minimum reporting standards.
Changes with server 2.5.12 beta
- Improve compatibility with older clients w.r.t. settings
- Set current setting as client setting during database upgrade
- Disable deletion of group archive entries
- Only validate current settings when saving settings
- Various new settings handling fixes
- Add last modified time to each setting to resolve conflicts of which kind of setting should be used (from client or server)
- For compatibility reasons add a setting for Internet port again and keep non-default setting on upgrade
Changes with server 2.5.11 beta
- Remove Internet server port setting and always display URL
- Enable internet connection by default
- Properly free web socket connections
- Properly cleanup zstd pipes
- Move internet port setting into config file
Changes with server 2.5.10 beta
- Implement connection establishment via web sockets
- Fix file/zip download from partition mounted images
- Pick up existing image mount path if current mount fails
- Delete .bitmap file if present on image cleanup
- Use navigator.languages (if present) to get date format method
Changes with client 2.5.6 beta
- Use new settings handling for VSS component selection
- Skip interfaces where address is not set to preven segfault
- Update last modified time if settings use value gets updated
- Use new settings handling in VSS component selection
Changes with client 2.5.5 beta
- Adding settings status symbols to installers for Linux / macOS
- Improve parallel hash logging
- Disable mariadbxtrabackup (on Linux/macOS)
- Fix cache target generation handling w.r.t parallel hashing
Changes with client 2.5.4 beta
- Implement connection establishment via web sockets
- Handle issue where directory doesn’t get iterated forward because of error
- Use hole punching to set CBT hash data to zero
- Escape backslash also if next character is [ in glob pattern