Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
pandoc:arge_storage:05_backup_on_vsc3:backup_on_vsc3 [2019/05/02 16:44] – Pandoc Auto-commit pandoc | pandoc:arge_storage:05_backup_on_vsc3:backup_on_vsc3 [2020/10/20 09:13] (current) – Pandoc Auto-commit pandoc | ||
---|---|---|---|
Line 20: | Line 20: | ||
* 6 Fileserver VSC-2 (Archiv) | * 6 Fileserver VSC-2 (Archiv) | ||
* Fileserver Hadoop Cluster / Datalabs | * Fileserver Hadoop Cluster / Datalabs | ||
- | | + | |
- | * Durchschnittliche Dateigroesse ~ 1 MB | + | * Durchschnittliche Dateigroesse ~ 1 MB |
- | * Arsenal <–> Freihaus | + | |
- | * TODO: Diagramm | + | ====== Derzeitiges Off-Site Backup |
+ | |||
+ | {{.:vsc_network.png}} | ||
====== Struktur der Daten ====== | ====== Struktur der Daten ====== | ||
- | {{: | + | {{.: |
====== Struktur der Daten (2) ====== | ====== Struktur der Daten (2) ====== | ||
- | {{: | + | {{.: |
====== Struktur der Daten (3) ====== | ====== Struktur der Daten (3) ====== | ||
- | {{: | + | {{.: |
====== Struktur der Daten (4) ====== | ====== Struktur der Daten (4) ====== | ||
- | {{: | + | {{.: |
====== Backup-Maschine ====== | ====== Backup-Maschine ====== | ||
Line 62: | Line 64: | ||
* 1 Filesystem pro Fileserver | * 1 Filesystem pro Fileserver | ||
* Keine Cache/Log Devices | * Keine Cache/Log Devices | ||
+ | * Alle Pools gemeinsam 1050TB | ||
====== Backup Sofware ====== | ====== Backup Sofware ====== | ||
Line 68: | Line 71: | ||
* Bash, Rsync, Grep, Split, etc | * Bash, Rsync, Grep, Split, etc | ||
* Snapshotting (ZFS) | * Snapshotting (ZFS) | ||
+ | * pro Server | ||
+ | * pro Backup-Zyklus | ||
+ | * script zum loeschen von alten Snapshots (halbautomatisch) | ||
* Konfigurations-File | * Konfigurations-File | ||
+ | |||
+ | <code bash> | ||
+ | # Configuration File for the backup script | ||
+ | # Server | ||
+ | nfs01 / | ||
+ | nfs02 / | ||
+ | nfs03 / | ||
+ | </ | ||
+ | ====== Backup Software (2) ====== | ||
+ | |||
* Status Output | * Status Output | ||
+ | <code bash> | ||
+ | [root@fh100 ~]# / | ||
+ | +++++++++++++++++++++++++++++++++++++++++ | ||
+ | +Current Backup-State of VSC-2 and VSC-3+ | ||
+ | +++++++++++++++++++++++++++++++++++++++++ | ||
+ | nfs01: Backup running since 2019-04-30. | ||
+ | nfs02: Backup running since 2019-04-30. | ||
+ | nfs03 completed at 2019-04-23 with a runtime of 58729 Seconds. Next Backup already queued on 2019-04-23 | ||
+ | +++++++++++++++++++++++++++++++++++++++++ | ||
+ | + | ||
+ | +++++++++++++++++++++++++++++++++++++++++ | ||
+ | backup: 35.3T available | ||
+ | backup2: 49.7T available | ||
+ | tank7NG: 23.5T available | ||
+ | </ | ||
====== Bash/Rsync Magic (1) ====== | ====== Bash/Rsync Magic (1) ====== | ||
- | < | + | * Naiver Ansatz |
- | * Naiver Ansatz | + | |
+ | < | ||
+ | rsync -avHAXS --delete src/ dest/ | ||
</ | </ | ||
+ | * Vorteile | ||
+ | * Einfach | ||
+ | * Nachteile | ||
+ | * Nur 1 Prozess | ||
+ | * und der macht die halbe Zeit IOWait bei NFS ueber 10G | ||
+ | * Funktioniert so nicht bei 750 Mio. Files | ||
+ | |||
====== Bash/Rsync Magic (2) ====== | ====== Bash/Rsync Magic (2) ====== | ||
- | < | + | * Parallelisierung - Naiver Ansatz |
- | * Parallelisierung | + | |
+ | < | ||
+ | for i in {1..10} | ||
+ | do | ||
+ | rsync -avHAXS --delete src/ | ||
+ | done | ||
</ | </ | ||
+ | * Vorteile | ||
+ | * Relativ Einfach | ||
+ | * Mehrere rsync Prozesse laufen parallel | ||
+ | * Nachteile | ||
+ | * Parallelisierung abhaengig von der Anzahl der Server | ||
+ | * Alle Server muessen gebackuppt sein, bevor der Zyklus neu starten kann | ||
+ | * Output / Monitoring der Rsync Jobs? | ||
+ | |||
====== Bash/Rsync Magic (3) ====== | ====== Bash/Rsync Magic (3) ====== | ||
- | < | + | |
- | * Boiler-Plate Zeugs | + | * Fuer jeden server |
- | </code> | + | * ZFS Snapshot erstellen |
+ | * Parallel | ||
+ | * Verzeichnisstruktur kopieren | ||
+ | * Filelist erstellen | ||
+ | * Sortieren | ||
+ | * Splitten (Anzahl Prozesse) | ||
+ | * Nicht mehr vorhandene Files loeschen | ||
+ | * Neue / geaenderte files mit mehreren Prozessen synchronisieren | ||
====== Bash/Rsync Magic (4) ====== | ====== Bash/Rsync Magic (4) ====== | ||
- | < | + | < |
- | * Software Diagramm | + | # Sync Directory Structure |
+ | rsync -avHAXS -f" | ||
+ | # Create Filelists | ||
+ | ( find src/server/ ! -type d > filelist.txt | ||
+ | sort -R filelist.txt > filelist2.txt | ||
+ | split -d -a6 -n r/ | ||
+ | # Delete obsolete files | ||
+ | rsync -r --delete --existing --ignore-existing src/server/ dest/ | ||
+ | wait | ||
+ | # Sync Files in Filelist | ||
+ | for ((i=0; i< | ||
+ | do | ||
+ | rsync -avHAXS --files-from=filelist.scrambled.txt.${i} src/server/ dest/ | ||
+ | done | ||
</ | </ | ||
- | ====== Bash/Rsync Magic Probleme ====== | + | ====== Bash/Rsync Magic (5) ====== |
+ | |||
+ | * Backup mit n-prozessen pro server | ||
+ | * Backup Zyklus? | ||
+ | * Backup-Server soll immer eine gewisse Load haben (Anzahl laufender rsync prozesse) | ||
+ | * Warteschlange / Queue | ||
+ | * Backup laeuft pro Server. | ||
+ | * Script checkt Server, die nicht gerade gebackuppt werden und fuegt sie in Warteschlange ein | ||
+ | * 1x Taeglich | ||
+ | * Zweites script checkt Anzahl der laufenden rsync Prozesse | ||
+ | * Startet backup fuer naechsten Server in Queue | ||
+ | * 1x Stuendlich | ||
+ | |||
+ | ====== Bash/Rsync Magic (6) ====== | ||
+ | |||
+ | {{.: | ||
+ | |||
+ | ====== Bash/Rsync Magic (7) ====== | ||
+ | |||
+ | * Clustercopy.sh | ||
+ | * Erweiterung des Backup-Scripts | ||
+ | * Zum Kopieren von Files auf Clustern | ||
+ | * Erwartet Liste von Nodes und Anzahl der Prozesse | ||
+ | * rsync mit m Prozessen auf n Nodes | ||
+ | * Speedup fuer parallele Dateisysteme | ||
+ | |||
+ | ====== Bash/ | ||
+ | |||
+ | * Out of Memory (ZFS) | ||
+ | * Directories mit vielen Files? | ||
+ | * Anzahl der Rsync-Prozesse | ||
+ | * Rebuild Zeit bei SMR Disks | ||
+ | * Hinzufuegen neuer Disks | ||
+ | * ZFS Troubles | ||
+ | * Bottlenecks | ||
+ | * SAS | ||
+ | * Netzwerk | ||
+ | * CPU/Memory | ||
- | < | ||
- | * Out of Memory (ZFS) | ||
- | * Anzahl der Rsync-Prozesse | ||
- | * Rebuild Zeit bei SMR Disks | ||
- | * Hinzufuegen neuer Disks | ||
- | * ZFS Troubles | ||
- | </ | ||
====== Ausblick ====== | ====== Ausblick ====== | ||
* Backup auf Tapes mit IBM Spectrum Protect | * Backup auf Tapes mit IBM Spectrum Protect | ||
- | * 10 TB / Tape | + | * Tape Library TU Wien Geodaesie |
- | * 200 MB/s write speed per drive | + | * 9 TB / Tape unkomprimiert (LTO-7 M8) |
+ | * 300 MB/s write speed per drive | ||
* 3 Drives | * 3 Drives | ||
* 100 Tapes | * 100 Tapes | ||
- | * 1 TSM Server | + | * 1 Server |
- | * 2 TSM Clients | + | * 2 Clients |
====== Ausblick (2) ====== | ====== Ausblick (2) ====== | ||
- | * TSM Server | + | * Spectrum Protect |
* 2x Intel Xeon E5-2697V4, 2.3 GHz, 18 Cores / 36 Threads | * 2x Intel Xeon E5-2697V4, 2.3 GHz, 18 Cores / 36 Threads | ||
* 512 GB Ram | * 512 GB Ram |