Visão geral
Atualmente tenho um servidor CentOS 7 configurado como um host de VM usando o KVM. Ele possui uma matriz ZFS de 4 TB (2 x 2 TB) que será usada para VM e armazenamento de arquivos. Isso foi configurado como parte de um processo para reconstruir um domínio do AD a partir do zero no Server 2012 R2 (o domínio atual de 2008 R2 deixado pela antiga TI é um pouco confuso e executado em uma era do Core 2 antigo máquina desktop). Precisamos do Server 2012 R2 para implementar a Diretiva de Grupo. Há uma mistura de máquinas 7 / 8.1 / 10, mas tudo estará rodando o Windows 10 dentro de alguns meses. Os usuários têm um compartilhamento no servidor que é montado em sua máquina como Z:
e também acessam compartilhamentos no servidor que contêm documentos usados por vários departamentos. Também vamos implementar um novo sistema de backup (Crashplan / Carbonite / Mozy são as opções mais prováveis neste momento).
Escala
A rede consiste em cerca de 55 computadores no escritório principal, além de outros computadores fora do escritório que serão conectados posteriormente via OpenVPN. No total, estou vendo cerca de 150 computadores. Há também pelo menos muitos usuários. Além disso, o novo domínio terá algo em torno de uma a duas dúzias de grupos de segurança.
Opções
Estou tentando decidir como lidar melhor com armazenamento e compartilhamento de arquivos para a rede. Especificamente, se devo me preocupar com o Samba ou não, e se não, se devo armazenar os arquivos em uma imagem de disco ou criar um volume de dados na matriz do ZFS que é passado para a VM do Server 2012 como um dispositivo de armazenamento de bloco bruto .
Armazenar arquivos em uma imagem de disco para uso de uma VM sempre pareceu uma solução ruim para mim. É simples e vai funcionar, mas eu particularmente não gosto disso. Se eu precisar transferir esses arquivos para um servidor Windows, eu tenho que montar a imagem ou inicializar a VM. Ter todos os arquivos em uma única imagem é conveniente para a transferência, mas é um problema se a transferência for interrompida. Isso pode ser resolvido usando algo como o rsync, mas isso significa que estou limitado a transferir apenas para outra caixa do Linux. O outro problema com o uso de uma imagem de disco é que estou restrito a executar o software de backup dentro da VM (senão perco o acesso no nível de arquivo). Embora eu suponha que eu provavelmente pudesse montar a imagem somente leitura no host, ou adicionar a imagem a outra VM com acesso somente leitura especificamente para o software de backup.
Eu sei que o ZFS permite criar volumes de dados que funcionam como dispositivos no nível de bloco que podem ser passados para a VM como uma unidade física. Isso basicamente significa ter uma partição NTFS no array ZFS. Eu poderia dar acesso somente leitura a esse volume a outra VM que manipularia o software de backup ou eu poderia montar o volume como somente leitura na máquina bare-metal e possivelmente executar o software de backup dentro de um contêiner Docker. Eu também poderia transferir os arquivos para outro host Linux por meio de um instantâneo do ZFS. Transferir para um host Windows ainda significaria montar o volume ou iniciar a VM.
A opção final é armazenar todos os arquivos diretamente no array do ZFS e executar o Samba para compartilhá-los pela rede. Eu estou esperando ter uma hierarquia de permissões bastante complexa, e estou preocupado em gerenciar isso através do Samba (eu só usei o Samba em ambientes de servidor doméstico). Por outro lado, sei que posso gerenciar efetivamente a hierarquia no Server 2012 R2, especialmente com o Powershell. A outra coisa a considerar é que posso executar o Samba diretamente no host da VM, dentro de uma VM ou dentro de um contêiner do Docker, por isso é bastante flexível.
Pergunta
Qual dessas opções me dará mais flexibilidade a longo prazo, sem introduzir sobrecarga ou complexidade desnecessárias? Eu quero manter minhas responsabilidades tão separadas quanto possível, então eu gosto da idéia de ter o Samba distribuindo os arquivos enquanto o Server 2012 R2 lida com AD e Group Policy (embora eu também possa executar uma instância separada do Server 2012 R2 em vez do Samba para isso finalidade). No entanto, como eu disse, hesito em usar o Samba em uma rede dessa escala. Também estou preocupado com dificuldades em solucionar problemas de permissões de arquivos se eu usar o Samba (o Windows já é ruim o suficiente e é a opção nativa).
Quaisquer outras possíveis soluções também são bem-vindas.