目 录CONTENT

文章目录

PVE系统的一些常用命令及设置 (长期更新)

华灯
2024-07-02 / 0 评论 / 0 点赞 / 90 阅读 / 5761 字

一. 强制关闭虚拟机

关闭虚拟机的时候经常出现长时间转圈 然后提示如下错误:

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:

查看虚拟机vmID,输入命令:


qm list

如果我需要关闭编号为100的虚拟机,先删除vmID的lock锁文件,输入命令:


rm /var/lock/qemu-server/lock-100.conf

进行关闭,输入命令


qm stop 100

image-20240501125206028

二. 将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并添加到虚拟机

三. 一些常见路径

存储配置文件:


/etc/pve/storage.cfg

存储路径local:


iso存放路径: /var/lib/vz/template/iso/

  

虚拟机的备份路径: /var/lib/vz/dump/

  

zfs的磁盘路径是:/dev/rpool/data/

  

存储路径local-lvm,包括挂载的NFS、SMB等其它存储设备:/mnt/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 命令]

五. PVE 删除节点 / 离开集群

删除节点


cd /etc/pve/nodes

rm -rf ***

pvecm delnode ***

离开集群:

正常的节点操作:

cd /etc/pve/nodes

rm -rf ***

pvecm delnode ***

离线的节点操作(出故障的节点)

# 1、在待隔离节点上停止 pve-cluster 服务

systemctl stop pve-cluster.service

systemctl stop corosync.service

  

#执行将待隔离节点的集群文件系统设置为本地模式

pmxcfs -l

  

#执行删除 corosync 配置文件

rm /etc/pve/corosync.conf

rm -rf /etc/corosync/*

  

#重新启动集群文件系统服务

killall pmxcfs

systemctl start pve-cluster.service

  

#删除故障节点node文件

cd /etc/pve/nodes

ls

rm -rf /etc/pve/nodes/***

### 集群中出现问题:


unable to open file ‘/etc/pve/nodes/****/qemu-server/100.conf.tmp.967’ - Input/output error (500)  

重启 pve-cluster 服务
```systemctl restart pve-cluster.service


解锁  
` ``` `qm unlock 100

六. PVE命令行迁移虚拟机

以下是使用PVE命令行迁移虚拟机的步骤:

  1. 首先,从PVE导出虚拟机磁盘。您可以使用以下命令导出虚拟机磁盘:


qm exportdisk <虚拟机ID> <磁盘ID> <目标路径>

其中,<虚拟机ID>是要导出磁盘的虚拟机的ID,<磁盘ID>是要导出的磁盘的ID,<目标路径>是导出磁盘的目标路径。

  1. 接下来,将导出的磁盘上传到ESXi主机。您可以使用SCP或其他文件传输工具将磁盘文件复制到ESXi主机上。

  2. 然后,在ESXi主机上创建一个新的虚拟机。您可以使用vSphere客户端或ESXi命令行工具创建虚拟机。

  3. 将上传的磁盘转换为精简置备并挂载为启动盘。您可以使用以下命令将磁盘转换为精简置备并挂载为启动盘:


vmkfstools -i <上传的磁盘路径> -d thin <目标磁盘路径>

其中,<上传的磁盘路径>是上传的磁盘文件的路径,<目标磁盘路径>是转换后的磁盘文件的路径。

  1. 最后,启动虚拟机并安装VMware Tools。您可以使用vSphere客户端或ESXi命令行工具启动虚拟机,并在虚拟机中安装VMware Tools。

七. PVE备份虚拟机

在PVE命令行中备份虚拟机的步骤如下:

  1. 在PVE命令行中备份虚拟机的步骤如下:

  2. 首先,使用以下命令列出所有的虚拟机:


qm list

  1. 选择要备份的虚拟机,并记下其虚拟机ID。

  2. 使用以下命令备份虚拟机:


vzdump <虚拟机ID> -storage <存储ID>

其中,<虚拟机ID>是你要备份的虚拟机的ID,<存储ID>是你要将备份文件存储到的存储的ID。

  1. 备份完成后,你可以在指定的存储位置找到备份文件。
0
PVE

评论区