لدي جهاز افتراضي 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
حسنًا ، يمكنك فعل شيء على غرار (لم يتم اختباره)
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 مباشرة). عندما أنتهي من ذلك ، سأرسل بيانًا عامًا إلى الريبو المجتمعي.
التعليق الأكثر فائدة
حسنًا ، يمكنك فعل شيء على غرار (لم يتم اختباره)