Die erste gibt die UUID des ext4-Dateisystems auf dem md
Blockgerät an. Es hilft dem System, das Dateisystem eindeutig unter den auf dem System verfügbaren Dateisystemen zu identifizieren. Dies ist in der Struktur des Dateisystems gespeichert, dh in den Daten, die auf dem md-Gerät gespeichert sind.
Die zweite ist die UUID des RAID-Geräts. Es hilft dem md-Subsystem, dieses bestimmte RAID-Gerät eindeutig zu identifizieren. Insbesondere hilft es dabei, alle Blockgeräte zu identifizieren, die zum RAID-Array gehören. Es wird in den Metadaten des Arrays (auf jedem Mitglied) gespeichert. Array-Mitglieder haben auch ihre eigene UUID (im md-System haben sie möglicherweise auch Partitions-UUIDs, wenn es sich um GPT-Partitionen handelt (die selbst in der GPT-Partitionstabelle gespeichert würden), oder LVM-Volumes ...).
blkid
ist etwas irreführend, da die ID der auf dem Gerät gespeicherten Struktur zurückgegeben wird (für Strukturen, die es kennt, wie die meisten Dateisysteme, LVM-Mitglieder und Swap-Geräte). Beachten Sie auch, dass Blockgeräte mit Strukturen mit identischen UUIDs (z. B. LVM-Snapshots) nicht selten sind. Und ein Blockgerät kann alles enthalten, auch Dinge, deren Struktur keine UUID enthält.
Als Beispiel könnten Sie ein System mit 3 Laufwerken und GPT-Partitionierung haben. Diese Laufwerke könnten einen weltweiten Namen haben, der sie eindeutig identifiziert. Angenommen, die drei Laufwerke sind mit jeweils einer Partition partitioniert ( /dev/sd[abc]1
). In jeder Partition ist eine GPT-UUID in der GPT-Partitionstabelle gespeichert.
Wenn diese Partitionen ein md RAID5-Array bilden. Jeder erhält eine MD-UUID als RAID-Mitglied, und das Array erhält eine UUID als MD-RAID-Gerät.
Dies /dev/md0
kann mit MSDOS- oder GPT-Partitionierung weiter partitioniert werden. Zum Beispiel könnten wir eine /dev/md0p1
Partition mit einer GPT-UUID haben (gespeichert in der GPT-Partitionstabelle, die in den Daten von / dev / md0 gespeichert ist).
Dies könnte wiederum ein physischer Datenträger für LVM sein. Als solches erhält es eine PV-UUID. Die Volumengruppe wird auch eine VG-UUID haben.
In dieser Datenträgergruppe würden Sie logische Datenträger erstellen, die jeweils eine LV-UUID erhalten.
Auf einer dieser LVs (wie /dev/VG/LV
) könnten Sie ein ext4-Dateisystem erstellen . Dieses Dateisystem würde eine ext4-UUID erhalten.
blkid /dev/VG/LV
würde dir die (ext4) UUID dieses Dateisystems geben. Als Partition innerhalb des VG-Volumes würde es jedoch auch eine Partitions-UUID erhalten (einige Partitionsschemata wie MSDOS / MBR haben keine UUIDs). Diese Volumengruppe besteht aus Mitgliedern von PVs, die selbst andere Blockgeräte sind. blkid /dev/md0p1
würde dir die PV UUID geben. Es weist auch eine Partitions-UUID in der GPT-Tabelle auf /dev/md0
. /dev/md0
selbst wird aus anderen Blockgeräten gemacht. blkid /dev/sda1
Gibt die UUID des RAID-Mitglieds zurück. Es weist auch eine Partitions-UUID in der GPT-Tabelle auf /dev/sda
.
mdadm
? Wir haben gerade einen Server neu abgebildet und die UUIDs sind unterschiedlich. Deshalb möchten wir die vorherigen UUIDs wiederherstellen, damit wir nicht alle Konfigurationsdateien ändern müssen. Hat im Wesentlichen/dev/md0
eine neue UUID und wir möchten diese auf die alte zurücksetzen (anhand einer Sicherung identifiziert), sodass das System ohne weitere Änderungen gestartet werden kann.man mdadm
) oder die ext4 UUID (sieheman tune2fs
)? Liegt das Boot-Problem beim Finden des Root-Dateisystems oder beim Assemblieren des RAID-Arrays basierend auf der in initramfs gespeicherten Datei mdadm.conf vor? In jedem Fall klingt es für mich einfacher, die Datei mdadm.conf oder fstab / grub.cfg zu aktualisieren, als sich mit UUIDs zu vermischen.Die unterschiedliche UUID wurde bereits erläutert. Nicht nur Dateisysteme haben sie. Es gibt nur UUIDs für verschiedene Dinge: RAID-Array, Gerät, Partition, LUKS-Container, LVM-PVs ... und schließlich Dateisysteme.
Was mich persönlich stört, ist, dass selbst die Art und Weise, wie diese UUIDs formatiert werden, unterschiedlich ist.
blkid:
mdadm:
Wie Sie sehen, handelt es sich um dieselben UUIDs, die jedoch
blkid
mit Bindestrichen gedruckt werden,-
währendmdadm
Doppelpunkte verwendet werden:
. So erhalten Sied8b8b4e5-e47b-2e45-2093-cd36f654020d
gegend8b8b4e5:e47b2e45:2093cd36:f654020d
.Sehr ärgerlich, besonders wenn Sie mit UUIDs in Skripten arbeiten möchten. Es ist nicht offensichtlich, wie von einer Formatierung in die andere konvertiert werden soll.
quelle
:
oder Bindestrich-
ist einfach da, damit Menschen die langen UUIDs in Stücken lesen können und nicht irgendwo in der Mitte verloren gehen. Die UUID ist in Wirklichkeit eine Binärzahl und enthält keine Gedankenstriche oder Doppelpunkte. Es wird in Linux als unsigned Zeichen - Array implementiert:unsigned char uuid_out[16]
. Anscheinend hat die UUID-Spezifikation auch eine Vorstellung von Varianten und Versionen , die wir durch Setzen des höchstwertigen Bytesuuid_out[6]
auf 4 implementiert sehen können .Die blkid-UUID über "32cb0a6e-8148-44e9-909d-5b23df045bd1" ist die richtige, und das Betriebssystem verwendet sie, um das RAID-Array zu finden.
mdadm hat eine eigene "interne" UUID, die nicht direkt vom Betriebssystem verwendet wird und die Sie in der Datei mdadm.conf verwenden, z.
"ARRAY / dev / md1 level = raid1 num-devices = 2 uuid = f204c558: babf732d: 85bd7296: bbfebeea"
mdadm sollte keine UUID aufrufen, wenn diese von derjenigen getrennt ist, die blkid und das Betriebssystem erkennen. Vielleicht sollte es mduuid oder etwas anderes heißen, um Verwirrung zu vermeiden.
quelle