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に変更しました。 その例は本当に正しくなかったからです。



All Articles