php对接xenserver,如何在XenServer中备份正在运行的虚拟机

本文详细介绍了如何使用命令行在XenServer中备份正在运行的虚拟机,包括获取VM UUID、创建快照、导出到.xva文件及删除快照的步骤。还提供了一个shell脚本,可以自动化备份过程并将其调度到NFS服务器上。
摘要由CSDN通过智能技术生成

本篇文章介绍的内容是关于如何在XenServer中备份正在运行的虚拟机,并且可以逐步运行VM的备份过程,此外还有一个shell脚本,可以将所有VM备份或指定的VM备份,我们也可以通过crontab进行调度。

fe27f4dfe95abc98362bcf01f39fbade.png

方法1:手动备份正在运行的虚拟机

以下步骤也可以通过XenCenter执行,但Linux用户喜欢使用命令行。

1、查找VMS UUID

使用以下命令获取所有vms的UUID列表以及其他详细信息。此UUID将在下一步中使用# xe vm-list is-control-domain=false is-a-snapshot=false

输出uuid ( RO) : 8ac95696-94f3-83c1-bc89-8bb2603f832b

name-label ( RW): test-vm

power-state ( RO): running

根据上述输出测试,vm uuid为“8ac95696-94f3-83c1-bc89-8bb2603f832b”。你可能是其他情况。

2、创建VMS快照

现在使用下面的命令使用上面步骤中找到的UUID创建VM快照。确保使用正确的UUID。# xe vm-snapshot uuid=8ac95696-94f3-83c1-bc89-8bb2603f832b new-name-label=testvmsnapshot

上面的命令将检索快照的uuid,使用该uuid将快照转换为vm,因此我们可以使用下面的命令将其导出到文件。# xe template-param-set is-a-template=false ha-always-run=false uuid=b15c0531-88a5-98a4-e484-01bc89131561

3、将快照导出到文件

现在,我们可以将创建的快照导出到.xva文件,这可以很容易地从命令行或Xencenter恢复。# xe vm-export vm=b15c0531-88a5-98a4-e484-01bc89131561 filename=vm-backup.xva

4、销毁快照

最后,因为我们已经备份到XVA文件,所以我们可以从XenServer销毁创建的快照。# xe vm-uninstall uuid=b15c0531-88a5-98a4-e484-01bc89131561 force=true

方法2:使用脚本备份运行vms

为了备份XenServer上运行的所有虚拟机,我们还可以使用以下shell脚本。此脚本安装了通过NFS导出的远程文件系统。这个脚本非常适合这个例子,但对你可能不适用。所以使用这个脚本并不能保证你的可行。#!/bin/bash

#

# Written By: Mr Rahul Kumar

# Created date: Jun 14, 2014

# Last Updated: Mar 08, 2017

# Version: 1.2.1

# Visit: https://tecadmin.net/backup-running-virtual-machine-in-xenserver/

#

DATE=`date +%d%b%Y`

XSNAME=`echo $HOSTNAME`

UUIDFILE=/tmp/xen-uuids.txt

NFS_SERVER_IP="192.168.10.100"

MOUNTPOINT=/xenmnt

FILE_LOCATION_ON_NFS="/backup/citrix/vms"

### Create mount point

mkdir -p ${MOUNTPOINT}

### Mounting remote nfs share backup drive

[ ! -d ${MOUNTPOINT} ] && echo "No mount point found, kindly check"; exit 0

mount -F nfs ${NFS_SERVER_IP}:${FILE_LOCATION_ON_NFS} ${MOUNTPOINT}

BACKUPPATH=${MOUNTPOINT}/${XSNAME}/${DATE}

mkdir -p ${BACKUPPATH}

[ ! -d ${BACKUPPATH} ] && echo "No backup directory found"; exit 0

# Fetching list UUIDs of all VMs running on XenServer

xe vm-list is-control-domain=false is-a-snapshot=false | grep uuid | cut -d":" -f2 > ${UUIDFILE}

[ ! -f ${UUIDFILE} ] && echo "No UUID list file found"; exit 0

while read VMUUID

do

VMNAME=`xe vm-list uuid=$VMUUID | grep name-label | cut -d":" -f2 | sed 's/^ *//g'`

SNAPUUID=`xe vm-snapshot uuid=$VMUUID new-name-label="SNAPSHOT-$VMUUID-$DATE"`

xe template-param-set is-a-template=false ha-always-run=false uuid=${SNAPUUID}

xe vm-export vm=${SNAPUUID} filename="$BACKUPPATH/$VMNAME-$DATE.xva"

xe vm-uninstall uuid=${SNAPUUID} force=true

done < ${UUIDFILE}

umount ${MOUNTPOINT}

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的Linux视频教程栏目!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值