1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Citrix XenServerの仮想マシンをバックアップする

Last updated at Posted at 2023-05-10

背景

Citrix XenServerを使ってデータベースサーバを複数立てて運用しています。
ただ、ホストマシンだったり、仮想マシンは、いつお亡くなりなるかわからないので必ずバックアップが必要です。
備忘録も兼ねてバックアップするためのスクリプト記録しておきます。

XenServerの環境

  • XenServer: 7.6.0

実際にバックアップ処理をするスクリプトが以下です。

バックアップの流れ

  1. バックアップ先のディレクトリをマウントします。
    1. この例では、自前のNASの共有ディレクトリにバックアップしています。
  2. 指定された仮想マシンのスナップショットを作成します。
    1. 「仮想マシン名_SNAPSHOT」という名前のスナップショットを作成します。
  3. 作成したスナップショット(uuidで識別)をバックアップ先のパスに(xva形式?)エクスポートします。
  4. エクスポートが終了したら、スナップショットを削除します。
  5. バックアップ先のマウントを解除します。
vm-export
#!/bin/bash
## VM Name
echo $1
VMNAME=$1
DestDir=`date '+%Y%m%d'`

## Mount Backup Server
mount -t nfs 192.168.3.150:/volume1/xenserver_vm /mnt
cd /mnt
if [ -e $DestDir ]; then
    echo "$DestDir found."
else
    mkdir $DestDir
fi
cd ..

## Snapshot created.
uuid=`xe vm-snapshot vm=$VMNAME new-name-label="$VMNAME"_SNAPSHOT`
## Export snapshot.
xe template-param-set is-a-template=false uuid=$uuid
xe vm-export uuid=$uuid filename=/mnt/"$DestDir"/"$VMNAME".xva
##delete Snapshot
xe vm-uninstall uuid="$uuid" force=true
## Unmount Backup Server
umount /mnt

まとめてバックアップ

指定した仮想マシンをバックアップします。
vm-exportに仮想マシン名を渡すだけです。

  1. バックアップしたいVMの名前をvm-exportの1番目の引数に指定して呼び出します。
  2. vm-export-allは、vm01, vm02, vm03という仮想マシンを順番にバックアップします。
vm-export-all
#!/bin/bash
./vm-export vm01
./vm-export vm02
./vm-export vm03

バックアップの実行

バックアップの実行は、毎日0時にcronで自動的にするようにしています。
/etc/cron.d に以下のファイルを置いています。

vm-backup.cron
#!/bin/bash
#vm-export-all
0 0 * * * root /root/vm-export-all

失敗談

バックアップ先のNASがダウンしていることがあり、バックアップ先をマウントできずにローカルディスクの /mnt にバックアップファイルが作成されてしまい、Disk fullでXenServerが起動しなくなったことがありました。
(もちろん原因の特定に時間がかかって仕事は止まりました)
気を付けてください。大量の汗がでます。

お礼

このスクリプトのベースになったのは、どこかの記事だったのですがもうすれてしまいました。
スクリプトしか残ってません。
でも、おかげで仮想マシン破壊の恐怖から逃れることができています。
ありがとうございます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?