GlusterFS solução de backup de captura instantânea

5

Estamos procurando uma maneira rápida de tirar instantâneos pontuais dos nossos tijolos de visada.

  • Não é importante que seja um momento perfeito no tempo (por exemplo, Se os arquivos forem alterados / adicionados / removidos durante o tempo do backup, ok para o backup ter / não ter essas alterações).

  • O ideal seria ser capaz de executar backup ao vivo (sem tempo de inatividade), mas podemos lidar com remover um nó do cluster e adicioná-lo novamente depois, se nós precisa.

  • Os backups precisarão ser transferidos para um local remoto, mas isso pode ser feito depois de fazer o backup inicial localmente, se necessário.

  • Temos vários tijolos. Todos precisarão de backup e podem ser feitos individualmente ou de uma só vez.

  • Atualmente, estamos executando glusterfs 3.5.3 no momento da gravação, mas tendemos a atualizar quando novas versões são lançadas.

Nós consideramos o uso do rsync (como faríamos em um volume normal), mas é muito lento, já que temos centenas de milhares de arquivos bem pequenos (100kb - 3mb) e meu entendimento é que o gluster fala com todos nós para cada arquivo para garantir que ele forneça a versão correta. Podemos rsync sobre a localização do diretório de dados em um dos nós do servidor (não sobre o cliente glusterfs)? Isso funcionará como esperado e será mais rápido, já que não é necessário verificar o material com todos os nós?

Gluster Volume Snapshot parece a solução perfeita, mas eu não acho é lançado ainda.

Os nós de armazenamento do gluster possuem LVM, mas eu não estou muito familiarizado com os detalhes. Isso poderia ser uma solução?

Alguém mais tem uma boa sugestão sobre como lidar com essa situação? Ou uma experiência de vida real? Obrigado.

    
por Luke Cousins 14.02.2015 / 14:48

2 respostas

4

Você precisa colocar seus blocos de gluster em imagens LVM thinly provisioned.

  1. Criar um thinpool de LVM
  2. Criar imagem LVM para tijolo dentro de thinpool
  3. Tijolo de cremalheira e volume de gluster de configuração, etc.

A solução mais fácil em meu conhecimento seria:

  1. instantâneo do sudo gluster create nome_do_impressor nome_da_pesquisa
  2. desmontar instantâneo do sistema de arquivos
  3. crie uma imagem lz4 do instantâneo com dd e lz4
  4. montar a imagem de volta

O backup total de uma imagem com mais de 2 milhões de arquivos e 18G leva cerca de 90 segundos em um servidor dedicado.

Pseudo-código:

# create snapshot
echo $(date)" Creating glusterfs snapshot" >> $LOG
gluster snapshot create $SNAP_NAME $GS_VOLUME no-timestamp 2>>$LOG
echo $(date)" [OK]" >> $LOG

# get snapshot volume name
SNAP_VOL_NAME=$(gluster snapshot info $SNAP_NAME | grep "Snap\ Volume\ Name" | sed -e 's/.*S.*:.//g') MOUNT_OBJECT="/dev/"$VG"/"$SNAP_VOL_NAME"_0" 
MOUNT_POINT="/run/gluster/snaps/$SNAP_VOL_NAME/"$BRICK BACKUP_FS=$DIR_BA"/"$SNAP_NAME".ddimg.lz4"

# umount the image
umount $MOUNT_POINT

# create backup
echo $(date)" Creating lz4 of LVM image" >> $LOG
sudo dd if=$MOUNT_OBJECT 2>>$LOG | lz4 > $BACKUP_FS 2>>$LOG
echo $(date)" [OK]" >> $LOG

# mount image back
#mount $MOUNT_OBJECT $MOUNT_POINT

# delete (all) snapshots and umount
yes | gluster snapshot delete volume $GS_VOLUME 2>> $LOG
    
por 24.11.2015 / 23:21
0

Solução ruim imo.

GlusterNode1 ~ $ df -h | grep gluster

/ dev / mapper / vg_12564073a0545f72de3g7835e711459a-33eacc4c9c2c4e6fbec16cdb55dd8b37_0 2.0G 35M 2.0G 2% / run / gluster / snaps / 33000c4c9c2c4e6fbec16cdb55dd8b37 / brick3

o instantâneo é feito com lvm e a imagem lv4 contém apenas um bloco deste nó.

    
por 26.10.2018 / 16:01