Hallo mahlzeit,
leider habe ich tatsächlich gerade etwas wenig Zeit, was dazu führt, daß ich bei einigen Projekten leider nur mit erheblicher Verzögerung antworten kann.
Das schmerzt mich sehr, und ich kann da nur um Verständnis bitten.
Ich fasse zuerst einmal die bisher bekannten Fakten zusammen:
1. Es handelt sich um eine Produktivumgebung.
2. Du hast ein Haupt-NAS, auf dem deine ganzen Daten liegen.
3. Du hast ein Backup-NAS, welches über eine "dünne" Leitung angeschlossen ist.
4. Du hast ein Test-NAS, welches sich im gleichen Netz befindet.
5. Du setzt NAS4Free in der Version 9.2 ein.
6. Du hast beim Haupt-NAS ein Performance-Problem, welches sich hauptsächlich bei der Verzeichnisanzeige auswirkt, und welches ich auf Fragmentierung zurückführe.
7. Dein Backup läuft derzeit über eine virtuelle Maschine.
8. Als Backup-Protokoll wird rsync verwendet.
Ein paar Fragen stellen sich mir aber noch:
1. Ist NAS4Free auf dem Haupt-NAS als Full-, oder als Embedded-Version installiert?
2. Wie hoch ist der Füllstand des Pools "Daten", in Prozent?
3. Wo liegt die VM, was treibt die sonst so, und ganz besonders: was hat sie außer dem Backup noch speziell mit dem Haupt-NAS zu tun?
4. Wäre es möglich, die Platten aus dem Test-NAS (vorübergehend) zusätzlich in das Haupt-NAS einzubauen?
Dinge, die du jetzt schon tun kannst:
1. In der Web-GUI vom Haupt-NAS:
Gehe zu Disks|ZFS|Snapshots|Snapshot, stelle den Filter auf "All" und klicke auf "Apply".
Werden dir dort Snapshots aufgelistet?
2. Gehe zu Disks|ZFS|Pools|Information
Gibt es dort beim Pool "Daten" eine Zeile "scan: scrub repaired...in"?
Wenn ja, dann notiere dir die benötigte Zeit, welche gleich nach "in" steht ($h$m).
3. Gehe zu Disks|ZFS|Pools|Tools, wähle als Command "scrub" aus, und beim Pool sollte "Daten" ausgewählt sein. Klicke dann auf "Send Command!".
Das kannst du am Besten abends starten. Dieser Vorgang wirkt sich zwar kaum auf die Performance aus, aber mir geht es um die dafür benötigte Zeit, und da ist es besser, wenn nicht zig-Leute währenddessen auf das NAS zugreifen.
Den Scrub-Lauf kannst du übrigens über Disks|ZFS|Pools|Information beobachten.
Dieser Vorgang wird ~3h dauern.
Es kann sein, daß du bereits regelmäßig Scrub-Läufe machst, dann brauchst du das jetzt nicht extra ausführen. Es wäre dennoch interessant, welche Zeit dein System dafür braucht.
Ich erwähne das deshalb, weil evtl. auch jemand anders das gleiche Problem hat, und evtl. auf diesen Thread stoßen könnte.
Warum ist der Scrub-Lauf so interessant?
Für einen vorher/nacher Vergleich.
Auch wenn ich glaube, daß bei dir eher Verzeichnis-Fragmentierung vorliegt, können natürlich auch Dateien fragmentiert sein. Das hängt mit der bisherigen Daten-Historie deine Pools zusammen, und läßt sich nur schwer mit anderen Mitteln herausfinden.
Nach dem Backup/Restore-Vorgang wirst du wieder eine Scrub-Lauf durchführen, und evtl. wird dieser Task dann schneller abgearbeitet werden.
Das sind wertvolle Informationen, welche dir beim späteren Management des Haupt-NAS nützlich sein können.
Das weitere Vorgehen:
Es hängt von den Antworten auf meine o.a. Fragen ab.
Normalerweise bevorzuge ich in diesen Fällen eine Vorgehensweise, welche die vorhandenen Ressourcen (z.B. den Test-Server) möglichst effektiv nutzt, und dabei den laufenden Produktiv-Betrieb nur minimal berührt.
Daher würde ich die beiden Problemfelder "Performance" und "externes Backup" getrennt voneinander angehen.
Dummerweise lassen sich aber beide Problemfelder aber sogar auf eine Schlag lösen
Mögliche Vorgehensweise (schematisch):
1. Einbau der Festplatten aus dem Test-NAS zusätzlich in das Haupt-NAS.
2. Die Festplatten aus dem Test-NAS werden als Pool "Backup" eingerichtet.
3. Transfer des Pools "Daten" mittels zfs send/receive auf den Pool "Backup" innerhalb des Haupt-NAS.
4. Während des Vorgangs aus 3. kann ganz normal mit den Daten weitergearbeitet werden.
5. Nachsynchronisation der mittlerweile veränderten Daten von "Daten" nach "Backup" auf dem Haupt-NAS. Das geht dann ratzfatz.
6. Umbenennen des Pools "Daten" (fragmentiert) nach "DUMMY".
7. Umbennenen des Pools "Backup" (defragmentiert) nach "Daten".
Jetz hast du auf dem Haupt-NAS eine defragmentierten Pool "Daten", der allerdings auf den Festplatten aus dem Test-NAS liegt.
Also weiter im Text:
8. Löschen des Pool "DUMMY", und Neuanlage des Pools "Backup" auf den jetzt freien Platten.
9. Transfer des Pools "Daten" (defragmentiert) auf den Pool "Backup".
10. Währenddessen kann mit dem Pool "Daten" ganz normal weitergearbeitet werden.
11. Nachsynchronisation der mittlerweile veränderten Daten von "Daten" nach "Backup".
12. Umbenennung des Pools "Daten" nach "DUMMY".
13. Umbenennung des Pools "Backup" nach "Daten".
14. Umbenennung des Pools "DUMMY" nach "Backup".
15. Jetzt ist alles wieder an seinem Platz. Der Pool "Daten" ist defragmentiert, und befindet sich auf den ursprünglichen Festplattten. Auf den Festplatten aus dem Test-NAS befindet sich der Pool "Backup", und ist auch defragmentiert.
Diese Methode bringt dir die geringste Downtime auf dem Haupt-NAS ein, und du brauchst keine Nachtschichten schieben
Außerdem hast du jetzt folgende Option:
16. Du baust die Platten aus dem Test-NAS mit dem Pool "Backup" in das externe Backup-NAS ein.
17. Du benennst den Pool "Backup" auf dem externen Backup-NAS in "Daten" um.
18. Du richtest dein Backup auf "zfs send/receive ein" (u.U. vorerst manuell).
19. Du baust die Platten aus dem externen Backup-NAS in dein Test-NAS ein.
Welchen Vorteil bringt dir das?
Nun, wenn du so vorgehst, hast du erstmal überall defragmentierte Dateisysteme.
Dann hättest du auch ein lokales Backup deines Haupt-NAS geschaffen.
Au0erdem sind alle drei Pools (im Haupt-NAS, im Test-NAS, und im Backup-NAS) über eine gemeinsamen Snapshot "logisch miteinander verbunden".
So kannst du dann zukünftig mit ganz einfachen Befehlen den Datenbestand vom Haupt-NAS sowohl auf das Test-NAS, als auch auf das Backup-NAS synchronisieren.
Selbstverständlich kannst du das Test-NAS auch jederzeit für andere Aufgaben verwenden, dann ist halt u.U. ein kompletter Datentransfer vom Haupt-NAS auf das Test-NAS fällig.
Der wichtigste Punkt bei der ganzen Aktion ist aber dieser hier:
Du bist gezwungen mit Snapshots zu arbeiten.
Snapshots sind DAS Killerfeature von ZFS.
NAS4Free bietet die Möglichkeit, mit Auto-Snapshots zu arbeiten (tägliche rekursive Snapshots auf Datasets).
Damit kannst du fast 100% der Anwendungsfälle erschlagen, bei denen du normalerweise auf die Daten auf das Backup-NAS zugreifen müsstest.
Beispiel: versehentlich gelöschte Datei, erst nach drei Tagen bemerkt.
Diese Datei holt man sich einfach aus den Auto-Snapshots auf dem Haupt-NAS zurück.
Auf das Backup-NAS wirst du i.d.R. nur zugreifen müssen, wenn:
a) Die Firma bis auf die Grundmauern niedergebrannt ist.
oder
b) Das Haupt-NAS geklaut wurde.
Wie geht es weiter?
Ich habe extra noch keine Step-by-Step-Anleitung gegeben, da noch ein paar Fragen offen sind, und ich dir erstmal das Migrationskonzept verklickern möchte.
Die o.a. Schritte solltest du mal gedanklich durchspielen, und nachfragen, wenn etwas unklar ist.
Bei der Problemlösung bin ich den "Admins-Way" gegangen, d.h. ich habe alle zur Verfügung stehende Ressourcen (Systeme und Festplatten) genutzt, und auf den minimalen Aufwand für den Datentransfer optimiert.
Das wirbelt zwar die Festplatten etwas durcheinander, aber es spart viel Zeit.
Hat man das Prinzip aber verinnerlicht, dann kann man die Festplatten ohne Probleme auch leicht zurück tauschen.
Welche NAS4Free-Version?
Du hattest geschrieben, daß ihr derzeit eine 9.2 Version nutzt.
Die o.a. Vorgehensweise funktioniert zwar prinzipiell mit allen N4F-Versionen (wobei es aber einige wichtige Detailunterschiede gibt), aber ich kann derzeit nur den Einsatz bis zur Version 9.3 empfehlen.
Diese Version wurde jedoch in den letzten Tagen eingestellt.
Leider gab/gibt es in den N4F-Versionen 10.X eine sehr unangenehme Einschränkung, was das Arbeiten mit Snapshots betrifft (kein direkter Zugriff per SMB auf Snapshot-Verzeichnisse mehr möglich).
Daher würde ich dir empfehlen, derzeit entweder bei deiner derzeit eingesetzten Version zu bleiben, oder maximal auf die Version 9.3.0.2 (revision 1955) upzugraden, welche offiziell nicht mehr verfügbar ist.
Diese Einschränkung scheint mir eher unabsichtlich geschehen zu sein, und die allermeisten User werden das gar nicht bemerken, aber für mich stellt das derzeit ein recht großes Problem dar, da ich sehr aktiv mit Snapshots arbeite.
Also werde ich die derzeit aktuelle Version 10.2.0.2.2332 dahingehend testen müssen, um zu sehen, ob das Problem dort noch besteht.
An der Vorgehensweise ändert dieser Fakt jedoch nichts.
Es wäre gut, wenn du die o.a. Fragen noch klären könntest.
Grüße
Princo