Supõe-se que, como resultado desse método, salvemos a sequência na qual os discos são produzidos pelo comando ceph osd tree. Se eles estiverem lá em ordem, será mais legível e considerado, se necessário.
Digressão lírica sobre o tema. O método oficial de substituir um disco no ceph envolve remover todas as entidades lógicas associadas a esse disco do cluster com sua recriação adicional. Como resultado, o osd recém-criado (em algumas circunstâncias) pode alterar seu número (o número no nome da entidade, que é o osd.Number) e a localização no mapa de esmagamento e será exibido naturalmente em outro lugar na árvore de ceph osd e em outros comandos. O número de série será alterado.
A idéia desse método é que não mudaremos nenhuma entidade lógica, mas simplesmente deslizaremos um novo disco para o local "antigo" no cluster. Para fazer isso, neste novo disco, você deve (re) criar as estruturas de dados corretas: todos os tipos de identificação, links simbólicos, chaves.
Vamos marcar um novo disco.parted /dev/__ mklabel gpt 
Vamos criar uma nova seção em nossa partição parted /dev/sdaa mkpart primary ext2 0% 100% /sbin/sgdisk --change-name=1:'ceph data' -- /dev/sda1 
Obter o UUID do osd falecido ceph osd dump|grep 'osd.' 
Coloque PARTUUID no disco de dados /sbin/sgdisk --typecode=1:99886b14-7904-4396-acef-c031095d4b62 -- /dev/__ 
Encontre a seção com a revista ceph-disk list | grep for | sort 
Criar um sistema de arquivos em um disco de dados /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 
Copiar dados de um OSD vizinhoDe fato, esta é a parte mais infame do procedimento, tudo deve ser feito com cuidado.Ao copiar, pule o diretório / var / lib / ceph / osd / ceph-NUMBER / current, este é o diretório de dados. Simlink no diário criaremos mais 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 
Estamos à procura de uma revista ceph-disk list | grep for | sort 
consequentemente, encontramos a partição e fazemos
 ls -l /dev/disk/by-partuuid | grep _ 
Fazendo um link simbólico para este UUID ln -s /dev/disk/by-partuuid/UUID /var/lib/ceph/osd/ceph-/journal 
Preencha fsid com o valor corretoEsse fsid é realmente um ID exclusivo, sob o qual a caixa osd aparece no cluster, é importante, porque se você não adivinhar com id, a caixa osd não verá o cluster e isso será mútuo.
E o valor deve ser obtido da partição partuuid no log de dados.
 echo -n UUID >/var/lib/ceph/osd/ceph-/fsid 
Encha o chaveiroCom isso, a caixa osd é autorizada no cluster.
 ceph auth list|grep --after-context=1 'osd.' 
É gravado em um arquivo no formato
 [osd.] key = __ 
Preencha whoamiSimplesmente escrevemos o número OSD para esse arquivo, que queremos reviver.
Zerando a revista dd bs=32M oflag=direct if=/dev/zero of=/var/lib/ceph/osd/ceph-/journal 
Criar metadados do diário e osd-shki ceph-osd --mkfs -i _OSD ceph-osd --mkjournal -i _OSD 
Alterar proprietário dos dados chown -R ceph:ceph /var/lib/ceph/osd/ceph- 
Execute ceph-osdAtenção: Imediatamente após iniciar o ceph-osd, a reconstrução será iniciada se ceph osd out NUMBER não tiver sido emitido antes de o disco sair do cluster.
 systemctl start ceph-osd.