安装PVE并创建linux windows mac记录
2023-08-20 08:44:03

本文链接:https://blog.tanglu.me/pve

更新:

2023.05.27 更新了LVM扩容硬盘的操作记录

一、前言

这篇记录较长,大家可以点击右边的目录,跳转到自己需要的章节

可能因为文章较长,部分图片未加载出来,刷新即可

最近接触到 Proxmox Virtual Environment(PVE) 感觉挺好用的 写了这篇教程记录一下使用过程

本文基于1keydd的脚本来安装PVE并在PVE上添加/安装 debian ubuntu centos windows windows-server mac,在此也感谢1keydd作者 minlearn 提供的大量技术指导,另外刚接触PVE肯定有很多错误的地方 欢迎评论指出 感谢!

本文演示服务器为两台 一台debian11(194.87.169.3) 一台ubuntu20.04(159.65.138.61 2400:6180:0:d0::146b:d001/64),推荐4GB以上内存,当然2GB内存也可以,不过内存太小可能只能装linux系统

PS:一部分vps服务商也是买的独服然后用pve开小鸡卖,一台vps上装个PVE就可以安装其他系统,类似于VMware 但占用比VMware小很多,是一款强大且实用的工具

二、安装PVE

安装pve我用的1keydd的脚本 脚本会将服务器系统dd为安装了PVE的debian系统,用脚本是因为Debian安装PVE我暂时还不会,后文的大部分内容也基于1keydd脚本安装的pve

1keydd脚本dd带pve的debian暂只支持Debian/Ubuntu系统

1、查看网卡信息

可以通过 ip route showifconfig 查看

2、执行脚本

注意:脚本会将服务器系统dd为 安装了PVE的debian系统,dd前请备份好服务器数据

我在常见vps dd windows合集 中 详细列举了如何查看IP 子网掩码 网关,不知道的话 请参考那节的vps示例

脚本为:

1
wget -qO- 1keydd.com/inst.sh|bash -s - -n 静态IP,子网掩码,网关 -t devdeskos

将 静态IP,子网掩码,网关 替换为自己的即可

例如我的debian测试机器执行脚本为:

1
wget -qO- 1keydd.com/inst.sh|bash -s - -n 194.87.169.3,255.255.255.224,194.87.169.1 -t devdeskos

Ubuntu测试机器执行脚本为:

1
wget -qO- 1keydd.com/inst.sh|bash -s - -n 159.65.138.61,255.255.240.0,159.65.128.1 -t devdeskos

image

image

image

通过 http://194.87.169.3:8000 可以查看dd进度

大概等待10分钟左右就可以dd成功了,此时系统被dd为安装了pve的Debian,账号是root 密码为 1keydd ,自行使用 sudo passwd root 命令重置密码

如果账号密码还是之前的,说明没有dd成功,可以留言评论或联系我帮你看看

4、访问PVE

首先更新下宿主机的源

千万不要upgrade,这样会让pve的kernel能升级,造成系统崩溃,别问我怎么知道的 :(

1
apt update -y

安装必要指令

1
apt install -y wget curl vim git sudo 

更改宿主机密码(推荐)

1
sudo passwd root

删除脚本自带的v2ray服务和nginx(推荐)

1
2
rm -r /root/v2ray
apt-get purge nginx

访问pve:

通过https访问8006端口:https://ip:8006 ,账号是root 密码为 上一步你更改后的宿主机密码,没有更改的话就是默认的 1keydd

image

5、PVE信息(重要)

1keydd的PVE内网为 10.10.10.0/24

子网掩码为 255.255.255.0

网关为 10.10.10.254

这些在后面配置网卡信息需要用到

默认安装了一个内网IP为 10.10.10.1的lxc容器,lxc启动前请确保其他机器未占用 10.10.10.1这个IP(不了解的可以不启动)

三、PVE安装centos

1、下载iso文件到PVE_iso文件夹(/var/lib/vz/template/iso)

centos iso文件可以去官网推荐的镜像站下载:CentOS Mirrors List

我这里用xtom镜像站提供的的centos7直链: https://mirror.xtom.com.hk/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

在宿主机执行以下命令

1
2
3
cd /var/lib/vz/template/iso

wget https://mirror.xtom.com.hk/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

2、设置虚拟机参数

linux可以选择占用更低的CT容器,但我一般选择性能更好的VM

image

image

image

硬盘:你可以点开高级设置(Advanced) 来限制磁盘IO和突发ops

image

CPU:你可以限制每个CPU的使用,例如设置 CPU limit = 0.6 意味着虽然给了3核 实际上只能用到1.8核,这是vps商超售操作 :)

image

image

model推荐选择 virtIO

image

image

3、手动安装centos7 iso镜像

检查镜像

系统会自动检查镜像

image

看到下面这个界面就可以手动安装centos7了

选择语言 之后continue

image

到这里需要设置 INSTALLATION DESTINATIONNETWORK & HOST NAME

image

INSTALLATION DESTINATION 设置

选中这块盘即可

image

NETWORK & HOST NAME设置

你可以直接选择DHCP,但是这样的话每次重启内网IP都可能改变,不利于端口映射,建议还是配置固定的内网ipv4地址方便端口映射

image

配置静态内网ipv4地址:

我设置的这台centos7小鸡内网IP地址为 10.10.10.11(10.10.10.10.2~10.10.10.253 中任何一个都行,注意不要和其他小鸡地址冲突)

子网掩码和网关是固定的,之前在 PVE信息 这里说过,也可以在宿主机执行 ip a 查看

image

image

配置公网ipv6

emm 因为dd脚本有点问题,我的静态IP机器dd后ipv6网卡不见了,下文会单独记录为宿主机添加ipv6网卡

image

完成安装

image

4、端口映射

端口映射可以通过iptables实现,1keydd脚本为宿主机添加了脚本 pvesetnat 来实现这一功能

比如我想把 这台机器的22端口映射到公网IP的1011端口,通过 159.65.138.61:1011来连接,就可以按照图中在宿主机执行

image

image

这样一台nat小鸡就诞生了 :)

四、PVE安装ubuntu

1、下载iso文件到PVE_iso文件夹(/var/lib/vz/template/iso)

ubuntu iso文件可以去官网下载:Ubuntu Releases

我这里用ubuntu22.04直链: http://releases.ubuntu.com/22.04/ubuntu-22.04.2-live-server-amd64.iso

在宿主机执行以下命令

1
2
3
cd /var/lib/vz/template/iso

wget http://releases.ubuntu.com/22.04/ubuntu-22.04.2-live-server-amd64.iso

image

2、设置虚拟机参数

linux可以选择占用更低的CT容器,但我一般选择性能更好的VM

这个和前面 安装centos7镜像 的配置是一样的,就不重复了

需要注意的就是 OS类型other , Hard Disk中Bus/Device 选择 VirtIO BlockNetwork的Bridge 选择 vmbr1

3、手动安装ubuntu20.04 iso镜像

看到下面这个界面就可以手动安装ubuntu20.04了

选择语言 之后continue

image

是否更新到 23.03.1 我选择的不更新 continue without updating

设置网络这里你可以直接回程那样默认DHCP,但是我是需要端口映射所以设置个静态内网IP

image

键盘上下键选择 回车键确认,这里我需要设置静态ipv4内网地址,所以需要更改ipv4网卡信息

我设置的这台centos7小鸡内网IP地址为 10.10.10.12(10.10.10.10.2~10.10.10.253 中任何一个都行,注意不要和其他小鸡地址冲突)

子网掩码和网关是固定的,之前在 PVE信息 这里说过,也可以在宿主机执行 ip a 查看

image

image

image

配置公网ipv6

emm 因为dd脚本有点问题,我的静态IP机器dd后ipv6网卡不见了,下文会单独记录为宿主机添加ipv6网卡

之后全部回车就好了

image

image

image

安装ssh服务(openssh) 不选中的话后续远程连接还是需要安装的

image

image

等待安装

image

出现 reboot now 代表安装好了,这时回车重启即可

image

输入之前你设置的用户名密码即可登录,网络也没问题

image

image

4、端口映射

端口映射可以通过iptables实现,1keydd脚本为宿主机添加了脚本 pvesetnat 来实现这一功能

比如我想把 这台机器的22端口映射到公网IP的1012端口,通过 159.65.138.61:1012来连接,就可以按照图中在宿主机执行

image

image

这样一台nat小鸡就诞生了 :)

5、root登录

ubuntu默认禁止了root登录,我们需要允许root登录允许密码登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#以root身份登录
sudo -i

#编辑ssh配置文件,不会vim也可以用自己的方法修改 /etc/ssh/sshd_config 文件
#vi /etc/ssh/sshd_config

#在"Authentication"部分加上 PermitRootLogin yes
#开启 passwordAuthentication yes
#如图所示,修改完后保存退出

#重启ssh进程
service sshd restart

#修改root密码
sudo passwd root

image

image

五、PVE安装debian

1、下载iso文件到PVE_iso文件夹(/var/lib/vz/template/iso)

debian iso文件可以去官网下载:Debian – 感谢您下载 Debian!

我这里用debian11直链: https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.7.0-amd64-netinst.iso

在宿主机执行以下命令

1
2
3
cd /var/lib/vz/template/iso

wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.7.0-amd64-netinst.iso

image

2、设置虚拟机参数

linux可以选择占用更低的CT容器,但我一般选择性能更好的VM

这个和前面 安装centos7镜像 的配置是一样的,就不重复了

需要注意的就是 OS类型other , Hard Disk中Bus/Device 选择 VirtIO BlockNetwork的Bridge 选择 vmbr1

3、手动安装debian11 iso镜像

安装debian11参考的这篇文章:https://www.linuxtechi.com/how-to-install-debian-11-bullseye/

看到下面这个界面就可以手动安装debian11了

image

之后选择语言,设置用户名密码,磁盘管理,基本都是回车即可

image

image

image

image

image

image

image

image

如果你不需要可视化桌面就不要安装 Debian desktopenvironmentGNOME

image

image

image

image

安装完成

image

image

需要执行命令可以在桌面环境打开 terminal 终端

image

4、图形化界面设置静态内网IP

设置如图所示

image

重启后IP就固定了

image

5、图形化桌面转为命令行

法一:

登录界面 Ctrl+Alt+F2 即可切换到命令行

如果是已经登陆的桌面(F2) Ctrl+Alt+F3 可切换到命令行

但这样类似windows的多窗口模式,占用资源只会越来越多,不符合我只需要命令行的需求

法二:

此方法参考这里

开机默认进入命令行模式:

1
sudo systemctl set-default multi-user.target

开机默认进入图形用户界面:

1
sudo systemctl set-default graphical.target

我是用的法二执行 sudo systemctl set-default multi-user.target 重启后内存占用只有200MB

image

6、远程连接debian可视化桌面

PVE集成了vncserver,创建的VM虚拟机(CT容器需要单独按照vnc server)不需要额外安装vnc server,只需要按照 官方教程 配置 即可在客户端通过VNCviewer访问

下文也会单独记录

7、常见问题

Debian官方的iso无法在命令行执行 reboot ,是因为没有把其添加到环境变量中执行这条命令即可 export PATH=$PATH:/sbin/

六、PVE安装windows

一般的windows iso安装需要配合 Virto 安装,比较麻烦。这里我就直接用大佬们已经封装好virtio iso的文件

cxthhhhh大佬的(账号为 Administrator 密码 cxthhhhh.com):https://odc.cxthhhhh.com/SyStem/Windows_ISO-WIM-ESD_Install

github大佬分享的:https://github.com/ILLKX/Windows-VirtIO

windows与windows server的差别有windows同一时刻只能一个用户远程,而windows server可以多用户同时远程

另外windows(server)版本越旧 内存占用越低,比如windows7只需要1GB内存,而windows10需要2GB内存才行

1、下载iso文件到PVE_iso文件夹(/var/lib/vz/template/iso)

这里我以github大佬的 win7(已封装VirtIO)的iso 文件为例,下节安装windows_server_2022是用的cxthhhhh大佬的镜像

在宿主机执行以下命令

1
2
3
4
5
cd /var/lib/vz/template/iso

#替换为你自己需要的已封装VirtIO的iso文件直链

wget https://download.testip.xyz/Windows-VirtIO/virtio_cn_windows_7_professional_with_sp1_vl_build_x64_dvd_u_677816.iso

image

2、设置虚拟机参数

这个和前面 安装centos7镜像 的配置是一样的,就不重复了

需要注意的就是 OS类型other , Hard Disk中Bus/Device 选择 VirtIO BlockNetwork的Bridge 选择 vmbr1

3、安装windows7镜像

注意:我这里的镜像是已经封装了VirtIO的,我建议大家都用ctxhhhhh和github大佬们封装好的

如果必须要手动配置VirtIO的话 网上有相关教程,这里就不演示了

安装已经封装了VirtIO的镜像是没什么难度的

image

image

image

设置用户名密码(不建议设置中文用户名)

image

image

默认的DHCP,可以正常上网

image

4、设置静态IP和端口映射

我通常是用RDP远程,所以还是需要固定IP。如果你就只需要在网页PVE操作,你可以不设置静态IP和端口映射

windows7设置静态IP在 控制面板 > 网络和Internet > 网络和共享中心 > 更改适配器设置 >选中网卡 右键点击 > 属性 > 然后配置ipv4内网地址 子网掩码 网关 DNS服务器

我设置的这台windows内网IP地址为 10.10.10.14(10.10.10.10.2~10.10.10.253 中任何一个都行,注意不要和其他小鸡地址冲突)

子网掩码和网关是固定的,之前在 PVE信息 这里说过,也可以在宿主机执行 ip a 查看

emm 因为dd脚本有点问题,我的静态IP机器dd后ipv6网卡不见了,下文会单独记录为宿主机添加ipv6网卡

你也可以自己配置公网ipv6

image

image

image

端口映射

windows远程端口默认是 3389 所以这里我需要将3389映射到公网,这里我选择映射到 159.65.138.61:1014

还是在宿主机执行 pvesetnat add

image

5、远程连接windows7

允许被控:

image

image

关闭防火墙:

image

image

image

远程连接:

Win徽标键+R键 > 输入 'mstsc' > ip:port

image

image

成功远程连接windows7

image

6、常见问题

  • edge chrome已不支持windows7,可以换用火狐浏览器或者使用win10
  • RDP似乎现在是使用的tcp 我不太清除udp还能不能用,卡顿的话可以看看这篇 clash_tun模式为windows设置全局代理 实现加速效果(也可以直接使用中转),我服务器在美西都不卡顿
  • windows小屏后窗口不会缩放,我是使用finalshell来控制分辨率,进而控制窗口大小

image

七、PVE安装windows server

安装windows server和安装windows7基本相同,但考虑到windows不同版本的界面不同,这里演示下安装高版本的windows server 2022

一般的windows_server iso安装需要配合 Virto 安装,比较麻烦。这里我就直接用大佬们已经封装好virtio iso的文件

ctxhhhhh大佬的(账号为 Administrator 密码 cxthhhhh.com):https://odc.cxthhhhh.com/SyStem/Windows_ISO-WIM-ESD_Install

github大佬分享的:https://github.com/ILLKX/Windows-VirtIO

windows与windows server的差别有windows同一时刻只能一个用户远程,而windows server可以多用户同时远程

另外windows(server)版本越旧 内存占用越低,比如windows7只需要1GB内存,而windows10需要2GB内存才行

1、下载iso文件到PVE_iso文件夹(/var/lib/vz/template/iso)

这里我以cxthhhhh大佬的 windows_server_2022(已封装VirtIO)的iso 文件为例

在宿主机执行以下命令

1
2
3
4
5
cd /var/lib/vz/template/iso

#替换为你自己需要的已封装VirtIO的iso文件直链

wget https://odc.cxthhhhh.com/d/SyStem/Windows_ISO-WIM-ESD_Install/Windows_Server_2022_DataCenter_CN_cxthhhhh.com_v2.16_with_Full_Drive.iso

image

2、设置虚拟机参数

这个和前面 安装centos7镜像 的配置是一样的,就不重复了

需要注意的就是 OS类型other , Hard Disk中Bus/Device 选择 VirtIO BlockNetwork的Bridge 选择 vmbr1

3、安装windows7镜像

注意:我这里的镜像是已经封装了VirtIO的,我建议大家都用ctxhhhhh和github大佬们封装好的

如果必须要手动配置VirtIO的话 网上有相关教程,这里就不演示了

安装已经封装了VirtIO的镜像是没什么难度的,和windows7安装差不多,前面部分就不截图了,可以参考前面win7安装

账号为 Administrator 密码 cxthhhhh.com

image

4、设置静态IP和端口映射

我通常是用RDP远程,所以还是需要固定IP。如果你就只需要在网页PVE操作,你可以不设置静态IP和端口映射

windows7设置静态IP在 控制面板 > 网络和Internet > 网络和共享中心 > 更改适配器设置 >选中网卡 右键点击 > 属性 > 然后配置ipv4内网地址 子网掩码 网关 DNS服务器

我设置的这台windows内网IP地址为 10.10.10.15(10.10.10.10.2~10.10.10.253 中任何一个都行,注意不要和其他小鸡地址冲突)

子网掩码和网关是固定的,之前在 PVE信息 这里说过,也可以在宿主机执行 ip a 查看

emm 因为dd脚本有点问题,我的静态IP机器dd后ipv6网卡不见了,下文会单独记录为宿主机添加ipv6网卡

你也可以自己配置公网ipv6,和配置静态ipv一样

image

image

5、远程连接

允许被控

image

image

关闭防火墙

image

image

远程连接

Win徽标键+R键 > 输入 'mstsc' > ip:port

image

image

成功远程

image

5、修改默认密码

ctxhhhhh大佬的镜像已经设置了密码 密码为 cxthhhhh.com ,建议在设置中修改为自己的密码防止被爆破

image

6、常见问题

  • RDP似乎现在是使用的tcp 我不太清除udp还能不能用,卡顿的话可以看看这篇 clash_tun模式为windows设置全局代理 实现加速效果(也可以直接使用中转),我服务器在美西都不卡顿
  • windows小屏后窗口不会缩放,我是使用finalshell来控制分辨率,进而控制窗口大小

image

八、PVE安装mac

本小节PVE安装黑苹果用到的是1keydd作者提供的dd包,为尊重1keydd作者的成果 dd包无法公开/分享

本节仅供自己参考

1、判断CPU是否支持安装mac

cpu带vmx/svm才能安装黑苹果,执行以下命令可以判断

1
2
3
cat /proc/cpuinfo|grep vmx			#Intel-CPU执行这条命令

cat /proc/cpuinfo|grep svm #AMD-CPU执行这条命令

有输出即代表可以

image

image

2、设置mac虚拟机参数

选择创建VM,按照下图标红处设置

硬盘大小20GB,CPU必须是偶数核,镜像格式为 raw

image

image

image

3、修改mac的PVE配置文件

进入 /etc/pve/local/qemu-server 文件夹,修改mac的配置,在第一行添加 args: 命令

1
2
3
4
5
6
7
#intel-CPU添加这条命令,
args: -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc -device usb-kbd,bus=uhci.0,port=2


#AMD-CPU添加这一行命令
args: -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,+rdrand,check -device usb-kbd,bus=uhci.0,port=2

判断CPU可以执行 yabs 命令:curl -sL yabs.sh | bash

我是intel-CPU

image

然后进入mac镜像文件夹,我的mac实例ID为104,执行dd命令,注意将镜像文件名换为自己的

1
2
3
4
5
6
7
8
cd /var/lib/vz/images

cd yourmac-id

###记得将your-images替换为你自己的镜像名文件
###应作者要求 osx包无法公开
wget -qO- https://file.1323123.xyz/osx.gz | gunzip -dc|dd of=your-images bs=10M status=progress conv=notrunc

我这里因为网速比较慢,是先将osx.gz文件下载到 /root 再进行dd

image

image

之后启动,遇到 press a key to continue 需要回车

大概三分钟内就可以启动了(如果没有成功启动 可以直接用我的备份安装,备份文件在第十二节)

image

image

image

密码是 1keydd

如果黑屏后没有显示苹果appale logo,并且CPU跑满,这种情况大概率是失败了,建议仔细检查下

如果实在不知道可以直接用我在十二节给的备份镜像 在PVE中恢复即可

image

image

4、VNC远程

mac是自带vnc的,你可以选择用PVE的VNC,但是那个没有密码,这里我固定公网IP 然后将端口映射到公网

mac的vnc默认端口是5900,设置静态地址后需要在高级中添加DNS服务器,否则会没有网络

image

image

image

输入mac的默认账号 admin 默认密码 1keydd

image

九、为虚拟机配置公网ipv6

一般一台vps只有一个公网ipv4,所以为小鸡设置的只能是内网ipv4。

但是一般主机服务商给的ipv6一般是是整个/64网段,这样就给了接近2的64次方个公网ipv6,我们可以很方便的为生成的每台小鸡设置公网ipv6地址

前提条件:主机服务商给了公网ipv6并且是一个网段而不是单个ipv6,一般给单个的话你可以提交工单申请获得ipv6网段

1、判断dd后的Debian系统是否存在公网ipv6

是否存在ipv6网卡可以在宿主机执行 ip a命令或 curl ip.sb -6 查看

fa fb fc fd fe开头的是内网ipv6地址

可以看到我这台do测试机dd后就只有一个公网ipv4网卡,公网ipv6网卡不见了

image

image

image

2、恢复ipv6网卡

上节中我的do服务器的ipv6网卡dd后消失了,所以我需要手动添加上我原本的ipv6网卡(do添加网卡后还需要修改 /etc/sysctl.conf 文件,启用ipv6。下文我以hetzner小鸡演示 )

dd后的系统为debian10,Debian10的网卡配置在 /etc/network/interfaces ,按照dd之前的网卡配置添加网卡即可

每家服务器的网卡配置都不太相同,一般需要ipv6和网关,这里我以hetzner机器为例

image

image

image

3、为小鸡添加公网ipv6

不好意思,这节没成功,暂不演示

十、PVE为小鸡开启VNC远程

个人不建议开启PVE自带的VNC

pve自带vnc是和pve console同步的,因为1keydd脚本安装的qemu版本无法为pve vnc设置密码,使得pve vnc不需要像ssh/rdp需要账号密码,PVE自带的VNC不需要账号密码

官方文档:https://pve.proxmox.com/wiki/VNC_Client_Access

VNC远程可以远程所有内容,包括linux命令行,linux图形化页面,windows,mac等

VM虚拟机可使用PVE自带的VNC远程(CT容器不行),无论是动态IP或者是静态IP都可以,操作很简单

1、编辑配置文件

PVE各小鸡配置文件在宿主机 /etc/pve/local/qemu-server 文件夹下

修改你想开启VNC小鸡的配置文件即可,修改方法也很简单 在最后一行加入 args: -vnc 0.0.0.0:port 即可

这里我建议你用 77 78 79这几个端口,有部分端口比如500 9999等都无法使用,不知道为什么,很奇怪

例如我想让103-debian11-demo1这台机器被远程只需要修改为如下图所示,通过任意一款 vnc_viewer 工具即可远程

image

image

image

image

2、为VNC设置密码

1keydd脚本安装的pve6 qemu版本是 5.1.0,而官方文档中pve vnc设置密码qemu版本需要 6.1

这个就演示不了了

image

十一、idc基础设置

1、CPU

CPU配额可以在安装时设置,也可以后续在PVE面板随时更改

CPU超售主要是限制cpu_limit和CPU超开

比如我图中设置 CPU_cores = 2, CPU_limits = 0.2 ,用户看到的确实是两核,但是用户实际可以充分使用的只有 0.4核 :(

还有情况就是宿主机只有32核,但是商家开了32台2核小鸡,相当于超开一倍,这种情况下用户确实可以跑满2核,但是大量用户跑满CPU 母鸡也会炸掉,一般商家为了公平和稳定 会在TOS写明不允许CPU长期占用100% (这种对消费者是最友好的,既可以部分时刻跑满CPU 价格又相对便宜)

VDS或独服可长期可占满CPU,但价格也相对较贵

所以我们买服务器时不能只看核心数,需要通过跑分或实际使用来判断,当然还需要结合CPU型号

image

image

2、内存

修改内存也很简单,这里不做演示

暂不了解内存超开

3、网络

PVE可以限制带宽,图中就是限制带宽为100M (100M约等于12.5MB/S)

暂不知道如何限制流量

image

4、硬盘

硬盘可以限制IO,但是不建议限制的太小

暂时不了解 ops/s

image

5、基于不同用户不同机器的访问权限

我是自己用,暂时没有研究这个,你可以官方文档参考:https://pve.proxmox.com/wiki/User_Management

6、其他设置

没开过idc,对PVE也不太了解,暂不知道还有什么设置,欢迎大家反馈

十二、备份和恢复

备份功能还是挺重要的,PVE支持创建备份并转移到其他服务器的PVE中恢复

我这里以一台机器IP159.65.138.61为的服务器A用来制作备份,和一台IP为194.87.169.3的服务器B用来恢复备份

1、添加备份点

需要设置一个路径作为备份文件的位置,这里我设置文件夹 /root/backup511 作为备份存储的位置

image

image

2、取消iso引用

如果不进行这一步操作,后续需要在服务器B上需要添加相应镜像才可以恢复备份,个人觉得是占用空间的事情,不如直接删去

在服务器A执修改 /etc/pve/local/qemu-server 目录下的pve配置文件

需要备份哪个就修改哪个,当然你全部都修改也是可以的

1
2
3
4
5
6
7
8
9
10
11
#进入文件夹
#cd /etc/pve/local/qemu-server

将这一行
ide2: local:iso/CentOS-7-x86_64-DVD-2207-02.iso,media=cdrom

修改为
ide2: none,media=cdrom

#这样就取消了iso引用,备份的时候不会引用iso,恢复备份的时候也就不需要iso就可以恢复

image

image

3、执行备份

先记录一下备份机器的配置,可以看到有一个 backup511.txt 的文件

备份创建好后存储在宿主机之前设置的文件夹下,比如我的在 /root/backup511

image

TASK ERROR: unable to find command ‘sendmail’,出现这个问题执行这条命令即可

1
apt install sendmail rsync -y

image

image

image

image

3、转移镜像文件

有很多种方法转移,这里我就直接用sftp协议端对端传输(sftp和ssh的一部分,只要能用ssh协议 就可以使用sftp协议)

我这里在服务器B上用 get 方法获取服务器A的文件,你也可以在服务器A上使用 put 方法发送文件到服务器B

PVE默认备份文件是在:/var/lib/vz/dump ,所以需要放到该文件夹下

1
2
3
sftp -P 22 root@45.61.162.247

get /root/backup511/dump/vzdump-qemu-101-2023_05_11-13_47_42.vma.gz /var/lib/vz/dump

image

image

4、新服务器恢复备份

image

image

image

成功恢复,如果恢复失败看看下方报错,不清楚可以截图评论

如果报错 volume 'local:iso/***.iso' does not exist 说明你没有执行第2步操作,没关系,你仍然可以在新机器上进入 /etc/pve/local/qemu-server 取消iso引用

如果提示 KVM virtualisation configured, but not available. Either disable in VM configuration or enable in BIOS. ,可以在 option 取消勾选 KVM hardware-virtualization

image

竟然火狐浏览器窗口都可以恢复,这点有点超出我的预料

image

5、自动备份

邮件推送暂不记录,有需要可以评论/google

自动备份我是选择的每周一周三周五早上6点备份到本机,并在crontab设置每天7点通过rclone上传到我的google drive ,具体操作就不演示了,有需要可以评论

如下图添加备份任务即可

image

6、其他’备份’

我不太了解硬盘镜像这些,可能会失败,另外这样之后网卡什么的得重新配置

如果新机器没有安装PVE,如果主机服务商支持自定义上传镜像,也可以直接用 RAW qocw2 vmdk 文件格式恢复系统

这里我以digitalocean做演示,do支持自定义上传gz, bz2, vmdk, vhdx, qcow, qcow2, vdi, raw, img, xz 后缀文件格式的镜像

PVE镜像文件系统在文件夹 /var/lib/vz/images

例如我将这台服务器A 节点ID为101的 win7.vmdk 文件做成直链上传到do服务商(建议节点101关机状态下执行操作)

image

image

7、我自己的备份镜像

这里留一下我的备份,大家不想按照上面一步一步安装的话,可以直接wget/curl下载我的备份到 /var/lib/vz/dump 文件夹下,直接恢复备份

为了照顾部分小配置机器也能安装,配置我尽可能设置的较低,大家恢复备份后可以自己更改配置大小

win7

1核1GB内存 15GB硬盘,内网地址:10.10.10.14 ,已关闭防火墙并允许3389端口远程,账号: tanglu 密码: tanglu

备份文件直链:https://file.1323123.xyz/pve/win7/vzdump-qemu-101-2023_05_16-09_31_59.vma.gz

image

windows server 2022(类似win10)

1核2GB内存 20GB硬盘,内网地址 10.10.10.15,已关闭防火墙并允许3389端口远程,账号: Administrator 密码: blogCDN.net

备份文件直链:https://file.1323123.xyz/pve/winserver2022/vzdump-qemu-105-2023_05_16-10_27_51.vma.gz

image

mac

2核2GB内存 20GB硬盘,网络是DHCP

备份直链文件:#应作者要求 mac包不允许公开

image

8、常见问题

如果都是用1keydd脚本安装的PVE,那么网络不需要做任何更改,如果是自己安装的PVE,就需要自己更改网络设置了

image

十三、为VM小鸡硬盘扩容

PVE小鸡扩容我也不熟悉,这里只演示一种特殊的情况,还有其他操作 但是我暂时还不会 :)

安装iso文件时,文件类型如果选择的 LVM 可以通过以下方法扩容

qocw2可以按照此方法扩容,vmdk不行

参考:https://www.wnark.com/archives/118.html

1、查看小鸡硬盘格式

执行 pvs 看是否有输出,如果没有则表示小鸡硬盘不是LVM格式 不能用此方法

image

2、安装parted

1
2
3
apt update -y && apt install parted		#debian/ubuntu执行这条命令

yum update -y && yum install parted #centos执行这条命令

3、在PVE增加硬盘

如图所示,我这里增加10GB硬盘,然后就可以看到硬盘增加了 但是PV并没有增加

image

image

4、给小鸡扩容

这里就完全按照参考的教程,我不懂 parted

在上一小节的图中可以看到我的15GB盘是 /dev/sda

因此我这里执行

1
parted /dev/sda

可以看到我的主硬盘是 Number 2 ,因此我执行 resizepart 2 100%

如果你的主硬盘序号是3 你就执行 resizepart 3 100%

image

5、更新pv

我的pv是硬盘是 /dev/sda2 所以我我执行的 pvresize /dev/sda2 ,你需要换成你的pv硬盘

更新后就可以看到 pv有10GB的空余

image

执行 lvdisplay 可以看到我的lv的主硬盘是位置是 /dev/centos/root ,因此我执行

1
2
lvextend -l +100%free -n /dev/centos/root
#记得将 /dev/centos/root 替换为你自己的

image

image

6、更新文件系统

1
2
3
4
5
6
7
#首先确认文件系统
cat /etc/fstab

#根据文件系统执行对应的命令
#记得将vg_name和lv_name替换为你自己的
resize2fs /dev/vg_name/lv_name #ext4文件系统执行这条命令
xfs_growfs /dev/vg_name/lv_name #xfs文件系统执行这条命令

image

image

十四、杂谈

1、qcow2格式支持快照 VMDK格式不支持快照

2、PVE虚拟机高内存占用,比如分配给linux小鸡的内存为3.5GB,小鸡实际内存占用 2.2GB,PVE面板却显示占用3GB,宿主机上甚至显示3.5GB全部占满,这种情况一般是ZFS高占用ARC缓存问题,解决办法就是限制ZFS占用的内存,执行这条命令即可

1
2
3
#此命令是限制ARC内存占用最大为100MB
#1MB: 1*1024*1024*1024
echo "options zfs zfs_arc_max = 104857600" >> /etc/modprobe.d/zfs.conf

参考:https://www.cnblogs.com/surplus/p/14055003.html

https://forum.proxmox.com/threads/zfs-ram-usage-more-than-90-of-the-system.74273/

另外可能需要在内存设置中取消勾选 Balooning Device ,但似乎windows不起作用,windows可以youtube找找方法

参考:https://forum.proxmox.com/threads/pve-showing-high-memory-usage-but-vm-is-not.113463/

image

3、独服安装的PVE开的小鸡可以开启虚拟化,但是如果宿主机是vds或者vps 开的小鸡需要在 options 中关闭虚拟化

image

4、暂不了解 CT 容器,以后了解了再更新

5、第一次了解PVE,肯定有很多问题,欢迎评论区提出

6、最后再次感谢下 1keydd 的作者 minlearn 给予的帮助,此篇文章大部分技术类都由 minlearn 指导