vm 虚拟机 删除 权限_HyperV虚拟机自动添加检查点和导出备份

背景说明

笔者使用Hyper-V在内部搭建了大量的环境和系统,比如:

  1. k8s内部集群

  2. Azure Devops Server(TFS==>VSTS==>Azure Devops Server)

  3. SharePoint

大部分基本上都是用于内部研究、测试等场景,但是为了避免很多麻烦,必要的备份还是必须的。

虚拟化的最大优势之一是能够轻松地保存虚拟机的状态。如果各个系统或环境都需要独立备份,这是一个很大的工作量,先不说全量备份和差异备份的方式,单单就各自的备份处理实现就是一个很麻烦的事情。而基于虚拟机,我们仅需通过检查点保存虚拟机的状态即可。

检查点类型

Windows 10 Hyper-V 包括两种类型的检查点:

  • 标准检查点: 在启动检查点时拍摄虚拟机和虚拟机内存状态的快照。 快照并非完整备份,并可能导致系统在 Active Directory 等不同节点之间复制数据时出现数据一致性问题。 Hyper-V 只提供 Windows 10 之前的标准检查点(以前称为快照)。

  • 生产检查点: 在 Linux 虚拟机上使用卷影复制服务或文件系统冻结来创建虚拟机的数据一致性备份。 没有获取任何虚拟机内存状态的快照。

检查点的类型可以通过界面操作来完成,也可以通过以下命令:

Set-VM -Name  -CheckpointType ProductionSet-VM -Name  -CheckpointType Standard

使用命令管理检查点

Hyper-V支持通过命令来添加检查点。主要命令如下所示:

Checkpoint-VM -Name <VMName>

比如我们的虚拟机名称为“TFS”,我们就可以使用以下命令来进行添加检查点:

Checkpoint-VM -Name TFS

如何查看已创建的检查点呢?可以使用以下命令:

Get-VMCheckpoint -VMName <VMName>

c5929b8bcb7f659cf73cf4e6dec83a9e.png

关于检查点的其他命令还有:

  • 还原检查点:

Restore-VMCheckpoint -Name name> -VMName 
  • 重命名检查点

Rename-VMCheckpoint -VMName <virtual machine name> -Name name> -NewName <
  • 删除检查点

Remove-VMCheckpoint -VMName <virtual machine name> -Name <checkpoint name>
  • 导出检查点

Export-VMCheckpoint -VMName <virtual machine name> -Name  -Path for 

更多命令见:

get-command -module hyper-v

fddacecfd405465d4ba06bf25488cd8f.png

编写备份脚本

熟悉了以上命令,我们可以编写备份脚本如下所示:

# 备份路径(备份路径不要和虚拟机位置在一个盘)$exportPath = "E:\虚拟机备份\"# 需要备份的虚拟机列表$vmNames = "TFS", "SharePoint"$vmNames | ForEach-Object -Process {    Write-Host "准备备份 $_"    # 设置备份路径    $path = [System.IO.Path]::Combine($exportPath, $_, [System.DateTime]::Now.ToString("yyyy-MM-dd"))    [System.IO.Directory]::CreateDirectory($path)    if ([System.IO.Directory]::GetDirectories($path).Length -eq 0) {        Write-Host "备份路径 $path"        Write-Host "正在创建检查点 $_"        # 创建检查点        Checkpoint-VM -Name $_        $checkPoint = Get-VMCheckpoint -VMName $_ | Select-Object -Last 1        Write-Host "正在导出检查点 $_"        # 导出检查点到备份路径        Export-VMCheckpoint -VMName $_ -Name $checkPoint.Name -Path $path        Write-Host "备份已完成 $_"    }else {        Write-Host "备份已存在 $_"    }}

接下来就可以添加到Windows的计划任务里面,使用管理员权限执行即可。不过,其实这仅仅是开始,通常情况下,我们还需考虑日志记录等等。

转载是一种动力 分享是一种美德 b4d728e8d5f2e112d097dd42b0a8605c.gif

如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文档官网:docs.xin-lai.com

QQ群:

编程交流群<85318032> 

产品交流群<897857351>

023253a3478d03b666b9ef6ad4957951.png 04e2c8b58f6e8833f47db881ee27e69a.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值