O espelhamento é o caminho a seguir aqui. Ele permitirá que você adicione facilmente outros pares espelhados para estender seu volume existente. Sem tempo de inatividade, sem truques, basta adicionar mais discos e você está no seu caminho. A menos que você realmente precise dos 6TB de 4x2TB em RAIDZ, o 4TB de 4x2TB espelhado é uma aposta melhor. O espelhamento também tem o benefício de sobrecarga de CPU reduzida, melhor desempenho e recuperação mais fácil em caso de falha.
Mas, como as pessoas preferem viver no limite e economizar alguns dólares, aqui está como migrar seus dados de um espelho de duas unidades para uma configuração de quatro unidades de raidz:
- Crie um espelho de 2 unidades
zpool create mirror cXt1d0 cXt2d0 yourPool
- Encha seus discos com dados
- Compre unidades 3, 4 (mesmo tamanho das unidades 1, 2)
- Respire fundo, você está prestes a perder a redundância porque você é barato.
- Quebre o espelho removendo a unidade 2:
zpool detach cXt2d0 yourPool
- Crie um arquivo esparso do mesmo tamanho de suas unidades:
mkfile -n 500GB /path/file.img
- Crie um pool raidz de quatro unidades usando as unidades 2, 3 e 4 e o arquivo esparso:
zpool create raidz cXt2d0 cXt3d0 cXt4d0 /path/file.img newPool
- Degrade o array raidz desanexando o arquivo esparso:
zpool detach /path/file.img newPool
- Copiar dados do seuPool para newPool com zfs send / zfs recv (ou apenas rsync / cp it)
- Destrua o pool espelhado original:
zpool destroy yourPool
- Anexe a unidade 1 ao pool raidz:
zpool attach cXt1d0 newPool
- Aguarde até que o ZFS atualize a unidade (levará horas, não se engane se o status% não estiver em movimento, se houver um erro. Apenas deixe-o funcionar.)
- Ao expirar profundamente, você terá novamente um pool redundante.