Es wird angenommen, dass wir als Ergebnis dieser Methode die Reihenfolge speichern, in der Festplatten vom Befehl ceph osd tree ausgegeben werden. Wenn sie in der richtigen Reihenfolge vorhanden sind, ist sie besser lesbar und wird bei Bedarf berücksichtigt.
Lyrischer Exkurs zum Thema. Die offizielle Methode zum Ersetzen einer Festplatte in ceph besteht darin, alle mit dieser Festplatte verknüpften logischen Entitäten bei ihrer weiteren Neuerstellung aus dem Cluster zu entfernen. Infolgedessen kann die frisch erstellte osd (unter bestimmten Umständen) ihre Nummer (die Nummer im Namen der Entität, die die osd.Number ist) und ihre Position in der Crush-Map ändern und wird natürlich an anderer Stelle im ceph osd-Baum und anderen Befehlen angezeigt. Die Seriennummer ändert sich.
Die Idee dieser Methode ist, dass wir keine logischen Entitäten ändern, sondern einfach eine neue Festplatte an die „alte“ Stelle im Cluster verschieben. Dazu müssen Sie auf dieser neuen Festplatte die richtigen Datenstrukturen (neu) erstellen: alle Arten von IDs, Symlinks, Schlüsseln.
Markieren wir eine neue Festplatte.parted /dev/__ mklabel gpt
Lassen Sie uns einen neuen Abschnitt auf unserer Partition erstellen parted /dev/sdaa mkpart primary ext2 0% 100% /sbin/sgdisk --change-name=1:'ceph data' -- /dev/sda1
Holen Sie sich die UUID des verstorbenen osd ceph osd dump|grep 'osd.'
Legen Sie PARTUUID auf die Daten-CD /sbin/sgdisk --typecode=1:99886b14-7904-4396-acef-c031095d4b62 -- /dev/__
Finden Sie den Abschnitt mit dem Magazin ceph-disk list | grep for | sort
Erstellen Sie ein Dateisystem auf einer Datendiskette /sbin/mkfs -t xfs -f -i size=2048 -- /dev/sdaa1
FS montieren mount -o rw,noatime,attr2,inode64,noquota /dev/____ /var/lib/ceph/osd/ceph-_OSD
Kopieren Sie Daten von einem benachbarten OSDIn der Tat ist dies der berüchtigtste Teil des Verfahrens, alles muss sorgfältig gemacht werden.Überspringen Sie beim Kopieren das Verzeichnis / var / lib / ceph / osd / ceph-NUMBER / current. Dies ist das Datenverzeichnis. Simlink auf Journal werden wir später erstellen
Kopieren for i in activate.monmap active ceph_fsid fsid journal_uuid keyring magic ready store_version superblock systemd type whoami; do cp /var/lib/ceph/osd/ceph-_/${i} /var/lib/ceph/osd/ceph-; done
Wir suchen eine Zeitschrift ceph-disk list | grep for | sort
dementsprechend finden wir die Partition und tun es
ls -l /dev/disk/by-partuuid | grep _
Erstellen eines Symlinks zu dieser UUID ln -s /dev/disk/by-partuuid/UUID /var/lib/ceph/osd/ceph-/journal
Füllen Sie fsid mit dem richtigen WertDiese fsid ist eigentlich eine eindeutige ID, unter der die osd-Box im Cluster erscheint, das ist wichtig, weil Wenn Sie nicht mit id raten, sieht die osd-box selbst den Cluster nicht und dies ist gegenseitig.
Der Wert muss der Partuuid-Partition im Datenprotokoll entnommen werden.
echo -n UUID >/var/lib/ceph/osd/ceph-/fsid
Füllen Sie den SchlüsselringDamit wird die osd-box im Cluster autorisiert.
ceph auth list|grep --after-context=1 'osd.'
Es wird in eine Datei im Format geschrieben
[osd.] key = __
Füllen Sie whoamiWir schreiben einfach die OSD-Nummer für diese Datei, die wir wiederbeleben möchten.
Das Magazin auf Null stellen dd bs=32M oflag=direct if=/dev/zero of=/var/lib/ceph/osd/ceph-/journal
Erstellen Sie Journal-Metadaten und osd-shki ceph-osd --mkfs -i _OSD ceph-osd --mkjournal -i _OSD
Ändern Sie den Dateneigentümer chown -R ceph:ceph /var/lib/ceph/osd/ceph-
Führen Sie ceph-osd ausAchtung: Unmittelbar nach dem Start von ceph-osd wird die Neuerstellung gestartet, wenn ceph osd out NUMBER nicht ausgegeben wurde, bevor die Festplatte den Cluster verlassen hat.
systemctl start ceph-osd.