zpool create data mirror /dev/sda /dev/sdb
zfs create data/001
Is this the set of commands I should have run, or can still, while preserving data? The first line looks like it would make a new pool over the top of the existing.
Isso é o que você deveria ter feito. Fazê-lo agora apenas lhe dirá que não é possível usar discos que já fazem parte de um pool para um novo pool sem destruir o antigo ou remover os discos dele (exceto o último, não é possível se usar o raidz em vez de espelhos). Também pode ser um bom ponto para pensar sobre sua estratégia de backup, se você não tiver uma.
I am new to zfs and find the split of functionality between zfs and zpool seems arbitrary, likely because of some misunderstanding of the technology
A Oracle tem um guia detalhado sobre como você usa pools e sistemas de arquivos, e há também algumas práticas recomendadas condensadas. Para resumir em termos muito amplos, existem três camadas:
- Você cria dispositivos virtuais (vdevs) a partir de dispositivos normais (normalmente discos, também podem ser arquivos ou partições) com um determinado recurso de redundância (básico, espelhado ou raidz).
- Você cria pools de armazenamento (zpools) a partir de vários vdevs, que são sempre distribuídos (concatenados) e oferecem o tamanho somado desses vdevs como armazenamento contínuo.
- Você cria sistemas de arquivos ou zvols dentro desses pools. Os sistemas de arquivos podem ser aninhados uns dentro dos outros. Em teoria, o próprio pool também é gravável, mas é recomendável não fazer isso por causa da herança mais fácil de gerenciamento / propriedade.
Minhas recomendações pessoais para essas camadas:
- Use discos do mesmo tamanho, velocidade e qualidade para cada vdev. Prefira os espelhos, pois eles são mais flexíveis e mais rápidos que o raidz. Evite vdevs básicos porque eles podem matar todo o seu pool se um falhar.
- Crie pools de armazenamento para vdevs semelhantes, por exemplo, um pool com SSD vdevs (espelhos) para armazenamento de VM e um pool com HDD vdevs (raidz2) para armazenamento de backup mais lento, porém maior. Combiná-los tornaria o pool tão lento quanto o HDD e tão perigoso quanto o espelho único para todos os dados, por isso não é uma boa ideia.
- Crie quantos sistemas de arquivos você desejar e use a herança para gerenciá-los facilmente (propriedades como compartilhamento SMB ou NFS podem ser herdadas da mesma maneira que as cotas ou as configurações gerais da ACL). Seu design depende da sua organização e estrutura, mas as regras comuns são "um sistema de arquivos para cada diretório inicial do usuário" e "um sistema de arquivos para cada compartilhamento de rede independente". Evite dividir os sistemas de arquivos se o conteúdo dentro for basicamente o mesmo tópico, mas a movimentação é freqüente, já que a movimentação entre sistemas é sempre uma operação completa e cara, mesmo no mesmo pool. Você só precisa de zvols se exportar o armazenamento em bloco ou com o KVM, por isso comece com um sistema simples (os sistemas de arquivos também podem ser usados como armazenamento em bloco).
- Use diretórios dentro dos sistemas de arquivos como faria normalmente (definir ACLs, segregar dados, etc.).