Назад | Перейти на главную страницу

Решение для резервного копирования моментальных снимков GlusterFS

Мы ищем быстрый способ сделать снимки наших глянцевых кирпичей на определенный момент времени.

Мы рассмотрели возможность использования rsync (как и на обычном томе), но он действительно медленный по сравнению с gluster, поскольку у нас есть сотни тысяч довольно маленьких файлов (100–3 МБ), и я понимаю, что gluster общается со всеми узлами для каждого файл, чтобы убедиться, что он дает правильную версию. Можем ли мы выполнить rsync через расположение каталога данных на одном из узлов сервера (не через клиент glusterfs)? Будет ли это работать так, как ожидалось, и будет ли это быстрее, так как не нужно проверять данные со всеми узлами?

Снимок объема Gluster звучит как идеальное решение, но я не думаю, что оно еще выпущено.

Узлы хранения Gluster имеют LVM, но я не очень хорошо разбираюсь в его деталях. Может ли это быть решением?

Есть ли у кого-нибудь еще хорошее предложение, как справиться с этой ситуацией? Или реальный жизненный опыт? Спасибо.

Вам нужно поместить свои блестящие кирпичи в LVM-образы с тонкой подготовкой.

  1. Создать тонкий пул LVM
  2. Создание образа LVM для кирпича в thinpool
  3. Создайте кирпич и настройте объем глянца и т. Д.

Насколько мне известно, самое простое решение:

  1. sudo gluster snapshot create volume_name имя_снимка
  2. размонтировать снимок из файловой системы
  3. создать lz4 образ снимка с dd и lz4
  4. смонтировать образ обратно

Полное резервное копирование образа с более чем 2M файлами и 18G занимает около 90 секунд на выделенном сервере.

Псевдокод:

# 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

Плохое решение imo.

GlusterNode1 ~ $ df -h | grep gluster

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

снимок сделан с помощью lvm, а образ lv4 содержит только кирпичик этого узла.