Warum die 2-Wege-Synchronisation mittels Synology Drive Client nicht funktioniert

Wir haben in diesem Artikel das Synology DS720+ als perfektes NAS für den privaten Bereich vorgestellt, welches vor allem eine Aufgabe hat: die Flut an Bildern und Videos eines ambitionierten Hobby-Fotografen zu verwalten und an vielen Clients (Desktop-PC, Notebook, Fernseher, Smartphones usw.) verfügbar zu machen. Nach einigen Monaten müssen wir aber feststellen, dass die Art und Weise, wie die Daten zwischen den Geräten transferiert werden sollen, nicht zuverlässig funktioniert.

2-Wege-Synchronisation mit Synology Drive Client

Zwar bietet Synology mit dem Synology Drive Client eine Anwendung an, welche die 2-Wege-Synchronisation übernimmt, diese hat sich aber in der Praxis nicht bewährt. Das liegt vor allem daran, dass in dem aufgemalten Setup eine externe Festplatte genutzt wird, um auch remote ohne Verbindung zum NAS Zugriff auf alle Dateien zu haben, um diese dann zu synchronisieren, wenn man wieder zu Hause ist.

Vorab die "Probleme", auf die wir im Verlauf des Artikels näher eingehen werden:

  • Timestamps: das Erstelldatum (created time) wird nicht übernommen und jedes mal neu gesetzt. Das Änderungsdatum (modified date, mtime) wird nicht zuverlässig übernommen.
  • Doppelte Daten / gelöschte Daten tauchen wieder auf: arbeitet ein Client ohne Drive Client, so werden Änderungen und Löschaktionen rückgängig gemacht, d.h. Daten tauchen plötzlich wieder auf, weil der Synology-Server sich mit dem Client nicht abgleichen kann.
  • Kein Full-Sync: es gibt keine Möglichkeit, einen vollständigen Sync anzustoßen.
  • Nicht alle Dateien lokal verfügbar: standardmäßig kopiert der Drive Client nicht alle Dateien vom Server herunter, um Platz zu sparen. Ist man unterwegs und hat keine Verbindung zum Server, hat man auch keinen Zugriff auf alle Dateien. Dieses Verhalten lässt sich aber abstellen.
  • Transparenz: es gibt keine Übersicht, wie der aktuelle Status ist bzw. welche Transaktionen anstehen und aktuell ausgeführt werden und was die Beweggründe sind.

Zeitstempel (Timestamps) werden nicht übernommen bzw. überschrieben

Viele werden sich fragen, warum das Thema so wichtig ist? Die Metadaten wie Erstell- und Änderungsdatum sind wichtige Informationen, um beispielsweise gezielt nach Bildern aus einen bestimmten Zeitraum zu suchen. Außerdem kann das Erstelldatum auch dazu verwendet werden, um den Dateinamen eindeutig zu setzen.

An folgendem Beispiel sieht man sehr gut, dass das Erstelldatum einfach überschrieben wird. Der 21.02.2021 ist der Tag, als die Datei vom Client zum Server synchronisiert wurde. Nicht das Datum, wann die Datei aufgenommen wurde. Leider übernimmt der Drive Client nicht das Erstelldatum, so dass eine wichtige Informationen verloren geht.

Erstelldatum wird nicht übernommen
Erstelldatum wird nicht übernommen

Es gibt natürlich Alternativen, wie das Erstelldatum aus den EXIF-Daten, aber gerade bei alten Kameras kann man sich darauf nicht verlassen. Das Modified Date ist oftmals aussagekräftig, aber wenn man tatsächlich Änderungen an einem Foto vornimmt, wird auch diese Information überschrieben. Am Ende lässt sich keine Aussage mehr treffen, wann ein Bild tatsächlich erzeugt wurde.

Doppelte Dateien, gelöschte Dateien erscheinen wieder

Das größte Problem tritt auf, wenn ein Client ohne den Synology Drive Client Dateien auf der externen Festplatte Änderungen vornimmt oder Dateien löscht. Da der Server keine Informationen zu den durchgeführten Aktionen hat, wird sicherheitshalber ein Sync durchgeführt und die gelöschten Daten landen wieder (in doppelter Ausführung) auf dem Client.

In der Praxis ist folgendes passiert: auf Rechner A die Daten auf der externen USB-Fesplatte gelöscht / bearbeitet / verschoben. Anschließend an Rechner B (mit Synology Drive Client) die externe USB-Fesplatte angeschlossen und dann wurden alle gelöschten / verschobenen Dateien an den ursprünglichen Ort kopiert und sind somit doppelt.

Dateien werden nicht auf dem Server gelöscht

Löscht man Dateien auf dem Client, so kann es passieren, dass die Dateien nach kurzer Zeit wieder erscheinen. Hintergrund ist, dass man den Client konfigurieren kann, wie mit lokal gelöschten Dateien umgegangen wird:

Gelöschte Dateien werden auf dem Server nicht gelöscht

Standardmäßig ist "Lokal gelöschte Dateien werden erneut vom NAS abgerufen" aktiviert, welches man auf "Lokal gelöschte Dateien werden vom NAS entfernt" umgestellt werden sollte.

Nicht alle Dateien lokal verfügbar

Standardmäßig ist der Synology Drive Client so konfiguriert, dass nur ein Teil der verfügbaren Dateien wirklich auf den Client (in diesem Fall auf die externe USB-Festplatte) kopiert werden. Somit soll Platz gespart werden.

Nicht alle Dateien werden synchronisiert
Um Platz zu sparen, werden nich alle Dateien auf den Client kopiert.
Links lokal, rechts Server

Leider ist es nicht sofort ersichtlich, dass Dateien nur auf dem Server verfügbar sind, da sie auf dem Client schließlich aufgelistet werden. Erkennbar ist es nur anhand der Wolke:

Wolke bedeutet: Datei ist nur auf dem Server verfügbar
Wolke bedeutet: Datei ist nur auf dem Server verfügbar

Um dieses Verhalten abzustellen, muss man den Synology Drive Client entsprechend konfigurieren:

Synchronisation aller Dateien muss eingeschaltet werden

Transparenz / Aktueller Status / Full-Sync

In der täglichen Arbeit ist man sich nie so wirklich sicher, ob nun alle Dateien abgeglichen wurden. Es gibt zwar ein Log mit allen Transaktionen, aber eine Übersicht aller anstehenden Tätigkeiten, vor allem mit einer Begründung (bspw. Dateigröße unterschiedlichen, Erstelldatum unterschiedlich usw.) gibt es nicht.

Außerdem fehlt auch die Möglichkeit einer vollständigen Synchronisationen, so dass man Gewissheit hat, dass der Stand auf dem Zielsystem mit Stand auf dem Client übereinstimmt.

Der klassische Weg: rsync

Aber was ist die Alternative? Wir sind schießlich Experten, wenn es um Computer und Software geht. Daher greifen wir auf Altbewährtes zurück und synchronisieren mittels rsync.

Ein kleines Skript listet erst alle Änderungen auf, welche man anschließend durch Drücken einer Taste durchführen kann. Somit hat man immer genau alle Änderungen im Blick und kann im Zweifel eingreifen:

 

#!/bin/bash

if [ "$#" -lt 2 ]; then
    echo "Illegal number of parameters"
    echo "usage: ./rsync.sh sourcePath destinationPath"
    exit 1;
fi

SOURCE_PATH=$1
DESTINATION_PATH=$2
LOGFILE=/tmp/rsync.log

echo ""
echo "------------------------------------------"
echo "- RSYNC "
echo "-"
echo "- source: $SOURCE_PATH"
echo "- destionation: $DESTINATION_PATH"
echo "- Log: $LOGFILE"
echo "-"
echo "------------------------------------------"
echo ""

read -p "Press any key to start - DRY-RUN"

# r = recursive
# l = copy symlinks as symlinks
# t = timestamp, preserve modified date
# g = preserve group
# o = preserve owner
# O = ignore timestamp on folders
# N = preserve create time
# v = verbose

rsync -rltgoONv \
      --delete \
      --dry-run \
      --itemize-changes \
      --log-file=$LOGFILE \
      --exclude=Thumbs.db --exclude=.DS_Store --exclude=*.db --exclude=*.ini \
      $SOURCE_PATH \
      $DESTINATION_PATH

read -p "Press any key to start - Execute Sync"

rsync -rltgoNOv \
      --delete \
      --log-file=$LOGFILE  \
      --exclude=Thumbs.db --exclude=.DS_Store --exclude=*.db --exclude=*.ini \
      $SOURCE_PATH \
      $DESTINATION_PATH
Die Ausgabe sieht wie folgt aus:

 

$ ./rsync.sh /Volumes/photo/ /Volumes/Untitled/bilderalbum/

------------------------------------------
- RSYNC
-
- source: /Volumes/photo/
- destionation: /Volumes/Untitled/bilderalbum/
- Log: /tmp/rsync.log
-
------------------------------------------

Press any key to start - DRY-RUN
sending incremental file list
.d......n... ./
cd++++++++++ _AUSTAUSCH/
cd++++++++++ _AUSTAUSCH/nas-synology-ds720/
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/synchronisation.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/synology-ds720-teaser.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/synology-ds720-teaser.xcf
cd++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-01.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-02.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-03-rueckseite.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-03-rückseite.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-04-unterseite-speichererweiterun.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-05.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-06.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-title.JPG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/ds720/western-digital-8-tb-dc-hc-320.JPG
cd++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-01-app-fuer-client.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-02-installation-windows.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-03-installation-synchronisierung.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-04-benutzer.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-05-benutzer.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-06-filter.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-07-zwei-wege-synchronisierung.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-arbeitsspeicher.PNG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-cpu.PNG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-festplatte.PNG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-netzwerk.PNG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung.PNG
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/installation/synology-nas-indizierung.png
cd++++++++++ _AUSTAUSCH/nas-synology-ds720/sync/
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/sync/nas-create-date.png
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-2.jpg
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-3.jpg
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-4.jpg
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-5.jpg
>f++++++++++ _AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise.jpg

sent 1,109,572 bytes  received 1,531 bytes  4,563.05 bytes/sec
total size is 1,354,430,408,195  speedup is 1,218,996.27 (DRY RUN)
Press any key to start - Execute Sync
sending incremental file list
./
_AUSTAUSCH/
_AUSTAUSCH/nas-synology-ds720/
_AUSTAUSCH/nas-synology-ds720/synchronisation.JPG
_AUSTAUSCH/nas-synology-ds720/synology-ds720-teaser.JPG
_AUSTAUSCH/nas-synology-ds720/synology-ds720-teaser.xcf
_AUSTAUSCH/nas-synology-ds720/ds720/
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-01.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-02.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-03-rueckseite.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-03-rückseite.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-04-unterseite-speichererweiterun.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-05.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-06.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/synology-ds720-title.JPG
_AUSTAUSCH/nas-synology-ds720/ds720/western-digital-8-tb-dc-hc-320.JPG
_AUSTAUSCH/nas-synology-ds720/installation/
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-01-app-fuer-client.png
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-02-installation-windows.png
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-03-installation-synchronisierung.png
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-04-benutzer.png
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-05-benutzer.png
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-06-filter.png
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-07-zwei-wege-synchronisierung.png
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-arbeitsspeicher.PNG
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-cpu.PNG
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-festplatte.PNG
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung-netzwerk.PNG
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-auslastung.PNG
_AUSTAUSCH/nas-synology-ds720/installation/synology-nas-indizierung.png
_AUSTAUSCH/nas-synology-ds720/sync/
_AUSTAUSCH/nas-synology-ds720/sync/nas-create-date.png
_AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-2.jpg
_AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-3.jpg
_AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-4.jpg
_AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise-5.jpg
_AUSTAUSCH/nas-synology-ds720/sync/nas-sync-nur-teilweise.jpg

sent 6,959,652 bytes  received 2,043 bytes  40,831.06 bytes/sec
total size is 1,354,430,408,195  speedup is 194,554.69

 

Alle Artikel zur Serie Synology NAS DS720+