ZFS: tentando remover a unidade de nível superior do Zpool

9

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
crônica
fonte
1
Meu entendimento é que sdgagora 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 do storagepool 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.
Warwick
Tudo o que li na documentação do zfs dizia que uma faixa não poderia crescer assim. De fato, as pessoas propuseram algumas coisas bastante interessantes para fazer, para que você possa aumentar a mesma matriz.
crônico
Se não conseguir removê-lo, posso adicionar mais algumas unidades e remover outra sdg e as duas novas unidades?
crônico
Depois de adicionar a unidade à piscina, você não poderá removê-la.
Ask and Learn
Não sei ao certo, mas não acho que você possa adicionar mais algumas unidades e fazer outra faixa de sdg e as duas novas unidades. Acredito que o sdg teria que ser especificado como um volume distribuído com os dois discos extras quando adicionado ao pool. Não há zfs convertfuncionalidade.
Warwick

Respostas:

2

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.

Steve Wills
fonte