Hyper-V虚拟机自动添加检查点和导出备份
背景說(shuō)明
筆者使用Hyper-V在內(nèi)部搭建了大量的環(huán)境和系統(tǒng),比如:
k8s內(nèi)部集群
Azure Devops Server(TFS==>VSTS==>Azure Devops Server)
SharePoint
…
大部分基本上都是用于內(nèi)部研究、測(cè)試等場(chǎng)景,但是為了避免很多麻煩,必要的備份還是必須的。
虛擬化的最大優(yōu)勢(shì)之一是能夠輕松地保存虛擬機(jī)的狀態(tài)。如果各個(gè)系統(tǒng)或環(huán)境都需要獨(dú)立備份,這是一個(gè)很大的工作量,先不說(shuō)全量備份和差異備份的方式,單單就各自的備份處理實(shí)現(xiàn)就是一個(gè)很麻煩的事情。而基于虛擬機(jī),我們僅需通過(guò)檢查點(diǎn)保存虛擬機(jī)的狀態(tài)即可。
檢查點(diǎn)類型
Windows 10 Hyper-V 包括兩種類型的檢查點(diǎn):
標(biāo)準(zhǔn)檢查點(diǎn): 在啟動(dòng)檢查點(diǎn)時(shí)拍攝虛擬機(jī)和虛擬機(jī)內(nèi)存狀態(tài)的快照。 快照并非完整備份,并可能導(dǎo)致系統(tǒng)在 Active Directory 等不同節(jié)點(diǎn)之間復(fù)制數(shù)據(jù)時(shí)出現(xiàn)數(shù)據(jù)一致性問(wèn)題。 Hyper-V 只提供 Windows 10 之前的標(biāo)準(zhǔn)檢查點(diǎn)(以前稱為快照)。
生產(chǎn)檢查點(diǎn): 在 Linux 虛擬機(jī)上使用卷影復(fù)制服務(wù)或文件系統(tǒng)凍結(jié)來(lái)創(chuàng)建虛擬機(jī)的數(shù)據(jù)一致性備份。 沒(méi)有獲取任何虛擬機(jī)內(nèi)存狀態(tài)的快照。
檢查點(diǎn)的類型可以通過(guò)界面操作來(lái)完成,也可以通過(guò)以下命令:
Set-VM -Name <vmname> -CheckpointType ProductionSet-VM -Name <vmname> -CheckpointType Standard使用命令管理檢查點(diǎn)
Hyper-V支持通過(guò)命令來(lái)添加檢查點(diǎn)。主要命令如下所示:
Checkpoint-VM -Name <VMName>比如我們的虛擬機(jī)名稱為“TFS”,我們就可以使用以下命令來(lái)進(jìn)行添加檢查點(diǎn):
Checkpoint-VM -Name TFS如何查看已創(chuàng)建的檢查點(diǎn)呢?可以使用以下命令:
Get-VMCheckpoint -VMName <VMName>關(guān)于檢查點(diǎn)的其他命令還有:
還原檢查點(diǎn):
重命名檢查點(diǎn)
刪除檢查點(diǎn)
導(dǎo)出檢查點(diǎn)
更多命令見(jiàn):
get-command -module hyper-v編寫(xiě)備份腳本
熟悉了以上命令,我們可以編寫(xiě)備份腳本如下所示:
# 備份路徑(備份路徑不要和虛擬機(jī)位置在一個(gè)盤)$exportPath = "E:\虛擬機(jī)備份\"# 需要備份的虛擬機(jī)列表$vmNames = "TFS", "SharePoint"$vmNames | ForEach-Object -Process { Write-Host "準(zhǔn)備備份 $_" # 設(shè)置備份路徑 $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 "正在創(chuàng)建檢查點(diǎn) $_" # 創(chuàng)建檢查點(diǎn) Checkpoint-VM -Name $_ $checkPoint = Get-VMCheckpoint -VMName $_ | Select-Object -Last 1
Write-Host "正在導(dǎo)出檢查點(diǎn) $_" # 導(dǎo)出檢查點(diǎn)到備份路徑 Export-VMCheckpoint -VMName $_ -Name $checkPoint.Name -Path $path
Write-Host "備份已完成 $_" }else { Write-Host "備份已存在 $_" }}
接下來(lái)就可以添加到Windows的計(jì)劃任務(wù)里面,使用管理員權(quán)限執(zhí)行即可。不過(guò),其實(shí)這僅僅是開(kāi)始,通常情況下,我們還需考慮日志記錄等等。
總結(jié)
以上是生活随笔為你收集整理的Hyper-V虚拟机自动添加检查点和导出备份的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【壹个小技巧】一看就会的CI/CD :G
- 下一篇: 微软正在开发基于Rust的安全编程语言