Has anyone set up Nextcloud with a Hetzner Storagebox cifs mount as primary storage?
-
@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 -
@marcusquinn
Hetzner don't use remote storage use remote clustered DB + local storage.
So it's not possible to compare the 2 installs cloudron + storagebox and hetzner storageshare, performance will be a lot better on storageshare, in order of magnitude especially on small files. -
@msbt
the issue could start with a lot of concurrent users and a lot of small changes to file, due to SMB not working at FS lvl but at file level/block of data.
IF hetzner would offer NFS, that could be a solution or better even if there would be support for iscsi. -