Podłączenie Nextcloud do Storage Servera: miejsce, limity i udostępnianie

Opublikowano 5 min czytania

Nextcloud wnosi użytkowników, limity i udostępnianie, Storage Server wnosi miejsce. Razem daje to własną chmurę, w której wystarcza mały serwer, a terabajty leżą gdzie indziej.

Nextcloud potrafi wszystko to, czego nie potrafi Storage Server: zarządzać użytkownikami, przydzielać każdemu własny limit, udostępniać katalogi, tworzyć linki z hasłem i datą wygaśnięcia oraz wydawać pliki przeglądarkom przez HTTPS. Drogie w Nextcloud jest natomiast miejsce, bo leży ono na NVMe-SSD serwera.

Jedno i drugie razem daje układ, który w praktyce się przyjął: mały serwer na Nextcloud, pliki na Storage Serverze. Ten artykuł pokazuje obie drogi konfiguracji, wyjaśnia, która kiedy jest lepsza, i wymienia pułapki, które niezawodnie się przy tym pojawiają.

Dlaczego to połączenie tak dobrze pasuje

Nextcloud dostarczaStorage Server dostarcza
konta użytkowników z hasłem i dwuskładnikowym logowaniemmiejsce, od 1 do 20 TB
limity dla poszczególnych użytkownikówsnapshoty jako drugą warstwę zabezpieczenia
linki do udostępniania z hasłem i terminem wygaśnięcialokalizację odrębną od serwera
wydawanie plików przez HTTPS z logowaniemułamek kosztów za terabajt
wersjonowanie i kosz100 subkont do rozdzielnych celów

Punkt rozstrzygający dla wielu projektów: Storage Server nie zna limitu na subkonto. Subkonto zostaje wprawdzie w swoim katalogu, ale może w nim zapełnić cały pakiet. Nextcloud rozwiązuje dokładnie to, bo tam każdy użytkownik dostaje twardy limit.

Dwie drogi i która jest lepsza

Droga A: Nextcloud sam odwołuje się do pamięci, przez swój wbudowany sterownik SMB lub SFTP. Żadna ingerencja w system operacyjny nie jest potrzebna.

Droga B: montujesz pamięć w systemie operacyjnym jako katalog i w Nextcloud zakładasz magazyn zewnętrzny typu „Lokalny” wskazujący na ten katalog.

Wybierz drogę B, jeśli masz prawa roota. Obejście przez system plików jest odczuwalnie szybsze niż sterownik SFTP Nextcloud, przede wszystkim przy wielu małych plikach, i lepiej znosi awarie sieci. Droga A to rozwiązanie, gdy w systemie operacyjnym nie możesz albo nie chcesz nic zmieniać.

Przygotowanie: własne subkonto

W panelu klienta załóż subkonto tylko dla Nextcloud, z własnym katalogiem startowym, na przykład /nextcloud. Udostępnij mu wyłącznie ten protokół, z którego naprawdę korzystasz. Sprawdź dodatkowo w „Ustawieniach dostępu”, czy Dostępność zewnętrzna jest włączona, bo inaczej serwer nie dosięgnie pamięci.

Przykłady używają poniższych wartości, zastąp je własnymi:

ParametrPrzykładowa wartość
Nazwa hostau123456.storage.kernelhost.net
Subkontou123456-sub1
Udział (SMB)backup
Port SMB445
Port SFTP23

Droga B: zamontować i używać jako magazyn lokalny

Najpierw montowanie. W Debianie i Ubuntu:

apt install -y cifs-utils
mkdir -p /mnt/storage
printf 'username=u123456-sub1\npassword=TWOJE_HASLO\n' > /etc/samba/storage.cred
chmod 600 /etc/samba/storage.cred

Potem wpis w /etc/fstab, żeby przetrwał ponowne uruchomienie:

//u123456.storage.kernelhost.net/backup /mnt/storage cifs credentials=/etc/samba/storage.cred,uid=www-data,gid=www-data,file_mode=0660,dir_mode=0770,seal,_netdev,nofail 0 0

Trzy ważne opcje: uid=www-data dba o to, by serwer WWW mógł pisać, seal szyfruje transmisję przez SMB 3, a _netdev plus nofail zapobiegają temu, że serwer zawiesi się przy starcie, gdy pamięć akurat nie odpowiada.

mount -a
sudo -u www-data touch /mnt/storage/test && echo "Dostęp do zapisu w porządku"

Następnie włącz w Nextcloud aplikację „External storage support” i wpisz pamięć, albo w interfejsie w Administracja, Magazyn zewnętrzny, albo w wierszu poleceń:

sudo -u www-data php occ app:enable files_external
sudo -u www-data php occ files_external:create Dane local null::null -c datadir=/mnt/storage
sudo -u www-data php occ files_external:list

Katalog „Dane” pojawia się teraz u tych użytkowników, którym go udostępnisz. Udostępnianiem sterujesz dla poszczególnych użytkowników albo grup, tak że nie każdy widzi wszystko.

Droga A: magazyn zewnętrzny wprost w Nextcloud

Bez praw roota da się też bez montowania. Dla SMB potrzebujesz odpowiedniego rozszerzenia PHP:

apt install -y smbclient php-smbclient
systemctl restart php8.3-fpm

Potem w Administracja, Magazyn zewnętrzny załóż wpis:

PoleWartość
Nazwa kataloguDane
Magazyn zewnętrznySMB / CIFS
Hostu123456.storage.kernelhost.net
Udziałbackup
Zdalny podkatalognextcloud
Nazwa użytkownikau123456-sub1
Hasłohasło subkonta

Dla SFTP wybierasz zamiast tego typ „SFTP”, jako host wpisujesz u123456.storage.kernelhost.net, a jako port 23. To najczęstsze źródło błędu na tej drodze: Nextcloud proponuje 22, nasza pamięć słucha na 23.

Przydzielanie limitów poszczególnym użytkownikom

Teraz przychodzi część, która uzasadnia cały ten układ. W Administracja, Użytkownicy wpisujesz każdemu kontu limit, na przykład 50 GB. Albo w wierszu poleceń:

sudo -u www-data php occ user:setting fotograf1 files quota "50 GB"

Nextcloud wlicza w to wersje i kosz. Tak jest poprawnie, ale chętnie zaskakuje: kto dostaje 50 GB i wgrywa 50 GB, ten przez stare wersje zajmuje szybko więcej, niż myślał. Dla kont, które dużo podmieniają, a nie dodają, warto ograniczyć czas przechowywania wersji.

Linki do udostępniania na własną stronę

Dla Nextcloud magazyn zewnętrzny jest katalogiem jak każdy inny, udostępnianie działa więc bez zmian. Link z hasłem i datą wygaśnięcia tworzy się w trzech kliknięciach, a plik wydaje przy tym Nextcloud, nie pamięć bezpośrednio. Twoje dane dostępowe do pamięci nigdy więc nie opuszczają serwera.

To dokładnie ten element, którego na samym Storage Serverze brakuje. Kto prowadzi stronę z sekcją plików do pobrania, dostaje tutaj zarządzanie użytkownikami, uprawnienia i wydawanie plików w jednym, bez samodzielnego programowania. Jak wygląda alternatywa bez Nextcloud, opisuje Storage Server na własną stronę internetową.

Cztery pułapki, które niezawodnie się pojawiają

  • Katalog danych nie powinien leżeć na pamięci. Technicznie możliwe, praktycznie ryzykowne: Nextcloud zapisuje tam także pliki blokad i stany przejściowe, a krótka awaria sieci paraliżuje całą instancję. Jako magazyn zewnętrzny awaria dotyka tylko tego jednego katalogu.
  • Baza danych zostaje lokalnie. Zawsze. Na pamięci mają leżeć pliki i nic więcej.
  • Skonfiguruj Redis. Bez pamięci podręcznej na blokady plików Nextcloud z magazynem zewnętrznym staje się odczuwalnie wolny, bo każda blokada idzie przez bazę danych.
  • Port 23 zamiast 22. Przy SFTP Nextcloud proponuje 22. Nasza pamięć słucha na 23, a komunikat błędu niewiele przy tym pomaga.

Który serwer i który pakiet

Na sam Nextcloud wystarczy mała maszyna. Pliki leżą przecież gdzie indziej, serwer tylko zarządza: dla kilku do kilkudziesięciu aktywnych użytkowników wystarczą 4 do 8 GB RAM, o ile działa Redis i skonfigurowany jest przebieg w tle. Instrukcję do tego znajdziesz w Instalacja Nextcloud na własnym serwerze.

Przy pamięci wybór zależy od miejsca:

PakietMiejsceSnapshotyCena
Storage-11 TB10 plus 10 automatycznych9,99 EUR
Storage-25 TB20 plus 20 automatycznych29,99 EUR
Storage-310 TB30 plus 30 automatycznych39,99 EUR
Storage-420 TB40 plus 40 automatycznych69,99 EUR

Wszystkie Storage Servery stoją w Niemczech, obsługują SMB, SFTP, WebDAV i więcej, pozwalają na maksymalnie 100 subkont i mają w cenie snapshoty. Bez opłaty aktywacyjnej, PrePaid, bez minimalnego okresu. Gdy twoje zapotrzebowanie na miejsce rośnie, przechodzisz do większego pakietu, nie dotykając danych.

Najczęstsze pytania

Dlaczego nie wziąć po prostu dużego serwera z dużym dyskiem?
Bo miejsce na dysku serwera z NVMe-SSD kosztuje wielokrotnie więcej. Sam Nextcloud potrzebuje niewiele miejsca i niewiele mocy, cała masa siedzi w plikach. Mały serwer plus Storage Server wychodzi dlatego z reguły wyraźnie taniej niż duży serwer z dużym dyskiem.
Wybrać SMB czy SFTP?
Jeśli masz prawa roota na serwerze z Nextcloud, zamontuj pamięć przez SMB w systemie plików i w Nextcloud załóż lokalny magazyn zewnętrzny wskazujący na ten katalog. To szybsze i stabilniejsze niż sterownik SFTP Nextcloud, który przy wielu małych plikach odczuwalnie hamuje.
Czy mogę przydzielić każdemu użytkownikowi własny rozmiar?
Tak, i właśnie po to jest cała ta konstrukcja. Sam Storage Server nie zna limitu na subkonto, Nextcloud owszem. W zarządzaniu użytkownikami przydzielasz każdemu kontu limit, a Nextcloud go pilnuje.
Czy mogę położyć dane wprost na pamięci, zamiast używać magazynu zewnętrznego?
Technicznie tak, umieszczając katalog danych Nextcloud na zamontowanej pamięci. Zalecane to nie jest: Nextcloud zapisuje tam także pliki blokad, miniatury i stany przejściowe, a przy krótkiej awarii sieci staje cała instancja. Jako magazyn zewnętrzny awaria dotyka tylko tego jednego katalogu.
Czy linki do udostępniania działają też dla plików na Storage Serverze?
Tak, dla Nextcloud magazyn zewnętrzny jest katalogiem jak każdy inny. Udostępnianie z hasłem i datą wygaśnięcia działa dokładnie tak samo, a plik wydaje przy tym Nextcloud, nie pamięć bezpośrednio.
Jak to jest szybkie?
Przy dużych plikach limitem jest łącze twojego serwera, a nie pamięć. Przy wielu małych plikach do każdego dostępu dochodzi opóźnienie sieci, dlatego miniatury powinny leżeć w lokalnej pamięci podręcznej Nextcloud, a nie na magazynie zewnętrznym.
Co się dzieje, gdy pamięć na chwilę nie jest osiągalna?
Jeśli pamięć jest podłączona jako magazyn zewnętrzny, Nextcloud zgłasza ten katalog jako niedostępny, a reszta działa dalej. Jeśli natomiast leży tam cały katalog danych, staje cała instancja. To najważniejszy powód, by wybrać wariant z magazynem zewnętrznym.
Czy potrzebuję bazy danych na Storage Serverze?
Nie, pod żadnym pozorem. Baza danych zostaje na serwerze, na szybkiej pamięci lokalnej. Na Storage Serverze mają leżeć tylko pliki.
Ilu użytkowników obsłuży mały serwer?
Dla kilku do kilkudziesięciu aktywnych użytkowników bez problemu wystarczy serwer z 4 do 8 GB RAM, o ile skonfigurowany jest Redis i regularny przebieg w tle. Pliki i tak leżą gdzie indziej, serwer tylko zarządza.
Ile kosztuje takie połączenie?
Mały serwer na Nextcloud plus Storage Server od 9,99 euro miesięcznie za 1 TB. Storage-2 z 5 TB kosztuje 29,99, Storage-3 z 10 TB 39,99, a Storage-4 z 20 TB 69,99. Wszystko bez opłaty aktywacyjnej, w modelu PrePaid i bez minimalnego okresu.

Nextcloud Storage Server Externer Speicher SMB SFTP Quota Freigaben