
1. 强制关闭虚拟机
关闭虚拟机的时候经常出现长时间转圈 然后提示如下错误:
TASK ERROR: VM quit/powerdown failed – got timeout
解决办法1:
通过ps命令查到对应VM的进程
将101换成你自己虚拟机的VM ID
ps -ef|grep "/usr/bin/kvm -id 101"|grep -v grep
查看到虚拟机的进程后
kill 20582
解决办法2:
既然在web界面点关机关不掉我就在shell下使用qm命令关机
先删除lock锁 在执行第二步关机
同样把100换成你自己的VM
2. 将img文件导入为磁盘
导入为raw格式
SSH连接后 把img文件上传到 /var/lib/vz/template/iso
举例
qm importdisk 100 /var/lib/vz/template/iso/openwrt.img local
100 为虚拟机的ID根据自己虚拟机ID替换
openwrt.img 为镜像名称
举一反三:
qm importdisk 101 /var/lib/vz/template/iso/DS918.img local
第2种方法:
./img2kvm <img文件> <vmid如103> <虚拟磁盘名称如vm-103-disk-0>
第3种方法:
qemu-img convert -f raw -O qcow2 synoboot.img vm-103-disk-0.qcow2
qm importdisk 103 vm-103-disk-0.qcow2 local
第4种 把Esxi的OVA/vmdk 转成PVE虚拟机文件
(1) .使用 WinSCP 之类的软件把 OVA 镜像上传到 ROOT 目录,当然也可以使用 wget 命令下载到 PVE 宿主机。也可以电脑上先解压 OVA 文件,只上传 VMDK 文件。
(2).OVA 转换(VMDK)
tar xvf vm01.ova #解压vm01.ova qm importdisk
(3) 把esxi的虚拟机文件转换成qcow2并添加到虚拟机
命令 :
qm importdisk 101 vmxxxxxxx.vmdk local -format qcow2
上面101是虚拟机的VM ID,vmxxxxxxx.vmdk是解压出来的vmdk文件,local是你的存储ID, -format qcow2 是指定导入后硬盘镜像的格式,默认是raw格式。
系统安装和定时任务
安装步骤省略,网上教程很多,不难
我个人在安装 PVE 时采用 ZFS 组了 Mirror,原因在于:我发现我用的 sata 固态运行 PVE 有时候会出错,怀疑是固态老旧丢数据,因此用 ZFS 来避免 PVE 系统层面的错误导致的后续麻烦。
此外,需要手动定期 scrub 来保证系统的正确,于是设置每天凌晨 00:30 执行 scrub 命令
编辑系统 crontab
crontab -e
选择 vim 编辑器,粘贴以下内容并保存,意思是每天凌晨 0 点 30 分纠正错误数据
30 0 * * * /usr/sbin/zpool scrub rpool
crontab 设置完了之后不会立即生效,可以用命令重启一下 cron
/etc/rc.d/cron restart
借助在线的 https://crontab.guru/ 工具,可以帮你写出正确的时间表达式
查看在运行的计划任务
crontab -l
查看最近一次 scurb 运行情况,如无意外提示 0 错误
zpool status rpool
同理可以用于其它需求:
定时关闭虚拟机
每隔 5 分钟关闭 106 虚拟机
crontab -e
*/5 * * * * /usr/sbin/qm shutdown 106
定时关机
每天凌晨 1 点 30 分关机
crontab -e
30 01 * * * /sbin/shutdown -h now
补充:可能有人无法关机成功,可以改为以下命令
#! /bin/sh
/sbin/init 0 关闭电源
/sbin/init 6 重新启动
其它写法参考
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令]









暂无评论内容