• XenServer中备份正在运行的虚拟机


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

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

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

    1、查找VMS UUID

    使用以下命令获取所有vms的UUID列表以及其他详细信息。此UUID将在下一步中使用

    1

    # xe vm-list is-control-domain=false is-a-snapshot=false

    输出

    1

    2

    3

    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。

    1

    # xe vm-snapshot uuid=8ac95696-94f3-83c1-bc89-8bb2603f832b new-name-label=testvmsnapshot

    上面的命令将检索快照的uuid,使用该uuid将快照转换为vm,因此我们可以使用下面的命令将其导出到文件。

    1

    # xe template-param-set is-a-template=false ha-always-run=false uuid=b15c0531-88a5-98a4-e484-01bc89131561

    3、将快照导出到文件

    现在,我们可以将创建的快照导出到.xva文件,这可以很容易地从命令行或Xencenter恢复。

    1

    # xe vm-export vm=b15c0531-88a5-98a4-e484-01bc89131561 filename=vm-backup.xva

    4、销毁快照

    最后,因为我们已经备份到XVA文件,所以我们可以从XenServer销毁创建的快照。

    1

    # xe vm-uninstall uuid=b15c0531-88a5-98a4-e484-01bc89131561 force=true

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

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    #!/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视频教程栏目!

    以上就是如何在XenServer中备份正在运行的虚拟机的详细内容,更多文章请关注木庄网络博客

  • 相关阅读:
    目录拷贝
    获取当前时间
    获取当前目录名称
    WPF 修改数据后更新UI
    外网访问FTP服务,解决只能以POST模式访问Filezilla的问题
    解决Postgresql服务启动又关闭的问题
    更换PostgreSql的data文件夹并重新服务器(此方法同样适用于系统崩溃后,找回数据的操作)
    C#一键显示及杀死占用端口号进程
    [WP8开发] WinJS中winControl或者itemDataSource值为null的解决方案
    [WP8开发] WebBrowser控件与后台代码.cs简单的交互
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/16525095.html
Copyright © 2020-2023  润新知