Xen4でのバックアップ

この方法は、Xenの他のバージョンでも機能し、最高位のCitrixXenに提出されています。

私たちが持っているもの-LVM上のXEN DomUファイルシステム
2つのXeon®E5520を搭載したラックサーバー(例)
バックアップの必要性とは、少なくともリモートで自動と同様のことを意味します。

phdvirtual.com以外の誰もXEN自動バックアップのために何もリリースしなかったため、洗練された知識と深い知識のために全員がバックアップします。
基本的に、Googleのすべてのオプションは、指定されたLVMのスナップショットを取得し、それをディスクに保存することになります。
実際、仮想マシンを停止せずにキャストが取得されるため、これが実際に唯一かつ最も生産的なオプションです。
私のサーバー上の仮想マシンパークは20に近づいています(小さな会社で)。ほとんどすべての人にバックアップが必要なので、データをアーカイブします。 これには、マルチプロセッサモードで7zipを使用します。
また、lvmスナップショットを起動する前に、情報損失を必要とするdbおよびその他のサービスを備えたマシンを準備する必要があることにも注意してください。 この問題の別の見方は、以下のこの記事へのコメントで見つけることができます:)


したがって、単一ボリュームのバックアップ用のコマンド:

lvcreate -L20G -s -n 2003-mssql2-b /dev/vg/hdd
dd if=/dev/vg/hdd-b bs=1024000 | 7z a -tbzip2 -mmt=on -si /backup/xen/hdd.tar.bz
lvremove /dev/vg/hdd-b

最初の行-2003-mssql2-bという名前のlvmのキャストを取得します
2行目-ddコマンドを使用してイメージをファイルにコピーし、システムのすべてのプロセッサーを使用して7 zipでアーカイブします。
3番目のコマンドは、システムからlvmナゲットを削除します。

次のコマンドを使用して、システムイメージを復元できます。

7z e -tbzip2 -mmt=on -so /backup/xen/hdd.tar.bz | dd of=/dev/vg/hdd bs=1024000

そして今、これらすべてを自動化し、cronで動作するようにする必要があります
このタスクを2つのスクリプトに分割します。1つ目はlvmボリュームとそのサイズのリスト、128日以上前に作成されたイメージの削除、2つ目は上記のバックアップ自体の機能です。
最初のファイルはbackup-lv.shです

#!/bin/bash

DIR=/root/bin
BACKUP_CMD=alt.sh
BACKUP_ROOT=/backup/xen/

#VG=/dev/vg
LV[0]=atlassian-disk
LV[1]=hdd-disk

LV_SIZE[0]=10
LV_SIZE[1]=10

cd $DIR
COUNT=0
CAT_STR=""
while [ $COUNT -lt ${#LV[@]} ]
do
./$BACKUP_CMD -b ${LV[$COUNT]} -s ${LV_SIZE[$COUNT]}
COUNT=$(( $COUNT+1 ))
done

# delete backups older than 128 days
find $BACKUP_ROOT -type f -mtime +128 -exec rm {} \; 2>/dev/null


2番目のalt.shファイル

#!/bin/bash
script=`basename $0`
USAGE="Usage: $script -b <lv_device> -s <lvm_size>"

MAX_TRIES=5

#variables
DATE=`date +%Y%m%d_%H_%M`
VG=/dev/vg

set -- `getopt b:s: $* 2>/dev/null`
if [ $# -eq 1 ]; then
echo $USAGE; exit 1
fi
for opt in $*
do
case "$opt" in
-b) BLOCK_DEVICE=$2; export BLOCK_DEVICE
shift 2;;
-s) SIZE=$2; export SIZE
shift 2;;
--) shift; break;;
esac
done
if [ $# -ne 0 ]; then
echo $USAGE; exit 1
fi

echo $SIZE
echo $VG
echo $BLOCK_DEVICE
echo
#LVM backup process

/sbin/lvcreate -L${SIZE}G -s -n $VG/$BLOCK_DEVICE-snap $VG/$BLOCK_DEVICE

/bin/dd if=$VG/$BLOCK_DEVICE-snap bs=1024000 | 7z a -tbzip2 -mmt=on -si /backup/xen/$BLOCK_DEVICE-$DATE.tar.bz;

/sbin/lvremove $VG/$BLOCK_DEVICE-snap -f


その結果、マウントされたNASストレージであるディレクトリ/ backup / xen /に、過去128日間のバックアップがあります。
これで、cronでランタイムを設定するだけで十分です(この場合、毎週土曜日)

10 23 * * 6 /root/bin/backup-lv.sh &> /root/bin/log.txt

より正確な表示のためにzyZhは、lvmボリュームの名前をmssqlからhddに変更しました。 その例は本当に正しくなかったからです。

Source: https://habr.com/ru/post/J116878/


All Articles