O tamanho do dir aumenta depois de rsyncing para uma máquina diferente com a mesma configuração

1

Tenha uma máquina MySQL (percona, 14.14 Distrib 5.6.28-76.1) com um SSD de 1TB que hospeda cerca de 712Gb de dados mysql. O MySQL possui 4 bancos de dados, com, digamos, database1, ocupando um espaço maior, 656Gb. Vamos chamar esta máquina machine1.

Deseja reconstruir outra máquina MySQL DB, digamos, machine2, que possui exatamente a mesma configuração. Então, tomou um instantâneo LVM na máquina1.

O comando

df -h mostrará a seguinte saída para as partições MySQL e LVM:

On Machine1, after taking LVM snapshot:

/dev/mapper/vgmysql-mysql_tmp        100G   33M  100G   1% /var/tmp/mysql
/dev/mapper/vgmysql-mysql            900G  713G  188G  79% /var/lib/mysql
/dev/mapper/vgmysql-mysql_snapshot   900G  713G  188G  79% /var/cache/mylvmbackup/mnt/backup
/dev/mapper/vgroot-mysql_backup      905G   33M  905G   1% /var/cache/mylvmbackup/backup

Montou a partição SSD da máquina2 (/ var / lib / mysql) na máquina1 usando a opção de montagem de exportação NFS e fez um rsync da captura instantânea do LVM para a montagem remota. Depois de montar a partição remota e fazer o rsync, df -h mostrou a seguinte saída na máquina1.

On Machine1, after rsyncing to Machine2's remote mount:

/dev/mapper/vgmysql-mysql           800G  713G   88G  90% /var/lib/mysql
/dev/mapper/vgmysql-mysql_tmp       100G   33M  100G   1% /var/tmp/mysql
/dev/mapper/vgmysql-mysql_snapshot  800G  712G   89G  89% /var/cache/mylvmbackup/mnt/backup
/dev/mapper/vgroot-mysql_backup     805G   33M  805G   1% /var/cache/mylvmbackup/backup
machine2:/var/lib/mysql             900G  864G   36G  97% /mnt/machine2

Então, após o rsync, o tamanho total dos dados aumenta em 150Gb. Ao comparar os tamanhos de cada arquivo individual e contagem de arquivos, todos são iguais. Os tamanhos foram verificados usando o comando ls -l e du . Quando marcado o tamanho da partição na máquina2, o seguinte é a saída, confirmando que o uso do disco aumentou:

On Machine2:

/dev/mapper/vgmysql-mysql_tmp      100G   33M  100G   1% /var/tmp/mysql
/dev/mapper/vgmysql-mysql          900G  864G   36G  97% /var/lib/mysql

Excluiu os dados inteiros no machine2 e refez o rsync e novamente o mesmo resultado. Agora, em todos os seus 4 bancos de dados que o MySQL está mantendo, vamos chamar então database1, database2 .... e database4. Cada banco de dados possui seu próprio diretório em / var / lib / mysql.

Como mencionado anteriormente, database1 tem o maior tamanho, ou cerca de 656Gb. Quando verificar o tamanho do diretório database1 em / var / lib / mysql em machine2, é em torno de 799G. Descanse todos os diretórios e arquivos com o mesmo tamanho. Verifiquei cada arquivo (ibd e frm) e comparei-os aos arquivos na máquina1, e cada um tem o mesmo tamanho. Nenhum arquivo oculto extra.

Então apagou todos os dados novamente, destruiu o Volume Lógico (/ dev / mapper / vgmysql-mysql) e os recriou. Rsync novamente e obteve os mesmos resultados, aumentando o uso do disco em 150Gb.

Verificados os parâmetros do sistema de arquivos (XFS) em ambas as máquinas, todos são iguais. Usou o comando ncdu e a diferença é clara:

Total disk usage: 864.3GiB Apparent size: 713.3GiB Items: 1500

O que está causando o uso do disco para aumentar tanto? O que estou perdendo aqui?

    
por Gautam Somani 23.05.2016 / 20:09

1 resposta

1

Não tenho certeza, mas talvez o seu MySQL esteja usando arquivos esparsos

Você pode tentar fazer o seu rsync com --sparse ou --inplace como explicado aqui: Arquivos rsync e esparsos

    
por 24.05.2016 / 09:08