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/mdstat
macht 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
missing
als 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 md3
mdadm --remove /dev/md2 /dev/sdc2
- Erweitern Sie MD2, um MD3 vollständig zu nutzen
mdadm --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öschen
wipefs --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.