Verständnisfrage - Rebuild mit größerer Disk - unraid/xfs erkennt mehr Platz automatisch?


Go to solution Solved by hawihoney,

Recommended Posts

Hallo.

 

Ich habe gerade etwas gemacht, von dem ich (nach dem Start vor über 1 Tag, dann doch) dachte es sei ziemlich dämlich.
Doch es scheint, als wenn ich doch nicht so daneben lag.


Vielleicht kann mir da einer etwas erklären, weil ich aus der Windowswelt komme und mir das unter Windows so überhaupt nicht erklärbar ist.

 

Also gegeben ist unraid 6.12.0-Rc2
Ein array mit 2 Parityfestplatten zu je 20TB und diverse Datenfestplatten zu je 18TB, alle Datenfestplatten sind mit xfs-enc formatiert.
Durch Umkonfiguration an anderer Stelle habe ich 2 einzelne 20TB Festplatten frei bekommen und wollte sie in diese Array stecken um mehr Nutzkapazität zu bekommen.


Also habe ich den PC ausgeschaltet, eine 18TB rausgerupft, eine 20TB eingebaut und unraid wieder gestartet (Array startet nicht automatisch, auch wegen fehlendem 'Passwort').
Logischerweise gab es Gemecker, weil eine Platte nicht zu finden war. Dafür habe ich dann die 20TB gewählt und das array gestartet.
unraid hat darufhin damit begonnen die fehlende Festplatte auf der neuen 20TB Datenfestplatte wieder herzustellen.
1Tag, 20 Stunden und 49 Minuten später war unraid fertig.
Das array ist wieder ok. So weit, so erwartet.

 

Nun kommt der Punkt, der mich verwundert.
Anhand der Parität wurden ja planmäßig alle Bits/Bytes/Blöcke genau so wieder hergestellt, wie es bei der vorherigen 18TB Festplatte der Fall gewesen ist.
Das bedeutet, eigentlich hätte ich auf der Festplatte einen 18TB großen Bereich erwartet und eine ca. 2TB großen brach liegenden Bereich.


Wenn ich mit mc auf die alten 18TB Festplatten schaue gibt er mit die Datenträgergröße von (sehr gerundeten) 16TB an, aber wenn ich auf genau diese 20TB Festplatte schaue zeigt mit mc 18TB an.
Da mc anscheinend mit Basis 1024 rechnet und eben heftig rundet bin ich nicht überrascht, daß die Gesamtkapaität kleiner die (1000basierte) Nennkapazität ist.

Mich verwundert eher, daß anscheinend der gesamte 20TB Datenträger sicht- und nutzbar ist, ohne daß irgendetwas wie eine Partition erweitert werden muß.

 

Ist das ein Feature von xfs oder hat unraid bei dem rebuild erkannt, daß es die Größer des wiederherzustelenden Datenträgers anpassen sollte (was aber bedeuten würde, daß der fehlende Datenträger nicht 100%ig identisch wiederhergestellt wurde, sondern unraid im Partitionsbereich rumgefummelt hat)?

 

Ich will mich nicht beschweren. Es ist ja gut und einfacher für mich, wenn ich wohne weitere Schritte die größere Datenfestplatte komplett nutzen kann. Ich bin eben Neugierig, was mir da unter die Arme gegriffen hat (da ich das mit einer weiteren Festplatte auch machen will [Tausch 18TB gegen 20TB um mehr Nutzkapazität zu haben]).

 

Und da ich mit linux noch immer nicht warm geworden bin:

Mit welchem Befehl kann ich mir die Gesamtkapazität eines einzelnen Datenträgers (Disk24) anschauen?

Unter Windows würde ich mir die Partition mit checkdisk oder so auflisten lassen.

 

Zur verdeutlichung 2 Screenshots.

Screenshot1: Ansicht der letzten paar Datenfestplatten (Disk 22 und 23 sind 18TB, Disk 24 ist die neue 20TB)

Screenshot2: Ansicht in mc der Disk 23 links und Disk 24 rechts. (Der Screenshot wurde stark zusammengeschnitten, damit er hier im Beitrag nicht so raumgreifend ist).

 

Screenshot 1:

Arrayview-2023-04-10 23_14_09-102 Tessa Main (TESSA-MAIN1064) – VNC Viewer.png

 

Screenshot 2:

mc-view2023-04-10 23_15_46-102 Tessa Main (TESSA-MAIN1064) – VNC Viewer.png

Edited by DataCollector
EDIT - Screenshots hinzugefügt
Link to comment
  • Solution
8 hours ago, DataCollector said:

Nun kommt der Punkt, der mich verwundert.

 

Genau so funktioniert das Unraid Array seit Anfang an - egal ob mit XFS, BTRFS, ReiserFS oder ZFS. Am Ende des Rebuilds wird a.) der Rest der größeren Platte mit Nullen beschrieben und b.) die Partition in diesen Bereich erweitert. Diese zusätzlichen Anpassungen wandern dann auch gleich in die Parity so dass diese 20 TB Platte sofort wieder gegen eine andere 20 TB ausgetauscht werden könnte.

 

Ein kleiner Ausflug ins Jahr 2008 in dem ich meine erste Unraid Lizenz erwarb ;-)

 

https://web.archive.org/web/20080803131341/http://lime-technology.com/?page_id=47#toc-replace-a-single-disk-with-a-bigger-one

 

Quote

When you start the array, the system will reconstruct the contents of the original smaller disk onto the new disk. Upon completion, the disk’s file system will be expanded to reflect the new size. You can only expand one disk at a time.

 

Edited by hawihoney
Link to comment
8 hours ago, DataCollector said:

Anhand der Parität wurden ja planmäßig alle Bits/Bytes/Blöcke genau so wieder hergestellt, wie es bei der vorherigen 18TB Festplatte der Fall gewesen ist.
Das bedeutet, eigentlich hätte ich auf der Festplatte einen 18TB großen Bereich erwartet und eine ca. 2TB großen brach liegenden Bereich.

Kleiner Denkfehler.

Die Parität wird wiederhergestellt, bis der Datenplatte die Blöcke ausgehen.

Bei der Erstellung war das ja genauso, deshalb sind die füher nicht benutzten Datenblöcke alle "Null".

Die werden aber nun auch mit wiederhergestellt, so dass die neue Platte dann die alten Daten + "den Rest aufgefüllt mit Nullen" enthält.

Damit ist es dann konfliktfrei möglich, anschließend die Partition der Datenplatte auf die maximale Blockzahl zu erweitern.

Dein Array "wächst" somit also um den Anteil der neuen Blöcke.

 

Edited by MAM59
Link to comment
40 minutes ago, MAM59 said:

Kleiner Denkfehler.

Die Parität wird wiederhergestellt, bis der Datenplatte die Blöcke ausgehen.

Bei der Erstellung war das ja genauso, deshalb sind die füher nicht benutzten Datenblöcke alle "Null".

Soweit war/ist es mir klar.

 

40 minutes ago, MAM59 said:

Damit ist es dann konfliktfrei möglich, anschließend die Partition der Datenplatte auf die maximale Blockzahl zu erweitern.

Das unraid dies automatisch sofort mit macht, war mir bis dahin nicht bekannt.

Auch Dir herzlichen Danke für die Klarstellung!

Link to comment
1 hour ago, DataCollector said:

Danke für die Klarstellung.

 

Noch eine zusätzliche Anmerkung hierzu da es oft zu Missverständnissen führt: Selbst bei einer "Precleared" Festplatte wird am Ende der Punkt a.) - das clearen - im neuen, bisher ungenutzten Bereich der Festplatte ausgeführt. Deshalb bringt das Preclearen nur eine Zeitersparnis im Array beim Hinzufügen von zusätzlichen Platten und nicht beim Ersetzen von Festplatten.

 

Denn es ist eine beliebte Frage beim Ersetzen durch eine größere Platte "Wieso wird denn nach dem Rebuild über Stunden nur die Ersatzplatte (ggfs. zusätzlich Parity) beschrieben?" Das sind die Nullen ...

 

  • Thanks 1
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.