Como posso adicionar um disco a um raidz zpool existente?

21

Eu tenho um servidor OpenSolaris com um zpool backupzcomposto por quatro unidades SCSI:

-bash-3.2# zpool status backupz
  pool: backupz
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        backupz     ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c7t0d0  ONLINE       0     0     0
            c7t1d0  ONLINE       0     0     0
            c7t2d0  ONLINE       0     0     0
            c7t3d0  ONLINE       0     0     0

errors: No known data errors

Quero adicionar uma quinta unidade ... mas zpool add backupz raidz c7t4d0não está funcionando ...

-bash-3.2# zpool add backupz raidz c7t4d0
invalid vdev specification: raidz requires at least 2 devices

Não posso ter uma configuração raidz com 5 dispositivos? Preciso adicionar dois dispositivos ao mesmo tempo? ou estou fazendo algo totalmente incorreto aqui?

Josh
fonte

Respostas:

14

Você não pode expandir um raidz vdev existente, é necessário removê-lo e criá-lo novamente com as novas unidades. Veja a outra resposta para obter mais detalhes.

Nota lateral: Alguém realmente descobriu que é tecnicamente possível adicionar unidades a um raidz, mas a funcionalidade não foi implementada. O mesmo acontece com a remoção de um disco.

Chris S
fonte
5
Ah, oh. Se for esse o caso, tomei uma decisão terrível em algum lugar! = o
Josh
2
-1 É claro que um zpool pode ser expandido. O que você acha que o zpool addcomando faz? A limitação em que Josh está se deparando é que você não pode alterar a composição de um raidz vdev ("raidz1" no exemplo dele). Você pode adicionar novos dispositivos ao próprio pool. Esta é uma das razões pelas quais são preferidos vdevs espelho: serverfault.com/questions/63809/zfs-mirror-vs-raid-z
Wim Coenen
8
@ Wim, estou ciente de que você pode adicionar vdevs adicionais a um pool. Foi um erro de digitação menor, e não há razão para pular sobre mim assim.
Chris S
Legal, eu não sabia que alguém havia encontrado uma maneira de contornar a arquitetura para permitir a adição de unidades! Você tem um link onde eu possa ler mais sobre ele?
Lindhe
31

Veja este tópico de uma das listas do FreeBSD: http://lists.freebsd.org/pipermail/freebsd-fs/2009-June/006327.html

Para citar Dan Naumov,

Para reiterar, você não pode simplesmente adicionar uma única unidade de disco a um pool raidz1 ou raidz2. Essa é uma limitação conhecida (você pode verificar com os documentos do SUN ZFS). Se você possui um raidz existente e DEVE aumentar os recursos de armazenamento desse pool em particular, você tem 3 opções:

1) Adicione um raidz da mesma configuração ao pool (pense em 3 raidz de disco + 3 raidz de disco ou 5 + 5, por exemplo)

2) Substitua cada (e todo) disco do seu pool raidz, um por um, deixando-o resilver após inserir cada disco atualizado

3) Faça backup de seus dados, destrua seu pool e crie um novo pool raidz com uma quantidade maior de discos.

brent
fonte
3
+1: Obrigado @ brent! Sua resposta foi mais detalhada que a de Chris, no entanto, ele estava me fornecendo informações detalhadas no chat, então eu aceitei a resposta dele. Agradeço a informação!
21410 Josh
1
Por que alguém deve adicionar um RAIDZ da mesma configuração e não pode, por exemplo, adicionar um RAIDZ com 8 discos a um com 3? Os dados não estão distribuídos em todos os VDEVs, também conhecidos como RAIDZs?
Thorsten Schöning
@Thorsten Schöning A resposta é desempenho, o ZFS funciona melhor com VDevs do mesmo tamanho: serverfault.com/a/564436/333397
Thorsten Schöning