Converte o pool unmirrored de dois discos ZFS do FreeBSD para espelhado

7

Eu tenho um conjunto de armazenamento apropriadamente chamado storage com dois discos nele. Originalmente, eu queria adicionar o segundo disco como um espelho, mas o erro do novato do ZFS era usar zpool add storage <device> em vez de zpool attach storage <device> .

Toda tentativa de remove ou detach do segundo dispositivo do pool falha, porque o ZFS se queixa de não ter unidades redundantes. Depois de ler sobre isso, eu entendo a questão e por que isso acontece. No entanto, não consegui encontrar uma solução para remover a unidade para reconectá-la ou simplesmente converter todo o pool em espelhado em vez de listrado. Eu também estou intrigado com o fato de que parece não haver uma maneira direta de fazê-lo.

Existe uma maneira de conseguir isso sem destruir e recriar a piscina? Eu prefiro não precisar comprar outro disco de 4 TB e copiar todos os dados.

    
por herrbischoff 08.07.2016 / 00:19

2 respostas

2

Infelizmente, neste momento você tem basicamente duas boas opções:

  • Destrua e recrie o pool com a configuração pretendida e restaure seus dados de um cópia de restauração
  • Obtenha mais duas unidades (mínimo do mesmo tamanho que cada uma que você já possui) e expanda seu pool para dois pares espelhados em vez de dois discos únicos

O último pode ser executado no local e tem o bônus de fornecer espaço de armazenamento adicional, mas exige que você compre mais hardware (o que você disse na pergunta que não deseja fazer). O primeiro não pode ser feito no local, mas oferece uma boa oportunidade para testar sua estratégia de restauração (você fazer tem um Estratégia de restauração , presumo?).

Como você descobriu, não é possível remover um componente JBOD em um pool do ZFS. Por add ing em vez de attach ing a nova unidade, você criou uma situação JBOD com vários discos.

Se você fizer avançar com a expansão do pool, sugiro strongmente considerar a expansão para o raidz2 em vez de dois pares espelhados. Você obtém (essencialmente) a mesma capacidade de armazenamento utilizável, mas a capacidade de sobreviver à falha de qualquer duas das unidades, em oposição a apenas uma por par. Você pode criar um vdev raidz2 com dois arquivos esparsos e excluí-los antes de substituí-los por unidades das quais está migrando dados para migrar de sua situação atual de JBOD de 2 discos para RAIDZ2 de 4 discos, adicionando apenas mais dois discos. p>     

por 10.07.2016 / 14:40
0

Infelizmente, destruir e recriar a piscina seria sua única opção.

Se você quiser apenas extrair essa unidade única específica (por outros motivos, como se ela tiver desempenho inferior a todas as outras unidades), é possível anexar uma unidade espelhada ao vdev e, em seguida, desanexar a unidade antiga do vdev, "extrair" a unidade enquanto deixa a piscina intacta (menos tempo de recuperação, é claro). Mas no seu caso isso não ajuda muito.

Por isso, sugiro comprar uma unidade maior que contenha todos os dados do pool, caso contrário, você não terá backup. O ZFS pode ser o sistema de arquivos mais seguro e amplamente disponível, mas não é livre de erros. Um controlador de morte, morte simultânea de ambas as unidades, fonte de alimentação com defeito, erro de administrador, invasor não autorizado ou simplesmente um bug no ZFS ou no sistema host podem levar à perda de dados parcial ou completa sem um backup. O RAID não é backup e nem o ZFS.

Observe que você pode transmitir todos os seus dados com o envio / recebimento do ZFS, portanto, além do dinheiro investido e do tempo de transmissão, é bastante simples.

    
por 08.07.2016 / 10:56