Kombinieren mehrerer Laufwerke zu einem Volume

Kombinieren mehrerer Laufwerke zu einem Volume

Wir haben derzeit einen dedizierten Server mit 3 SSD-Laufwerken. Wir haben festgestellt, dass wir das Betriebssystem tatsächlich auf einem einzigen Laufwerk bereitgestellt haben und die anderen beiden derzeit nicht verwendet werden. Diese Festplatte ist jedoch fast voll:

/dev/md2         91G   83G  3.0G  97% /home

Die logische Lösung wäre hier, die Kapazität aller drei Laufwerke (3 x 120 GB) zu kombinieren und daraus ein Volume zu machen. Wie geht man dabei am besten vor?

Eine Neuinstallation des Betriebssystems oder ähnliches ist derzeit leider keine Option.

Auf dem Server läuft Ubuntu 14.04.5 LTS. Ich habe LVM gefunden, muss aber noch herausfinden, ob das die beste Lösung ist.

Wie gewünscht:

root@hv01:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        20G  2.5G   16G  14% /
devtmpfs         16G  4.0K   16G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            3.2G  572K  3.2G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             16G   24K   16G   1% /run/shm
none            100M     0  100M   0% /run/user
/dev/md2         91G   84G  2.6G  98% /home

root@hv01:~# cat /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]     [multipath] [faulty] 
md1 : active raid1 sdc1[2] sda1[0] sdb1[1]
  20478912 blocks [3/3] [UUU]

md2 : active raid1 sdc2[2] sda2[0] sdb2[1]
  96211904 blocks [3/3] [UUU]

unused devices: <none>

Antwort1

/proc/mdstatmacht deutlich, dass Sie ein 3-Wege-Spiegelset (RAID1) für Ihr Betriebssystem (md1) und Home (md2) erstellt haben. Dies bietet zwar ausreichend Redundanz, kostet Sie jedoch viel Platz.

Da Sie nur auf an die Festplatte gebunden sind /home, besteht die einfachste Möglichkeit darin, ein wenig mit der Festplatte zu jonglieren.

Vorbehalt: Beachten Sie, dass eine zum falschen Zeitpunkt defekte SSD Sie ALLE Ihre Dateien kosten wird – sichern Sie sie und seien Sie vorbereitet.

Dennoch würde ich weitermachen wie folgt:

  • Entfernen Sie 2 Spiegel von MD2. Dadurch erhalten Sie ein weiterhin nutzbares System ohne Ausfallzeiten, aber mit 2 freien Partitionen.mdadm --remove /dev/md2 /dev/sda2 && mdadm --remove /dev/md2 /dev/sdb2
  • Löschen Sie alle FS- und RAID-Superblöcke von diesen beiden.wipefs --all /dev/sda2 && wipefs --all /dev/sdb2
  • Erstellen Sie aus diesen beiden Partitionen ein RAID5 und verwenden Sie missingals dritte Partition. Dadurch wird tatsächlich ein temporäres RAID0 erstellt, das doppelt so groß ist wie die ursprüngliche Partition (md3).mdadm --create -n 3 --level=5 --bitmap=internal /dev/md3 /dev/sda2 /dev/sdb2 missing
  • Fügen Sie dieses RAID5 dem ursprünglichen MD2 als einen Spiegel hinzu und warten Sie, bis die Neusynchronisierung abgeschlossen ist.mdadm --add /dev/md2 /dev/md3 WARTEN SIE AUF DIE SYNCHRONISIERUNG, SONST VERLIEREN SIE IHRE DATEN!
  • Entfernen Sie den letzten Originalspiegel von md2 und lassen Sie ihn mit einem einzigen Standbein zurück, dem neu erstellten md3mdadm --remove /dev/md2 /dev/sdc2
  • Erweitern Sie MD2, um MD3 vollständig zu nutzenmdadm --grow --size=max /dev/md2
  • Passen Sie die Größe des Dateisystems an, um MD2 vollständig zu nutzenDies hängt vom verwendeten FS ab
  • FS- und RAID-Superblöcke von dieser letzten Partition löschenwipefs --all /dev/sdc2
  • Fügen Sie es zu RAID5 hinzu und warten Sie, bis die Neusynchronisierung abgeschlossen ist.mdadm --add /dev/md3 /dev/sdc2

Sie haben jetzt einen Spiegelsatz mit nur einem Spiegel, der selbst ein RAID5 ist, doppelt so groß wie die ursprüngliche Größe. Dies scheint ein recht gutes Gleichgewicht zwischen Redundanz und Größe zu sein.

Das Schöne daran: Es kommt zu keinen Ausfallzeiten – alle oben genannten Schritte sind während der Nutzung des Dateisystems verfügbar.

verwandte Informationen