
Unser Unternehmensstandard ist CentOS (das LVM zu bevorzugen scheint) und ich komme überwiegend aus einem Nicht-LVM-Bereich, sodass ich mit dieser Angelegenheit Neuland betrete.
Ich habe eine ältere Maschine als Log-Server geerbt und musste CentOS neu installieren. Aufgrund von Problemen mit EHCI auf dem Motherboard (entweder über die normale Installations-DVD oder über die GUI-Installation per LiveCD) konnte ich nur eine LiveCD-Textinstallation finden, mit der ich CentOS 6.3 installieren konnte. Mit der LiveCD-Textinstallation konnte ich keine eigenen Partitionseinstellungen auf der Festplatte vornehmen. Sie installiert nur LVM und gab mir eine falsche Speicherplatzzuweisung für einen Log-Server ...
[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
[mpenning@someHost ~]$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
50397 2167 47719 5% /
tmpfs 1850 0 1850 0% /dev/shm
/dev/md127p1 485 65 395 15% /boot
/dev/mapper/vg_livecd-lv_home
227001 188 215283 1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
--- Volume group ---
VG Name vg_livecd
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 278.96 GiB
PE Size 4.00 MiB
Total PE 71415
Alloc PE / Size 71415 / 278.96 GiB
Free PE / Size 0 / 0
VG UUID 8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU
[mpenning@someHost ~]$
Zwei Fragen:
- Wenn ich
/
auf 257.398 1-M-Blöcke erhöhen und/home
auf 20.000 1-M-Blöcke verringern muss, kann ich dies ohne Neustart tun und wenn ja, wie lautet die genaue Befehlsfolge hierfür? - Wenn ich eine dedizierte Partition hinzufügen möchte
/var
, wie mache ich das ohne eine vollständige Neuinstallation?
Antwort1
Wenn ich / auf 257.398 1-M-Blöcke erhöhen und /home auf 20.000 1-M-Blöcke verringern muss, kann ich dies ohne Neustart tun und wenn ja, wie lautet die spezifische Befehlsfolge hierfür?
Ihnen stehen etwa 280 GB Speicherplatz zur Verfügung, von denen 50 GB '/' und 230 GB zugewiesen sind /home
. Da dies Ihr gesamter verfügbarer Speicherplatz ist, müssen Sie zuerst etwas freigeben. Hier sind einige Optionen:
Wenn Sie keine Daten darin abgelegt haben /home
, ist es am einfachsten, das vorhandene Dateisystem zu verwerfen und es mit der entsprechenden Größe neu zu erstellen:
Aushängen
/home
:# umount /home
Reduzieren Sie die Größe des logischen Volumes (LV) auf 20 GB:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Erstellen Sie das
/home
Dateisystem neu:# mke2fs -j -m0 /dev/vg_livecd/lv_home
Und wieder montieren
/home
:# mount /home
Es ist möglich zuschrumpfen /home
, anstatt es zu verwerfen, aber das kann etwas schwieriger sein:
Aushängen
/home
:# umount /home
fsck
das Dateisystem. Dies wird wahrscheinlich für den nächsten Schritt benötigt:# fsck /dev/vg_livecd/lv_home
Ändern Sie die Größe des Dateisystems:
# resize2fs /dev/vg_livecd/lv_home 19G
Reduzieren Sie den LV:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Sie werden feststellen, dass ich das Dateisystem etwas mehr verkleinert habe als das LV. Das liegt daran, dass ich mir nie merken kann, ob sie die Dinge auf die gleiche Weise zählen, also versuche ich, ein wenig Spielraum zu lassen.
In beiden Fällen verfügen Sie nun über etwa 210 GB freien Speicherplatz in Ihrer Volume-Gruppe. Jetzt können Sie die Größe Ihres Root-Dateisystems erhöhen:
Erhöhen Sie die Größe des Root-LV:
# lvresize -L260G /dev/vg_livecd/lv_root
Erhöhen Sie die Größe des Dateisystems:
# resize2fs /dev/vg_livecd/lv_root
Beachten Sie, dass Sie aufgrund der Rundung, die ich in dieser Antwort verwende, möglicherweise eine Zahl verwenden müssen, die etwas kleiner als 260 G ist. Neuere Versionen der LVM-Dienstprogramme bieten außerdem die Möglichkeit, die Größe des Dateisystems für Sie zu ändern, aber ich mache das schon, bevor diese Optionen verfügbar waren … daher kann ich nicht behaupten, genau zu wissen, wie sie funktionieren.
Wenn ich eine dedizierte /var-Partition hinzufügen möchte, wie mache ich das ohne eine vollständige Neuinstallation?
Erstens möchten Sie dies wahrscheinlich im Einzelbenutzermodus tun, da andernfalls bei laufenden Prozessen wahrscheinlich Dateien geöffnet sind, die /var
das Ersetzen erschweren. Davon abgesehen...
Auch hier benötigen Sie freien Speicherplatz. Wenn Sie, anstatt den gesamten freien Speicherplatz wie im vorherigen Schritt zu verbrauchen, ein paar GB frei lassen möchten, können Sie Folgendes tun:
Erstellen Sie ein neues logisches Volume:
# lvcreate -n lv_var -L 10G /dev/vg0
Erstellen Sie ein neues Dateisystem:
# mke2fs -j -m0 /dev/vg_livecd/lv_var
Bearbeiten Sie es
/etc/fstab
, um das neue LV einzubinden,/var
indem Sie die folgende Zeile hinzufügen:/dev/vg_livcde/lv_var /var ext4 defaults 1 2
Aber noch nicht montieren!
Hängen Sie das neue Dateisystem an einem geeigneten Ort ein:
# mount /dev/vg_livecd/lv_var /mnt
Kopieren Sie den Inhalt von
/var
:# rsync -a /var/ /mnt/
Umbenennen
/var
und/var.old
ein neues Verzeichnis erstellen:# mv /var /var.old # mkdir /var
Montieren Sie Ihr neues LV auf
/var
:# umount /mnt # mount /var
Und fahren Sie mit dem Booten fort. Wenn Sie zufrieden sind, dass alles richtig funktioniert, können Sie löschen
/var.old
.
Antwort2
Angesichts:
- der hässliche VG-Name
- die schlechte Speicherplatzzuweisung für Ihren Anwendungsfall und die Belastung des von larsks beschriebenen Verfahrens
- die Tatsache, dass Sie dies alles noch einmal tun müssten, falls Sie neu installieren müssten
Soweit ich weiß, würde ich versuchen, per Netinstall/Kickstart die gewünschte Konfiguration auf einen Schlag und reproduzierbar zu erhalten.
Meine 2ct