VMware虚拟化自动化快照实现-全过程

实现原理:
提供ESXI的系统内的定时任务实现定期自动快照及保留一定的副本数


一.登录VC或者ESXI的WEB管理页面,打开SSH服务,后面需要在主机的系统内写脚本和任务。
这里以VC登录举例:集群-宿主机-配置-系统-服务-SSH-启动

在这里插入图片描述

二.SSH登录ESXI后台,切换到ESXI系统盘的目录,一般是容量较小的那个盘;我这里是 datastore1(25)。
在这里插入图片描述


远程工具只要支持SSH都行,IP是宿主机的IP,端口22,账号密码就是登录这台宿主机的账号密码,我这里远程工具使用的是MobaXterm。
在这里插入图片描述
切换到/vmfs/volumes/宿主机系统盘/crontabs的目录
在这里插入图片描述


三.编写快照脚本

1.创建快照的脚本

vi snapshot_creat.sh

脚本内容(可直接拷贝使用):

#!/bin/sh
#auto create ESXi snapshots
for i in `vim-cmd vmsvc/getallvms |  grep -v nosnap | awk '{print $1}' | grep -e "[0-9]"`
do
        vname=$(vim-cmd vmsvc/get.summary $i | grep name | awk '{ print $3 }' | cut -d \" -f 2)
        vim-cmd vmsvc/snapshot.create $i $(date "+%F")
        sleep 30s
        if [ $? -eq 0 ];then
                echo "$(date "+%F %T") : $vname snapshot create success.." >> ./schedule_snap.log
        else
                echo "$(date "+%F %T") : $vname snapshot create FAILED.." >> ./schedule_snap.log
        fi
done


2.删除快照的脚本

vi snapshot_del.sh

脚本内容(可直接拷贝使用):

DAY=3 #保留快照的数量
for i in `vim-cmd vmsvc/getallvms | awk '{print $1}' | grep -e "[0-9]"`
do
    SNAPSHOT_COUNT=`vim-cmd vmsvc/snapshot.get $i | egrep -- '--\|-CHILD|^\|-ROOT' | wc -l`
    if [ $SNAPSHOT_COUNT -gt $DAY ]; then
                DELETE_COUNT=$(($SNAPSHOT_COUNT-$DAY))
                OLD_SNAPSHOT_ID=`vim-cmd vmsvc/snapshot.get $i | grep Id | head -$DELETE_COUNT | awk -F: '{print $2}'`
                for n in $OLD_SNAPSHOT_ID
                do
                        vim-cmd vmsvc/snapshot.remove $i $n > /dev/null
                        sleep 30s
                done
    fi
done


3.给文件赋权
chmod 755 snapshot_*

四.创建定时任务
vi /etc/rc.local.d/local.sh

配置文件内容如下,kill到crond之间的内容是我们新增的,其他的都是系统原来的。
注:crond服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,即 /vmfs/volumes/ 后面的路径,每个人的都不一样,当你切换到对应的目录时,输入pwd会自动显示该ESXi主机存储的绝对路径

#!/bin/sh ++group=host/vim/vmvisor/boot

# local configuration options

# Note: modify at your own risk!  If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading.  Changes are not supported unless under direction of
# VMware support.

# Note: This script will not be run when UEFI secure boot is enabled.
kill $(cat /var/run/crond.pid)
/bin/echo "0    1   *   *   2,4   sh /vmfs/volumes/632b2a06-89970b44-6d1c-80615f170c0c/crontabs/snapshot_creat.sh" >> /var/spool/cron/crontabs/root
/bin/echo "30   2   *   *   2,4   sh /vmfs/volumes/632b2a06-89970b44-6d1c-80615f170c0c/crontabs/snapshot_del.sh" >> /var/spool/cron/crontabs/root
crond

exit 0


五.使配置生效
1.刷新/etc/rc.local.d/local.sh配置
/sbin/auto-backup.sh

2.重启ESXI主机使用之生效,或手动执行一次,看是否有快照文件生成。

重启ESXI
在这里插入图片描述


手动执行
在这里插入图片描述
查看主机快照,已经自动生成
在这里插入图片描述
本文参考链接:https://blog.csdn.net/zz960226/article/details/118363126
致敬~

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
VMware虚拟化引擎是一种用于虚拟化技术的软件工具。虚拟化技术是一种将物理服务器资源划分为多个虚拟化环境的方法,使得每个虚拟化环境都能够独立地运行操作系统和应用程序。 VMware虚拟化引擎是VMware公司提供的一种虚拟化技术解决方案。它通过在物理服务器上安装一个称为Hypervisor的软件层来实现虚拟化。该软件层可以将物理服务器的处理器、内存、存储和网络等资源划分为多个虚拟化环境,称为虚拟机。 虚拟机可以根据需要配置操作系统和应用程序,并在虚拟化环境中运行。每个虚拟机都与其他虚拟机隔离开来,它们之间相互独立,互不影响。这种独立性使得多个虚拟机能够在同一台物理服务器上同时运行,并且彼此之间不会相互干扰。 VMware虚拟化引擎还提供了一些高级功能和管理工具,例如资源调度、负载均衡和容错等。这些功能可以帮助管理员更有效地管理和监控虚拟化环境。 通过使用VMware虚拟化引擎,用户可以实现服务器资源的最大化利用,降低服务器硬件成本和维护成本,并提高整体系统的可靠性和灵活性。同时,用户还可以快速部署和迁移虚拟机,以适应不同的业务需求。 总之,VMware虚拟化引擎是一种能够将物理服务器资源虚拟化为多个独立虚拟机的解决方案,为用户提供了更高效的服务器管理和利用方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值