markfalk
Goto Top

MS-Basisdaten-(Linux-Raid-)Partition von NAS vergrößern

Hallole,
vorausschicken muß ich, daß ich vor über 30 Jahren mit DOS angefangen habe und bei Windows geblieben bin, von Linux also so gut wie keine Ahnung habe. Mit konkreten Anleitungen kann ich zwar das eine oder andere unter Linux tun, aber ich verstehe dabei nicht wirklich, was ich tue. Aktuell versuche ich mein Problem mit dem ct-Desinfect-Ubuntu Version 2021, gebootet von USB-Stick, zu lösen.

Ich habe hier seit einiger Zeit ein NAS im Betrieb, und zwar das SilverStore von Freecom. Darin sind zwei 500GB-HD als Raid 1. Die HD sind zu klein geworden, ich will sie durch zwei 1TB-HD ersetzen (das NAS kann bis 2 x 3TB). Da ich keine freie HD für ein externes backup habe (und ich befürchtete, daß die Hin- und Her-Kopiererei über das Netwerk und USB zu lange dauert), dachte ich mir das ganz einfach:
Eine der 500GB-HD durch eine gelöschte 1TB-HD ersetzen, das Raid NAS-intern automatisch aufbauen lassen (wie es bei dem Defekt/Ersetzen einer der 500GB-HD auch funktioniert/e, irgendeine Möglichkeit, dies manuell zu veranlassen, irgendwelche weiteren Verwaltungsmöglichkeiten, gibt es dagegen nicht) und danach dann das gleiche Spiel mit der anderen 500GB-HD.
Das hat im Prinzip auch geklappt, nur mit dem "Schönheitsfehler", daß von den 1 TB nur rund 500GB verwendet wurden, rund 500GB sind als freier Platz hinter der Datenpartition verblieben (genau genommen hat laut gparted auf der 1TB-Platte die Datenpartionen 449,76GB mit einem freien Platz von 475,22GB und auf der 500GB-Platte - seinerzeit eingerichtet mit dem NAS - ebenfalls 449,76GB mit - warum auch immer - einem freien Platz von 9,47GB).

Das NAS-Modell SilverStore ist schon etwas älter, der freecom-Support weiß nicht weiter, das Manual ist absolut nicht hilfreich, auf der NAS-Geräteseite, die über dessen IP-Adresse aufgerufen werden kann, sind keine (Verwaltungs)Aktionen oder Funktionen ersichtlich, die hier helfen würden, eigentlich läßt sich da hinsichtlich der HDs abgesehen von der Ersteinrichtung des Raid überhaupt nichts veranlassen.
Also habe ich an einen PC das besagte ct-Desinfect-Ubuntu 2021 vom USB-Stick gebootet und eine der 1TB-HD via USB angeschlossen. Nach viel herumgegoogle und ausprobieren und entsprechender Zeitvernichtung habe ich herausgefunden, wie ich auf die HD und deren Partitionen zugreifen kann, sowohl (auch die Datenpartition - Nr.5, Einrichtungsdaten siehe unten) - mounten mit mdadm als auch mit gparted, cfdisk usw. zu manipulieren.
Nachdem ich gesehen hatte, daß nach der Datenpartition die freien rund 500GB vorhanden sind, dachte ich mir als einfache Lösung, einfach die Datenpartition zu vergrößern. Mit gparted ging es nicht, das erlaubte nur das Verschieben der Partition, jedoch keinerlei Größenänderung, aber mit cfdisk konnte ich die Datenpartition bis ans Plattenende vergrößern. Unter gparted wurde dann auch die vergrößerte Partition angezeigt und dies auch mit der Laufwerksanzeige. Nach dem mounten dieser Partition (mit Hilfe von mdadm) wurde im Filemanager die Größe der Partition aber nur mit den ursprünglichen rund 500GB angezeigt. Und auch eingebaut ins NAS und vorsorglich nur als einzelne HD, also im degraded mode, betrieben wurde als Plattengröße nur die ursprünglichen rund 500GB gemeldet; die Daten waren noch vorhanden. Die ursprünglich nicht belegten rund 500GB, die laut cfdisk, gparted usw. Teil der Datenpartition sind, werden (nach wie vor) ignoriert.

Nach vielen Stunden erfolgloser Sucherei und Ausprobiererei habe ich versucht, diese Datenpartition zu löschen und neu in voller Größe einzurichten, um so von einer der 500GB-Platten die Daten PC-intern rüberzukopieren. Das Löschen funktionierte natürlich, aber nicht das Neueinrichten der Partition. Genauer gesagt: Es war mir nicht möglich, das im Original als "Linux RAID Member (version 1.2)" (Laufwerksübersicht), "linux_raid_member" (cfdisk) bzw. "linux-raid" (gparted) angezeigte Dateisystem einzurichten. Der Partitionstyp ist "Microsoft Basisdaten" bzw. "Basic Data" bzw. als "Markierung" von gparted mit "msftdata" angezeigt, und das (allein) ließ sich beim Partitionieren einstellen (Linux Raid als Partitionstype wäre auch möglich gewesen, aber im Original ist die Partitionstype ja "Microsoft Basisdaten". Aber ich finde bei keinem der tools die Möglichkeit, ein Dateisystem namens "Linux RAID Member (version 1.2)", "linux_raid_member" oder "linux-raid" einzurichten.

Über google bin ich auf die Anleitung hier im Forum
Linux Softraid (Raid1) vergrößern durch Festplattentausch am Bespiel eines Synology DS210j Home-NAS
gestoßen, das anscheinend genau meine Ausgangsproblemstellung betrifft. Beim Durchdenken der Anleitung bin ich aber über den Punkt
"- mit cfdisk dann die alte Partition löschen (sdd3) und mit dem Type FD und vollem verfügbaren Speicher neu anlegen:
cfdisk /dev/sdd"
gestolpert: Wie gebe ich in cfdisk den Typ FD ein? Ich kann dort die Partition, wie erfolgt und beschrieben, zwar als MS-Basisdaten-Partition einrichten, aber das hilft ja nicht weiter, da doch auch das Dateisystem passen muß, hier Linux-Raid. Und daran hing es ja bereits vorher.
Die weiteren Schritte habe ich, offen gesagt, nicht mehr verstanden und habe daher und letzlich wegen der Unklarheit mit cfdisk davon abgesehen, die Anleitung umzusetzen. Zumal mir auch nicht klar war, wie ich die eingangs der Anleitung erfolgte Feststellung
"Das Raid läuft als /dev/md2"
auf mein System übertragen soll. Woher soll wissen, als was das Raid läuft? Oder ist das "md2" eine Bezeichnung, die Linux von selbst vergibt (ich bin wie gesagt Linux-DAU).

Jetzt weiß ich definitiv nicht mehr weiter und frage daher, ob einer von euch weiß, wie ich diese Datenpartition "wirksam" vergrößern kann, oder auf welche Weise ich bewirken kann, daß die mittels cfdisk erfolgte Vergrößerung auch vom Dateisystem beachtet wird. Ich habe auch mal versuchsweise die HD mit der wie beschrieben vergrößert eingerichteten Datenpartition mit ext4, ohne Dateisystem und sogar ohne Partition als zweite HD ins NAS gesteckt in der Hoffnung, daß dessen rudimentäres Linux so clever ist und diesen offensichtlichen "Defekt" von sich aus ausbügelt - aber das einzige , was das kann, ist beim Bestücken mit zwei gelöschten (!) HD und der entsprechenden Einstellung auf der Geräteseite diese als Raid 1 zu initialisieren. Das NAS akzeptiert diese HD nicht bzw. ignoriert sie und benutzt nur die erste HD und läuft im degraded mode.

Content-ID: 4623274429

Url: https://administrator.de/contentid/4623274429

Ausgedruckt am: 25.11.2024 um 03:11 Uhr

cykes
cykes 14.11.2022 um 06:03:21 Uhr
Goto Top
Moin,

vorab: Ich kenne dieses spezielle NAS Modell nicht aus eigener Anschauung, das Hanbuch gibt nicht viel her (nur kurz überflogen).

Bevor Du Dir jetzt die Original-HDDs schrottest, würde ich nicht mehr extern daran rumbasteln, vor allem da Du die Meldungen nicht interpretieren kannst.

Ohne etwas tiefere Linuxkenntnisse würde ich eher so vorgehen:
- externe >=1 TB HDD besorgen/ausleihen
- Original 500GB Platten ins NAS einbauen
- Backup auf externe Platte ziehen
- NAS mit beiden neuen 1TB HDDs neu einrichten
- Backup zurückspielen

Bei jedem externen Gebastel kann Dir allein schon die vermutlich deutlich ältere Linux-Version auf dem NAS diverse Fallstricke in den Weg legen. Ohne tiefere Linuxkenntnisse machst Du da schnell mehr kaputt als Du denkst, von der vebratenen Zeit ganz abgesehen.
Man kann das sicher auch extern hinbekommen, eine Anleitung wird nur sehr schwirig, wenn man das NAS Modell nicht vor Augen hat. Eine Anleitung in Bezug auf einen anderen Hersteller kann i.d.R. nicht 1:1 übernommen werden.

Gruß

cykes
linuxer1
linuxer1 14.11.2022 um 13:44:44 Uhr
Goto Top
Moinsen,

als erstes möchte ih mich den Worten von @cykes anschliessen.

Solltest du dennoch weitermachen wollen, du hast zwar die Partitition vergrössert, nicht aber das Filesystem der Partition.
Da ich das System nicht kenne, hier etwas "Glasgoogleleserei":
mal prüfen ob "$(which pvs)" bzw "/usr/sbin/pvs" was ausspuckt, nicht das hier ein lvm draufliegt.
falls nein: resize2fs -p <Datenpartition>
z.B. resize2fs -p /dev/md0

ABER: alles auf eigene Gefahr !

vg
l
MarkFalk
MarkFalk 14.11.2022 um 15:04:11 Uhr
Goto Top
Da ich ohnehin nur mit den Kopien der alten 500GB-Platten (die unverändert sind/bleiben) herummache besteht keine Gefahr irreparabler Schäden.
Leider verstehe ich nur Bahnhof - bin wie gesagt Linux-DAU.
Der Rat mit dem "resize2fs" erinnert mich an die oben verlinkte Anleitung, wo dies mit
"- nun die Raid-Partition vergrößern:
mdadm --grow /dev/md2 --size=max
e2fsck -f /dev/md2
resize2fs /dev/md2
e2fsck -f /dev/md2"
vorgesehen ist.
Habe den Rat befolgt und zwangsweise zuvor e2fsck ausgeführt. Leider führt dies aber nicht zum Erfolg, denn resize2fs meldet
"Das Dateisystem ist bereits 117901595 (4k) Blöcke lang. Nichts zu tun!"
Tja. Wenn nichts zu tun ist .... dennoch sind gemountet nur die rund 500GB vorhanden ....
cykes
cykes 14.11.2022 um 15:40:38 Uhr
Goto Top
Der vermutliche Fehler war: Du hättest zunächst eine 500er mit einer 1TB rebuilden lassen müssen und dann die 500er gegen die zweite 1 TB tauschen, erneuter Rebuild, dann erst das MD-RAID und das Dateisystem erweitern.
linuxer1
linuxer1 14.11.2022 um 16:48:29 Uhr
Goto Top
kann das system von usb booten?

wenn ja könnte man das via usb-stick mit gparted booten lassen und das dateisystem entsprechend anpassen (lassen)

vg
e
Lochkartenstanzer
Lochkartenstanzer 14.11.2022 um 20:48:00 Uhr
Goto Top
Moin,

Das macht man idealerweise etwas anders:

  • Eine der beiden 1TB-Platten ganz löschen. Dann hast Du ein "degraded Array" mit nur einer Platte und 500GB Größe.

  • Die gelöscte Platte so partitionieren, daß die gewünschte RAID-Partition maximiert ist.

  • Die neuen Partitionen ins RAID oder LVM aufnehmen.

  • Synchronisation abwarten.

  • Die "kleine Platte", d.h. die Platte die noch die kleine RAID--Partitionen hat, aus dem RAID entfernen und löschen.

  • die gelöschte Platte wie die "große Platte" partitionieren und das RAID kopmplettieren.

  • Synchronisation abwarten.

  • Filesystem vergrößern auf Maximum.

Allerdings birgt diese Vorgehen großes Fehlerpotential, weswegen ich davon abrate, als unerfahrener Admin der nur "Rezepte" abarbeitet ohne zu wissen, welche Wirkung die Zutaten haben, das zu selbst machen.

lks
MarkFalk
MarkFalk 14.11.2022 um 22:05:43 Uhr
Goto Top
Zunächst muß ich meine obige Schilderung zu den Möglichkeiten des NAS korrigieren - ich habe mich falsch erinnert.
Richtig ist, daß der Support behauptet hat, eine gelöschte/leere Ersatz-HD würde automatisch mit der im System verbliebenen "originalen" HD re-sychronisiert (recover genannt) werden. Tatsächlich aber ist dies bei mir nie erfolgt. Tatsächlich wird dann, wenn eine der beiden HD durch eine leere HD ersetzt, unter der "Disk"-Rubrik zunächst die neue leere HD als "foreign" angezeigt. Diese muß dann zunächst als "eigene" HD übernommen werden; ich nehme an, daß sich dahinter eine Art Initialisierung verbirgt. Und unter der "Volume"-Rubrik wird nicht nur der degraded-mode angezeigt sondern dann auch (und nur dann) eine weitereFunktion/Option namens "Recover" geboten, die alte HD mit der neuen HD zu sychronisieren.

@ cykes: Hinsichtlich der HD bin ich genauso vorgegangen, habe das oben nur falsch beschrieben (war schon spät). Allerdings spielt das hinsichtlich meines Problems keine Rolle, denn ob ich die zweite 1TB-HD von einer 500GB als "Master" habe rebuilden lassen oder von der ersten 1TB-HD ist hinsichtlich deren Partitionsvergrößerung ohne Bedeutung - dies hat ja schon nicht funktioniert.

@ linuxer1: Nein, das NAS bootet nur von der/den HD.

@ Lochkartenstanzer: Dein Vorschlag scheitert bei mir schon daran, daß ich die erforderliche Partitionierung der gelöschten 1TB-HD nicht so hinbekomme, wie das NAS sie einrichtet. Es gelingt ja nicht einmal, die neu erzeugte - 5. - "MS Basisdaten"-Datenpartition mit diesem linux-raid-member-Dateisystem zu versehen (mag sich dahinter auch ein ext4 verstecken, aber das sieht z.B. in gparted ganz anders aus).
Aus diesem Grund kann ich auch nicht die von mir verlinkte Anleitung, die ja für NAS gedacht ist, verwenden.
Die von Dir beschriebene Vorgehensweise scheint für RAIDs im PC selbst bestimmt zu sein und zu funktionieren.

Ich habe jetzt noch etwas ausprobiert:
Ich habe die andere 1TB-HD, die auch alleine im NAS bootet, wie oben beschrieben behandelt, also die Datenpartition mit cfdisk vergrößert. Dann habe ich die gesamte (!) Befehlsequenz aus der verlinkten Anleitung, die ich oben zitiert habe:
"- nun die Raid-Partition vergrößern:
mdadm --grow /dev/md2 --size=max
e2fsck -f /dev/md2
resize2fs /dev/md2
e2fsck -f /dev/md2"
- natürlich mit "meinen" "md"-Werten (was bedeuten diese?), es war hier md126, ausgeführt.
Der mdadm-Befehl ergab die Meldung:
"mdadm: component size of /dev/md126 has been set to 969913277K"
Bei e2fsck waren Änderungen erforderlich bzw. abzunicken - beim ersten Versuch hatte ich verneint, was zur Folge hatte, daß resize2fs nicht lief. Im ersten Durchgang waren eine Menge von Beschwerden wie:
"Der Erweiterungsbaum von Inode 13379536 (auf Ebene 1) könnte kürzer sein"
und im 3. Durchgang
"Verzeichnisverknüpfungen werden geprüft /lost+found nicht gefunden. Erstellen<jy>? "
was ich ebenfalls abnicken mußte.
Die finale Meldung war
"DATAVOLUME: * DATEISYSTEM WURDE VERÄNDERT *
DATAVOLUME: 141397/29483008 Dateien (3.3% nicht zusammenhängend), 106322458/117901595 Blöcke"
Dann lief resize2fs"erfolgreich" und meldete
"Die Größe des Dateisystems auf /dev/md126 wird auf 242478319 (4k) Blöcke geändert.
Das Dateisystem auf /dev/md126 is nun 242478319 (4k) Blöcke lang."
Nunmehr wurde nach dem Mounten dieser Partition im Filemanager die erweitere Größe von fast 1TB angezeigt.

Das sah alles sehr gut aus, also habe ich die HD ins NAS eingebaut (allein) und gebootet. Erfreulicherweise wurde unter "System" nunmehr nicht mehr 90% Auslastung sondern nur noch 44% angezeigt - unter "Storage" das DataVolume aber immer noch nur mit 449,76GB. Dennoch habe ich die andere 1TB-HD (mit der ich bislang experimentiert hatte) gelöscht und ins NAS gesetzt, umzumindest versuchsweise das RAID aufzubauen und in der vagen Hoffnung, daß hierbei der gesamte Platz als Volume verwendet wird.
Wie oben beschrieben wurde diese zweite 1TB-HD zunächst als "foreign" angezeigt. Deren Übernahme klappte, aber unter Volume wurde zwar nach wie vor die RAID-Einstellung "Mirror" (also RAID 1) und der degraded-mode angezeigt, aber die oben erwähnte Option des "recover" nicht geboten und auch die Volumegröße war unverändert nur 449,76.
Ich vermute, daß durch die Manipulation der allein im PC eingebauten ersten 1TB-HD irgendwelche RAID-Daten verändert wurden, so daß das NAS-System davon ausgeht, daß hier kein RAID aufzubauen ist. Da gibt es auch nichts, woran ich auf dieser NAS-Geräteseite drehen könnte.

Möglicherweise wäre das Ergebnis anders, wenn ich zuerst von der ersten 1TB-HD im Weg des recover die zweite 1TB- "herstellen" lasse und dann, wie in der verlinkten Anleitung beschrieben, beide HD in den PC einbaue. Denn Vergrößerung der Raid-Partition mit
mdadm --grow /dev/md2 --size=max
erfolgt dort ja mit beiden eingehängten HD.
Allerdings könnte ich nicht, wie dort beschrieben, die originale Datenpartition löschen und neu erzeugen, weil ich das mit dem linux-raid-member-Dateisystem nicht hinbekomme. Sondern müßte mit cfdisk die Datenpartition auf jeder der HD vergrößern.
Jetzt habe ich schon so viel Zeit da hinversenkt - da kann ich das auch noch ausprobieren.