Data storage concept / backup / reliability

Hello,

I use currently GSuite/Google Drive in my small business, with cloud2cloud backup (Spanning). Below 1 TB of data, max. 2-4 concurrent users.

Because of legal developments (GDPR, CLOUD Act, in general much higher privacy focus in Europe) I started to experiment with Nextcloud, and installed it on Ubuntu Server 18.04 (older office-pc hardware). I like the idea of having the server in my house, so that no provider has access to the unencryped server drives etc.

Works fine so far, but now I wonder how I could reach a similar reliability as I have it in GSuite/Drive. Sure, I can setup a Raid1, configure a backup to an external hdd - but a backup does not help if I have to reinstall the server cause of a misconfiguration or a hardware problem (no service while reinstalling etc.).

Are there any suggestions how to setup an on premise nextcloud server for a small business, with a good reliability?
e.g. would I need to have 2 nextcloud servers and keep them in sync, so that I have a backup server if the main one breaks? Or are there ways to backup the whole server installation, so that I can bring it back online with different hardware if the main server breaks?

What are the experiences with running nextcloud when you are more a “hobby administrator” - can it still be run in a reliable way?

thanks, Thomas

Hi Thomas,

to have “zero downtime” you would have to install a cluster. At least the DB and redis server have to be clustered. Have fun.

Some info how to load balance and cluster the web server you will find here:
https://www.c-rieger.de/lab-loadbalancing-for-nextcloud/

Do you have a cold standby older pc?

If you don’t want to implement HA you may just want to have crash recovery.

To backup and restore you find infos here: https://www.c-rieger.de/nextcloud-backup-and-restore/
To setup Nextcloud within five minutes you can use my ansible playbook. It also includes a backup and restore mechanism. Not well document and may not to fully developed. But it’s a start.

Thanks for the links, I check it.

No its not about zero downtime, its about restoring the service in a reasonable time. I have some experiences with hosting a bigger website (not as admin), and know the fun when you have e.g. a fancy RAID with hardware raid controller - and then 2 days downtime cause the hardware RAID controller breaks (or the mainboard or any other non-redundant part).
What I don’t want is to setup the server, run it in production, after 2 years something breaks, and I have to figure out then how I can reinstall it etc.

So I’d like to have a plan how to get it back online (not just a backup of the data).

Sure, I can use another older PC, even install all there too - I just ask here about the best practice. e.g. is it a good idea to sync 2 nextcloud installations - or is it much easier to install a system from a backup?

Is it better to work with docker or with snap (Ubuntu) for easier reinstall?
I did a manual install (mysql as it was preinstalled on Ubuntu Server, Apache 2).

thanks,

Thomas

you need a backup of the three elements:

  • data directoy
  • nextcloud database
  • config.php and/or the /var/www/nextcloud directory.

if you manage to get a webserver with php and a mysql/mariadb up and runing you should be fine.

docker and snap are fine too. you only have to find out where the three elements are stored.
it will be possible, but tricky to restore a docker environment to snap and vice versa. so it’s not a good advice.

if you use e.g. virtualbox or a cloud provider you can exercise this till you find your best way.

p.s.: if you turned on encryption you should definitely test to restore your environment. :wink:

And if your user use pc with local client they always have a local copy of there data. only the share information, versions and so on would be lost when te servers crashes.

1 Like