I’ve recently been experimenting with using bacula and vchanger to push data from a NAS to spare hard disks as a form of “tape backup”.
The tutorial at revpol.com is a nice tutorial to follow. It proposes to use autofs to automatically mount encrypted disks when they are connected to the system. While this worked fine, I found that I wasn’t achieving expected write speeds.
I was seeing performance like:
Which is far below what USB 3.0 can carry.
It turned out after some debugging that autofs was the culprit. With autofs disabled, the results were more in line with expectations:
Set-up: Ubuntu 18.04 LTS, USB3.0 HD dock, old WD Blue 5400rpm disk.
Steps to use systemd automount
The way that systemd shows the mount directory even if the disk is not mounted is different from autofs. Therefore, in your vchanger magazine line in vchanger.conf, it is recommended to make use of a subdirectory, e.g.:
magazine = "/mnt/vchanger/9140c104-9ddd-451d-b933-fe1df02e1234/data"
In your /etc/fstab you will need something like:
/dev/disk/by-uuid/9140c104-9ddd-451d-b933-fe1df02e1234 /mnt/vchanger/0707a287-c2d5-4512-8fd2-b0dad2094b61 btrfs defaults,compress=lzo,noauto,x-systemd.automount,x-systemd.idle-timeout=10,x-systemd.device-timeout=0.1s,x-systemd.mount-timeout=10
Important flags used:
x-systemd.automount,x-systemd.idle-timeout=10
: when the disk has been unused for 10 seconds, unmount the disk (same as in autofs);
x-systemd.device-timeout=0.1s
: systemd will block any operations on the target mount directory until this timeout expires. Therefore, it is recommended to set this to a low value, especially if you have many magazines.
I’ve used btrfs for its data corruption detection capabilities, but the filesystem chosen is of course irrelevant for the automounting.
Whenever making changes to the /etc/fstab
in this manner, run these commands to have the settings take effect:
systemctl daemon-reload
systemctl restart local-fs.target