rsync Frage


hawihoney

Recommended Posts

Ich hätte da mal eine blöde Frage. Ich nutze seit ewigen Zeiten rsync zum Synchronisieren von Allem was synchronisiert werden muss. Genau so lange nutze ich die selben Parameter:

 

rsync -avPX --delete-during "/mnt/pool_nvme/" "/mnt/pool2_nvme/"

 

Völlig unerwartet melden zwei identische Pool Devices nach dem Synchronisieren einen Unterschied:

 

Wie kann so etwas passieren?

 

Unbenannt.thumb.png.49ed3a3256f627ac0d4fd056c08d2e41.png

Link to comment

Erstellst du aktuell nicht einen Unterordner auf dem Ziel. Also Quelle müsste doch eigentlich ohne Slash enden:

"/mnt/pool_nvme"

 

Wegen dem Größenunterschied: Hast du evtl. die erste NVMe vor dem Unraid Update formatiert? XFS hat eine neue Version bekommen und belegt nun mehr Speicherplatz wegen neuer Funktionen (Snapshots).

 

Hier ein paar Befehle wie man sich die Version ausgeben lassen kann:

https://unix.stackexchange.com/questions/306442/how-to-check-xfs-filesystem-version

Link to comment
46 minutes ago, mgutt said:

Also Quelle müsste doch eigentlich ohne Slash enden:

 

Ist eigentlich korrekt so. Ich synchronisiere jede Nacht Gigabytes über Gigabytes. Nur bei den NVMe M.2 sehe ich diesen Unterschied. Das Filesystem ist mit der selben XFS Version erstellt (V5). Beide sind wohl gleich formatiert/partitioniert (1MB aligned).

 

root@Tower:~# xfs_db -r /dev/nvme1n1p1
xfs_db> version
versionnum [0xb4b5+0x18a] = V5,NLINK,DIRV2,ATTR,ALIGN,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT,PROJID32BIT,CRC,FTYPE,FINOBT,SPARSE_INODES,REFLINK
xfs_db> quit

root@Tower:~# xfs_db -r /dev/nvme0n1p1
xfs_db> version
versionnum [0xb4b5+0x18a] = V5,NLINK,DIRV2,ATTR,ALIGN,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT,PROJID32BIT,CRC,FTYPE,FINOBT,SPARSE_INODES,REFLINK

 

pool_nvme
Partition format: MBR: 1MiB-aligned

pool2_nvme
Partition format: MBR: 1MiB-aligned

 

Seltsam. Ich nehme es einfach mal so hin.

 

Edited by hawihoney
Link to comment
1 hour ago, mgutt said:

sondern im Root

 

Korrekt, die Drives werden komplett gesynct.

 

Das mit dem --stats probiere ich gleich mal aus.

 

Danke.

 

***EDIT***

Ich kann nichts Außergewöhnliches erkennen:

 

Number of files: 3,761,530 (reg: 1,293,768, dir: 2,084,426, link: 383,336)
Number of created files: 1,087 (reg: 917, dir: 164, link: 6)
Number of deleted files: 0
Number of regular files transferred: 1,082
Total file size: 253,576,317,616 bytes
Total transferred file size: 15,163,608,400 bytes
Literal data: 15,163,608,400 bytes
Matched data: 0 bytes
File list size: 16,707,247
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 15,390,414,417
Total bytes received: 2,141,210

sent 15,390,414,417 bytes  received 2,141,210 bytes  108,781,311.85 bytes/sec
total size is 253,576,317,616  speedup is 16.47

 

Edited by hawihoney
Link to comment

Ne, dann würde er auch einen Fehlersatz hinzufügen.

 

Was sein kann: Eine Anwendung erstellt eine Datei und reserviert dafür mehr Platz als dir Daten in der Datei eigentlich an Platz brauchen. Und rsync ignoriert das und überträgt nur die reale Menge.

 

Dann würde rsync so genannte Sparse Dateien erstellen:

https://de.m.wikipedia.org/wiki/Sparse-Datei

 

Das sollte man mit einem Größenvergleich auf Dateiebene rausfinden können. Recherchiere ich später mal.

 

Oder: Gelöschte Dateien hinterlassen Metadaten, die XFS erstmal drauf lässt.

 

 

Link to comment
Just now, mgutt said:

Recherchiere ich später mal.

 

Muss nicht. Es hat mich halt interessiert. Ist nicht so wichtig.

 

Eine M.2 hängt am PCIe der ersten CPU und die andere M.2 am PCIe der zweite CPU (PCIe Karten). Die der zweiten CPU kracht manchmal runter. Deshalb nutze ich keinen BTRFS RAID-1 Pool sondern zwei XFS Single-Pools. Nachts wird synchronisiert. Mit BTRFS ist mir das Wechseln nach einem Platten Ausfall viel zu aufwändig und zeitraubend. Mir fiel halt nur auf, dass beide Drives, obwohl mit identischem Inhalt, eine sehr große Differenz aufweisen.

 

Nur zur Erklärung: Mein alter Server ist derzeit etwas wackelig. Hatte schon eine der beiden CPUs getauscht. Das war es aber nicht. Da muss etwas anderes los sein. Erhalte immer nach dem Start einer VM (die ebenfalls auf der zweiten CPU liegt) clocksource Fehler und es wird von tsc nach acpi_pm gewechselt. Das wiederum hat drastische Auswirkungen auf das Array. Die Performance fällt auf ungefähr 1/5. Ein aktueller 6 TB Rebuild soll am Montag fertig sein... Im Moment tippe ich auf gesteigerten Strombedarf der 1050ti. Die hängt auch an der zweiten CPU.

 

Ich brauche dringend Multiple Array Pools, damit ich endlich umbauen kann.

 

Link to comment
1 hour ago, hawihoney said:

Eine M.2 hängt am PCIe der ersten CPU und die andere M.2 am PCIe der zweite CPU (PCIe Karten). Die der zweiten CPU kracht manchmal runter. Deshalb nutze ich keinen BTRFS RAID-1 Pool

Ah ok. Ich dachte wegen Strom sparen. Denn ein RAID1 geht meine ich nicht in den L1 (PCIe Standby). Daher hatte ich sowas auch schon in Planung.

 

Denk aber dran, dass sich gerade in Änderung befindliche Dateien nicht ordentlich sichern lassen. Rsync spuckt dann eine korrupte Datei aus.

 

Beispiel:

- 100MB Datei

- rsync liest die ersten 50MB

- nun ändert etwas die Datei

- rsync liest die restlichen 50MB der geänderten Datei

- auf dem Ziel liegt ein Mischmasch

 

Aus dem Grund wäre es denke ich besser, wenn man rsync solange arbeiten lässt, bis es keine Datei mehr übertragen hat. Erst dann kann man sich sicher sein, dass Quelle und Ziel gleich sind.

Link to comment
36 minutes ago, mgutt said:

Rsync spuckt dann eine korrupte Datei aus.

 

Klar. In der Nacht fahre ich Container für Container runter, sichere per rsync ins Array (config und data, das ist der saubere Stand) und fahre die Container wieder hoch. Tagsüber sichere ich unsauber die M.2 komplett. Bei einem Crash eines Pools bin ich verdammt schnell wieder im Spiel. Da kommt das BTRFS Balance Geraffel nicht mit.

 

Link to comment
23 minutes ago, hawihoney said:

Da kommt das BTRFS Balance Geraffel nicht mit.

Denke ich auch, aber du weißt im Grunde nie ob du dem Mirror vertrauen kannst. Wobei... meldet rsync nicht, wenn sich eine Datei während der Übertragung geändert hat? Dann wüsste man zumindest welcher Datei man nicht trauen kann ^^

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.