Como atualizar uma matriz ZFS RAID-Z para discos maiores no OpenSolaris?

11

Estou pensando em instalar o OpenSolaris no meu servidor doméstico (agora ele possui Linux) e gostaria de saber como me preparar para atualizar o servidor para ter discos rígidos maiores no futuro. Agora, o servidor possui 4x drives SATA de 400 GB e eu instalaria o OpenSolaris com o ZFS RAID-Z. Algum tempo depois, neste ou no próximo ano, eu vou atualizar os drives para talvez 4x drives SATA de 1 TB.

Como posso atualizar e aumentar o tamanho da partição com o ZFS? É uma operação simples e indolor (por exemplo, substitua uma unidade de cada vez e o ZFS será redimensionado automaticamente para usar todo o espaço) ou são necessárias algumas etapas especiais? Isso pode ser feito sem desligar o sistema?

Esko Luontola
fonte

Respostas:

17
  1. Unidade off-line nº 1.
  2. Substitua a unidade antiga pela nova, de alta capacidade.
  3. zpool substitua a unidade.
  4. Aguarde a substituição ser reconstruída.
  5. Vá para a etapa 1 e repita para cada unidade sucessiva na matriz.

Pode ser necessário exportar e importar o zpool assim que esse procedimento for concluído; a piscina mostrará o tamanho aumentado. Não é necessário tempo de inatividade, mas se uma unidade for para o sul enquanto você estiver atualizando sua matriz, você perderá tudo, pois, com quatro discos totais, você presumivelmente tem uma configuração 3 + 1. (As chances não são tão altas, mas Murphy nunca dorme.)

A fonte oficial: "Substituindo dispositivos em um pool de armazenamento" no Guia de Administração do ZFS . O Guia de boas práticas do ZFS também é útil.

Brad Ackerman
fonte
+1 para "Talvez você precise exportar e importar o zpool assim que esse procedimento for concluído" - o procedimento de substituição não funcionava para mim até que eu executasse essa ação.
22412 Josh
Você não precisa reimportá-lo se a autoexpandopção estiver definida como onpara o pool.
bahamat 2/09/12
15

Gostaria de acrescentar que a substituição de uma unidade não defeituosa torna o ataque menos à prova de falhas. Você pode realmente preencher a unidade substituta primeiro com dados antes de remover a unidade menor. Então a ordem se tornará.

  • Anexar unidade maior (pode até ser através de usb)
  • zpool replace smallerdrive biggerdrive
  • esperar
  • quando estiver pronto, retire a unidade menor ou o que você precisar fazer.
  • repetir
  • e no final, você pode precisar executar zpool set autoexpand=on pool

Agora murphy é menos problemático

Josh
fonte
Para as pessoas que fazem isso no Linux: substitui cada unidade com êxito, mas não aumentava o espaço durante a execução autoexpand=on. Eu precisava executar zpool online -e poolname devicenamepara cada dispositivo, e então funcionou. A importação / exportação não fez nada.
22618 Peterdk