Se supone que, como resultado de este método, guardamos la secuencia en la que el comando ceph osd tree genera los discos. Si están allí en orden, entonces es más legible y considerado, si es necesario.
Digresión lírica sobre el tema. El método oficial de reemplazar un disco en ceph implica eliminar todas las entidades lógicas asociadas con este disco del clúster con su posterior recreación. Como resultado, el osd recién creado (en algunas circunstancias) puede cambiar su número (el número en el nombre de la entidad, que es el número osd) y la ubicación en el mapa de aplastamiento y, naturalmente, se mostrará en otra parte del árbol ceph osd y otros comandos. Su número de serie cambiará.
La idea de este método es que no cambiaremos ninguna entidad lógica, sino que simplemente deslizaremos un nuevo disco al lugar "antiguo" del clúster. Para hacer esto, en este nuevo disco, debe (re) crear las estructuras de datos correctas: todo tipo de identificación, enlaces simbólicos, claves.
Marquemos un nuevo disco.parted /dev/__ mklabel gpt
Creemos una nueva sección en nuestra partición parted /dev/sdaa mkpart primary ext2 0% 100% /sbin/sgdisk --change-name=1:'ceph data' -- /dev/sda1
Obtenga el UUID del osd fallecido ceph osd dump|grep 'osd.'
Poner PARTUUID en el disco de datos /sbin/sgdisk --typecode=1:99886b14-7904-4396-acef-c031095d4b62 -- /dev/__
Encuentra la sección con la revista ceph-disk list | grep for | sort
Crear un sistema de archivos en un disco de datos /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
Copie datos de un OSD vecinoDe hecho, esta es la parte más infame del procedimiento, todo debe hacerse con cuidado.Al copiar, omita el directorio / var / lib / ceph / osd / ceph-NUMBER / current, este es el directorio de datos. Simlink en el diario que crearemos más tarde
Copiando 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
Buscamos una revista ceph-disk list | grep for | sort
en consecuencia, encontramos la partición y hacemos
ls -l /dev/disk/by-partuuid | grep _
Hacer un enlace simbólico a este UUID ln -s /dev/disk/by-partuuid/UUID /var/lib/ceph/osd/ceph-/journal
Rellene fsid con el valor correctoEste fsid es en realidad una identificación única, bajo la cual aparece el cuadro osd en el clúster, es importante, porque si no adivina con id, el osd-box en sí no verá el clúster y esto será mutuo.
Y el valor debe tomarse de la partición partuuid en el registro de datos.
echo -n UUID >/var/lib/ceph/osd/ceph-/fsid
Llenar el llaveroCon esto, el osd-box está autorizado en el clúster.
ceph auth list|grep --after-context=1 'osd.'
Está escrito en un archivo en el formato
[osd.] key = __
Llenar whoamiSimplemente escribimos el número OSD para este archivo, que queremos revivir.
Poniendo a cero la revista dd bs=32M oflag=direct if=/dev/zero of=/var/lib/ceph/osd/ceph-/journal
Crear metadatos de diario y osd-shki ceph-osd --mkfs -i _OSD ceph-osd --mkjournal -i _OSD
Cambiar propietario de datos chown -R ceph:ceph /var/lib/ceph/osd/ceph-
Ejecute ceph-osdAtención: Inmediatamente después de iniciar ceph-osd, la reconstrucción comenzará si no se emitió NUMBER de ceph osd antes de que el disco saliera del clúster.
systemctl start ceph-osd.