Raid 1 zu Raid 10
Raid 1 zu Raid 10
Guten Abend liebes Forum,
habe derzeit folgendes Problem: Der Speicher meiner Festplatten sind voll. Habe derzeit 2 Festplatten (a 2TB) im Raid1 Verbund (/dev/md0) laufen. So nun habe ich mir 2 neue Festplatten gekauft, um den Speicher zu erweitern (je 3 TB). Möchte auch die Daten auf diesen Festplatten im Raid Verbund spiegeln. Und anschließend den momentan 2 TB Speicher auf 5 TB erweitern. Jetzt lautet meine Frage:
Wie stelle ich das am besten an? Habe mich seit längerem im Internet informiert und bin auf "Raid 10" gestoßen. Leider habe ich kein geeignetes Tutorial gefunden und möchte hiermit fragen, wie ich das Ganze jetzt am geschicktesten umsetzen kann.
Zum System:
Auf dem Server läuft momentan Debian 6.0.8 und wie gesagt der Raid 1 /dev/md0 aus /dev/sdb1 & /dev/sdd1.
Würde mich sehr freuen, wenn Ihr mir weiter helfen könntet.
Viele Grüße
Chris
habe derzeit folgendes Problem: Der Speicher meiner Festplatten sind voll. Habe derzeit 2 Festplatten (a 2TB) im Raid1 Verbund (/dev/md0) laufen. So nun habe ich mir 2 neue Festplatten gekauft, um den Speicher zu erweitern (je 3 TB). Möchte auch die Daten auf diesen Festplatten im Raid Verbund spiegeln. Und anschließend den momentan 2 TB Speicher auf 5 TB erweitern. Jetzt lautet meine Frage:
Wie stelle ich das am besten an? Habe mich seit längerem im Internet informiert und bin auf "Raid 10" gestoßen. Leider habe ich kein geeignetes Tutorial gefunden und möchte hiermit fragen, wie ich das Ganze jetzt am geschicktesten umsetzen kann.
Zum System:
Auf dem Server läuft momentan Debian 6.0.8 und wie gesagt der Raid 1 /dev/md0 aus /dev/sdb1 & /dev/sdd1.
Würde mich sehr freuen, wenn Ihr mir weiter helfen könntet.
Viele Grüße
Chris
Re: Raid 1 zu Raid 10
Vorneweg: /dev/sdb1 und /dev/sdd1 seien deine bestehenden Platten bzw. Partitionen im /dev/md0, /dev/sdc1 und /dev/sde1 die neu hinzugekommenen. Ich gehe davon aus, dass letztere per fdisk oder aehnlich mit einer entsprechenden Partitionstabelle ausgstattet wurden.
So im Prinzip sollte das per-- aber es scheint da keine internen Konvertierungsmoeglichkeiten wie bei z.B. RAID5/6 zu geben, denn ich erhalte
Falls die Aenderung nicht komplett online gehen muss, solltest du aus dem zwei neuen Platten ein "halbes" RAID10 anlegen:Dann ein Dateisystem darauf spielen und den Inhalt kopieren. Falls da / oder andere aktiv beschriebene Teile dabei sind, muss dies vom Live-System aus geschehen. Anschliessend kannst du das "alte" Dateisystem umounten und perdie "fehlenden" ("missing") Devices hinzufuegen und auf den Rebuild warten.
Willkommen im Forum!
Gruss Cae
So im Prinzip sollte das per
Code: Alles auswählen
# mdadm /dev/md0 --add /dev/sdc1 /dev/sde1
# mdadm --grow /dev/md0 --level=raid10
Code: Alles auswählen
mdadm: Impossibly level change request for RAID1
Code: Alles auswählen
mdadm --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sdc1 missing /dev/sde1 missing
Code: Alles auswählen
# mdadm --stop /dev/md0
# mdadm /dev/md1 --add /dev/sdb1 /dev/sdd1
Willkommen im Forum!
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Raid 1 zu Raid 10
Vielen vielen Dank für die schnelle Antwort und für die Anleitung.
Also das hat leider auch nicht bei mir geklappt mit "mdadm --grow ...", habe da folgenden Fehler erhalten:
Jedenfalls habe ich dann wie beschrieben das 'halbe' RAID10 erstellt:
Und dazu habe ich jetzt eine Frage: Diese Ausgabe sagt, dass das RAID Array 6TB umfasst. Aber am Ende kann es doch nur ein RAID mit 5TB sein (2x2TB /2+ 2x3TB/2)
Also wird sich nun das Array auf 5TB verkleinern, wenn ich abschließend die 2TB Fesplatten hinzufüge oder was wird passieren? Bin mir da momentan ziemlich unsicher.
Viele Grüße und schon mal vielen Dank
Chris!
Also das hat leider auch nicht bei mir geklappt mit "mdadm --grow ...", habe da folgenden Fehler erhalten:
Code: Alles auswählen
root@Debian:~# mdadm --grow /dev/md0 --level=raid10
mdadm: /dev/md0: could not set level to raid10
Code: Alles auswählen
...
root@Debian:~# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Sun Feb 2 15:32:51 2014
Raid Level : raid10
Array Size : 5860527104 (5589.03 GiB 6001.18 GB)
Used Dev Size : 2930263552 (2794.52 GiB 3000.59 GB)
Raid Devices : 4
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Feb 2 15:32:51 2014
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : Home:1 (local to host Home)
UUID : 9050c6e0:bf9f118d:834bed07:206d974b
Events : 0
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 0 0 1 removed
2 8 33 2 active sync /dev/sdc1
3 0 0 3 removed
Also wird sich nun das Array auf 5TB verkleinern, wenn ich abschließend die 2TB Fesplatten hinzufüge oder was wird passieren? Bin mir da momentan ziemlich unsicher.
Viele Grüße und schon mal vielen Dank
Chris!
Re: Raid 1 zu Raid 10
Oh, du hast da unterschiedlich grosse Platten im Einsatz? Das wird so direkt nicht gehen. Momentan wird angenommen, dass die beiden missing-Devices so gross wie die 3-TB-Platten sind. Daher kommt auch die "hohe" Nutzdaten-Kapazitaet. Vermutlich hustet er dir einen beim Hinzufuegen der zu kleinen Platten; evtl. musst du das "ueberschuessige" Terrabyte von den neuen Platten in ein separates RAID1 packen.
Gruss Cae
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Raid 1 zu Raid 10
Ohh man...
Also muss ich nun die Partition der 3 TB Platten auf 2TB verkleinern und dann ein neuen 2TB RAID Verbund mit den 4 Platten einrichten und erstmal 1 TB der 3 TB Platten 'leer' lassen?
Oder wäre es auch möglich ein RAID Verbund aus verschiedenen RAIDs zu machen? Die 2 TB Festplatten im RAID1 Verbund (/dev/md0) (so wie es auch momentan läuft); dann die 2 3-TB-Platten auch im RAID1 Verbund (/dev/md1) und dann aus diesen Beiden (/dev/md0 + /dev/md1) ein RAID0? Würde das funktionieren? Dann hätte ich doch die 5 TB oder funktioniert das nicht?
Also muss ich nun die Partition der 3 TB Platten auf 2TB verkleinern und dann ein neuen 2TB RAID Verbund mit den 4 Platten einrichten und erstmal 1 TB der 3 TB Platten 'leer' lassen?
Oder wäre es auch möglich ein RAID Verbund aus verschiedenen RAIDs zu machen? Die 2 TB Festplatten im RAID1 Verbund (/dev/md0) (so wie es auch momentan läuft); dann die 2 3-TB-Platten auch im RAID1 Verbund (/dev/md1) und dann aus diesen Beiden (/dev/md0 + /dev/md1) ein RAID0? Würde das funktionieren? Dann hätte ich doch die 5 TB oder funktioniert das nicht?
Re: Raid 1 zu Raid 10
Also einfach hinzufuegen is nicht:Wie ich oben schon vermutet hatte.
RAID0 ueber zwei RAID1 geht aber wohl:Die letzten paar Zeilen (mkfs ff.) sollen pruefen, ob das Ganze auch beim Booten sauber in der richtigen Reihenfolge erkannt wird. Dies scheint der Fall zu sein. shutdown -F erzwingt einen fsck, was eher nur fuer meinen Test empfehlenswert ist.
Hast du Zwischenspeicher fuer die Daten auf dem bestehenden RAID1? Sie werden ja vom RAID0 ueberschrieben, und das kann man nicht per missing o.ae. starten. Im Zweifel koennte man das 3-TB-RAID mit nur einer Platte starten und die freie 3-TB-Platte als temporaeren Speicher verwenden.
Gruss Cae
Code: Alles auswählen
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
vdb 254:16 0 1G 0 disk
└─vdb1 254:17 0 512M 0 part
vdc 254:32 0 1G 0 disk
└─vdc1 254:33 0 512M 0 part
vdd 254:48 0 1G 0 disk
└─vdd1 254:49 0 1023M 0 part
vde 254:64 0 1G 0 disk
└─vde1 254:65 0 1023M 0 part
# mdadm --create /dev/md1 --raid-devices 4 --level raid10 /dev/vdd1 missing /dev/vde1 missing
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
# cat /proc/mdstat
Personalities : [raid10]
md1 : active (auto-read-only) raid10 vde1[2] vdd1[0]
2093056 blocks super 1.2 512K chunks 2 near-copies [4/2] [U_U_]
resync=PENDING
unused devices: <none>
# mdadm /dev/md1 --add /dev/vdb1
mdadm: /dev/vdb1 not large enough to join array
#
RAID0 ueber zwei RAID1 geht aber wohl:
Code: Alles auswählen
# mdadm --create /dev/md0 --raid-devices 2 --level raid1 /dev/vdb1 /dev/vdc1
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
# mdadm --create /dev/md1 --raid-devices 2 --level raid1 /dev/vdd1 /dev/vde1
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
# mdadm --create /dev/md3 --raid-devices 2 --level 0 /dev/md0 /dev/md1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md3 started.
# mdadm --examine --scan >>/etc/mdadm/mdadm.conf
# mkfs.ext4 /dev/md3
...
# cat /proc/mdstat
Personalities : [raid10] [raid1] [raid0]
md3 : active raid0 md1[1] md0[0]
1570304 blocks super 1.2 512k chunks
md1 : active raid1 vde1[1] vdd1[0]
1046976 blocks super 1.2 [2/2] [UU]
md0 : active raid1 vdc1[1] vdb1[0]
523968 blocks super 1.2 [2/2] [UU]
unused devices: <none>
# blkid | awk -F\" '/md3/{print "UUID="$2"\t/mnt\text4\tdefaults\t0\t1"}' >>/etc/fstab
# mount /mnt
# yes this-is-md3 | head -200 >/mnt/this-is-md3
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
vdb 254:16 0 1G 0 disk
└─vdb1 254:17 0 512M 0 part
└─md0 9:0 0 511.7M 0 raid1
└─md3 9:3 0 1.5G 0 raid0 /mnt
vdc 254:32 0 1G 0 disk
└─vdc1 254:33 0 512M 0 part
└─md0 9:0 0 511.7M 0 raid1
└─md3 9:3 0 1.5G 0 raid0 /mnt
vdd 254:48 0 1G 0 disk
└─vdd1 254:49 0 1023M 0 part
└─md1 9:1 0 1022.4M 0 raid1
└─md3 9:3 0 1.5G 0 raid0 /mnt
vde 254:64 0 1G 0 disk
└─vde1 254:65 0 1023M 0 part
└─md1 9:1 0 1022.4M 0 raid1
└─md3 9:3 0 1.5G 0 raid0 /mnt
# shutdown -r -F now
Hast du Zwischenspeicher fuer die Daten auf dem bestehenden RAID1? Sie werden ja vom RAID0 ueberschrieben, und das kann man nicht per missing o.ae. starten. Im Zweifel koennte man das 3-TB-RAID mit nur einer Platte starten und die freie 3-TB-Platte als temporaeren Speicher verwenden.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Raid 1 zu Raid 10
Vielen vielen Dank nochmal für die Antwort und dein Engagement!
So bin jetzt wie folgt vorgegangen: Habe eine 2TB Fesplatte rausgenommen, dann eine anderen 2TB Festplatte rein (damit ich meine Daten sicher habe). Anschließend habe ich den RAID1 Verbund zwischen den 2TB Platten (die alte und der neuen) gelöscht und mit der neuen Festpaltte einen RAID 1 Verbund erstellt. Die 3 TB Festplatten sind jetzt auch in einem RAID 1 Verbund und diese beiden RAID 1´s jetzt in einem RAID 0 Verbund. Hat auch alles soweit geklappt.
So jetzt das neue Problem:
Möchte nun die Daten von der 'alten' 2TB Festplatte, die ich raus genommen und durch eine andere 2TB Platte ersetzt habe, in den RAID Verbund (/dev/md3) kopieren...Dafür habe ich die Fesplatte angeschlossen und das RAID1 gelöscht (war glaube ich mit mdadm --stop /dev/md0 && mdadm --zero-superblock /dev/sda1) (im Nachhinein wäre es schlauer erst das RAID 1 Array zu löschen und dann die Platten zu tauschen).. Naja egal! So jetzt habe ich das Problem, dass er die Festplatte nicht mehr einbinden will. Das ganze sieht dann so aus:
Hier noch ein paar Infos zur Festplatte:
Also wie kann ich das am besten lösen? Ist echt wichtig!!
Vielen vielen Dank! Echt super Forum!
So bin jetzt wie folgt vorgegangen: Habe eine 2TB Fesplatte rausgenommen, dann eine anderen 2TB Festplatte rein (damit ich meine Daten sicher habe). Anschließend habe ich den RAID1 Verbund zwischen den 2TB Platten (die alte und der neuen) gelöscht und mit der neuen Festpaltte einen RAID 1 Verbund erstellt. Die 3 TB Festplatten sind jetzt auch in einem RAID 1 Verbund und diese beiden RAID 1´s jetzt in einem RAID 0 Verbund. Hat auch alles soweit geklappt.
So jetzt das neue Problem:
Möchte nun die Daten von der 'alten' 2TB Festplatte, die ich raus genommen und durch eine andere 2TB Platte ersetzt habe, in den RAID Verbund (/dev/md3) kopieren...Dafür habe ich die Fesplatte angeschlossen und das RAID1 gelöscht (war glaube ich mit mdadm --stop /dev/md0 && mdadm --zero-superblock /dev/sda1) (im Nachhinein wäre es schlauer erst das RAID 1 Array zu löschen und dann die Platten zu tauschen).. Naja egal! So jetzt habe ich das Problem, dass er die Festplatte nicht mehr einbinden will. Das ganze sieht dann so aus:
Code: Alles auswählen
root@ubuntu:~# mount /dev/sda1 /mount1/
mount: unknown filesystem type 'linux_raid_member'
root@ubuntu:~# mount /dev/sda1 /mount1/ -t ext4
mount: wrong fs type, bad option, bad superblock on /dev/sda1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Code: Alles auswählen
root@ubuntu:~# fdisk -l /dev/sda
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000412de
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 3907028991 1953513472 83 Linux
Vielen vielen Dank! Echt super Forum!
Re: Raid 1 zu Raid 10
Da ist jetzt noch ein "halbes", degradedtes RAID1 drauf, das kann man nicht einfach mounten. Du musst es erst starten:Das dabei erzeugte /dev/md42 (der Name soll Verwirrungen mit "dauerhaften" Arrays verhindern) sollte ein mountbares Dateisystem enthalten.
Gruss Cae
Code: Alles auswählen
# mdadm --assemble /dev/md42 --run /dev/vdb1
mdadm: /dev/md42 has been started with 1 drive (out of 2).
# cat /proc/mdstat
Personalities : [raid1] [raid0]
md42 : active (auto-read-only) raid1 vdb1[0]
523968 blocks super 1.2 [2/1] [U_]
...
#
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Raid 1 zu Raid 10
Vielen Dank für die erneut schnelle Antwort.
Ich wollte ja die Daten von der Backup Festplatte in das manuell installierte 'RAID 10' packen (/dev/md3). Dazu musste ich ja die eine Fesplatte, wie du es beschrieben hast, als 'halbes' RAID einbinden, da hatte er aber gemeckert, als ich 'mdadm --assemble --scan' ausgeführt habe, dass es /dev/md0 zwei mal gibt und da habe ich das 'halbe' Raid von der Backup Festplatte gelöscht (wie vorher beschrieben) und jetzt kann ich aber nicht mehr die Backup Festplatte mounten. Was mach ich denn nun? Wie kann ich jetzt die Daten auf dem ehemaligen RAID Laufwerk auslesen, obwohl das RAID Array schon gelöscht ist?
[Achso und greife per Ubuntu Live-USB auf das System zu...]
Viele Grüße
Chris!
Ich wollte ja die Daten von der Backup Festplatte in das manuell installierte 'RAID 10' packen (/dev/md3). Dazu musste ich ja die eine Fesplatte, wie du es beschrieben hast, als 'halbes' RAID einbinden, da hatte er aber gemeckert, als ich 'mdadm --assemble --scan' ausgeführt habe, dass es /dev/md0 zwei mal gibt und da habe ich das 'halbe' Raid von der Backup Festplatte gelöscht (wie vorher beschrieben) und jetzt kann ich aber nicht mehr die Backup Festplatte mounten. Was mach ich denn nun? Wie kann ich jetzt die Daten auf dem ehemaligen RAID Laufwerk auslesen, obwohl das RAID Array schon gelöscht ist?
[Achso und greife per Ubuntu Live-USB auf das System zu...]
Viele Grüße
Chris!
Re: Raid 1 zu Raid 10
--zero-superblock ist grundsaetzlich eine schlechte Idee, wenn man die Daten auf dem RAID nochmal lesen will. Fuer RAID1 scheint es aber trotzdem einen Weg zur Wiederherstellung zu geben, sofern man peinlich genau darauf achtet, dieselben Parameter wieder zu verwenden: Ich wuerde aber unbedingt zu einem Backup vom Blockdevice raten, bevor da mit --create drauf rumgeschrieben wird. In meinem Fall waere das /dev/vdb1.
Gruss Cae
Code: Alles auswählen
# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/vd[bc]1
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
# cat /proc/mdstat
Personalities : [raid1] [raid0]
md0 : active (auto-read-only) raid1 vdc1[1] vdb1[0]
523968 blocks super 1.2 [2/2] [UU]
resync=PENDING
unused devices: <none>
# mkfs.ext4 /dev/md0
...
# mount /dev/md0 /mnt/
# yes this-is-md0 >/mnt/this-is-md0
yes: standard output: No space left on device
yes: write error
# sha1sum /mnt/this-is-md0 >/mnt/this-is-md0.sha1
# sha1sum -c /mnt/this-is-md0.sha1
/mnt/this-is-md0: OK
# umount /mnt
# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv normalerweise ist das _keine_ gute Idee
# mdadm --zero-superblock /dev/vdb1
# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/vdb1 missing
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
# cat /proc/mdstat
Personalities : [raid1] [raid0]
md0 : active (auto-read-only) raid1 vdb1[0]
523968 blocks super 1.2 [2/1] [U_]
unused devices: <none>
# e2fsck -f /dev/md0
e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/md0: 13/131072 files (0.0% non-contiguous), 520897/523968 blocks
# mount /dev/md0 /mnt/
# sha1sum -c /mnt/this-is-md0.sha1
/mnt/this-is-md0: OK
#
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier