Wo speichert LVM seine Konfiguration?

17

Ich versuche zu verstehen, wie / wo LVM seine Konfigurationsdaten speichert.

  • Schreibt pvcreate /dev/sdbirgendwelche Metadaten an /dev/sdb? wenn ja was steht geschrieben
  • Woher kommt die vgcreate data /dev/sdb /dev/sdcSpeicherkonfiguration der Datenträgergruppe?
  • Wo speichert LVM die Zuordnung zwischen logischen und physischen Bereichen?
  • Gibt es eine maschinenspezifische Konfiguration in einer LVM-Konfiguration?
  • Angenommen, ich habe eine Maschine mit 2 Festplatten, die als logisches Volume konfiguriert sind. Kann ich diese Festplatten einfach aus der Maschine nehmen und in eine andere Maschine einlegen und erwarten, dass das logische Volume auf der neuen Maschine funktioniert?
ams
quelle

Antworten:

10

Schreibt pvcreate / dev / sdb Metadaten nach / dev / sdb? wenn ja was steht geschrieben

Wenn Sie -vvdem pvcreateBefehl ein Flag übergeben, wird der Befehl ausführlicher und Sie werden sehen, dass pvcreate einen Metadatenbereich auf der Festplatte erstellt.

 Writing physical volume data to disk "/dev/sdc1"
        lvmcache: /dev/sdc1: now in VG #orphans_lvm2 (#orphans_lvm2) with 0 mdas
        Creating metadata area on /dev/sdc1 at sector 8 size 2040 sectors
        Opened /dev/sdc1 RW O_DIRECT
        /dev/sdc1: block size is 1024 bytes
        /dev/sdc1: physical block size is 512 bytes
        /dev/sdc1: Preparing PV label header xxx.xxxxx.xxxxxxxxxxxxxxx

      /dev/sdc1: Writing label to sector 1 with stored offset 32.

Was wird in den Metadatenbereich geschrieben?

Mir ist kein Befehl bekannt, mit dem Sie die Metadaten anzeigen können, aber der Befehl vgcfgbackupkann zum Sichern der Metadaten verwendet werden, und Sie können eine so erstellte Sicherungsdatei öffnen, um die Metadaten anzuzeigen

vgcfgbackup -f /path/of/your/choice/file <your_vg_name>

Das /path/of/your/choice/filemit dem obigen Befehl erstellte Objekt enthält die PV-, VG- und LVM-Metadaten. Einer der Abschnitte sieht wie folgt aus:

physical_volumes {

                pv0 {
                        id = "abCDe-TuvwX-DEfgh-daEb-Xys-6Efcgh-LkmNo"
                        device = "/dev/sdc1"    # Hint only

                        status = ["ALLOCATABLE"]
                        flags = []
                        dev_size = 10477194     # 4.99592 Gigabytes
                        pe_start = 2048
                        pe_count = 1278 # 4.99219 Gigabytes
                }
        }

Ich schlage vor, Sie werfen einen Blick auf den Inhalt des Verzeichnisses /etc/lvmund die Ausgabe des Befehlslvm dumpconfig

Angenommen, ich habe eine Maschine mit 2 Festplatten, die als logisches Volume konfiguriert sind. Kann ich diese Festplatten einfach aus der Maschine nehmen und in eine andere Maschine einlegen und erwarten, dass das logische Volume auf der neuen Maschine funktioniert?

Ja, du kannst.

Sie können Volume Groups auf einen anderen Host migrieren. Das Plug-and-Play-Verfahren ist zwar nicht ganz einfach. Es gibt Dutzende Tutorials, die online zur Verfügung stehen.

In diesem Serverfehler-Thread wird das Verschieben einer LVM-Partition auf einen anderen Host mit dem ddBefehl erläutert .

Sree
quelle
14

Schreibt pvcreate /dev/sdbirgendwelche Metadaten an /dev/sdb? wenn ja was steht geschrieben

Ja, aber es sind nicht viel mehr als einige Header- und Identifikationsdaten, um das Blockgerät als LVM-PV zu kennzeichnen. Die "echten" Metadaten werden beim Erstellen von Datenträgergruppen bereitgestellt.

Woher kommt die vgcreate data /dev/sdb /dev/sdcSpeicherkonfiguration der Datenträgergruppe?

Auf jedem physischen Volume, das Teil der Volume-Gruppe ist. Standardmäßig wird in jedem Metadatenbereich auf jedem physischen Volume innerhalb der Volume-Gruppe eine identische Kopie der Metadaten verwaltet. LVM-Volumengruppen-Metadaten sind klein und werden als ASCII gespeichert.

Wo speichert LVM die Zuordnung zwischen logischen und physischen Bereichen?

Dies ist Teil der oben genannten Volumengruppen-Metadaten.

Gibt es eine maschinenspezifische Konfiguration in einer LVM-Konfiguration?

Nein. PVs, die Teil einer VG sind, werden mithilfe eindeutiger Kennungen gefunden und zusammengestellt, die zum Zeitpunkt der PV-Erstellung zugewiesen wurden.

Angenommen, ich habe eine Maschine mit 2 Festplatten, die als logisches Volume konfiguriert sind. Kann ich diese Festplatten einfach aus der Maschine nehmen und in eine andere Maschine einlegen und erwarten, dass das logische Volume auf der neuen Maschine funktioniert?

Ja. Wenn alle PVs, aus denen sich die VG zusammensetzt, vorhanden sind, funktionieren die LVs dieser VG.

Celada
quelle
3
  • Schreibt pvcreate /dev/sdbirgendwelche Metadaten an /dev/sdb? wenn ja was steht geschrieben
  • Woher kommt die vgcreate data /dev/sdb /dev/sdcSpeicherkonfiguration der Datenträgergruppe?

pvcreateErstellt eine "Bezeichnung" und eine "Überschrift" für den PV und weist außerdem Platz für Metadaten auf dem Volume zu (wie durch die --[pv]metadataOption angegeben). Der Header ist eine binäre Datenstruktur, die Zeiger auf die Metadatenbereiche auf diesem PV enthält.

Der vgcreateBefehl speichert eine Textbeschreibung des aktuellen Status der Datenträgergruppe in den Metadatenbereichen, die zuvor den zugeordneten PVs zugewiesen wurden (wie durch die --[vg]metadatacopiesOption usw. gesteuert ). Dies sind die vom vgcfgbackupBefehl gesicherten Beschreibungen und in den meisten Fällen die Metadaten, die untersucht werden sollen.

Weitere undurchsichtige Informationen zu PV-Labels / Headern: Eine Übersichtsbeschreibung finden Sie in LVM Internals unter http://mo.morsi.org/blog/node/392 (einschließlich eines Links zu einem Ruby-Skript, mit dem das Label analysiert werden kann / header,. lvm-parser.rb)

Ein ähnliches Python-Modul pvdissectfinden Sie unten in http://www.syslinux.org/wiki/index.php?title=Development/LVM_support .

Nathan
quelle