Wie kann ich ein logisches Volume verkleinern und den freigegebenen Speicherplatz einer neuen Partition auf demselben Laufwerk zuweisen?

14709
CptSupermrkt

Ich habe eine Fahrt, Sda. Es hat zwei Partitionen:

sda1: /boot sda2: LVM managed in Volume Group volgrp01 

volgrp01 enthält die folgenden logischen Volumes:

lv_root (30 GB) lv_swap (8 GB) lv_scratch (430 GB) 

Ich möchte lv_scratch auf 50 GB reduzieren und die neu freigegebenen 380 GB in einer neuen Partition sda3 (die ich dann einer anderen Volume-Gruppe hinzufügen werde) neu zuweisen.

Ich habe vor und nach dem Bild ein Bild von meinem Wunschbild angehängt. Ich bin gerade dabei, etwas über LVM zu lernen, und obwohl ich die Idee der Größenänderung von Logical Volumes innerhalb einer Volume Group verstehen kann, bin ich mir nicht sicher, wie man diesen Speicherplatz einer neuen Partition zuordnen würde.

Ich verwende RHEL6.

Wie kann ich ein logisches Volume verkleinern und den freigegebenen Speicherplatz einer neuen Partition auf demselben Laufwerk zuweisen?

4
MBR oder GPT ist aufgrund der von Ihnen bereitgestellten Informationen nicht eindeutig Ramhound vor 10 Jahren 0
Entschuldigung, es ist MBR. Ich musste jetzt GPT nachschlagen, lol. CptSupermrkt vor 10 Jahren 0

2 Antworten auf die Frage

6
Wyzard

Schritt 1: Erstellen Sie Backups.

Ich weiß, die meisten Leute überspringen diesen Schritt, aber Sie nehmen Änderungen vor, die zu erheblichen Datenverlusten führen können, wenn Sie es vermasseln, und Sie lassen sich von einem zufälligen Fremden im Internet beraten. Sie sind für die Sicherheit Ihrer Daten verantwortlich. Ich bin nicht.

Schritt 2: Verkleinern Sie das Dateisystem in lv_scratch. Wenn es sich um ein ext2 / 3/4-Dateisystem handelt, heben Sie die Bereitstellung auf, und verwenden Sie resize2fs; Wenn es etwas anderes ist, müssen Sie die Dokumentation zur Größenänderung dieses Dateisystems nachschlagen.

Zum Beispiel:

resize2fs /dev/volgrp01/lv_scratch 50G 

Wenn es fertig ist (vorausgesetzt, Sie verwenden es resize2fs), wird Ihnen die neue Größe des Dateisystems in Bytes angezeigt. Notieren Sie sich diese Nummer, da Sie sie im nächsten Schritt für eine Sicherheitsüberprüfung verwenden können.

Schritt 3: Verkleinern Sie das logische Volume mit lvreduce.

  • Wenn Sie einfach sein wollen, verwenden Sie lvreduce --size 50G volgrp01/lv_scratch.
  • Wenn Sie besonders vorsichtig sein möchten, wenn Sie die LV nicht auf eine kleinere als das darin enthaltene Dateisystem verkleinern möchten, überprüfen Sie die physische Speicherbereichsgröße Ihrer Volume-Gruppe mit vgdisplay volgrp01und berechnen Sie, wie viele physische Speicherbereiche für die Byte-Größe Ihres Dateisystems erforderlich sind ( unter Verwendung von 1 MB = 1048576 Bytes ). Geben Sie dann diese Nummer mit der --extentsOption anstelle von ein --size 50G.

Alternativ können Sie in der Lage sein, Schritt 1 zu überspringen und stattdessen lvreduce‚s -rOption, um das Dateisystem automatisch zu ändern. Das ist vielleicht einfacher, aber ich habe keine persönlichen Erfahrungen damit, um zu wissen, wie zuverlässig es ist.

An diesem Punkt würde ich empfehlen, fdisk -fauf Ihrem Computer laufen /dev/volgrp01/vg_scratchzu lassen, um sicherzustellen, dass er intakt ist. Wenn Sie Fehler beim "Zugriff über das Geräteende" erhalten, bedeutet dies, dass Sie die LV zu stark verkleinert haben und dies tun müssen, lvextendbevor Sie fortfahren.

Schritt 4: Verkleinern Sie das physische Volume mit pvresize.

pvresize --setphysicalvolumesize 88G /dev/sda2 

Sie benötigen hier keine zusätzliche Sicherheitsüberprüfung, da pvresizedas physische Volume nicht auf eine Größe verkleinert wird, die für Ihre vorhandenen logischen Volumes zu klein ist. Wenn die Größe Ihrer anderen LVs jedoch nicht exakt ein Vielfaches von 1 GB ist, ist der 88G möglicherweise zu klein und Sie müssen möglicherweise einen anderen Wert verwenden.

Schritt 5: Verkleinern Sie die sda2Partition mit fdisk.

Führen Sie fdisk /dev/sdaden Befehl Ausführen aus, und überprüfen Sie die Aufforderung, pum Ihre vorhandenen Partitionen anzuzeigen. Notieren Sie sich die Startsektornummer Ihrer sda2Partition. Dann löschen Sie die sda2Partition - dies berührt nicht die eigentlichen Daten, entfernt lediglich die Aufzeichnungen, wo sie beginnt und endet - und erstellt einen neuen sda2mit demselben Startsektor (dies ist wichtig) und einer Größe von 88 G. Der Typcode der Partition sollte 8e"Linux LVM" sein.

Wenn Sie besonders vorsichtig sein möchten - und ich würde Ihnen empfehlen, dies zu tun, insbesondere wenn Sie eine andere Größe als pvresizezuvor angeben mussten - überprüfen Sie die PE-Größe und die Gesamt-PE Ihres physischen Volumes mit pvdisplay /dev/sda2und multiplizieren Sie sie, um die Größe von zu ermitteln das physische Volumen in Bytes (wieder mit 1 MB = 1048576 Bytes). Subtrahieren Sie dann die Startsektornummer der neuen sda2Partition von der Endnummer, addieren Sie 1, damit der letzte Sektor gezählt wird, und multiplizieren Sie die Sektorgröße Ihrer Festplatte (die entweder 512 oder 4096 Byte betragen sollte). Stellen Sie sicher, dass die beiden Ergebnisse übereinstimmen.

Erstellen Sie nun Ihre neue sda3Partition, speichern Sie die Änderungen und beenden Sie das Programm fdisk. Wenn Sie eine Meldung erhalten, dass ein Neustart erforderlich ist, damit die Änderung wirksam wird, starten Sie den Computer neu.

Warum in Ihrem vorletzten Absatz 50G und nicht 88G? Tippfehler? Greg Bell vor 7 Jahren 0
Hoppla, ja. Jetzt behoben; Vielen Dank. Wyzard vor 7 Jahren 0
Wenn Sie auf die Fehler stoßen, ist die angeforderte Größe kleiner als die tatsächliche Größe und die Größe kann nicht geändert werden Ausdehnungen, wie spätere zugeteilt werden `schauen Sie sich [hier] (https://unix.stackexchange.com/questions/67702/how-to-reduce-volume-group-size-in-lvm) an, in dem erläutert wird, wie` pvmove`, um die Volumes nebeneinander zu stellen. Matthias Braun vor 6 Jahren 0
Anstelle von 'fdisk' habe ich 'cfdisk' verwendet. Ich hatte das Problem, dass ich den ursprünglichen Startblock nicht mit "fdisk" beibehalten konnte. `cfdisk` könnte es richtig machen und viel einfacher als` fdisk`! Wählen Sie einfach 'Größe ändern' und geben Sie den Speicherplatz ein. Und 'schreiben', wenn Sie mit Ihrer Konfiguration zufrieden sind. Das ist es! ffonz vor 5 Jahren 0
Heutzutage benutze ich GPT-Partitionstabellen für alles, also `gdisk`. Wyzard vor 5 Jahren 0
0
F2nd

Ich bin mir nicht sicher, ob es funktionieren wird - ich habe nur pv erhöht. Und versuchen Sie es auf keine Weise mit wertvollen Daten, wenn Sie keine lesbaren Backups haben.

  1. Verwenden Sie das FS-spezifische Tool (falls vorhanden), um die Größe von FS für lv_scratch zu ändern

  2. lvresize -L 50G /dev/volgrp01/lv_scratch

  3. pvresize --setphysicalvolumesize 88G /dev/sda2

  4. Ändern Sie die Größe Ihres / dev / sda2 (nicht sicher, ob dies mit parted / cfdisk usw. möglich ist. Möglicherweise benötigen Sie einen anderen Partitionseditor.)

  5. Neue Partition erstellen, neues PV erstellen, Volume-Gruppe erstellen usw.

Überprüfen Sie alle Zahlen bei der Größenänderung, wenn Sie das logische oder physische Volumen um mehr als FS verkleinern, was möglicherweise zu einem fehlerhaften FS und verlorenen Daten führt. In der Regel ist es ratsam, nicht genutzten Speicherplatz zur Verfügung zu stellen.