Posso criar um único espelho zfs combinando discos?
mypool
mirror1
disk1 (2TB)
disk2 (2TB)
combined
disk3 (1TB)
disk4 (1TB)
Em outras palavras, disk3 e disk4 devem conter os mesmos dados que disk3+disk4 combinados.
Isso é possível? Ou algo semelhante é possível? Em caso afirmativo, quais são os comandos que me tiram da minha configuração atual:
mypool
mirror1
disk1 (2TB)
disk2 (2TB)
para a configuração acima?
Desculpe, mas não, eu não acho que você pode.
Mas se você está interessado em experimentar, primeiro
CUIDE DA SUA PISCINA!
Este post é um exercício acadêmico projetado para lhe dar ideias e não oferece nenhuma garantia de que funcionará no mundo real, e você é explicitamente advertido contra incorrer em perda de dados causada por ações que você toma com base nessas sugestões.
Eu sei com certeza que
zpool
irá avisá-lo contra misturar vdevs espelhados e raidz. Veja a-f
bandeira dezpool add
por exemplo. Seu vdev propostocombined
é essencialmente um "raidz-0
" ou vdev concatenado, enquantomirror1
obviamente é um espelho.Com tudo isso dito, depois de fazer backup de seu pool, estude a página do manual de perto e observe os
-n
sinalizadores em alguns comandos. Isso permitirá que você veja qual será o efeito de um comando sem realmente fazer nada em seu pool.Mais evidências no caso contra sua solução conforme proposta são encontradas na
zpool
página do manual:No entanto , se você estiver no FreeBSD, poderá usar
gstripe
para concatenardisk3
edisk4
criar ocombined
dispositivo. Você pode adicionar esse dispositivo ao espelho, pois o ZFS o verá apenas como outro disco.Aqui está uma sugestão de como experimentar isso, supondo que você esteja executando o ZFS no FreeBSD. Usaremos drives simulados de 2GB ao invés de TB, mas fora isso....
Crie pseudo-dispositivos md1 a md4 correspondentes aos arquivos drive[1-4]:
Seu espelho existente é simples de criar:
Aqui é onde você está atualmente preso. Com este sandbox, agora você pode experimentar vários comandos usando o sinalizador
zpool
's-n
, mas acho que nada funcionará, exceto este:É provável que isso aconteça com você também, se suas unidades de 2 TB tiverem exatamente o dobro do tamanho das unidades de 1 TB. A pequena perda de espaço na concatenação das duas unidades de 1 TB resulta em uma
combined
unidade ligeiramente menor do que qualquer uma das duas unidades nativas de 2 TB.diskinfo(8)
confirma quemd1
emd2
cada um tem 4194304 setores, masstripe/combined
é 256 setores menor, com apenas 4194048:Mas na minha caixa de areia de jogo, posso corrigir esse problema.
Primeiro, vou eliminar a
combined
tarja e seus psuedo-devices /dev/md3 e /dev/md4:Agora posso recriar disk3 e disk4 para torná-los ligeiramente maiores que 1 GB, recriar os dispositivos /dev/md3 e md4, juntá-los para criar o dispositivo /dev/stripe/combined e anexar esse dispositivo ao espelho: