Estou tentando limpar uma bagunça em um sistema de servidor Ubuntu 12.04 LTS usando o ZFS. Veja o que o zpool status mostra:
pool: TB2
state: UNAVAIL
status: One or more devices could not be used because the label is missing
or invalid. There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
a backup source.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
scan: none requested
config:
NAME STATE READ WRITE CKSUM
TB2 UNAVAIL 0 0 0 insufficient replicas
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
sdi ONLINE 0 0 0
sdj ONLINE 0 0 0
sds ONLINE 0 0 0
sdt UNAVAIL 0 0 0
pool: TB4
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: resilvered 2.52T in 16h41m with 0 errors on Tue Feb 6 09:27:46 2018
config:
NAME STATE READ WRITE CKSUM
TB4 DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ata-Hitachi_HDS724040ALE640_PK1331PAG9MBVS ONLINE 0 0 0
ata-Hitachi_HDS724040ALE640_PK2311PAG8G71M ONLINE 0 0 0
ata-Hitachi_HDS724040ALE640_PK1331PAGH0LHV ONLINE 0 0 0
ata-Hitachi_HDS724040ALE640_PK2331PAG8MV3T ONLINE 0 0 0
spare-4 DEGRADED 0 0 0
ata-Hitachi_HDS724040ALE640_PK2311PAG614MM UNAVAIL 0 0 0
ata-Hitachi_HDS724040ALE640_PK1331PAGH0EAV ONLINE 0 0 0
ata-Hitachi_HDS724040ALE640_PK2331PAGH2XRW ONLINE 0 0 0
ata-Hitachi_HDS724040ALE640_PK1331PAG7TGDS ONLINE 0 0 0
ata-Hitachi_HDS724040ALE640_PK1331PAGG3K0V ONLINE 0 0 0
ata-Hitachi_HDS724040ALE640_PK2311PAG59PYM ONLINE 0 0 0
spares
ata-Hitachi_HDS724040ALE640_PK1331PAGH0EAV INUSE currently in use
errors: No known data errors
Eu quero fazer duas coisas:
1. Substitua a unidade defeituosa na piscina TB4. Isso eu sei fazer.
2. Completamente destrua e recrie o pool TB2.
Normalmente, eu apenas faço um zpool destroy TB2 e começo de novo. No entanto, o administrador anterior usou nomes sd * para TB2 e id de disco para TB4. Ao olhar para / dev / disk / by-id, descobri que duas das unidades TB4 (... 71M e ... EAV) são vinculadas a / dev / sdj e / dev / sds, respectivamente. Mas esses sdj e sds estão listados como parte do pool TB2. Eu tenho medo que fazendo um zpool destruir TB2 irá corromper as unidades no pool TB4, uma vez que os documentos dizem que destruir gravações nos discos membros. Existe alguma maneira de fazer com que o ZFS simplesmente esqueça o TB2 sem realmente escrever?
Perguntei ao administrador anterior por que ele usou dois métodos diferentes (/ dev / sd * e by-id). Ele disse que a atribuição de letras de unidade para discos rígidos específicos não parecia ser repetida do boot para o boot, então quando ele criou o TB4, ele usou by-id. Eu acho que esse emaranhamento de TB2 e TB4 é um resultado disso.
Meu pensamento atual é fazer isso:
- desligue a máquina
- puxe todas as unidades.
- Reinicialize.
- zpool destroy -f TB2
- desligue e reinstale as unidades TB4
- reformatar as unidades TB2 em outra máquina
- Reinstale as unidades TB2 e crie um novo pool usando id do disco (não sd *)
Isso parece razoável? Existe uma maneira mais fácil?
Obrigado a qualquer um que possa me ajudar com essa bagunça.
Michael