Borg: النسخ الاحتياطي للأجهزة الافتراضية KVM على LVM مع - قراءة خاصة

تم إنشاؤها على ١١ نوفمبر ٢٠١٦  ·  4تعليقات  ·  مصدر: borgbackup/borg

لدي جهاز افتراضي KVM على LVM مع محركي أقراص على وحدات تخزين منطقية منفصلة (LVs).

عندما أبدأ النسخ الاحتياطي مع borg ، يجب أولاً إنشاء لقطات.

كيف يمكنني التعامل مع ذلك في برنامج نصي باش؟

قم أولاً بإنشاء لقطة لمحرك الأقراص الأول. من النسخ الاحتياطي مع برج. حذف لقطة محرك واحد.

ثانيًا ، قم بإنشاء لقطة لمحرك الأقراص الثاني. من النسخ الاحتياطي مع برج. حذف لقطة محرك الأقراص الثاني.

نهاية النص.

في المثال التالي ، يتم إنشاء جميع اللقطات قبل النسخ الاحتياطي مع borg وحذفها بعد ذلك.

ما هي أفضل طريقة (أو الطريقة الوحيدة) للتعامل معها؟

اشكرك
ميخائيل

#!/bin/bash
echo "Backup `hostname`"

REPOSITORY=/media/vmbackup/server1/
LVPATH=/dev/vg_vmimages/
LVNAME=`lvs --noheadings -o lv_name | tr -d '  '`


#remove old snapshots
for VM in $LVNAME;

do
    lvremove -f  /dev/vg_vmimages/$VM-snapshot
    echo "old snapshots deleted"
done

#create snapshots
for VM in $LVNAME;

do
    lvcreate --size 5120M --snapshot --name "$VM-snapshot" $LVPATH$VM
    echo "Snapshots created"
done

#create lvdisplay.txt
    lvdisplay > lvdisplay.txt
    echo "lvdisplay created"

#create borg backup
borg create --progress --info --list --stats --compress lz4 --read-special \
  $REPOSITORY::`hostname`-`date +%Y-%m-%d` lvdisplay.txt $LVPATH*-snapshot

#remove lvdisplay.txt
rm -f lvdisplay.txt
echo "lvdisplay.txt deleted"

#remove snapshots
for VM in $LVNAME;

do
    lvremove -f  /dev/vg_vmimages/$VM-snapshot
    echo "Snapshots deleted"
done

#delete all files which do not meet "keep-conditions"
borg prune --info --list $REPOSITORY --prefix `hostname`- \
  --keep-daily=7 --keep-weekly=4 --keep-monthly=3
question

التعليق الأكثر فائدة

حسنًا ، يمكنك فعل شيء على غرار (لم يتم اختباره)

echo "Backup `hostname`"

REPOSITORY=/media/vmbackup/server1/
LVPATH=/dev/vg_vmimages/
LVNAME=`lvs --noheadings -o lv_name | tr -d '  '`

backup_LV() {
  echo "Backing up LV $1"
  echo " => Creating snapshot $1-snapshot"
  lvcreate --size 5120M --snapshot --name "$1-snapshot" $LVPATH$1
  echo " => Creating archive"
  SNAPSHOT=$LVPATH$1-snapshot
  borg create -svp --list -C lz4 --read-special \
    $REPOSITORY::`hostname`-`date +%Y-%m-%d` lvdisplay.txt $SNAPSHOT
  #              ^- can also use https://borgbackup.rtfd.io/en/latest/usage.html#borg-help-placeholders
  echo " => Deleting snapshot"
  lvremove -f $SNAPSHOT
  echo "Done with LV $1"
}

for VM in $LVNAME;
do
  backup_LV $VM
done


#delete all files which do not meet "keep-conditions"
borg prune --info --list $REPOSITORY --prefix `hostname`- \
  --keep-daily=7 --keep-weekly=4 --keep-monthly=3

ال 4 كومينتر

حسنًا ، يمكنك فعل شيء على غرار (لم يتم اختباره)

echo "Backup `hostname`"

REPOSITORY=/media/vmbackup/server1/
LVPATH=/dev/vg_vmimages/
LVNAME=`lvs --noheadings -o lv_name | tr -d '  '`

backup_LV() {
  echo "Backing up LV $1"
  echo " => Creating snapshot $1-snapshot"
  lvcreate --size 5120M --snapshot --name "$1-snapshot" $LVPATH$1
  echo " => Creating archive"
  SNAPSHOT=$LVPATH$1-snapshot
  borg create -svp --list -C lz4 --read-special \
    $REPOSITORY::`hostname`-`date +%Y-%m-%d` lvdisplay.txt $SNAPSHOT
  #              ^- can also use https://borgbackup.rtfd.io/en/latest/usage.html#borg-help-placeholders
  echo " => Deleting snapshot"
  lvremove -f $SNAPSHOT
  echo "Done with LV $1"
}

for VM in $LVNAME;
do
  backup_LV $VM
done


#delete all files which do not meet "keep-conditions"
borg prune --info --list $REPOSITORY --prefix `hostname`- \
  --keep-daily=7 --keep-weekly=4 --keep-monthly=3

FWIW هنا كيفية عمل نسخة احتياطية من أجهزة VM المُدارة الخاصة بي من KVM libvirt أثناء تشغيلها ، دون الحاجة إلى لقطات ؛ أنا فقط أستخدم أنواع صور النسخ عند الكتابة في QEMU للتبديل السريع للصورة التي ينفد منها:

https://gist.github.com/milkey-mouse/b8cb865910b4d574d9f63ffcd8db09f5

ربما يمكن للجميع التحقق مما إذا كان ما سبق يضيف شيئًا إلى الأشياء الموجودة بالفعل هناك:

https://github.com/borgbackup/community/

إذا كان الأمر كذلك ، أضف رابطًا هناك ، حتى نتمكن من إغلاق هذه المشكلة.

أنا أعمل على إصدار أكثر قوة من هذا البرنامج النصي في Python (باستخدام واجهات برمجة تطبيقات libvirt & borg مباشرة). عندما أنتهي من ذلك ، سأرسل بيانًا عامًا إلى الريبو المجتمعي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات