Eu tenho um zpool chamado storage que contém uma matriz raidz1 de cinco dispositivos.
Hoje eu comprei outro dispositivo de 3 TB e coloquei no meu gabinete. No entanto, em vez de criar um novo pool e adicionar esse dispositivo a ele, cometi um erro e o adicionei ao meu pool de armazenamento existente.
Agora eu tenho um dispositivo de nível superior que quero remover chamado sdg
(essa é a nova unidade). Toda vez que tento removê-lo, recebo:
cannot remove sdg: only inactive hot spares, cache, top-level, or log devices can be removed.
Então, como faço para remover este dispositivo agora? Se este dispositivo falhar, meu pool inteiro estará indisponível. Estou pensando em comprar outro disco e, pelo menos, será espelhado, mas não acredito que não haja uma maneira adequada de fazer isso.
Este é o meu despejo de status:
pool: storage
state: ONLINE
scan: scrub canceled on Wed Jul 23 17:26:08 2014
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST3000DM001-1CH166_Z1F1PYM6 ONLINE 0 0 0
ata-ST3000DM001-1CH166_W1F24CSC ONLINE 0 0 0
ata-ST3000DM001-1CH166_W1F2372R ONLINE 0 0 0
ata-ST3000DM001-1CH166_W1F24BTK ONLINE 0 0 0
ata-ST3000DM001-1CH166_Z1F2KKLW ONLINE 0 0 0
sdg ONLINE 0 0 0
errors: No known data errors
sdg
agora faz parte do pool de armazenamento distribuído. Como a piscina é listrada e não espelhada, é impossível removêsdg
-la. A única maneira de recuperá-lo é copiar seus dados dostorage
pool para outro dispositivo, destruir o pool e recriá-lo sem sdg. Em seguida, crie um novo pool para o sdg fazer o que você quiser.zfs convert
funcionalidade.Respostas:
Infelizmente, a remoção de um vdev (que é esta unidade) de um pool não é suportada pelo ZFS atualmente (mas há trabalho em andamento para suportá-lo). A solução seria despejar seus dados do pool e recriá-los, depois colocá-los de volta.
fonte