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.