Converta raidz1 para raidz2 através de uma unidade temporária

2

Eu configurei um novo servidor NAS há alguns meses e o configurei como RaidZ. Estou repensando essa decisão e gostaria de pegar uma unidade extra e ir para o RaidZ2. Antes de todos responderem que isso não é possível com o ZFS, gostaria de salientar que sei que isso não é diretamente possível. Estou pesquisando documentos há dias, mas não parece haver um conjunto de instruções sobre como fazer isso manualmente. Eu acredito que precisarei:

  1. Mova o conjunto inteiro para uma unidade grande o suficiente para manter o espaço usado
  2. derrube o pool existente.
  3. construa um novo pool usando a unidade extra em raidz2
  4. Mova os dados de volta para o pool.

Não parece muito complicado, mas eu não sou familiarizado o suficiente com o ZFS ou o FreeBSD para confiar que eu consegui o passo 1. Não estou completamente certo sobre o passo 4, mas isso pode ser tentado novamente, enquanto bagunçando o primeiro. passo não seria divertido. Minha leitura sugere que o rsync é o caminho certo para clonar um drive efetivamente, mas eu quero ter certeza de que o que eu copio é exatamente o mesmo que o source, incluindo system / hidden files, symlinks, jails, etc, etc. O sistema operacional está executando drives flash espelhados que não estão mudando e, idealmente, eles nem perceberiam que algo havia sido alterado na próxima inicialização (por exemplo, todas as cadeias são inicializadas como antes). Copiar / clonar o pool / drives também move informações de partição? O FreeNAS irá recriar estes ou será necessário manipulá-los manualmente?

Estou executando o FreeNAS 9.3 e tenho 3x3TB HDD em um único pool de raidz. Eu gostaria de acabar com 4x3TB no raidz2. O pool atual está usando 1,3 TB de espaço e eu tenho uma unidade externa de 2 TB para armazenamento temporário. Não é essencial se os dados são perdidos.

Atualizar

A pergunta atual: Como faço para copiar o pool para a unidade temporária enquanto garanto que seja uma cópia completa o suficiente para empurrar de volta para um zpool recriado. Além disso, como faço para retroceder se não for simplesmente o contrário da cópia original.

    
por JRoughan 20.02.2015 / 02:28

2 respostas

0

Aqui está como eu abordaria isso, usando apenas a GUI do FreeNAS:

  • Configurar tarefa de instantâneo periódica para um instantâneo recursivo do seu conjunto de dados raiz (por exemplo, volume x)
  • Use a unidade temporária para criar como um volume de faixa simples de 1 disco, digamos, volume y.
  • Estabelece a replicação para essa unidade, x para y.
  • Aguarde a replicação terminar.
  • Configurar tarefa de instantâneo periódica para um instantâneo recursivo de y.
  • Destrua e recrie x.
  • Configure a replicação de y para x.
  • Aguarde a replicação terminar.
  • Destrua y.

Disclaimer: Eu não testei isso para ter certeza de que todas as jaulas continuarão funcionando, então você pode querer obter uma confirmação de algum outro lugar ou apenas estar preparado para recriar as jaulas (ou examinar cuidadosamente y após a primeira replicação ser feita) . Isso funcionou perfeitamente para conjuntos de dados regulares com todas as informações de instantâneos históricos.

    
por 16.03.2015 / 00:31
0

Você pode usar zfs send ... assim você facilmente "salva" tudo o que está no sistema de arquivos. Incluindo, mas não se limitando a, arquivos ocultos, atributos de arquivos, atributos estendidos, zvols, snapshots, etc.

Na verdade, você pode fazer o sistema de arquivos "réplica" na sua unidade de disco sobressalente, montá-lo ou mesmo inicializá-lo, para vê-lo completo, viável e inicializável e, em seguida, continuar destruindo o conjunto antigo.

Mas eu prefiro criar o UFS em sua unidade sobressalente e salvar o ZFS em um arquivo. Você não pode montá-lo para verificar, mas sim dizer que é um pouco mais seguro.

Apenas cruze os dedos para que sua unidade de reposição não morra durante esse esforço.

    
por 16.03.2015 / 00:48