Raciocínio por trás da hospedagem de imagens de discos virtuais no sistema de arquivos BTRFS

10

Eu tenho lido sobre o BTRFS e o ZFS há algum tempo e, embora eu aprecie os benefícios do CoW ao hospedar arquivos importantes, atualmente estou intrigado com o seguinte dilema:

Dado que o ZFS e o BTRFS parecem sofrer degradação de desempenho ao hospedar arquivos grandes sujeitos a gravações aleatórias (por exemplo, QCOW2, VDIs, etc.), por que alguém usaria o BTRFS como um FS de escolha para hospedar VMs?

Eu sei que no caso do BTRFS você pode desligar seletivamente o CoW usando o chattr, ou a opção de montagem nodatacow, reduzindo a degradação imposta pela fragmentação e CoW ...

No entanto, de acordo com Redhat isso também "desativa a verificação de checksum de dados e metadados, resultando em integridade de dados reduzida." (além da compactação perdida e naturalmente a tão desejada CoW).

Com base nisso, eu pergunto: Por que alguém escolheria o BTRFS sobre o XFS sobre o MD RAID?

    
por Andre de Miranda 22.01.2014 / 13:08

4 respostas

10

Se o caso de uso principal estiver armazenando imagens de VM ou bancos de dados, e você não estiver interessado em aceitar os possíveis problemas de desempenho para obter as vantagens de integridade de dados do btrfs, não consigo pensar em nenhum motivo para escolher o btrfs sobre xfs ou ext4.

Desativar o copy-on-write apenas para o diretório de imagens da VM (usando o chattr + C) é mais relevante quando o armazenamento de imagens da VM é apenas um dos muitos usos que você tem para o seu sistema de arquivos. Então, pode ser muito conveniente apenas desabilitar o copy-on-write para esse único diretório, mantendo todas as vantagens do btrfs para o resto do sistema de arquivos.

    
por 11.04.2015 / 10:43
4

O BTRFS tem um formato de disco diferente que superará outros sistemas de arquivos em alguns padrões de gravação. Em particular, uma grande quantidade de esforço foi gasta para melhorar a forma como os metadados são gravados no disco e suporta alguns recursos avançados, como soma de verificação de dados, compactação e instantâneos. Para arquivos grandes, melhorar o desempenho de metadados geralmente não é importante.

Comparado ao ZFS, o BTRFS é uma solução mais simples e melhor suportada no Linux. A principal desvantagem é que ela também não escala (ao adicionar um grande número de discos) e não possui o mesmo conjunto de recursos.

Comparado ao XFS, será uma solução de desempenho inferior. Ou seja ele levará mais tempo do processador para gravar um bloco de dados no disco e será limitado no rendimento máximo. Isso pode ser reduzido até certo ponto, fazendo coisas como desabilitar a verificação de soma de verificação, mas você perde o benefício principal do BTRFS sobre o XFS, que é uma melhor informação de metadados. Ou seja checksumming e journaling diferente (que pode ser melhor em algumas situações).

Em termos de suporte ao Copy On Write (COW), o XFS favorece o desempenho por ser estritamente COW. Ou seja O XFS tem ótimos metadados e recursos de registro no diário em termos de escalabilidade e geralmente não sobrescreve os dados do arquivo na gravação, com a exceção de permitir que os blocos de disco existentes sejam sobrescritos se o aplicativo especificamente solicitar a sobrescrever esses dados. Isso pode ser bom no caso de uma VM, já que a alocação de disco inicialmente pode ser contígua e, nesse caso, permanecerá contígua durante a vida útil da VM.

    
por 22.01.2014 / 20:02
4

Usando o BTRFS, mesmo com nodatacow e similares, você ainda pode criar instantâneos de dados manualmente com CoW de comportamento, por isso é rápido e não consome muita memória. Além disso, esses snapshots são mais flexíveis do que usar o LVM, porque você não precisa reservar espaço abaixo do sistema de arquivos que o sistema de arquivos não conhece e não pode ser usado se não for necessário. Assim como no ZFS, os snapshots podem ser enviados e recebidos pela rede, o que pode ajudá-lo a melhorar sua estratégia de backup. Então, mesmo com nodatacow BTRFS parece ser superior ao usar o LVM.

    
por 16.05.2017 / 15:16
0

Depois de ter trabalhado com plataformas de computação em nuvem, passei a adotar sua visão de máquinas virtuais como um contêiner de dados e funcionalidade, onde a vm real é de menor importância.

Eu prefiro ter bons processos de backup-restore e install-deploy no lugar e me preocupo menos com a integridade da VM e mais com o desempenho.

Ou seja. vá para o JFS / XFS / EXT4 sobre o LVM sobre o MD-raid em vez do BTRFS. Certifique-se de nunca armazenar nada que não tenha backup na VM por um período de tempo mais longo ... e tenha scripts e procedimentos para obter uma nova instalação do backup da VM dentro de um prazo razoável caso algo aconteça.

Mas isso é mais um cenário de desenvolvimento / experimento do que qualquer outra coisa.

    
por 13.06.2018 / 16:10