Imagens de disco da Máquina Virtual no sistema de arquivos ZFS: algumas perguntas

3

Plano de fundo

Eu uso o Ubuntu 16.04.4 LTS (convertido para Server from Desktop) instalado em um sistema de arquivos ZFS que está em um SSD Samsung 840 Evo de 120 GB. Eu também tenho quatro HDDs que são dois espelhos (espelhos de 1 TB e 2 TB) que também são ZFS.

Eu uso o sistema para armazenamento, mas também virtualização. Eu uso a virtualização KVM no Ubuntu e para uma das VMs eu armazeno a imagem de disco do VM OS (que é montada em '/') no SSD e a imagem do disco de armazenamento (que é montada em '/ home') no HDD de 1TB espelho.

O sistema tem 16 GB de RAM ECC e no SSD há um volume SWAP de 8 GB (compactação ZLE). A VM é configurada em 8192 MB, portanto, com outros serviços no host, ela fornece aprox. 7,8 GB para o ZFS ARC.

Tenho notado que, ao gravar muitos dados nas VMs para as imagens de disco da VM, o ARC do ZFS aumenta de tamanho. Embora esse seja o comportamento esperado do ARC, já que os dados estão obtendo resultados, tenho algumas perguntas a serem feitas sobre o uso do ZFS em relação ao armazenamento e uso de imagens de VMs sobre as quais não tenho certeza abaixo.

Caso

Por favor, observe o seguinte:

  • As imagens de disco da VM não armazenam nenhum dado importante - elas são usadas apenas para hospedagem e experimentação, portanto, a integridade não é tão importante;
  • As imagens de disco são armazenadas em um sistema de arquivos dentro de um sistema de arquivos - portanto, se o diretório for '/ MyMirror / VM /', 'MyMirror' é o sistema de arquivos inicial e o último ('VM') é o sistema de arquivos
  • As imagens de disco são do formato RAW (* .img).

Perguntas

Tendo em conta o exposto e considerando o caso ...

  1. Existe algum benefício em ter as imagens de disco da VM no ZFS em comparação com o ext4?
  2. Existe algum motivo / benefício lógico para o ARC armazenar em cache a imagem de disco da VM?
  3. Estou fazendo certo?

O número 2 está me incomodando mais no momento, pois estou lutando para ver a lógica e quaisquer benefícios potenciais do ARC armazenando em cache as imagens de disco. Eu poderia estar perdendo completamente o ponto (talvez uma mente nebulosa), mas como é o cache da imagem de disco no host ajudando o host ou mesmo a própria VM?

Eu entendo que o número 3 pode ser mais uma coisa de opinião (o que eu queria evitar), mas não tenho certeza se estou indo sobre isso da maneira "certa". Talvez haja uma maneira melhor, levando em conta minha configuração, para armazenar e usar VMs.

Obrigado antecipadamente!

    
por Joel 27.02.2018 / 22:41

1 resposta

2
  1. Há algum benefício em usar o ZFS para o armazenamento em disco da VM?

Possivelmente. O ZFS possui compactação, dedução, snapshots e clones integrados e muitos outros recursos que você pode usar para reduzir o espaço ocupado pelo armazenamento, replicar com mais facilidade esses sistemas de arquivos em outro sistema e assim por diante. Isso realmente depende do seu caso de uso. Não ser um fanático;), mas talvez ter a flexibilidade de usar esses recursos, se você precisar deles, seja suficiente para dizer "sim"?

  1. O ARC está fazendo alguma coisa útil?

Pelo que você disse, não sei dizer se você tem muitas VMs e, em caso afirmativo, se elas compartilham blocos entre si (por meio de snapshots / clones ou dedup). Em caso afirmativo, o cache pode beneficiá-lo, pois ter os dados em um beneficiará o desempenho de todos os outros. Caso contrário, os benefícios provavelmente seriam mínimos, porque os sistemas operacionais convidados geralmente têm um cache de páginas de tudo que leram ou gravaram de qualquer maneira. No entanto, essa memória será removida rapidamente se houver alguma pressão do sistema operacional host, porque ela só será acessada uma vez (e estará na lista LRU no ARC), portanto, não me preocuparia com o espaço desperdiçado. / p>

  1. Estou fazendo certo?

Depende totalmente do seu caso de uso. Para o caso simples que você descreveu, parece bom, mas, novamente, praticamente qualquer coisa seria. Se você estava tentando criar um dispositivo de armazenamento para um grande farm de VMs:

  • você pode considerar o uso de ZVOLs do ZFS para seu armazenamento em vez de arquivos dentro de sistemas de arquivos ZFS
  • você provavelmente executaria suas VMs em um servidor diferente do seu armazenamento (para poder dimensionar mais facilmente a RAM e a CPU, além de poder isolar o desempenho do armazenamento do desempenho da VM); Nesse caso, você expõe os ZVOLs como alvos iSCSI ou FibreChannel
  • para desempenho, talvez você queira adicionar muito mais RAM, habilitar a dedução e compactação para economia de armazenamento (na RAM e no disco), adicionar um dispositivo SLOG dedicado para gravações de sincronização mais rápidas, adicionar um dispositivo L2ARC para expandir o cache para SSD
  • para resiliência de dados que você provavelmente desejaria ativar o RAID-Z ou semelhante
  • para permitir o tempo de inatividade de manutenção, você provavelmente desejaria outro host de armazenamento em espera para replicação de dados usando zfs send e zfs receive e, em seguida, algum modo de passar os hosts de VM para apontar para o novo local talvez outra maneira de fazer failover; essa é apenas uma opção)

Você pode ficar praticamente arbitrariamente complexo com sua implantação, se ela for séria o suficiente. Mas, se você não tem nenhuma reclamação sobre como seu sistema funciona agora, qual o problema em mantê-lo do jeito que está?

    
por 28.02.2018 / 08:39