Conselhos para inserir discos adicionais em um pool espelhado do ZFS?

1

Estou executando o FreeBSD 9.1 com root em um pool espelhado do ZFS.

No início, o pool (rotulado zroot ) tem um total de 1TB, abrangendo dois drives de 1TB.

Recentemente, nos deparamos com problemas de espaço em disco nos quais o conjunto é 99% alocado com cerca de 15G livres. Cerca de 800G está ocupada apenas no sistema de arquivos /home .

Para remediar isso, adicionamos 2 unidades de 1 TB.

Gostaríamos de manter esses drives espelhados. A questão agora permanece, como devemos adicionar as unidades adicionais 2x 1TB ao pool?

  1. Devemos adicioná-los ao pool zroot existente e alocá-lo. Isso parece ser uma má ideia, já que o pool original foi projetado para ser executado como o sistema de arquivos raiz.

  2. Devemos criar um novo pool com um conjunto espelhado de unidades e, em seguida, criar um novo /home2 e usuários de alta utilização de transição para essa partição?

Para nós, a extensão dos recursos do ZFS não está clara. Estamos nos inclinando para a opção (2), uma vez que não adiciona dependências desnecessárias no espelho raiz. No entanto, gostaríamos de receber informações e ideias sobre o curso de ação a tomar.

Obrigado.

    
por n n 10.06.2013 / 09:56

2 respostas

4

Should we add them to the existing zroot pool and allocate it. This seems like a bad idea since the original pool was designed to run as the root filesystem.

Primeiro, os sistemas de arquivos zpools e zfs são conceitos separados (você não pode separá-los, mas deve, ao pensar em sua configuração). Portanto, os pools não são "projetados para serem executados como o sistema de arquivos raiz", há um sistema de arquivos no zpool que é configurado para ser executado como o sistema de arquivos raiz.

Sendo que este zpool mantém o sistema de arquivos raiz, ele deve ser um único vdev não redundante ou um único espelho. Então você não pode simplesmente adicionar mais drives.

Should we create a new pool with a mirrored set of drives, and then create a new /home2 and transition high-usage users to that partition?

É muito mais fácil criar sistemas de arquivos zfs para cada usuário e montá-los no local da unidade de origem. Isso elimina a idéia de /home2 janky / não-padrão e permite que você defina cotas, reservas e muito mais na pasta pessoal de cada usuário.

Quando configuro um servidor ZFS, eu uso dois / três discos menores para o zpool de inicialização (eu tenho discos de 100-320 GB espalhados, então é isso que eu uso normalmente), ou fatia um pedaço do armazenamento principal drives (de aproximadamente o mesmo tamanho, usando partições GPT). O restante da unidade obtém uma partição grande e isso vai para um zpool de armazenamento.

Aqui está minha configuração do servidor doméstico, por exemplo:

  pool: tank0
 state: ONLINE
  scan: scrub repaired 0 in 1h39m with 0 errors on Sat Jun  8 07:59:40 2013
config:

        NAME              STATE     READ WRITE CKSUM
        tank              ONLINE       0     0     0
          mirror-0        ONLINE       0     0     0
            gpt/tank0-d0  ONLINE       0     0     0
            gpt/tank0-d1  ONLINE       0     0     0

errors: No known data errors

  pool: tank1
 state: ONLINE
  scan: scrub repaired 0 in 3h11m with 0 errors on Mon Jun  1 08:57:39 2013
config:

        NAME              STATE     READ WRITE CKSUM
        tank1             ONLINE       0     0     0
          raidz1-0        ONLINE       0     0     0
            gpt/tank1-d0  ONLINE       0     0     0
            gpt/tank1-d1  ONLINE       0     0     0
            gpt/tank1-d2  ONLINE       0     0     0
            gpt/tank1-d3  ONLINE       0     0     0
    
por 11.06.2013 / 15:37
0

Primeiro, deixe-me adivinhar sua configuração atual. Você usou zpool add para adicionar novas unidades ao pool? Se assim for o seu zpool deve ser semelhante:

zpool:
  mirror:
    disk1
    disk2
  disk3
  disk4

Nesse caso, para espelhar suas novas unidades, você deve fazer isso:

zpool attach <pool-name> <disk3> <disk5>
zpool attach <pool-name> <disk4> <disk6>

Isso lhe dará um pool composto de três espelhos, dois drives por cada.

Na minha opinião, seria muito melhor usar zraid2 ou zraid3 para essa configuração, você obterá um pool mais rápido e melhor confiabilidade. Na sua configuração atual, você pode perder duas unidades para matar um pool. Com zraid2 você também pode perder duas unidades, mas você terá 1TB de espaço extra. Com o zraid3, você pode perder com segurança três unidades.

Outra opção que você pode considerar é ativar a compactação no seu pool. Não ative a compactação para o sistema de arquivos raiz!

    
por 11.06.2013 / 15:13