UrBackup Server 2.1.6 beta

Major changes with server 2.1.x beta

  • Groups for client settings
  • Ability to reconnect during indexing if connection is broken
  • Define which volumes need to be snapshotted together (snapshot groups)
  • Image backup mounting, browsing and archival on Windows, Linux and FreeBSD (does not work in FreeBSD jails and with VHD/VHDZ on FreeBSD)

Major changes with client 2.1.x beta

  • Ability to reconnect during indexing if connection is broken
  • Improved image backup performance
  • Windows Backup API support (tested backup and restore with Microsoft SQL, tested backup with Microsoft Exchange and Hyper V)
  • File backups and restores use the change block data from the change block tracking driver now (you can install the beta client over a CBT client and this will work)
  • Define which volumes need to be snapshotted together (snapshot groups)

Changes with server 2.1.6 beta

  • Use full year if year is in front in dates and use dash as separator if present for date format
  • Delete empty sub-volumes in remove-unknown
  • Fixup: Delete symlink before creating it if it wasn’t deleted previously
  • Fix service stopping before server installation on Windows
  • Flush file index during deletion and more file index integrity checking
  • Simplified file settings reader
  • Add client access key to Windows client download
  • Update client access key if not present (needs to be released client > 2.1.5 in order to work)
  • Fix setting IO priority with IOPRIO_CLASS_NONE in Linux threads
  • Fix throttling to percentage of maximum bandwidth
  • File entry index consistency fixes
  • Do not double-free file when creating ZIP on Linux/FreeBSD
  • Improve error message when hash thread cannot open temp file
  • Fix memory leak during ZIP download
  • Fix rare issue with out-of-band block transfer during block-diff file transfer
  • Image backup browsing and archival
  • Image backup mounting on Windows, Linux and FreeBSD
  • Show error about on-access virus scanner being active

Upgrade process

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:

cd /var/urbackup && wget -r -l1 --no-parent --reject "index.html*" -nH -nd -N "https://ssl.webpack.de/beta.urbackup.org/Client/2.1.5%20beta/update/"

or use 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.

Image backup mounting on Linux

The server uses libguestfs-tools to mount image backups on Linux. This isolates the image backup file system reading by running it in a separate VM via Linux KVM. Linux KVM needs the Intel VT-x/AMD-V CPU extension in order to work. If you run UrBackup Server in a VM it needs nested virtualization.

Downloads

1 Like

Thanks a lot for this @Uroni !!!
I’ve just update my test server (Debian 8 with BTRFS storage), browsing image backups works but browsing the image content doesn’t, is this normal at this time ?


Thanks again for your hard work, UrBackup becomes better end better !

Regards,

It looks like archiving rules on groups are not retained :

After click on “Save” :

This doesn’t occurs on a standalone client :

Regards,

Could you run urbackup_mount_helper test and post the output ?

root@urbackup-3:~# urbackup_mount_helper test
TEST FAILED: guestmount is missing (libguestfs-tools)
root@urbackup-3:~# apt-get install libguestfs-tools
[...]
root@urbackup-3:~# urbackup_mount_helper test
MOUNT TEST OK
root@urbackup-3:~#

libguestfs-tools was missing, but still not work :

Regards,

Can you restart the server afterwards?

Same thing after rebooting the server, and there’s nothing special in /var/log/urbackup.log

Can you try running it as urbackup user, that is:

su urbackup -c “urbackup_mount_helper test”

Command gives no output :

root@urbackup-3:~# su urbackup -c "urbackup_mount_helper test"
root@urbackup-3:~#
root@urbackup-3:~# su -c "urbackup_mount_helper test" urbackup
root@urbackup-3:~#

Setting /bin/bash instead of /bin/false in /etc/passwd and :

root@urbackup-3:~# su urbackup
urbackup@urbackup-3:/root$ cd ~
urbackup@urbackup-3:~$ urbackup_mount_helper test
Cannot become root user
urbackup@urbackup-3:~$

Regards,

urbackup@urbackup-3:~$ ls -l /usr/bin/urbackup*
-rwxr-xr-x 1 root root  954552 déc.   8 21:02 /usr/bin/urbackup_mount_helper
-rwsr-sr-x 1 root root  958616 déc.   8 21:02 /usr/bin/urbackup_snapshot_helper
-rwxr-xr-x 1 root root 7206736 déc.   8 21:02 /usr/bin/urbackupsrv
urbackup@urbackup-3:~$
root@urbackup-3:~# chmod 6755 /usr/bin/urbackup_mount_helper
root@urbackup-3:~# su -c "urbackup_mount_helper test" urbackup
MOUNT TEST OK
root@urbackup-3:~#

Now i have the “Mount image” button appearing :

But file list is empty after click on “mount image” :

Try with /media/backup/urbackup/clientname/161104-2258_Image_C/Image_C_161104-2258.raw being an image path:

su urbackup -c “urbackup_mount_helper mount clientname 161104-2258_Image_C Image_C_161104-2258.raw”

root@urbackup-3:~# su urbackup -c "urbackup_mount_helper mount SVIMPORT /media/aaaf8b05-4c27-4948-802b-acce40b9a67e/backups/SVIMPORT/161209-1119_Image_C/Image_C_161209-1119.raw"
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
root@urbackup-3:~#

Can you do:

su urbackup -c “gdb --args urbackup_mount_helper mount clientname 161104-2258_Image_C Image_C_161104-2258.raw”
run
bt

root@urbackup-3:~# su urbackup -c "gdb --args urbackup_mount_helper mount SVIMPORT /media/aaaf8b05-4c27-4948-802b-acce40b9a67e/backups/SVIMPORT/161209-1119_Image_C/Image_C_161209-1119.raw"
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from urbackup_mount_helper...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/urbackup_mount_helper mount SVIMPORT /media/aaaf8b05-4c27-4948-802b-acce40b9a67e/backups/SVIMPORT/161209-1119_Image_C/Image_C_161209-1119.raw
[tcsetpgrp failed in terminal_inferior: Ioctl() inapproprié pour un périphérique]
[tcsetpgrp failed in terminal_inferior: Ioctl() inapproprié pour un périphérique]
Error while mapping shared library sections:
linux-vdso.so.1: Permission non accordée.
[tcsetpgrp failed in terminal_inferior: Ioctl() inapproprié pour un périphérique]
[tcsetpgrp failed in terminal_inferior: Ioctl() inapproprié pour un périphérique]
Cannot become root user
[Inferior 1 (process 2186) exited with code 01]
(gdb) bt
No stack.
(gdb)

In english :

root@urbackup-3:~# su urbackup -c "export LANG=en_EN.UTF8 ; gdb --args urbackup_mount_helper mount SVIMPORT /media/aaaf8b05-4c27-4948-802b-acce40b9a67e/backups/SVIMPORT/161209-1119_Image_C/Image_C_161209-1119.raw"
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from urbackup_mount_helper...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/urbackup_mount_helper mount SVIMPORT /media/aaaf8b05-4c27-4948-802b-acce40b9a67e/backups/SVIMPORT/161209-1119_Image_C/Image_C_161209-1119.raw
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
Error while mapping shared library sections:
linux-vdso.so.1: Permission denied.
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
Cannot become root user
[Inferior 1 (process 2224) exited with code 01]
(gdb) bt
No stack.
(gdb)

Now without the su please :wink:

Here you are :

root@urbackup-3:~# export LANG=en_EN.UTF8 ; gdb --args urbackup_mount_helper mount SVIMPORT /media/aaaf8b05-4c27-4948-802b-acce40b9a67e/backups/SVIMPORT/161209-1119_Image_C/Image_C_161209-1119.raw
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from urbackup_mount_helper...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/urbackup_mount_helper mount SVIMPORT /media/aaaf8b05-4c27-4948-802b-acce40b9a67e/backups/SVIMPORT/161209-1119_Image_C/Image_C_161209-1119.raw
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid

Program received signal SIGABRT, Aborted.
0x00007f51b9648067 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007f51b9648067 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f51b9649448 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x0000000000492b8d in ?? ()
#3  0x0000000000411506 in ?? ()
#4  0x0000000000411551 in ?? ()
#5  0x0000000000411499 in ?? ()
#6  0x000000000048fcdf in ?? ()
#7  0x0000000000404024 in ?? ()
#8  0x00000000004030cc in ?? ()
#9  0x00007f51b9634b45 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#10 0x0000000000403f19 in ?? ()
(gdb)

Sry, did not see how you called it. Please try

su urbackup -c “urbackup_mount_helper mount SVIMPORT 161209-1119_Image_C Image_C_161209-1119.raw”

instead of what you called.