Has anyone set up Nextcloud with a Hetzner Storagebox cifs mount as primary storage?
-
@msbt I would try something like this:
- Get large storage which is near the server
- Mount the storage on the server via NFS. I think Hetzner storage box does not support NFS though
- Once mounted, move the appdata (under Resources) to the mount.
I think the biggest blocker here is step 2 where Hetzner storage box does not support NFS. If you are in touch with hetzner support, would be good to understand why this is the case.
-
You would use the Hetzner storage box as a Minio instance, managed by Cloudron.
The Nextcloud instance could run on Cloudron and mount the Minio instance with rclone (manual).
Or, it could be a standalone Nextcloud instance configured to run directly on the object store from Minio. (Cannot be done with current container config for Nextcloud in Cloudron as it's an install time thing.)
-
Thanks for the replies, probably easiest if I just stick with Contabo and hope for a miracle
@nebulon ah ok, I've tried using a storagebox as external storage quite a whole ago and the performance wasn't great, that's why I figured I could try to do that with primary storage
@jagan as @jdaviescoates suggested, LDAP and other apps are the reason for trying to accomplish that
@girish said in Has anyone set up Nextcloud with a Hetzner Storagebox cifs mount as primary storage?:
This won't work with CIFS because CIFS lacks permissions and things like symlinks (unlike ext4) right?
ah yes, that's probably the reason why it wasn't working on the last attempt
@girish said in Has anyone set up Nextcloud with a Hetzner Storagebox cifs mount as primary storage?:
Get large storage which is near the server
any suggestions?
@robi said in Has anyone set up Nextcloud with a Hetzner Storagebox cifs mount as primary storage?:
Or, it could be a standalone Nextcloud instance configured to run directly on the object store from Minio. (Cannot be done with current container config for Nextcloud in Cloudron as it's an install time thing.)
thanks for the suggestions, but this sounds a bit too hacky to work properly for a long period of time
-
@msbt Hetzner VPS + Volume has worked flawlessly for us, and speed is decent, although I'd always like faster.
Can't comment on the pricing though, that just is what it is.
Maybe dig around with dedicated server configs and see if there's a setup with extra drives that would do what you're hoping for?
Or throw out a number for what sort of hosting budget you think it justifies and see what ideas come back from here within that?
-
@marcusquinn volumes aren't really an option either, I wouldn't want to pay ~100⎠for 2TB of disk space. I do have one dedicated server left which would have plenty of space, but I would prefer a cloud server with SSDs, that specific server has only HDDs and they're rather slow. Maybe I'll opt with that storage share after all...
-
@msbt Understood. I can see the dilemma but not really sure on the answer then
It feels like there's not a standard yet that gives both speed and affordability with Nextcloud. Unless I'm missing something too?
Somewhat related, I keep meaning to give Storj a try from both sides of that coin. This might be worth a look if you're interested in similar: https://filebase.com
-
@girish because the server is like 4-5y old and it's only a Raid1, I don't have too much confidence in that old thing
@marcusquinn the storage box CIFS mount (or the storage share if I get the usermanagement sorted) would be an option, this should work better than the remote webdav that I've tried back then, or maybe I'll try to make a custom package or something
-
@msbt the Nextcloud package for Cloudron does not support changing the primary storage as such. You have to use the external storage plugin in Nextcloud. Maybe in the future we can integrate the volumes on Cloudron to be set as primary storage (ie /app/data) for apps, but we are not there yet.
I just poked around a little and added a storage box as a cloudron-volume and mounted it into the Nextcloud app. After changing
'datadirectory' => '/app/data',
to point to the mount and cp'ed over my files, it saidYour data directory is invalid. Ensure there is a file called ".ocdata" in the root of the data directory.
Obviously I also created/touched the file but the message wouldn't go away, is that because the mount is added as the "cloudron" user and www-data can't access/write into it or is there some tougher apache/htaccess stuff that I would need to adjust? If it was only the permissions, is there a way to mount the directory as someone else?
-
@girish good question, I'll try sshfs later, read a few tutorials of people that are using that (like https://juliane.alton.at/roland/rolog/mounting-storage-sshfs or https://www.d-photos.de/nextcloud-in-der-hetzner-cloud/), so I can rule out that part.
-
Ok so quick update here: I was following the mount procedure from the first link and it's looking good! However, I started with a fresh installation instead of moving my files around, but seeing as it worked out, migrating an existing installation should be no problem either.
So what I did:
- deployed a new Cloudron with Nextcloud installed on a fresh CPX21 on Hetzner Cloud (kept it at 40GB though, might scale down if performance allows it)
- mounted a 5TB Hetzner Storagebox via sshfs into
/mnt/cloud
and added it as Cloudron volume (/media/cloud
) - mounted that volume into the Nextcloud app (uncheck read-only)
- change the datadirectory in
config/config.php
from'datadirectory' => '/app/data',
to'datadirectory' => '/media/cloud',
- cp -r
/app/data/admin
to the mounted volume andtouch .ocdata
in/media/cloud
That's pretty much it I reckon, if you log in now you have this extra storage available:
I have both, uploaded a few GB manually and the rest via sync client, no errors so far. A restart won't change the datadirectory, so this should continue working after reboots. Encryption is also enabled and working as intended, still waiting for something that doesn't work properly.
-
@msbt said in Has anyone set up Nextcloud with a Hetzner Storagebox cifs mount as primary storage?:
Ok so quick update here: I was following the mount procedure from the first link and it's looking good! However, I started with a fresh installation instead of moving my files around, but seeing as it worked out, migrating an existing installation should be no problem either.
So what I did:
- deployed a new Cloudron with Nextcloud installed on a fresh CPX21 on Hetzner Cloud (kept it at 40GB though, might scale down if performance allows it)
- mounted a 5TB Hetzner Storagebox via sshfs into
/mnt/cloud
and added it as Cloudron volume (/media/cloud
) - mounted that volume into the Nextcloud app (uncheck read-only)
- change the datadirectory in
config/config.php
from'datadirectory' => '/app/data',
to'datadirectory' => '/media/cloud',
- cp -r
/app/data/admin
to the mounted volume andtouch .ocdata
in/media/cloud
That's pretty much it I reckon, if you log in now you have this extra storage available:
I have both, uploaded a few GB manually and the rest via sync client, no errors so far. A restart won't change the datadirectory, so this should continue working after reboots. Encryption is also enabled and working as intended, still waiting for something that doesn't work properly.
Thank you so much for the documentation! Could you maybe explain how you mounted the volume via ssh? I added it directly via cloudron and that doesn't seem to work. I can move files there and change the directory but nextcloud is not able to write on it.
-
@andreasdueren It won't show it as a proper volume either.
Plus for some reason my internal volume is now almost completely full with mystery data.
-
@andreasdueren I've mounted it via volumes after getting rid of fstab
-
It looks like Hetzner are now pretty-much doing this exact same thing for their "Storage Share" solution:
@girish I think this needs to be a core feature of Cloudron, given the cost-efficiency, scaleability, and additional backup snapshots this offers for very little âŽs compared to things like GDrive & Dropbox per-user pricing.
-
@msbt
HiI got a similar configuration with a CPX21 instance connected to a BX21 Storagebox.
While transfer speed for large files is fine, transfer speed for large amount of small files is horrible:root@nextcloud:~# for f in {1..2000}; do mktemp ; done /tmp/tmp.qabMyUDO5N /tmp/tmp.QPuk8CcXSB /tmp/tmp.NhErmerWFl /tmp/tmp.CtkY3jvTbL [...]
root@nextcloud:~# time cp /tmp/tmp.* /backups/test/ real 4m20.998s user 0m0.061s sys 0m0.565s
root@nextcloud:~# time rm -fr /backups/test/* real 1m36.682s user 0m0.050s sys 0m0.196s
Are you experiencing the same behaviour ?
-
SSHFS:
root@nextcloud:~# dd if=/dev/zero of=/backups/test.img bs=1G count=1 oflag=dsync 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 50.1201 s, 21.4 MB/s root@nextcloud:~# dd if=/dev/zero of=/backups/test.img bs=4M count=250 oflag=dsync 250+0 records in 250+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 78.6863 s, 13.3 MB/s root@nextcloud:~# dd if=/dev/zero of=/backups/test.img bs=1 count=1000 oflag=dsync 1000+0 records in 1000+0 records out 1000 bytes (1.0 kB) copied, 70.862 s, 0.0 kB/s
LOCAL:
root@nextcloud:~# dd if=/dev/zero of=/tmp/test.img bs=1G count=1 oflag=dsync 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.863714 s, 1.2 GB/s root@nextcloud:~# dd if=/dev/zero of=/tmp/test.img bs=4M count=250 oflag=dsync 250+0 records in 250+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 1.31499 s, 797 MB/s root@nextcloud:~# dd if=/dev/zero of=/tmp/test.img bs=1 count=1000 oflag=dsync 1000+0 records in 1000+0 records out 1000 bytes (1.0 kB) copied, 0.500667 s, 2.0 kB/s
As I said, transfer speed for medium/big files is fine enough, the problem is for small files.
I just asked if some of you experienced the same issue with the same configuration (hetzner VM + storagebox) and if there is a way to improve performances or if I need to find something else that would match my needs