In the previous article I showed you how to install and configure the server and storage. So now that we have a storage target running for a tenant, let’s install the Duplicati 2 client software and configure a backup!
This post is part of a multi-part article.
You can find the main index here
Downloading the software
For demonstration purposes I’m going to use a Windows 10 Pro client but Duplicati 2 is available for Windows, Linux and Mac. If people are interested I could do a Linux tutorial also.
To download, we need to go to the following page:
https://www.duplicati.com/download
There we select to download the (beta) 2.0 client.
Installing Duplicati 2
Once downloading is done, execute the downloaded MSI file. You’ll be greeted with an Install Wizard.
Configuring Duplicati 2
One started, the configuration interface opens in your favorite web browser. Don’t worry, by default you can only access it locally, so there is no security risk of anyone else on the network re-configuring your back. You can however make it remotely manageable if you so desire!
Selecting darker theme
The first thing I always do is change the interface from this white-blue color to a darker theme. Click on settings and select the following:
Configuring a backup job towards our Minio S3 storage
I will be using the “seconduser” we made at the end of the last tutorial for this demonstration installation.
Click the “Add backup” button in the left bar
We want to “Configure a new backup”, leave it selected and click “next >”.
Enter a name for the backup. You can choose to backup all your of this host/client in one backup job, or maybe create several. With larger data sets creating several smaller jobs is advised.
Leave the AES-256 Encryption selected, it’s how we secure the backup so that only the person with the passphrase can open it later on.
Once done, click “next >”.
Configuring the connection to the Minio S3 storage backend
Here things get a bit more interesting.
We need to fill in the following items:
Storage Type: S3 Compatbile Server: Custom Server URL ip.ip.ip.ip:port Bucket Name: give it a logical name AWS Access ID: yourtenant accesskey AWS Access Key: yourtenant secretkey *Enable advanced option: s3-ext-forcepathstyle
Of course, you won’t remember this information from head. So we can look it up. If you are granting tenants access, this is also the exact information they need to have to make it all work.
Logging on to the backup server we can run three commands to see what we need:
ps -ef | grep minio sudo systemctl restart minio-seconduser.service tail -n 30 /var/log/syslog
This should give you the following output:
With this we have all the details we need to know to get the tenant up and running, Port, Access ID and key. All three values are unique per tenant, but shared between the clients of one tenant.
If you have it all configured (don’t forget to set the advanced option!) , click the “test connection” button.
I normaly choose “No” because I don’t want a string in front of my bucket names. Nothing is going to brake if you choose yes though, but I recommend No.
Since we are configuring a new client/backup the bucket does not yet exist on the Minio S3 backend server. You can either pre-create it or just select “Yes” here.
Ok, the hard part is over! Click ok and click “Next >” to continue.
Selecting the data you want to backup
Select the data you want to backup from this client or in this backup job.
If you want to exclude certain files or filer a certain type of files out of the backup, you can alter the selection using the Filters and Exclude selections. When done, click “Next >”.
Setting the backup schedule
Here you can determine how often the back should run. Because after the first backup all further backups happen in seconds, I like to run them more often then the default schedule.
Run again every 1 days --> 2 hours
All the other fields I leave alone because they are fine for my needs. Click “next >” to continue.
General options
Here we can change the archive size (mostly just leave alone) and how long you want to keep backups. By default it’s set to keep all backup copies until they reach 3 months old. I’m fine with that generally.
If you have a lot of open files or files like .PST files you can set an “Advanced option” called
Advaned Options snapshot-policy Auto, on, off, required
If you set this to required a VSS snapshot will be made before starting the backup, allowing you to backup open files.
Click “Save” to continue.
Running a backup
The default schedule sets the first backup to run tomorrow.
To run a backup immediatly, click the little text that says “run now”. Let’s click it to see if it all works!
If all went correctly, a backup should be running, you can follow the status in real-time in the top bar.
And that’s it, your first backup has been made. Compression and deduplication also seems to be doing it’s work quite well on my selected files, storing my 601MB inside of 242MB!
The first backup will always take considerably longer then following backups!
Last we can also check in our Minio instance to see if everything arrived.
All is looking well in Minio and you can see that because of the ZFS quota’s the tenant sees it’s own free space only.
Concluding remarks
And that rounds up the basic client configuration part! Later I will write a guide on how to do restores and how to set some more advanced options such as reporting, etc. but with this post finished you should now have everything you need to build your own multi-tenant, multi-client backup solution!
Let me know what you think in the comments, and tips and tricks are also always welcome!
Keep it coming this is a really well written and executed tutorial. I am in the design phase for a client offsite backup plan and I had not considered duplicati or minio.
Not sure I want to take on the responsibility of running my own S3 for paying clients though.
Either way, thanks for putting this together.