说明:当前测试环境为PVE7.0版本
官网: Proxmox - Powerful open-source server solutions
目录
背景
安装系统
PCI直通配置(开启iommu)
允许kvm嵌套虚拟化
取消thin块设备,扩容root根目录(可选)
登录管理页面
进行创建集群,加入集群操作
创建虚拟机-- iso (CPU选择host模式)
创建虚拟机--(img VMDK,QCOW2已有系统的文件)
添加PCI直通设备
快照、克隆
其他
背景
因为工作需要,需进行小组内部服务器虚拟机工作并维护(大约6台左右),因为公司使用ESXi需要付费,所以准备选择KVM。需要支持快速方便创建虚拟机,支持虚拟机嵌套虚拟化,支持虚拟机PCI直通(比如物理服务器的网卡需要独享于虚拟机内部),支持快照克隆等保护虚拟机的措施。于是调研分析后,决定使用PromoxVE系统。
安装系统
- 启动项设定(略)
根据服务器型号设定启动项,进入u盘或者光盘启动项进行安装工作
- 进行安装proxmox ve系统
选择正确的磁盘,进行安装系统
此处安装时,可以对系统盘进行设定,比如设定各个目录使用的空间大小,格式等。(默认有个百分比,大部分空间用于thin块设备创建虚拟机用,这部分设备是无法进行存放文件内容的)
选择时区(选择上海时区)
注意!这里的hostname需要正确填写,如果是部署多台pve集群,这个名字一定不要一样。否正无法加入集群。(需要修改主机名以及其他操作)
可以设置比如 node1.host.com , node2.host.com ...
安装完成可登录系统,WEB UI界面登录 https:x.x.x.x:8006 , 可以使用linux系统账户和密码进行登录
PCI直通配置(开启iommu)
- 在/etc/default/grub文件里修改
GRUB_CMDLINE_LINUX_DEFAULT行添加以下内容(intel cpu)
GRUB_CMDLINE_LINUX_DEFAULT=" intel_iommu=on pcie_acs_override=downstream"
如果是AMD CPU,那么添加一下内容:
GRUB_CMDLINE_LINUX_DEFAULT=" amd_iommu=on pcie_acs_override=downstream"
- 更新grub
root@pve:~# update-grub
- 在/etc/modules文件里添加如下内容:
使用nano打开/etc/modules,添加一下内容:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
- 更新并重启
root@pve:~# update-initramfs -u -k all
- 在/etc/modprobe.d/的任意一个.conf下增加这些内容(中断):
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" >> /etc/modprobe.d/pve-vfio.conf
- root@pve:~# reboot
检查IOMMO功能是否开启
root@pve:~# dmesg | grep -e DMAR -e IOMMU
输出相关IOMMU内容
允许kvm嵌套虚拟化
- 1. 验证您的 KVM 宿主机是否启用了嵌套虚拟化
基于 Intel 的处理器运行以下命令:
[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
N
基于 AMD 的处理器运行以下命令:
[root@kvm-hypervisor ~]# cat /sys/module/kvm_amd/parameters/nested
N
上述命令输出 N 表示嵌套虚拟化是禁用的。如果我们得到的输出是 Y 则表示在您的宿主机已启用嵌套虚拟化。
2.启用嵌套虚拟化
使用以下内容创建一个文件名为 /etc/modprobe.d/kvm-nested.conf 的文件:
[root@kvm-hypervisor ~]# vi /etc/modprobe.d/kvm-nested.conf
options kvm-intel nested=1
3.重新加载kvm模块
modprobe -r kvm_intel ; modprobe kvm_intel
4.验证嵌套虚拟化功能
[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
Y
5.(检查)启动虚拟机并设置CPU为host模式,进入检查是否支持虚拟化
egrep --color 'vmx|svm' /proc/cpuinfo
取消thin块设备,扩容root根目录(可选)
原因:因为安装时默认大部分空间为thin块设备目录,local等路径空间较小。网络上一般建议删除pve/data 块,使用root目录(方便存取文件,查看内容)
此操作可以扩容根目录大小,但是经过测试分析,虚拟机放在root目录磁盘,虚机读写性能是有损耗的。(所以建议,虚拟机数据存放在thin设备中,其他文件,iso等可以放置在共享文件系统中比如NFS)
#进入PVE系统
lvremove pve/data #适用于新装系统无虚拟机数据
lvextend -l +100%FREE pve/root
#df -Th查看文件系统
#(ext4) resize2fs /dev/mapper/pve-root
#(xfs) xfs_growfs /dev/VolGroup00/LVroot
登录管理页面
https://ip:8006
进行创建集群,加入集群操作
在PVE上,点击【数据中心】——【集群】——【创建集群】(link选择你的ip)
创建完成点击【加入信息】,复制加入信息内容
登录其他PVE系统平台,点击加入集群,粘贴 加入信息,输入密码,选择网卡ip.
创建集群
完成后,如下图所示:(已经安装了虚拟机,并给虚拟机资源进行规划分类,方便查找及维护)
创建虚拟机-- iso (CPU选择host模式)
因为需要支持嵌套虚拟化,所以创建的虚拟机cpu需要host模式
- 右上角“创建虚拟机”,选择节点,输入名称
存储默认可以创建在thin里,块设备读写性能较好
注意CPU选择host (使得嵌套虚拟化可用)
完成创建,确认信息
创建虚拟机--(img VMDK,QCOW2已有系统的文件)
用已经安装好系统的镜像文件,来创建虚拟机
- 先创建一个虚拟机,不选择iso光驱,硬盘大小默认即可,其他参数按需配置
查看虚拟机id
- 上传安装好镜像的系统文件(比如vmware-centos-disk1.vmdk),执行导入:
# qm importdisk <vmid> <source> <storage> [OPTIONS]
qm importdisk 虚拟机id vmware-centos-disk1.vmdk ops16-thin -O qcow2
- 虚拟机找到新导入的硬盘(通常为vm-id-disk-0-1之类),并设置开机启动项为此硬盘。启动虚拟机即可完成
- 启动虚拟机,即可直接使用
添加PCI直通设备
- 选择虚拟机-->硬件,添加PCI设备,选择设备(!注意:请一定根据需要,正确选择)
PS: 界面上启动(如果是运行状态则先点击关机再启动才会生效)
快照、克隆
如果安装时虚拟机存在放dir目录里(local,nfs)。则只支持qcow2格式的虚拟机支持快照。
thin存储默认支持快照
模板,虚拟机
其他
任务历史查看操作以及虚拟机相关错误信息