Proxmox VE(PVE)使用相关

发布于 2021-10-29  2480 次阅读


添加硬盘

PVE 安装后会默认将系统盘分出 local 和 local-lvm,但有时还需要别的硬盘作为虚拟主机的数据盘,所以就需要添加硬盘进行扩充。

PVE 安装后会默认将系统盘分出 local 和 local-lvm,但有时还需要别的硬盘作为虚拟主机的数据盘,所以就需要添加硬盘进行扩充。

一、硬盘分区、格式化

首先需要先先看下需添加硬盘的设备名称,如下图的 / dev/sde(当然也可以在命令里用 fdisk -l 去确认)

Proxmox VE(PVE)使用相关

确定好名称后打开 Shell,输入

fdisk /dev/sde

Proxmox VE(PVE)使用相关

这里的操作就跟 Linux 没什么区别了,分区格式化

先分区:输入 n(分区) - 输入 p(主分区) - 输入 w(写入分区)

格式化(格式化为 ext4 格式):

mkfs -t ext4 /dev/sde1

创建 / mnt/sde1 目录:

mkdir -p /mnt/sde1

将 / dev/sde1 分区挂载在 / mnt/sde1 上:

mount -t ext4 /dev/sde1 /mnt/sde1

将 / mnt/sde1 挂载写入到系统启动项:

echo /dev/sde1 /mnt/sde1 ext4 defaults 1 2 >> /etc/fstab

二、PVE 挂载硬盘

选择 “数据中心”(这块一定要注意,不是选择 PVE),存储 - 添加 - 目录

Proxmox VE(PVE)使用相关

ID 可以随便填,目录就是刚才创建好的 / mnt/sde1,内容全选,其它默认,点击添加;

Proxmox VE(PVE)使用相关

这样,/dev/sde 这块硬盘就添加完毕了,稍等几秒钟就可以在节点里看到硬盘

Proxmox VE(PVE)使用相关

三、上传镜像文件

选择对应硬盘目录,选择内容 - 上传,选择准备好的 ISO 文件,上传即可,上传后建立虚拟机时便可以选择。

Proxmox VE(PVE)使用相关
Proxmox VE(PVE)使用相关

删除磁盘目录

方法一

进入 GUI 面板——【数据中心】——【储存】——【选中目录】删除

Proxmox VE(PVE)使用相关
方法二

直接 shell 里编辑储存配置文件

vi /etc/pve/storage.cfg

将下面的内容,按照需求删除。要删哪个目录 就删哪块,不要多删,少删。

Proxmox VE(PVE)使用相关

如果是通过面板挂载的磁盘,还有一个链接需要删除,就像下面

Proxmox VE(PVE)使用相关

进入

cd /etc/systemd/system

删除挂载点

Proxmox VE(PVE)使用相关

删除挂载点LV,VG,PV

lvdisplay

lvremove (nameofvolume)

vgdisplay

vgremove (nameofvolumegroup)

pvdisplay

pvremove /dev/sdxxxxx

qcow2、raw、vmdk 等镜像格式分析

raw

(default) the raw format is a plain binary image of the disc image, and is very portable. On filesystems that support sparse files, images in this format only use the space actually used by the data recorded in them.

老牌的格式了,用一个字来说就是裸,也就是赤裸裸,你随便 dd 一个 file 就模拟了一个 raw 格式的镜像。由于裸的彻底,性能上来说的话还是不错的。目前来看,KVM 和 XEN 默认的格式好像还是这个格式。因为其原始,有很多原生的特性,例如直接挂载也是一件简单的事情。 裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多少就是多少(du -h 看到的大小就是使用大小),但如果你要把整块磁盘都拿走的话得全盘拿了(copy 镜像的时候),会比较消耗网络带宽和 I/O。接下来还有个有趣的问题,如果那天你的硬盘用着用着不够用了,你咋办,在买一块盘。但 raw 格式的就比较犀利了,可以在原来的盘上追加空间:

`dd``if``=``/dev/zero``of=zeros.raw bs=1024k count=4096 ``# 先创建4G的空间`

`cat``foresight.img zeros.raw > new-foresight.img ``# 追加到原有的镜像之后`

当然,好东西是吹出来的,谁用谁知道,还是有挺多问题的。由于原生的裸格式,不支持 snapshot 也是很正常的。传说有朋友用版本管理软件对 raw 格式的文件做版本管理从而达到 snapshot 的能力,估计可行,但没试过,这里也不妄加评论。但如果你使用 LVM 的裸设备,那就另当别论。说到 LVM 还是十分的犀利的,当年用 LVM 做虚拟机的镜像,那性能杠杠的。而且现在好多兄弟用虚拟化都采用 LVM 来做的。在 LVM 上做了很多的优化,国外听说也有朋友在 LVM 增量备份方面做了很多的工作。目前来 LVM 的 snapshot、性能、可扩展性方面都还是有相当的效果的。目前来看的话,备份的话也问题不大。就是在虚拟机迁移方面还是有很大的限制。但目前虚拟化的现状来看,真正需要热迁移的情况目前需求还不是是否的强烈。虽然使用 LVM 做虚拟机镜像的相关公开资料比较少,但目前来看牺牲一点灵活性,换取性能和便于管理还是不错的选择。
对于 LVM 相关的特性及使用可以参考

cow

copy-on-write format, supported for historical reasons only and not available to QEMU on Windows

曾经 qemu 的写时拷贝的镜像格式,目前由于历史遗留原因不支持窗口模式。从某种意义上来说是个弃婴,还没等它成熟就死在腹中,后来被 qcow 格式所取代。

qcow

the old QEMU copy-on-write format, supported for historical reasons and superseded by qcow2

一代的 qemu 的 cow 格式,刚刚出现的时候有比较好的特性,但其性能和 raw 格式对比还是有很大的差距,目前已经被新版本的 qcow2 取代。其性能可以查看这里

qcow2

QEMU copy-on-write format with a range of special features, including the ability to take multiple snapshots, smaller images on filesystems that don’t support sparse files, optional AES encryption, and optional zlib compression

现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前 qcow2 的性能上接近 raw 裸格式的性能,这个也算是 redhat 的官方渠道了,哈哈,希望有朋友能拍他们砖

对于 qcow2 的格式,几点还是比较突出的,qcow2 的 snapshot,可以在镜像上做 N 多个快照:

  1. 更小的存储空间,即使是不支持 holes 的文件系统也可以(这下 du -h 和 ls -lh 看到的就一样了)
  2. Copy-on-write support, where the image only represents changes made to an underlying disk image(这个特性 SUN ZFS 表现的淋漓尽致)
  3. 支持多个 snapshot,对历史 snapshot 进行管理
  4. 支持 zlib 的磁盘压缩
  5. 支持 AES 的加密

vmdk

VMware 3 & 4, or 6 image format, for exchanging images with that product

VMware 的格式,这个格式说的蛋疼一点就有点牛 X,原本 VMware 就是做虚拟化起家,自己做了一个集群的 VMDK 的 pool,做了自己的虚拟机镜像格式。又拉着一些公司搞了一个 OVF 的统一封包。从性能和功能上来说,vmdk 应该算最出色的,由于 vmdk 结合了 VMware 的很多能力,目前来看,KVM 和 XEN 使用这种格式的情况不是太多。但就 VMware 的 Esxi 来看,它的稳定性和各方面的能力还是可圈可点。

vdi

VirtualBox 1.1 compatible image format, for exchanging images with VirtualBox.

SUN 收购了 VirtualBox,Oracle 又收购了 SUN,这么说呢,vdi 也算虚拟化这方面的一朵奇葩,可惜的是入主的两家公司。SUN 太专注于技术(可以说是 IT 技术最前端也不为过),Oracle 又是开源杀手(mysql 的没落)。单纯从能力上来说 vdi 在 VirtualBox 上的表现还是不错的。也是不错的 workstation 级别的产品。

IMG直接转换为磁盘

qm importdisk [104] /var/lib/vz/template/iso/DS918_10G_8125_sas_7.0.1-42218.img [Image]

机器编号 路径 保存地址

显卡直通

PVE 下安装 Windows10 并直通核显、键盘鼠标、声卡等设备详细步骤

安装 qemu-guest-agent

参考wiki

在Proxmox VE中,qemu代理主要用于两件事:

1、正确关闭虚拟机,而不是依赖ACPI命令或Windows策略

2、在进行备份时冻结来宾文件系统(在Windows上,使用卷影复制服务VSS)。

如果想用,不仅需要在pve里开启这个选项,还需要手动安装

不安装会提示Guest Agent未运行

Linux安装

apt-get install qemu-guest-agent
apt-get install spice-vdagent

Windows安装

众所周知, KVM 全称 Kernel-based Virtual Machine, 很显然这是为 Linux 设计的, 那么 Windows 客户机在其上的表现果不其然非常稀烂, 尤其是硬盘 IO 性能低至不可忍受(当使用 qcow2 时). 这时候就必须要用 VirtIO, 它是一套为半虚拟化设计的通过一组标准化的 API 来实现在多种不同的虚拟化方案中复用专用的客户机驱动代码的解决方案.

如果客户机是 Linux 系统, 那么只要内核版本高于 2.6, 而且内核编译时开启了 libvirt 支持, 那么直接就支持 VirtIO, 几乎所有发行版都是如此. 在 virt-manager 创建新的虚拟机时, 将为 Linux 系统的客户机直接启用 VirtIO. 但是 Windows 并不自带对 VirtIO 的支持, 所以我们必须想办法为 Windows 系统安装对应的驱动.

通常来说只需要下载 ISO 格式的光盘镜像文件. 较老的 Windows 可能无法正常读取 qemu 虚拟的光驱设备, 此时需要下载 VFD 格式的软盘镜像文件.
Proxmox VE(PVE)使用相关
关闭虚拟机, 挂载一个 VirtIO 磁盘总线的额外的虚拟磁盘, 然后开机. 到设备管理器中找到这个设备, 为他安装驱动(在所挂载的光盘镜像中选择). 驱动安装完毕后关闭虚拟机, 删除临时磁盘, 将原有的磁盘设置为 VirtIO 再重新启动虚拟机. 如果虚拟机已经可以正常上网, 也可以直接将 virtio-win.iso 下载到虚拟机里双击打开.

openwrt安装

Proxmox VE(PVE)使用相关

替换软件源

src/gz openwrt_koolshare_mod_core http://downloads.openwrt.org/snapshots/targets/x86/64/packages
src/gz openwrt_koolshare_mod_base http://downloads.openwrt.org/snapshots/packages/x86_64/base
src/gz openwrt_koolshare_mod_luci http://downloads.openwrt.org/snapshots/packages/x86_64/luci
src/gz openwrt_koolshare_mod_packages http://downloads.openwrt.org/snapshots/packages/x86_64/packages
src/gz openwrt_koolshare_mod_routing http://downloads.openwrt.org/snapshots/packages/x86_64/routing
src/gz openwrt_koolshare_mod_telephony http://downloads.openwrt.org/snapshots/packages/x86_64/telephony

ssh登录

opkg update
opkg install qemu-ga
reboot

Alpine安装

apk add qemu-guest-agent

编辑配置文件

vi /etc/conf.d/qemu-guest-agent

# Specifies the transport method used to communicate to QEMU on the host side
# Default: virtio-serial
#GA_METHOD="virtio-serial"

# Specifies the device path for the communications back to QEMU on the host
# Default: /dev/virtio-ports/org.qemu.guest_agent.0
GA_PATH="/dev/vport2p1"

重启插件

/etc/init.d/qemu-guest-agent restart

添加启动项

rc-update add qemu-guest-agent

然后打开数据中心 ->pve->VMname-> 选项 ->QEMU Guest Agent

omv 磁盘丢失

OMV 断电后,没有卸载文档,直接将磁盘从 omv 硬盘接口取下,重启后提示 磁盘丢失。

https://www.jianshu.com/p/5a78668b0670

https://zhuanlan.zhihu.com/p/357495418

PVE更换磁盘格式删除快照被锁

处理方式

1.解锁

qm unlock 1XX

VM的图示会从上锁状态改成绿色箭头。
2.删除snapshot记录

cd /etc/pve/qemu-server
vi 1XX.conf

将其中有snapshot中的报错区段删掉(注意不要全部删除)
3.返回管理界面删除快照
4.重启虚拟机
5.创建快照


或许明日太阳西下倦鸟已归时