Erweitern Sie einen LVM-Spiegel mit einer zusätzlichen nicht gespiegelten Festplatte

Erweitern Sie einen LVM-Spiegel mit einer zusätzlichen nicht gespiegelten Festplatte

Ich habe einen LVM-Spiegel aus 6 Festplatten mit je 1 TB. Ich habe einen RAID 1-Spiegel mit 3+3 Festplatten erstellt. Das logische Volume und die Partition darauf haben daher 3 TB nutzbaren Speicherplatz. Da mir der Speicherplatz ausgeht, versuche ichkocheneine vorübergehende Lösung mit einer zusätzlichen 4-TB-Festplatte, die ich dem letzten verfügbaren Steckplatz dieses Computers hinzugefügt habe.

Ich möchte mein aktuelles Dateisystem um diese zusätzlichen 4 TB auf insgesamt 3+4= 7 TB erweitern. Daher hätte ein Teil des logischen Datenträgers ein RAID 1-Spiegelbild und der andere Teil eine einzelne Festplatte (wie gesagt, es handelt sich um eine vorübergehende Lösung).

Ich kann mein vorhandenes RAID1-Array nicht neu formatieren oder die Daten verschieben, da mir überall der Speicherplatz ausgeht.

Ich tat:

vgextend vg0 /dev/sdg1

wo vg0ist meine Volume-Gruppe mit den 6 Festplatten und sdg1die neue 4-TB-Festplatte. Dann habe ich Folgendes gemacht:

lvextend -l +100%FREE /dev/vg0/data

wo /dev/vg0/dataist mein logisches Volumen.

Das logische Volume kann jedoch nicht erweitert werden und lvextend sagt mir:

Found fewer allocatable extents for logical volume data than requested: using 715395 extents (reduced by 953862).

Am Ende hat die Volume-Gruppe eine Größe von ca. 10 TB, was korrekt ist, aber das logische Volume bleibt bei 3 TB.

Das aktuelle logische Volumen ist wie folgt:

    Using logical volume(s) on command line.
  --- Logical volume ---
  LV Path                /dev/vg0/data
  LV Name                data
  VG Name                vg0
  LV UUID                xcd11P-sL1W-M9vK-XftB-OeAA-b0Ec-AM2btA
  LV Write Access        read/write
  LV Creation host, time xxxxxxx, 2015-08-27 18:24:58 +0100
  LV Status              available
  # open                 1
  LV Size                2.73 TiB
  Current LE             715395
  Mirrored volumes       6
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1536
  Block device           253:12

Und die gewünschte Konfiguration wäre wie folgt, wobei ich natürlich teilweise die Redundanz einer vollständigen RAID 1-Konfiguration verlieren würde. Aber es ist eine vorübergehende Lösung. Und natürlich wären in Zukunft ZFS oder btrfs eine bessere Lösung:

eine seltsame LVM-Konfiguration

Irgendeine Idee, wie dieses spezielle Problem gelöst werden könnte (falls es eine Lösung gibt)?

Antwort1

Das Hinzufügen eines einzelnen 4TB-Laufwerks zu Ihrem Multi-Mirror-Array zerstört jegliches Vertrauen in die Redundanz, die RAID bieten soll. Es wäre sicher, wenn Sie ein zweites 4TB-Laufwerk hinzufügen könnten, aber (da Sie keine freien Laufwerksanschlüsse haben) können Sie das nicht tun, ohne eine der vorhandenen Festplatten zu entfernen.

An Ihrer Stelle würde ich eine der Spiegelfestplatten entfernen, ein zweites 4-TB-Laufwerk hinzufügen und eine neue Datenträgergruppe mit 2 x 4-TB-Laufwerken in einem RAID1-Spiegel erstellen.

HINWEIS: Dadurch bleibt eines Ihrer 1TB RAID-1-Paare ohne Spiegel, sodass Sie bis zum Abschluss des Vorgangs Datenverlust riskieren rsync. Wenn Sie über IRGENDWELCHE zusätzlichen Ports verfügen, sogar e-sata oder USB, stecken Sie das entfernte 1TB-Laufwerk in diesen Port, bis der rsync-Vorgang abgeschlossen ist.

Dann rsyncALLE Daten aus der alten Datenträgergruppe (der Großteil des rsync kann durchgeführt werden, während das System in Gebrauch ist, Sie müssen jedoch ein letztes rsync im Einzelbenutzermodus oder von einer Rettungs-CD/USB aus durchführen. Tatsächlich können Sie rsync wiederholt ausführen, während das System in Gebrauch ist, bis Sie eine Ausfallzeit für das letzte rsync und die nächste Phase einplanen können).

Wenn Sie rsyncdie Daten gelöscht haben, fahren Sie das System herunter und entfernen Sie die alten 1-TB-Laufwerke. Oder, noch besser, verwenden Sie 4 davon erneut, um Ihrer neuen Datenträgergruppe weitere 2 RAID-1-Spiegel hinzuzufügen (je 2 x 1 TB). Dadurch ergibt sich eine Datenträgergruppe von 6 TB (4 TB + 1 TB + 1 TB).

6 TB sind weniger als die 7 TB, die Sie geplant hatten, aber zumindest haben Sie tatsächlich Redundanz (das R in RAID) für alle Ihre Daten.

Alternativ können Sie einfach eines der 1TB RAID-1-Paare durch 2 x 4TB-Laufwerke ersetzen (natürlich einzeln) – dasselbe Endergebnis, ohne Rsyncing. Die rsyncIdee ist wahrscheinlich nützlicher, wenn Sie sich für den unten stehenden Btrfs- oder Zfs-Vorschlag entscheiden.

Später können Sie einen oder beide (verbleibenden) 1-TB-Spiegel durch weitere 4-TB-Spiegel ersetzen.


Eine Alternative, die es wert ist, in Betracht gezogen zu werden, ist die Erstellung des 4-TB-Spiegels mit ZFS oder btrfs statt LVM. Dadurch erhalten Sie die Vorteile eines fehlerkorrigierenden Copy-on-Write-Dateisystems mit Komprimierung, Snapshots, Rollbacks, einfacher Erstellung von Untervolumes, „weichen“ Kontingenten und Reservierungen (anstelle der „harten“ Vorabzuweisung von Speicherplatz, die LVM Ihnen bietet), zfs/btrfs-Senden und -Empfangen für Backups (zu einem anderen zfs/btrfs-Pool oder Server) und mehr.

Mit ZFS oder btrfs wäre es ganz einfach, 1TB-Laufwerke durch größere zu ersetzen. Tauschen Sie einfach die alten Laufwerke gegen die neuen aus.eins nach dem anderenund weisen Sie btrfs/zfs an, das fehlende Laufwerk durch das neue zu ersetzen.

Übrigens, wenn Sie LVM verwenden, um VMs LV-Partitionen anstelle von (oder zusätzlich zu) gemounteten Dateisystemen bereitzustellen, ist btrfs keine Option (es sei denn, Sie sind bereit, auf qcow2 oder raw oder andere Disk-Image-Dateien umzusteigen). ZFS ist, wie Sie erstellen könnenZVOLs sowieZFS-Dateisysteme.

verwandte Informationen