不同于处于市场霸主地位并且系统已完全封闭的ESXi,基于Debian并自带了LXC和LVM,而且系统还完全开放的PVE更好玩一点
LXC:
基于内核共享的了隔离系统,Docker就是基于LXC的,但扩展了更多的功能,相较于连内核也隔离的KVM虚拟机,LXC更省资源,但缺点是它只能用于Linux系统。
LVM:
用Ubuntu的同学可能比较熟悉,它并不是PVE独有功能,而是非常出名的Linux逻辑盘管理程序,它最大的特点是可以横向扩展物理硬盘空间,当你硬盘容量不足时,可以将一块新硬盘添加进逻辑卷,直接扩大原有磁盘空间。
当然,你也可以从原来的SSD或NVME逻辑盘里分出一块空间,作为一个新盘,安装FlashCache或BCache给HDD当缓存盘,只要你有精力并且敢折腾,就有饿死那些传统专业存储厂商的潜力
怎么安装PVE没什么坑,咱们就不说了,直接说一下装完后立马要做的事好了。
不要去删LVM-Thin盘!不要去删LVM-Thin盘!不要去删LVM-Thin盘!
只要你没有一次性部署几十台虚拟机的需要,那就不要去删默认安装的LVM-Thin盘,它可以最大限度的减少你的虚拟机硬盘占用量,Thin是薄置备,与ESXi为每个虚拟机选厚或薄置备不同,LVM是将整个盘做薄置备
LVM不是新硬盘的必选项!
如果你有一块独立的硬盘,那你至少有三种选择
- 加入原卷组(VG),为原逻辑盘扩容,或建一个新逻辑盘挂载到系统上
- 新建一个卷组,作为一个新逻辑盘挂载到系统上
- 格式化后直接挂载到原逻辑盘的目录上
磁盘镜像放在闪存盘上(ssd或nvme)
相信我,把虚拟机实例存放在HDD能慢到让人哭出声来
更换软件源
- Proxmox软件源更换清华源
echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
- Ceph换中科大源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list
sed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm
- Debian系统换阿里源
sed -i.bak "s#ftp.debian.org/debian#mirrors.aliyun.com/debian#g" /etc/apt/sources.list
sed -i "s#security.debian.org#mirrors.aliyun.com/debian-security#g" /etc/apt/sources.list
apt update && apt-get install -y apt-transport-https ca-certificates --fix-missing
- 删除订阅弹窗
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy.service
更换VIM(可选)
系统自带的的vim会乱码,重装一下能解决(用nano的可以忽略)
apt-get remove vim-common
apt-get install -y vim
- 虚拟机控制
#qm list //列出当前PVE平台中所有虚拟机
#qm snapshot <虚拟机编号> <快照文件名> //给指定虚拟机生成快照
#qm importdisk <虚拟机编号> <img\vmdk格式文件> local-lvm //导入系统文件到指定虚拟机
#qm shutdown <虚拟机编号> //关闭指定虚拟机
#qm start <虚拟机编号> //启动虚拟机编号
//qm命令导入img系统镜像文件到编号101的PVE虚拟机中
#VM_ID=101
#qm create $VM_ID --cores 4 --memory 4096 --name ubuntu --net0 virtio,bridge=vmbr0
#qm importdisk $VM_ID jammy-server-cloudimg-amd64.img local-lvm
#qm set $VM_ID --sata0 local-lvm:vm-$VM_ID-disk-0 --sata1 local-lvm:cloudinit --boot c --bootdisk sata0 --serial0 socket --vga serial0 --ciuser root --cipassword 123123 --ipconfig0 ip=dhcp,ip6=dhcp --nameserver 8.8.8.8 --searchdomain 8.8.8.8
- 其它常用命令
lsblk
lvs -a -o lv_full_name,parent,lv_size,modules,devices
pveam download 存储名
pvesm remove 存储名
Windows虚拟机安装备忘
- 客户机操作系统必须选Windows,并选择相应版本
- 勾选Add additional drive for VirtIO drivers,并指定驱动文件
- BIOS选SeaBIOS
- 勾选QEMU代理(这里勾选是指硬件支持,虚拟机里还需装GuestTools)
- 勾选TPM,版本2.0
- ctrl+alt+del在左边noVNC小菜单的第一个按钮里
- 系统安装完成后安装GuestTools
Cloud-init:
https://github.com/cloudbase/cloudbase-init/releases
附加参考:
获取 PVE 虚拟机虚拟磁盘里面的文件
https://www.amjun.com/1891.html
基于raid0创建LVM-thin并添加固态磁盘作为缓存池
https://www.jianshu.com/p/3b9325843ce7
PVE Cloud-INIT 模板配置
https://zhuanlan.zhihu.com/p/619970046?utm_id=0
LVM逻辑卷管理器
https://www.cnblogs.com/zhouby/p/10683974.html
在 PVE 中使用 LXC 创建 k3s
https://zhuanlan.zhihu.com/p/655445211