PVE的一些小操作

e4adaceca8b7a1026cfaeefdb2eb9245.png

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 命令]
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容