2017-05-10 9 views
0

So, ich sehe ein sehr seltsames Verhalten mit Openstack Swift. Wenn ich alle Swift-Prozesse starte und eine Operation mache (z. B. eine Datei hochlade), kopiere ich alle meine Swift-Prozesse, kopiere alle Datenverzeichnisse auf einen anderen temporären Speicherort, lösche den Inhalt aller Datenverzeichnisse, Kopieren Sie alle temporären Verzeichnisse zurück in das Verzeichnis data und starten Sie meine swift-Prozesse erneut. Ich kann kein GET für das Objekt ausführen. (Ich kann auf die Containerinformationen zugreifen, aber der schnelle Download schlägt fehl).Openstack Schnelles seltsames Verhalten beim Kopieren der Datenverzeichnisse

Ich habe Stunden damit verbracht, dieses sehr seltsame Verhalten zu debuggen. Hat noch jemand dieses Problem erlebt?

Schritte, den Fehler zu reproduzieren: (Unter der Annahme, 4 Daten Dirs sagen in/mnt/sdb1/dir)

=> swift-init alle Start
=> schnellen Upload some_container irgendeine_Datei
=> (kann von jedem nicht von schnellen Operationen folgen
) => swift-init alle töten
=> cp -R/mnt/sdb1/1/mnt/sdb1/1_temp (Kopie von Original in ein temporäres Verzeichnis)
= > cp -R/mnt/sdb1/2/mnt/sdb1/2_temp (vom Original in ein temporäres Verzeichnis kopieren)
=> cp -R/mnt/sdb1/3/mnt/sdb1/3_temp (vom Original in ein temporäres Verzeichnis kopieren)
=> cp -R/mnt/sdb1/4/mnt/sdb1/4_temp (Kopie vom Original) zu einem temporären Verzeichnis)
=> rm -rf/mnt/sdb1/1/* (lösche den gesamten Inhalt des Originaldatenverzeichnisses)
=> rm -rf/mnt/sdb1/2/* (lösche alle Inhalte der ursprünglichen Daten dir)
=> rm -rf/mnt/sdb1/3/* (lösche den gesamten Inhalt des Originaldatenverzeichnisses)
=> rm -rf/mnt/sdb1/4/* (lösche alle Inhalte der ursprünglichen Daten dir)
=> cp -R/mnt/sdb1/1_temp/mnt/sdb1/1 (Kopie zum Original aus dem Temp Dir)
=> cp -R/mnt/sdb1/2_temp/mnt/sdb1/2 (c opt to original aus dem Temp-Verzeichnis)
=> cp -R/mnt/sdb1/3_temp/mnt/sdb1/3 (Kopieren aus dem Temp-Verzeichnis)
=> cp -R/mnt/sdb1/4_temp/mnt/sdb1/4 (original aus dem temporären Verzeichnis kopieren)

=> swift-init alle Start (Start wieder swift)
=> rasche Liste (dies gelingt)
=> rasche Liste some_container (dies gelingt)
=> swift Download some_container irgendeine_Datei (nicht dieses)

Dieses sehr seltsam considerin ist g die Tatsache, dass ich gerade den Inhalt verschoben habe.

Irgendwelche Zeiger?

Antwort

0

Openstack Swift verfügt über einen Hintergrundprozess, der die Replikation und Konsistenz der Dateien überprüft. Wenn Sie die Dateien selbst verschieben, wird Swift das wahrscheinlich als eine Art von Inkonsistenz verstehen, die von Ihrem Cluster-Setup abhängt und versuchen wird, es zu beheben. Also, das soll nicht funktionieren.

Wenn Sie jedoch immer noch wissen möchten, was passiert, empfehle ich Ihnen, den Containerinhalt nach dem Hochladen aufzulisten, die Dateien zu verschieben und den Containerinhalt erneut aufzulisten. Warten Sie ein paar Minuten und listen Sie erneut auf. Verschieben Sie die Dateien zurück und listen Sie sie erneut auf. Das kann Ihnen helfen, herauszufinden, ob der Hintergrundprozess etwas ausführt, während Sie die Dateien verschieben.

Verwandte Themen