Benötigt LVM eine Partitionstabelle?


18

Es scheint, dass ich in der Lage bin, ein pvcreate auf einem Raw-Block-Gerät erfolgreich durchzuführen, ohne jemals eine Partitionstabelle zu erstellen. Ich bin dann in der Lage, eine Datenträgergruppe, einen logischen Datenträger und schließlich ein Dateisystem zu erstellen, es bereitzustellen und über dd zu testen.

Es scheint zu funktionieren, aber ich brauche eine Überprüfung der geistigen Gesundheit. Ist das eine schlechte Idee?

Wie erstelle ich eine GPT- oder MBR-Partitionstabelle auf einem Raw-Block-Gerät?

Wie kann ich mit parted anzeigen, welche Art von Partitionstabelle verwendet wird? Ich habe versucht zu tun:

getrennt, wähle / dev / sdb, drucke und ich bekomme:

Fehler: / dev / sdb: Unbekannte Festplattenbezeichnung

Das Laufwerk wird derzeit verwendet und ich kann es lesen und beschreiben. Ist das die erwartete Ausgabe, wenn LVM auf einem Raw-Block-Gerät ohne Partitionstabelle ausgeführt wird? Irgendwelche Gedanken?

Vielen Dank!

Antworten:


29

Auch wenn es LVM selbst nicht wichtig ist, eine echte Partition zu haben, besteht ein Grund, diese zu erstellen, darin, Partitionierungsprogrammen mitzuteilen, dass "etwas da ist". Ein Alptraumszenario ist ein neuer Systemadministrator, der ein Startproblem auf einem Server diagnostiziert, ein Partitionierungsprogramm startet, nicht partitionierte Datenträger erkennt und feststellt, dass das Laufwerk beschädigt ist.

Ich sehe keinen Nachteil beim Erstellen einer LVM-Partition. Machst du?


1
+1 für das Szenario. Allzu wahrscheinlich im wirklichen Leben.
Hennes

1
+1 für Einsicht.
Alexander Janssen

Danke für die Antwort! Ich sehe sicherlich keinen Nachteil, wenn ich einen Partitionstisch habe. Ich wollte nur mit einer Überprüfung der geistigen Gesundheit bestätigen. Die richtige Reihenfolge der Ebenen lautet also: Blockgerät, Partitionstabelle, Datenträgergruppe, logischer Datenträger, Dateisystem, ist das richtig?
Katze Hosen

8
Der Nachteil: Wenn Sie das Blockgerät erweitern und keine Partitionstabelle verwendet haben, können Sie das physische Volume sofort mit pvresize erweitern. Wenn Sie eine Partitionstabelle verwendet haben, müssen Sie zuerst die Partition löschen und mit der größeren Größe neu erstellen.
Sciurus

1
Vorsicht ist gut, aber das Zurückwerfen der Frage ist keine gute Antwort. Es gibt keine Notwendigkeit für diese Partition, und es gibt Nachteile einer Partition.
Bryn

16

Sie können zwar nur einen pv aus einem unformatierten Blockgerät erstellen, aber ich versuche normalerweise, dies zu vermeiden, da dies zu Unklarheiten darüber führen kann, wofür das Blockgerät verwendet wird. Es kann auch dazu führen, dass einige der Routinen für die automatische Erkennung, die LVM verwenden kann, beschädigt werden, wenn die Konfigurationsdateien fehlen.

Hier ist ein Beispiel für die Verwendung von parted zum Erstellen einer GPT mit 1 Partition, die das gesamte Laufwerk darstellt, und setzen Sie das Partitionsflag auf lvm. Für mkpart muss ein Dateisystem angegeben werden, das Dateisystem wird jedoch nicht erstellt. Scheint ein langjähriger Fehler zu sein. Der Startversatz von 1M soll auch sicherstellen, dass Sie die richtige Ausrichtung erhalten.

parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on

3
"Für mkpart muss ein Dateisystem angegeben werden, das Dateisystem wird jedoch nicht erstellt." Danke, dass Sie dies erwähnt haben, das ist GROSS, wenn es darum geht, Vernunft zu schaffen! :)
Katze Hosen

1
Nicht mehr wahr. mkpart primary 1M 100%funktioniert und lässt das Feld Dateisystem leer.
Stark

1
@ 3dinfluence lvm richtet sich jetzt automatisch aus. Nach vielen Jahren sehe ich keinen wirklichen Anwendungsfall für die Verwendung einer Partition für eine Datenfestplatte, die für lvm
c4f4t0r

5

Wenn Sie eine PV direkt auf einem virtuellen Speichergerät in einem KVM-Gast erstellen, werden Sie feststellen, dass die logischen Volumes des Gasts auf dem Hypervisor sichtbar sind. Dies kann zu Verwirrung führen, wenn Sie für mehrere Gäste denselben logischen Datenträger und dieselben Datenträgergruppennamen verwenden. Möglicherweise erhalten Sie auch Warnungen, dass der Hypervisor kein Gerät finden kann.

Beispielsweise habe ich dieses Problem auf meinem Testhypervisor neu erstellt:

[root@testhost ~]# vgs
  Couldn't find device with uuid dCaylp-1kvL-syiF-A2bW-NTPP-Ehlb-gtfxZz.
  VG          #PV #LV #SN Attr   VSize   VFree  
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_testhost   1   8   0 wz--n- 237.98g 120.15g

Hier sehen Sie 2 gleichnamige Volume-Gruppen, beide von Gästen, die eigentlich nicht auf dem Hypervisor erscheinen sollten.

Aus diesem Grund würde ich empfehlen, dass Sie zunächst eine KVM-Partition mit parted oder fdisk erstellen (wie in der vorherigen Antwort von 3dinfluence gezeigt), bevor Sie eine PV erstellen und einer Volumengruppe hinzufügen. Auf diese Weise bleiben die logischen Gastvolumes vor dem Hypervisor verborgen.


1
Dies kann vermieden werden, wenn Sie filterin /etc/lvm/lvm.conf alle Blockgeräte herausfiltern, die direkt von Ihren VMs verwendet werden.
Mircea Vutcovici

Die Festplatten sind ohnehin immer auf dem Host vorhanden - die Partitionen werden nur nicht zugeordnet. kpartx -awürde das für dich tun. Der Hypervisor hat Zugriff auf alle Gastdatenträger, Volume-Gruppen sollten jedoch nicht aktiviert werden.
Bryn

4

Ein Nachteil ist, dass es nicht möglich ist, einem PV innerhalb einer Partitionstabelle Speicherplatz im laufenden Betrieb hinzuzufügen. Dies ist kein Problem, wenn Sie das gesamte Blockgerät für die PV verwenden.


Ab 2018 können Sie innerhalb einer Partitionstabelle Speicherplatz auf einer PV hinzufügen. Ich habe dieses Skript erstellt, mit dem die dazu erforderlichen Befehle generiert werden können: github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh
Mircea Vutcovici


3

Auch wenn ich in der Vergangenheit MS-DOS-Disklabel oder GPT-Disklabel für PV verwendet habe, bevorzuge ich jetzt die direkte Verwendung von LVM auf dem Hauptblockgerät. Es gibt keinen Grund, 2 Disklabels zu verwenden, es sei denn, Sie haben einen ganz bestimmten Anwendungsfall (wie eine Festplatte mit Bootsektor und Bootpartition).

Die Vorteile von LVM direkt sind:

  • Einfachheit - Sie müssen nicht zwei Werkzeugsätze verwenden
  • Flexibilität - Sie können pvmove verwenden, um die Daten ohne Ausfallzeit von einem Datenträger auf einen anderen zu verschieben. Sie können Snapshot und Thin Provisioning verwenden
  • Sie müssen weder partprobe noch kpartx ausführen, um dem Kernel mitzuteilen, dass Sie ein Volume erstellt, seine Größe geändert oder es gelöscht haben. Und partprobe / kpartx kann fehlschlagen, wenn Partitionen verwendet werden und möglicherweise ein Neustart erforderlich ist
  • Möglicherweise bessere Leistung im Vergleich zur Verwendung von LVM über MS-DOS- oder GPT-Disklables

2
Ich bin mir nicht sicher, warum jeder diese Partition haben will - aber antworte hier und gehe in die Richtung "warum nicht". Diese Antwort ist besser - Sie benötigen keine Partition, wenn Sie die gesamte Festplatte verwenden möchten. Wenn Sie über eine Partition verfügen, kann die Größenänderung / Erweiterung von Datenträgern erheblich schmerzhafter werden.
Bryn

Viele Unix-Systemadministratoren bringen diese Logik auf Linux. Ich erinnere mich, dass der Volume-Manager von veritas mit öffentlichen und privaten Systemen funktioniert. Unter Linux hat dies keinen Sinn
c4f4t0r
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.