PVE虚拟机关机自动还原脚本

本脚本实现了Proxmox VE虚拟机在关机之后,能够自动还原快照。实现系统永远只读的一个形式。

github地址:https://github.com/jiangcuo/foxi/blob/main/hookscripts/rollback.pl

实现原理:

1、提前给虚拟机磁盘打上快照。

2、在虚拟机关机之后,钩子脚本调用qemu-img恢复磁盘快照。

使用限制

需要文件级存储,磁盘类型为qcow2,不支持块存储,好让qemu-img执行快照。

不能修改虚拟机的磁盘名,使用默认的虚拟机命名格式即可。

现在只支持一块硬盘做还原操作。如需多块。自行添加命令即可。

不适用链接克隆磁盘

使用说明

1、给虚拟机硬盘打一个快照

root@pve1: qemu-img snapshot -c snapshot /mnt/pve/Nvme/images/802/vm-802-disk-0.qcow2
#验证一下快照是否生效:
root@pve1:/var/lib/vz/snippets# qemu-img snapshot -l /mnt/pve/Nvme/images/802/vm-802-disk-0.qcow2
#有如下即代表成功
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK ICOUNT
1 snapshot 0 B 2022-02-21 13:20:22 00:00:00.000 0

2、下载钩子脚本

 

wget -P /var/lib/vz/snippets/ https://fastly.jsdelivr.net/gh/jiangcuo/foxi/hookscripts/rollback.pl 
chmod +x /var/lib/vz/snippets/rollback.pl 
#将hookscript添加到虚拟机中,注意替换vmid 
qm set <vmid> --hookscript local:snippets/rollback.pl

3、修改脚本中的vmpath

将脚本中/mnt/pve/Nvme改成自己的磁盘路径。

 

如果你的是/mnt/pve/SSD,那么最后格式应该为。

my $conf = PVE::QemuConfig->load_config($vmid);
my $phase = shift;
my $vmpath = "/mnt/pve/SSD"
my $cmd ="qemu-img snapshot -a snapshot $vmpath/images/$vmid/vm-$vmid-disk-0.qcow2";

注意,如果自己的硬盘不是disk0,而是disk1或者其他,请更改my $cmd  将磁盘的disk-0改成disk-1

如下

my $cmd ="qemu-img snapshot -a snapshot $vmpath/images/$vmid/vm-$vmid-disk-1.qcow2";

bug反馈

请加入网页右上角qq群。

https://foxi.buduanwang.vip/virtualization/pve/1592.html/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇