Synchronizacja z RSync do WebDAV jest bardzo wolna

11

Mam zamontowany sklep WebDAV, z którym bawię się, aby spróbować stworzyć własną konfigurację pseudo-DropBox. Wydaje się jednak, że przesyłanie większych plików jest bardzo powolne (mój wykres przepustowości trochę się poprawia, a potem przestaje działać przez długi czas).

Czy ktoś tego próbował? Zastanawiam się, czy sposób, w jaki jest montowany, sprawia rsync, że myślisz, że jest to dysk lokalny czy coś takiego, a więc może być bardziej dyskretny niż gdyby wiedział, że jest to zamontowany dysk sieciowy?

Synchronizuję za pomocą następującego polecenia:

rsync -rv /source/directory/ /mounted/webdav/directory/

Działa to w systemie MacOS 10.6, a WebDAV jest montowany przy użyciu natywnego mechanizmu montowania.

AlexC
źródło

Odpowiedzi:

13

Sprawdź stronę podręcznika dla

  • --size-only ponieważ większość implementacji webdav nie akceptuje ustawiania czasu modyfikacji

  • --no-whole-file aby powiedzieć rsync, że obsługuje zdalny system plików

  • --inplace rsync zastępuje pliki bezpośrednio, zamiast przesyłania, a następnie zamiany

Przy okazji, używam innej warstwy encfs do szyfrowania plików w webdav i jestem całkiem zadowolony z wydajności.

ribx
źródło
Jak --inplacepomoc W instrukcji: Ta opcja jest przydatna do przesyłania dużych plików ze zmianami blokowymi lub dołączonymi danymi, a także w systemach, które są związane z dyskiem, a nie z siecią . Może także pomóc w utrzymaniu migawki systemu plików kopiowania przy zapisie przed rozbieżnością całej zawartości pliku, który zawiera jedynie niewielkie zmiany.
msa.im
Moje polecenie tosudo mount -t davfs https://webdav.yandex.com/ ~/mnt/yd; rsync -avrc --size-only --no-whole-file /home/msa/xranitel/webdav /home/msa/mnt/webdav
msa.im,
0

Próbowałem tego na serwerze, dla którego mam zarówno dostęp rsync, jak i WebDAV, aby zobaczyć różnicę, a metoda rsync przez WebDAV była znacznie wolniejsza. To musi być protokół. Nie sądzę, że rsync jest lokalnie bardziej dyskretny niż przez sieć.

fideli
źródło
0

Jestem prawie pewien, że dzieje się tak, ponieważ rsync oblicza sumę kontrolną do porównania i po transmisji. Ponieważ plik jest przechowywany zdalnie, oznacza to, że jest przesyłany kilka razy.

Możesz uruchomić rsync jako demon lub przez ssh, aby wykonać obliczenia na serwerze. Lub po prostu wyłącz sumę kontrolną.

bdecaf
źródło
0

Przekonałem się, że montaż webdav w Mac OSX jest zawodny (10.11.6 El Capitan). Jeśli użyję rsync, tar, cp lub innego narzędzia, niektóre pliki mogą zostać uszkodzone. Mogę powtarzać i powtarzać, ale za każdym razem psują się różne pliki. Następnie montuję ten sam dokładny folder webdav na maszynie wirtualnej systemu Windows wewnątrz komputera Mac (ta sama sieć, ten sam sprzęt, to samo wszystko oprócz tego, że jest to maszyna wirtualna systemu Windows zamiast Mac OSX), a następnie wszystko działa poprawnie.

Edward Ned Harvey
źródło