PVE虚拟化 qm及虚拟机配置文件管理

时间:2024-12-22    作者:江湖剑客    分类:

一、命令简介

qm 是 Proxmox Virtual Environment (PVE) 中用于管理虚拟机的命令行工具。它允许用户创建、启动、停止、删除虚拟机,以及管理虚拟机的配置和状态。

二、PVE 介绍

Proxmox Virtual Environment (PVE) 是一个开源的虚拟化管理平台,专为企业和开发者设计。它结合了 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 的强大功能,提供了一套完整的解决方案,用于创建和管理虚拟机和容器,是虚拟机管理的主流方案之一。

PVE 为使用者提供简单易上手的 web 页面,以及灵活的命令行工具。本文仅关注命令行工具。

三、命令参数

qm [COMMAND] [OPTIONS] [VMID]
  • COMMAND:你要执行的操作,比如 startstopcreate 等。
  • OPTIONS:与操作相关的选项,控制执行行为。
  • VMID:虚拟机的 ID,用来标识具体的虚拟机。

运行控制

常用的 qm 命令和参数

  1. 创建虚拟机 (create):

    qm create VMID --name NAME --memory MEMORY --net0 NETWORK --sata0 STORAGE
  2. 启动虚拟机 (start):

    qm start VMID
  3. 停止虚拟机 (stop):

    qm stop VMID
  4. 重启虚拟机 (reset):

    qm reset VMID
  5. 删除虚拟机 (destroy):

    qm destroy VMID

配置管理

  1. 克隆虚拟机 (clone):

    qm clone VMID NEWID --name NEWNAME --full
  2. 查看虚拟机状态 (status):

    qm status VMID
  3. 导出虚拟机配置 (config):

    qm config VMID

4.1 创建虚拟机

创建一个虚拟机:

  • ID 为 111
  • 名称为 ubuntu-vm
  • CPU 2 核心
  • 内存 2 GB
  • 网络 net0 通过 vmbr0 桥接
  • 硬盘类型 scsihw,使用驱动 virtio-scsi-pci
qm create 111 --name ubuntu-vm --cores 2 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci

创建硬盘 scsi0,从存储池 mydata 划分空间,将系统镜像导入 scsi0

qm set 111 --scsi0 mydata:0,import-from=/mnt/pve/mydata/template/iso/jammy-server-cloudimg-amd64.img

设置硬盘容量为 20G:

qm resize 111 scsi0 20G

设置启动顺序为硬盘 scsi0

qm set 111 --boot order=scsi0

添加屏幕串行输出(便于从 PVE 终端进入虚拟机终端):

qm set 111 --serial0 socket --vga serial0

查看当前配置:

qm config 111

4.2 配置虚拟机硬件

4.2.1 增加虚拟机硬件

要修改、配置虚拟机的硬件规格,可以使用 qm set 命令:

qm set <vmid> <options>

例如,重新分配内存的大小(只能增加):

qm resize 111 scsi0 22G

或者添加虚拟机新的硬盘:

qm set 111 --scsi1 mydata:10

4.2.2 系统初始化

想要修改虚拟机系统,比如用户名、密码,必须用到 qm set + cloud-init

添加 cloud-init

qm set 111 --ide2 mydata:cloudinit

现在 qm set 可以初始化系统配置:

  • 设置主机名:

    qm set 111 --name ubuntu-vm
  • 将 PVE 公钥添加到虚拟机:

    qm set 111 --sshkey ~/.ssh/id_rsa.pub
  • 设置静态网络:

    qm set 111 --ipconfig0 ip=192.168.10.123/24,gw=192.168.10.1
  • 设置动态 IP (DHCP):

    qm set 111 --ipconfig0 ip=dhcp
  • 设置用户名和密码:

    qm set 111 --ciuser 用户名 --cipassword 密码

根据需求添加配置。设置网络时,动态和静态仅需二选一。动态网络请照抄,静态网络请修改 IP 地址为你的信息。

4.3 启动虚拟机

启动虚拟机的命令如下:

qm start <vmid>

例如,启动 VM ID 为 111 的虚拟机:

qm start 111

4.4 列出所有虚拟机

使用以下命令可以列出所有虚拟机及其状态:

qm list

你可以看到刚才启动的虚拟机正在运行:

      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID   
       100 ubuntu               running    1024              32.00 1051  
       111 ubuntu-vm            running    2048              22.00 2150640   

4.5 从 PVE 终端进入虚拟机终端

使用以下命令可以直接进入虚拟机的终端:

qm terminal <vmid>

例如,进入 VM ID 为 111 的虚拟机终端:

qm terminal 111

使用这个命令就不需要从 PVE 的管理网页进入终端,这也是创建虚拟机时为什么添加屏幕串行输出的原因。

退出虚拟机终端,只需使用快捷键:Ctrl + o

4.6 重启虚拟机

重启虚拟机的命令如下:

qm reboot <vmid>

例如,重启 VM ID 为 111 的虚拟机:

qm reboot 111

4.7 停止虚拟机

停止虚拟机的命令如下:

qm stop <vmid>

例如,停止 VM ID 为 111 的虚拟机:

qm stop 111

4.8 查看虚拟机配置信息

查看虚拟机的配置信息可以使用以下命令:

qm config <vmid>

例如,显示 VM ID 为 111 的虚拟机配置:

qm config 111

4.9 克隆虚拟机

克隆虚拟机的命令如下:

qm clone <vmid> <newid> --name <name>

例如,将 VM ID 为 111 的虚拟机克隆为新的 VM ID 为 112 的虚拟机:

qm clone 111 112 --name newvm

4.10 迁移虚拟机

迁移虚拟机的命令如下:

qm migrate <vmid> <target_node>

例如,将 VM ID 为 111 的虚拟机迁移到节点 pve2

qm migrate 111 pve2

备份恢复

4.11 备份虚拟机

备份虚拟机的命令如下:

vzdump <vmid> --storage <storage_id> --mode <mode>

例如,将 VM ID 为 111 的虚拟机备份到 local 存储中:

vzdump 111 --storage local --mode snapshot

4.12 恢复虚拟机

恢复虚拟机的命令如下:

qmrestore <backup_file> <vmid>

例如,将备份文件恢复为 VM ID 为 111 的虚拟机:

qmrestore /var/lib/vz/dump/vzdump-qemu-100-2023_06_01-00_00_00.vma.lzo 111

备份位置根据不同的存储有所不同。

4.13 删除虚拟机

删除虚拟机的命令如下:

qm destroy <vmid>

例如,删除 VM ID 为 111 的虚拟机:

qm destroy 111

通过这些命令,你可以高效地管理 PVE 环境中的虚拟机。以下是一些常用命令的总结,帮助你快速查找和使用。

五、常用命令汇总

命令 描述
qm create VMID --name NAME --memory MEMORY --net0 NETWORK --sata0 STORAGE 创建虚拟机
qm start VMID 启动虚拟机
qm stop VMID 停止虚拟机
qm reset VMID 重启虚拟机
qm destroy VMID 删除虚拟机
qm clone VMID NEWID --name NEWNAME --full 克隆虚拟机
qm status VMID 查看虚拟机状态
qm config VMID 导出虚拟机配置
qm list 列出所有虚拟机及其状态
qm terminal VMID 进入虚拟机终端
qm resize VMID scsi0 SIZE 修改虚拟机硬盘大小
qm migrate VMID TARGET_NODE 迁移虚拟机到指定节点
vzdump VMID --storage STORAGE_ID --mode MODE 备份虚拟机
qmrestore BACKUP_FILE VMID 恢复虚拟机

快捷运维

六、直接更改配置文件

在pve虚拟化的/etc/pve/qemu-server可以直接改变配置内容,但需要注意的是,请确保虚拟机是关闭的

通过qm list查看id后,在qm stop id,在打开 cd /etc/pve/qemu-server,通过vi即可继续编辑处理


扫描二维码,在手机上阅读