É possível executar uma instância virtualizada de janelas em um servidor com ZFS nativo?

4

Estou intersted na criação de um servidor de home / render pc. Meu objetivo é ter 8 ou mais HDDs para armazenamento e redundância e usar o poder de processamento disponível do servidor para renderizar vídeos no Adobe Premiere em um ambiente Windows com o auxílio de uma GPU. Eu sei que o unRAID pode fornecer essa funcionalidade básica, mas eu preferiria usar o ZFS, pois ele oferece melhor desempenho e redundância.

É possível usar um hipervisor baseado em linux ou freeBSD que mantém o conjunto de unidades ZFS que também permite que o Windows seja executado com passagem PCI-e para a GPU? Ou tal sistema seria muito ineficiente?

As especificações de trabalho do servidor são 2x E5-2670 e 96 GB de RAM DDR3.

    
por GuardedAirplane 14.10.2016 / 05:40

2 respostas

0

Não se trata apenas de ser ineficiente (embora também seja o caso).

Embora você possa usar o ZFS dentro de uma máquina virtual, o ZFS deve ser executado sozinho. Se os seus discos virtuais estiverem sendo executados sobre um sistema de arquivos herdado, a principal vantagem de usar o ZFS, o reparo automático de dados danificados, desaparecerá. O pool do ZFS está dentro do disco virtual e pode reparar os dados armazenados naquele pool, mas se o próprio disco virtual (armazenado no sistema de arquivos tradicional do sistema host) estiver danificado, não há nada que possa ser feito sobre isso. Usá-lo em um ambiente virtualizado provavelmente causaria problemas com o ZFS executando algumas de suas tarefas automatizadas, além de adicionar algumas limitações de recursos.

Seria melhor simplesmente anexar uma cpu simples / de baixo custo a uma placa hw raid decente e dedicá-la como uma caixa NAS do ZFS.

    
por 14.10.2016 / 05:50
0

Is it possible to use a linux or freeBSD based hypervisor that maintains the ZFS drive pool that also allows windows to run with PCI-e passthrough for the GPU? Or would such a system be too inefficient?

Sim, é possível contanto que você tenha vt-d (suas CPUs fazem).

Você basicamente pode fazer o seguinte:

  1. O controlador de armazenamento é virtualizado:
    • Instale qualquer hypervisor (ESXi, KVM, HyperV) de sua escolha no bare metal (observe que alguns têm limitações, por exemplo, o ESXi não repassa as placas de vídeo do consumidor da Nvidia, apenas da AMD)
    • Crie uma pequena VM de armazenamento com um SO de sua escolha que suporte ZFS (Solaris, derivados do Illumos, FreeBSD, Linux), atribua seu HBA a essa máquina e configure seus discos como faria no bare metal dentro da VM de armazenamento
    • Compartilhe seu armazenamento na rede interna do hipervisor (NFS ou iSCSI) e crie um novo pool de armazenamento de VMs nele
    • Crie sua VM do Windows e quaisquer outras VMs nesse novo pool de armazenamento da VM, atribua sua GPU à sua VM do Windows, instale como de costume
  2. Controlador de armazenamento e hipervisor estão na mesma máquina:
    • Configure seu sistema de escolha em bare-metal, ele deve suportar o ZFS e a virtualização com passagem de GPU (isso praticamente o limita ao KVM no Linux atualmente)

A primeira solução é mais flexível na escolha do hipervisor e sistemas operacionais (escolha o melhor SO para cada tarefa, não é necessário misturar tarefas em VMs), mas é mais complicada de configurar (devido à camada de rede de armazenamento adicional necessária) e para gerenciar (porque você não pode efetuar login diretamente no hypervisor). Em teoria, o segundo ponto também seria verdadeiro para a segunda solução, mas acho que você pode hackear o KVM para que você possa usar o próprio hipervisor (dom0) (embora com desvantagens de segurança).

    
por 14.10.2016 / 17:10