Bare-Metal-Raid-Array mit LVM verschwindet nach dem Neustart

Oct 25 2020

tl; dr:

RAID-Array + LVM verschwindet nach dem Neustart.

Detail

Ich wollte ein verschlüsseltes Raid-Array einrichten, das auf dieser SO basiert .

Ich habe ein RAID-Array "Bare Metal" eingerichtet (dh auf den Festplatten, nicht auf den Partitionen). Sobald das Array erstellt wurde, habe ich es nicht formatiert und ausgeführt pvcreate. Dann habe ich LVM und Verschlüsselung wie gewohnt eingerichtet. (Siehe Digital Ocean Guide zu RAID , Arch Guide zu LVM on RAID .

Nach dem Einrichten der Verschlüsselung, lief ich mdadm --detail --scan | tee -a /etc/mdadm/mdadm.confdann update-initramfs -u und einen Neustart ausgegeben. /dev/md0ist dann weg. Was habe ich falsch gemacht?

Schritte zum Debuggen.

Es gibt viele ähnliche Fragen, das habe ich bisher aufgrund meiner Lektüre versucht.

  • Die Ausgabe von mdadm --examine --scanist leer.
  • uncommented Inhalt /etc/mdadm/mdadm.conf: HOMEHOST <system>, MAILADDR root, ARRAY /dev/md0 metadata=1.2 name=server:0 UUID=xxxxxEs gibt keine doppelten Einträge wie in einigen SO Antworten vorgeschlagen.
  • service mdadm statusRenditen ausgebenLoaded: masked (Reason: Unit mdadm.service is masked.)
  • Issuing cat /proc/mdstatyeildsPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] \n unused devices: <none>
  • Ich habe versucht zu laufen dpkg-reconfigure mdadmund update-initramfs -uwie hier vorgeschlagen und ich habe keine Option bekommen, um "alle" zu aktivieren. Danach habe ich versucht, neu zu starten, was auch nicht funktioniert hat.

Als letzten Ausweg habe ich es versucht mdadm --assemble --scan.

Seltsamerweise ist der Typ nicht so, TYPE="linux_raid_member"wie ich es von diesem SO erwartet hätte

root@server:/home/user# blkid
/dev/sda1: UUID="xx" TYPE="ext2" PARTUUID="xx-xx"
/dev/sda5: UUID="xx" TYPE="LVM2_member" PARTUUID="xx-xx"
/dev/mapper/server--vg-root: UUID="xx" TYPE="ext4"
/dev/mapper/server--vg-swap_1: UUID="xx" TYPE="swap"
/dev/sdb: PTUUID="xx" PTTYPE="gpt"
/dev/sdc: PTUUID="xx" PTTYPE="gpt"
/dev/sdd: PTUUID="xx" PTTYPE="gpt"

Das Array befindet sich über sd [bcd] und / dev / sda enthält das Root-Dateisystem. Dieses Array-Laufwerk ist für Daten.

Schritte zum erneuten Erstellen.

Der Vollständigkeit halber und für den Fall, dass es nützlich ist.

  • mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd Array erstellen
  • pvcreate /dev/md0 Machen Sie physisches Volumen
  • vgcreate data_group /dev/md0 Erstellen Sie eine Vol-Gruppe
  • lvcreate -n secure data_group -L +900G Volume erstellen
  • cryptsetup -v luksFormat /dev/data_group/secure Verschlüsselung einrichten
  • cryptsetup luksOpen /dev/data_group/secure cryptvault Verschlüsseltes Volume öffnen
  • mkfs.ext4 /dev/mapper/cryptvault Partition
  • mkdir /mnt/vault Montagepunkt machen
  • mount /dev/mapper/cryptvault /mnt/vault Montieren
  • mdadm --detail --scan | tee -a /etc/mdadm/mdadm.confArray-Layout speichern
  • update-initramfs -u Aktualisieren Sie init mit der neuen Konfiguration
  • reboot

Antworten

1 VojtechTrefny Oct 25 2020 at 15:29

Dies ist nur eine Theorie: mdadm-Metadaten Version 1.2 ist 4 KB vom Start des Geräts entfernt und auf den Datenträgern war bereits eine GPT-Partitionstabelle vorhanden, als Sie das Array erstellt haben, das nicht von mdadm entfernt wurde (ich würde erwarten, dass mdadm alle vorhandenen entfernt Signaturen, aber das ist die einzige Erklärung für die Existenz der GPT-Signatur. Das Array wird jetzt nicht zusammengestellt, da dies für alle Tools (einschließlich mdadm) nur so aussieht und eine leere Festplatte mit GPT-Partitionstabelle (es ist auch möglich, dass blkid die Header-Sicherung am Ende der Festplatte erkennt) kein mdmember ist, also die Festplatten werden ignoriert.

Sie können versuchen, die Partitionstabelle zu entfernen, indem Sie wipefszunächst einfach wipefs /dev/sdballe Signaturen erkennen und drucken und dann den wipefs -o <offset>Versatz der GPT-Signatur, die mit dem vorherigen Befehl gedruckt wurde. Dies kann dem System helfen, die Festplatte als mdmeber-Gerät zu erkennen.

Wenn dies nicht hilft, würde ich --metadata=1.1empfehlen, von vorne zu beginnen und Metadaten Version 1.1 auszuwählen ( Option für mdadm, 1.1 platziert Metadaten am Anfang des Geräts) oder das Array über Partitionen zu erstellen (die Verwendung der Festplatten hat keinen Vorteil ohne Partitionstabelle IMHO). Oder natürlich kannst du mit besseren Vorschlägen auf jemanden warten :-)

Übrigens. Ich gehe davon aus, dass dies ein brandneues Setup ist, sodass keine wertvollen Daten auf den Geräten vorhanden sind. Es kann jedoch nützlich sein, die ersten paar MiBs der Festplatten zu sichern, bevor irreversible Änderungen vorgenommen werden.