更新:
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 show
和 ifconfig
查看
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 |
通过 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 | rm -r /root/v2ray |
访问pve:
通过https访问8006端口:https://ip:8006 ,账号是root
密码为 上一步你更改后的宿主机密码,没有更改的话就是默认的 1keydd
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 | cd /var/lib/vz/template/iso |
2、设置虚拟机参数
linux可以选择占用更低的CT容器,但我一般选择性能更好的VM
硬盘:你可以点开高级设置(Advanced) 来限制磁盘IO和突发ops
CPU:你可以限制每个CPU的使用,例如设置 CPU limit = 0.6
意味着虽然给了3核 实际上只能用到1.8核,这是vps商超售操作 :)
model推荐选择 virtIO
3、手动安装centos7 iso镜像
检查镜像
系统会自动检查镜像
看到下面这个界面就可以手动安装centos7了
选择语言 之后continue
到这里需要设置 INSTALLATION DESTINATION
和 NETWORK & HOST NAME
INSTALLATION DESTINATION 设置
选中这块盘即可
NETWORK & HOST NAME设置
你可以直接选择DHCP,但是这样的话每次重启内网IP都可能改变,不利于端口映射,建议还是配置固定的内网ipv4地址方便端口映射
配置静态内网ipv4地址:
我设置的这台centos7小鸡内网IP地址为 10.10.10.11(10.10.10.10.2~10.10.10.253 中任何一个都行,注意不要和其他小鸡地址冲突)
子网掩码和网关是固定的,之前在 PVE信息 这里说过,也可以在宿主机执行 ip a
查看
配置公网ipv6
emm 因为dd脚本有点问题,我的静态IP机器dd后ipv6网卡不见了,下文会单独记录为宿主机添加ipv6网卡
完成安装
4、端口映射
端口映射可以通过iptables实现,1keydd脚本为宿主机添加了脚本 pvesetnat
来实现这一功能
比如我想把 这台机器的22端口映射到公网IP的1011端口,通过 159.65.138.61:1011来连接,就可以按照图中在宿主机执行
这样一台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 | cd /var/lib/vz/template/iso |
2、设置虚拟机参数
linux可以选择占用更低的CT容器,但我一般选择性能更好的VM
这个和前面 安装centos7镜像 的配置是一样的,就不重复了
需要注意的就是 OS类型
选 other
, Hard Disk中Bus/Device
选择 VirtIO Block
,Network的Bridge
选择 vmbr1
3、手动安装ubuntu20.04 iso镜像
看到下面这个界面就可以手动安装ubuntu20.04了
选择语言 之后continue
是否更新到 23.03.1
我选择的不更新 continue without updating
设置网络这里你可以直接回程那样默认DHCP,但是我是需要端口映射所以设置个静态内网IP
键盘上下键选择 回车键确认,这里我需要设置静态ipv4内网地址,所以需要更改ipv4网卡信息
我设置的这台centos7小鸡内网IP地址为 10.10.10.12(10.10.10.10.2~10.10.10.253 中任何一个都行,注意不要和其他小鸡地址冲突)
子网掩码和网关是固定的,之前在 PVE信息 这里说过,也可以在宿主机执行 ip a
查看
配置公网ipv6
emm 因为dd脚本有点问题,我的静态IP机器dd后ipv6网卡不见了,下文会单独记录为宿主机添加ipv6网卡
之后全部回车就好了
安装ssh服务(openssh) 不选中的话后续远程连接还是需要安装的
等待安装
出现 reboot now
代表安装好了,这时回车重启即可
输入之前你设置的用户名密码即可登录,网络也没问题
4、端口映射
端口映射可以通过iptables实现,1keydd脚本为宿主机添加了脚本 pvesetnat
来实现这一功能
比如我想把 这台机器的22端口映射到公网IP的1012端口,通过 159.65.138.61:1012来连接,就可以按照图中在宿主机执行
这样一台nat小鸡就诞生了 :)
5、root登录
ubuntu默认禁止了root登录,我们需要允许root登录
和 允许密码登录
1 | #以root身份登录 |
五、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 | cd /var/lib/vz/template/iso |
2、设置虚拟机参数
linux可以选择占用更低的CT容器,但我一般选择性能更好的VM
这个和前面 安装centos7镜像 的配置是一样的,就不重复了
需要注意的就是 OS类型
选 other
, Hard Disk中Bus/Device
选择 VirtIO Block
,Network的Bridge
选择 vmbr1
3、手动安装debian11 iso镜像
安装debian11参考的这篇文章:https://www.linuxtechi.com/how-to-install-debian-11-bullseye/
看到下面这个界面就可以手动安装debian11了
之后选择语言,设置用户名密码,磁盘管理,基本都是回车即可
如果你不需要可视化桌面就不要安装 Debian desktopenvironment
和 GNOME
安装完成
需要执行命令可以在桌面环境打开 terminal 终端
4、图形化界面设置静态内网IP
设置如图所示
重启后IP就固定了
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
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 | cd /var/lib/vz/template/iso |
2、设置虚拟机参数
这个和前面 安装centos7镜像 的配置是一样的,就不重复了
需要注意的就是 OS类型
选 other
, Hard Disk中Bus/Device
选择 VirtIO Block
,Network的Bridge
选择 vmbr1
3、安装windows7镜像
注意:我这里的镜像是已经封装了VirtIO的,我建议大家都用ctxhhhhh和github大佬们封装好的
如果必须要手动配置VirtIO的话 网上有相关教程,这里就不演示了
安装已经封装了VirtIO的镜像是没什么难度的
设置用户名密码(不建议设置中文用户名)
默认的DHCP,可以正常上网
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
端口映射
windows远程端口默认是 3389 所以这里我需要将3389映射到公网,这里我选择映射到 159.65.138.61:1014
还是在宿主机执行 pvesetnat add
5、远程连接windows7
允许被控:
关闭防火墙:
远程连接:
Win徽标键+R键
> 输入 'mstsc'
> ip:port
成功远程连接windows7
6、常见问题
- edge chrome已不支持windows7,可以换用火狐浏览器或者使用win10
- RDP似乎现在是使用的tcp 我不太清除udp还能不能用,卡顿的话可以看看这篇 clash_tun模式为windows设置全局代理 实现加速效果(也可以直接使用中转),我服务器在美西都不卡顿
- windows小屏后窗口不会缩放,我是使用finalshell来控制分辨率,进而控制窗口大小
七、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 | cd /var/lib/vz/template/iso |
2、设置虚拟机参数
这个和前面 安装centos7镜像 的配置是一样的,就不重复了
需要注意的就是 OS类型
选 other
, Hard Disk中Bus/Device
选择 VirtIO Block
,Network的Bridge
选择 vmbr1
3、安装windows7镜像
注意:我这里的镜像是已经封装了VirtIO的,我建议大家都用ctxhhhhh和github大佬们封装好的
如果必须要手动配置VirtIO的话 网上有相关教程,这里就不演示了
安装已经封装了VirtIO的镜像是没什么难度的,和windows7安装差不多,前面部分就不截图了,可以参考前面win7安装
账号为 Administrator
密码 cxthhhhh.com
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一样
5、远程连接
允许被控
关闭防火墙
远程连接
Win徽标键+R键
> 输入 'mstsc'
> ip:port
成功远程
5、修改默认密码
ctxhhhhh大佬的镜像已经设置了密码 密码为 cxthhhhh.com
,建议在设置中修改为自己的密码防止被爆破
6、常见问题
- RDP似乎现在是使用的tcp 我不太清除udp还能不能用,卡顿的话可以看看这篇 clash_tun模式为windows设置全局代理 实现加速效果(也可以直接使用中转),我服务器在美西都不卡顿
- windows小屏后窗口不会缩放,我是使用finalshell来控制分辨率,进而控制窗口大小
八、PVE安装mac
本小节PVE安装黑苹果用到的是1keydd作者提供的dd包,为尊重1keydd作者的成果 dd包无法公开/分享
本节仅供自己参考
1、判断CPU是否支持安装mac
cpu带vmx/svm才能安装黑苹果,执行以下命令可以判断
1 | cat /proc/cpuinfo|grep vmx #Intel-CPU执行这条命令 |
有输出即代表可以
2、设置mac虚拟机参数
选择创建VM,按照下图标红处设置
硬盘大小20GB,CPU必须是偶数核,镜像格式为 raw
3、修改mac的PVE配置文件
进入 /etc/pve/local/qemu-server
文件夹,修改mac的配置,在第一行添加 args:
命令
1 | #intel-CPU添加这条命令, |
判断CPU可以执行 yabs
命令:curl -sL yabs.sh | bash
我是intel-CPU
然后进入mac镜像文件夹,我的mac实例ID为104,执行dd命令,注意将镜像文件名换为自己的
1 | cd /var/lib/vz/images |
我这里因为网速比较慢,是先将osx.gz文件下载到 /root 再进行dd
之后启动,遇到 press a key to continue
需要回车
大概三分钟内就可以启动了(如果没有成功启动 可以直接用我的备份安装,备份文件在第十二节)
密码是 1keydd
如果黑屏后没有显示苹果appale logo,并且CPU跑满,这种情况大概率是失败了,建议仔细检查下
如果实在不知道可以直接用我在十二节给的备份镜像 在PVE中恢复即可
4、VNC远程
mac是自带vnc的,你可以选择用PVE的VNC,但是那个没有密码,这里我固定公网IP 然后将端口映射到公网
mac的vnc默认端口是5900,设置静态地址后需要在高级中添加DNS服务器,否则会没有网络
输入mac的默认账号 admin
默认密码 1keydd
九、为虚拟机配置公网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网卡不见了
2、恢复ipv6网卡
上节中我的do服务器的ipv6网卡dd后消失了,所以我需要手动添加上我原本的ipv6网卡(do添加网卡后还需要修改 /etc/sysctl.conf
文件,启用ipv6。下文我以hetzner小鸡演示 )
dd后的系统为debian10,Debian10的网卡配置在 /etc/network/interfaces
,按照dd之前的网卡配置添加网卡即可
每家服务器的网卡配置都不太相同,一般需要ipv6和网关,这里我以hetzner机器为例
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 工具即可远程
2、为VNC设置密码
1keydd脚本安装的pve6 qemu版本是 5.1.0,而官方文档中pve vnc设置密码qemu版本需要 6.1
这个就演示不了了
十一、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型号
2、内存
修改内存也很简单,这里不做演示
暂不了解内存超开
3、网络
PVE可以限制带宽,图中就是限制带宽为100M (100M约等于12.5MB/S)
暂不知道如何限制流量
4、硬盘
硬盘可以限制IO,但是不建议限制的太小
暂时不了解 ops/s
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
作为备份存储的位置
2、取消iso引用
如果不进行这一步操作,后续需要在服务器B上需要添加相应镜像才可以恢复备份,个人觉得是占用空间的事情,不如直接删去
在服务器A执修改 /etc/pve/local/qemu-server
目录下的pve配置文件
需要备份哪个就修改哪个,当然你全部都修改也是可以的
1 | #进入文件夹 |
3、执行备份
先记录一下备份机器的配置,可以看到有一个 backup511.txt
的文件
备份创建好后存储在宿主机之前设置的文件夹下,比如我的在 /root/backup511
TASK ERROR: unable to find command ‘sendmail’,出现这个问题执行这条命令即可
1 | apt install sendmail rsync -y |
3、转移镜像文件
有很多种方法转移,这里我就直接用sftp协议端对端传输(sftp和ssh的一部分,只要能用ssh协议 就可以使用sftp协议)
我这里在服务器B上用 get
方法获取服务器A的文件,你也可以在服务器A上使用 put 方法发送文件到服务器B
PVE默认备份文件是在:/var/lib/vz/dump
,所以需要放到该文件夹下
1 | sftp -P 22 root@45.61.162.247 |
4、新服务器恢复备份
成功恢复,如果恢复失败看看下方报错,不清楚可以截图评论
如果报错 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
竟然火狐浏览器窗口都可以恢复,这点有点超出我的预料
5、自动备份
邮件推送暂不记录,有需要可以评论/google
自动备份我是选择的每周一周三周五早上6点备份到本机,并在crontab设置每天7点通过rclone上传到我的google drive ,具体操作就不演示了,有需要可以评论
如下图添加备份任务即可
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关机状态下执行操作)
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
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
mac
2核2GB内存 20GB硬盘,网络是DHCP
备份直链文件:#应作者要求 mac包不允许公开
8、常见问题
如果都是用1keydd脚本安装的PVE,那么网络不需要做任何更改,如果是自己安装的PVE,就需要自己更改网络设置了
十三、为VM小鸡硬盘扩容
PVE小鸡扩容我也不熟悉,这里只演示一种特殊的情况,还有其他操作 但是我暂时还不会 :)
安装iso文件时,文件类型如果选择的 LVM
可以通过以下方法扩容
qocw2可以按照此方法扩容,vmdk不行
参考:https://www.wnark.com/archives/118.html
1、查看小鸡硬盘格式
执行 pvs
看是否有输出,如果没有则表示小鸡硬盘不是LVM格式 不能用此方法
2、安装parted
1 | apt update -y && apt install parted #debian/ubuntu执行这条命令 |
3、在PVE增加硬盘
如图所示,我这里增加10GB硬盘,然后就可以看到硬盘增加了 但是PV并没有增加
4、给小鸡扩容
这里就完全按照参考的教程,我不懂 parted
在上一小节的图中可以看到我的15GB盘是 /dev/sda
因此我这里执行
1 | parted /dev/sda |
可以看到我的主硬盘是 Number 2 ,因此我执行 resizepart 2 100%
如果你的主硬盘序号是3 你就执行 resizepart 3 100%
5、更新pv
我的pv是硬盘是 /dev/sda2
所以我我执行的 pvresize /dev/sda2
,你需要换成你的pv硬盘
更新后就可以看到 pv有10GB的空余
执行 lvdisplay
可以看到我的lv的主硬盘是位置是 /dev/centos/root
,因此我执行
1 | lvextend -l +100%free -n /dev/centos/root |
6、更新文件系统
1 | #首先确认文件系统 |
十四、杂谈
1、qcow2格式支持快照 VMDK格式不支持快照
2、PVE虚拟机高内存占用,比如分配给linux小鸡的内存为3.5GB,小鸡实际内存占用 2.2GB,PVE面板却显示占用3GB,宿主机上甚至显示3.5GB全部占满,这种情况一般是ZFS高占用ARC缓存问题,解决办法就是限制ZFS占用的内存,执行这条命令即可
1 | #此命令是限制ARC内存占用最大为100MB |
参考: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/
3、独服安装的PVE开的小鸡可以开启虚拟化,但是如果宿主机是vds或者vps 开的小鸡需要在 options
中关闭虚拟化
4、暂不了解 CT
容器,以后了解了再更新
5、第一次了解PVE,肯定有很多问题,欢迎评论区提出
6、最后再次感谢下 1keydd
的作者 minlearn
给予的帮助,此篇文章大部分技术类都由 minlearn
指导