A opção de montagem nodatacow deve ser usada no btrfs em um servidor de banco de dados? Desativa as somas de verificação de corrupção de bits?

2

Eu estou olhando para implementar o btrfs na configuração do RAID 10 para um servidor de banco de dados e estou confuso sobre a opção nodatacow.

De acordo com o link :

Files with a lot of random writes can become heavily fragmented (10000+ extents) causing trashing on HDDs and excessive multi-second spikes of CPU load on systems with an SSD or large amount a RAM. On servers and workstations this affects databases and virtual machine images. The nodatacow mount option may be of use here, with associated gotchas.

A documentação indica então que a opção nodatacow é:

Do not copy-on-write data for newly created files, existing files are unaffected. This also turns off checksumming! IOW, nodatacow implies nodatasum. datacow is used to ensure the user either has access to the old version of a file, or to the newer version of the file. datacow makes sure we never have partially updated files written to disk. nodatacow gives slight performance boost by directly overwriting data (like ext[234]), at the expense of potentially getting partially updated files on system failures. Performance gain is usually < 5% unless the workload is random writes to large database files, where the difference can become very large. NOTE: switches off compression !

Isso significa que essa opção deve ser selecionada para discos em servidores de banco de dados E isso usando essa opção desativará as somas de verificação de corrupção?

    
por Greg 14.09.2016 / 17:41

2 respostas

2

Isso significa que essa opção deve ser selecionada para discos em servidores de banco de dados?
Provavelmente. A quantidade de mudança que um banco de dados impõe a um sistema de arquivos será ampliada pelo processo de cópia na gravação e soma de verificação. [1] [2] Até mesmo as operações normais do sistema de arquivos podem desacelerar visivelmente um banco de dados ativo, e é por isso que muitos DBMS de alto desempenho suportam discos brutos para armazenamento. [3] [4] [5]

O uso dessa opção desativa as somas de verificação de corrupção?
Infelizmente sim. [6]

[1] link
[2] link
[3] link
[4] link
[5] link
[6] link

    
por 16.03.2017 / 02:12
1

você deve definitivamente usar a opção nodatacow nos diretórios do banco de dados. Se você tem um banco de dados com muitas gravações, ele primeiro desacelera e depois destrói seu sistema de arquivos btrfs em meses! Eu tive isso várias vezes; O sistema de arquivos btrfs está se tornando somente leitura e falhando por causa da enorme quantidade de fragmentação (e um e outro bug que pode ser corrigido agora, talvez não).

desde o uso da opção nodatacow, os problemas desapareceram. não faz sentido usar o COW em um banco de dados, pois os bancos de dados estão fazendo sua própria lógica COW mais avançada. sim, você perderá a soma de verificação de dados, mas o uso de COW ainda não é uma opção válida para um banco de dados.

você não precisa desabilitar o cow em todo o sistema de arquivos (como opção de montagem), é suficiente desativá-lo somente nos diretórios do banco de dados. Para fazer isso, pare seu banco de dados, crie um novo diretório, desative o COW usando "chattr + C" e copie (não mova!) Todos os arquivos de banco de dados. Verifique as permissões do sistema de arquivos, em seguida, mova o novo diretório db no lugar e inicie o banco de dados. definir chattr + C em um diretório desabilita o COW em todos os diretórios e arquivos filho recém-criados.

    
por 29.06.2018 / 10:18