
Havia 2 discos no pool /dev/sde /dev/sdf
O disco /dev/sde foi danificado, excluí-o do pool e substituí-o por um novo disco. O ataque tornou-se degradado.
Depois de adicionar um novo disco /dev/sde ao pool, obtive a seguinte configuração:
zpool status
pool: rpool
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: scrub repaired 0B in 0h25m with 0 errors on Wed Sep 2 18:32:39 2020
config:
NAME STATE READ WRITE CKSUM
rpool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
old UNAVAIL 0 0 0
sdf2 ONLINE 0 0 0
sde2 ONLINE 0 0 0
Substituir, off-line, excluir "antigo" sempre gera um erro:
zpool replace rpool old
cannot open 'old': no such device in /dev
must be a full path or shorthand device name
No arquivo /etc/zfs/zpool.cache vejo a unidade /dev/sde2/old
Como faço para remover o disco antigo sem reiniciar o servidor e excluir o array (o array é /)?
root@v05:/# zpool replace rpool old sde2
invalid vdev specification
use '-f' to override the following errors:
/dev/sde2 is part of active pool 'rpool'
root@v05:/# zpool replace -f rpool old sde2
invalid vdev specification
the following errors must be manually repaired:
/dev/sde2 is part of active pool 'rpool'
sde já é membro do rpool.
É necessário remover o disco antigo (/dev/sde/old) do pool.
Nenhum erro ao adicionar o novo disco, fiz tudo exatamente como você escreveu.
Responder1
Problema resolvido.
zdb
encontre a identificação 15497986214547762579 para /dev/sde/dispositivo antigo e remova:
zpool off-line -f rpool 15497986214547762579
zpool desanexar rpool 15497986214547762579
Responder2
Você provavelmente cometeu um erro ao adicionar o novo disco: você emitiu zpool add rpool <newdisk>
, mas teve quesubstituiro disco com falha. Em outras palavras, você tinha que:
zpool replace rpool <olddisk> <newdisk>
zpool detach rpool <olddisk>; zpool attach rpool sdf
(sdf
sendo a outra perna do espelho).
Observe como eu escrevi attach
, enquanto você provavelmente usou add
em seu comando zpool.
Como você pode resolver o problema? Com o ZFS 0.7.x você está sem sorte, pois nenhum dado vdev pode ser removido após ser adicionado. ComZFS 0.8.x você pode removê-loportanto, se você estiver executando o ZFS 0.7.x, será necessário atualizar para 0.8.x como primeira etapa. Então você deve emitir o comando acima para substituir o disco com falha.
Responder3
Fiz uma substituição de disco conforme documentação da oracle. Agora tenho a seguinte saída de comando:
root@v05:/# zpool substitui rpool antigo sde2 especificação vdev inválida use '-f' para substituir os seguintes erros: /dev/sde2 faz parte do pool ativo 'rpool'
root@v05:/# zpool replace -f rpool old sde2 especificação vdev inválida os seguintes erros devem ser reparados manualmente: /dev/sde2 faz parte do pool ativo 'rpool'