Il est supposé qu'à la suite de cette méthode, nous enregistrons la séquence dans laquelle les disques sont sortis par la commande arborescence ceph osd. S'ils sont là dans l'ordre, c'est plus lisible et considéré, si nécessaire.
Digression lyrique sur le sujet. La méthode officielle de remplacement d'un disque dans ceph consiste à supprimer toutes les entités logiques associées à ce disque du cluster avec leur recréation ultérieure. En conséquence, l'osd fraîchement créé (dans certaines circonstances) peut changer son numéro (le numéro dans le nom de l'entité, qui est l'osd.Number) et son emplacement dans la carte d'écrasement et sera naturellement affiché ailleurs dans l'arborescence ced osd et d'autres commandes. Son numéro de série va changer.
L'idée de cette méthode est que nous ne changerons aucune entité logique, mais glissons simplement un nouveau disque à la «vieille» place dans le cluster. Pour ce faire, sur ce nouveau disque, vous devez (re) créer les structures de données correctes: toutes sortes d'id, liens symboliques, clés.
Marquons un nouveau disque.parted /dev/__ mklabel gpt
Créons une nouvelle section sur notre partition parted /dev/sdaa mkpart primary ext2 0% 100% /sbin/sgdisk --change-name=1:'ceph data' -- /dev/sda1
Obtenez l'UUID de l'OSD décédé ceph osd dump|grep 'osd.'
Mettez PARTUUID sur le disque de données /sbin/sgdisk --typecode=1:99886b14-7904-4396-acef-c031095d4b62 -- /dev/__
Retrouvez la rubrique avec le magazine ceph-disk list | grep for | sort
Créer un système de fichiers sur un disque de données /sbin/mkfs -t xfs -f -i size=2048 -- /dev/sdaa1
Mount FS mount -o rw,noatime,attr2,inode64,noquota /dev/____ /var/lib/ceph/osd/ceph-_OSD
Copier les données d'un OSD voisinEn fait, c'est la partie la plus tristement célèbre de la procédure, tout doit être fait avec soin.Lors de la copie, ignorez le répertoire / var / lib / ceph / osd / ceph-NUMBER / current, il s'agit du répertoire de données. Simlink sur le journal que nous créerons plus tard
Copie 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
Nous recherchons un magazine ceph-disk list | grep for | sort
en conséquence, nous trouvons la partition, et faisons
ls -l /dev/disk/by-partuuid | grep _
Créer un lien symbolique vers cet UUID ln -s /dev/disk/by-partuuid/UUID /var/lib/ceph/osd/ceph-/journal
Remplissez fsid avec la valeur correcteCe fsid est en fait un identifiant unique, sous lequel la boîte osd apparaît dans le cluster, il est important, car si vous ne devinez pas avec id, la boîte osd elle-même ne verra pas le cluster et ce sera mutuel.
Et la valeur doit être extraite de la partition partuuid du journal de données.
echo -n UUID >/var/lib/ceph/osd/ceph-/fsid
Remplissez le trousseau de clésAvec cela, la boîte osd est autorisée dans le cluster.
ceph auth list|grep --after-context=1 'osd.'
Il est écrit dans un fichier au format
[osd.] key = __
Remplissez whoamiNous écrivons simplement le numéro OSD de ce fichier, que nous voulons réactiver.
Mettre le magazine à zéro dd bs=32M oflag=direct if=/dev/zero of=/var/lib/ceph/osd/ceph-/journal
Créer des métadonnées de journal et osd-shki ceph-osd --mkfs -i _OSD ceph-osd --mkjournal -i _OSD
Changer le propriétaire des données chown -R ceph:ceph /var/lib/ceph/osd/ceph-
Exécutez ceph-osdAttention: Immédiatement après le démarrage de ceph-osd, la reconstruction commencera si ceph osd out NUMBER n'a pas été émis avant que le disque ne quitte le cluster.
systemctl start ceph-osd.