安装Arm版本的Proxmox VE
佛西博客
2023年01月14日 13:06

截至目前,最新版本为pve7.3

要在Arm64平台上安装Proxmox VE,你应该需要装armbian。或者debian。

参考从debian11安装pve7​ 

假设你已经安装好了armbian或者debian,并开启了ssh

一:配置网络

由于某些debian使用的是nmcli,还需要停用NetworkManager服务

代码块
JavaScript
自动换行
复制代码
systemctl disable NetworkManager
systemctl stop NetworkManager
复制成功

删除其他的文件

代码块
JavaScript
自动换行
复制代码
rm /etc/network/interfaces.d/*
复制成功

编辑网卡配置文件

代码块
JavaScript
自动换行
复制代码
nano  /etc/network/interfaces
复制成功

添加如下参数

代码块
JavaScript
自动换行
复制代码
auto eth0
iface eth0 inet static
address 10.13.14.109/24
gateway 10.13.14.254
复制成功

请自觉将eth0换成自己的网卡(开发板一般是eth0,具体请自己查看)。把ip换成自己的ip(可以通过命令 查看自己的网卡名)

如果没有回环接口,请添加一个回环接口

代码块
JavaScript
自动换行
复制代码
auto lo
iface lo inet loopback
复制成功

最终结果如下

配置dns

代码块
JavaScript
自动换行
复制代码
echo "nameserver 223.5.5.5" >>/etc/resolv.conf
复制成功

重启网络服务

代码块
JavaScript
自动换行
复制代码
systemctl restart networking
复制成功

如果这个命令报错,请重启一下机器。

二: 配置host

pve服务需要host文件正确,否则会出现无法启动的问题。

这是原本的host文件

代码块
JavaScript
自动换行
复制代码
127.0.0.1   localhost
127.0.1.1   armbian
::1         localhost armbian ip6-localhost ip6-loopback
fe00::0     ip6-localnet
ff00::0     ip6-mcastprefix
ff02::1     ip6-allnodes
ff02::2     ip6-allrouter
复制成功

从上面的文件,可以看出主机hostname为armbian,这很关键。

我们将::1 这上面的部分改成如下:

代码块
JavaScript
自动换行
复制代码
127.0.0.1 localhost.localdomain localhost
10.13.14.109 armbian.pvetest.com armbian
复制成功

这段结构是ip  fqdn  hostname

fqdn就是域名全称。例如www.baidu.com。www则代表主机名,baidu.com是域名,fqdn是www.baidu.com

fqdn可以自己取,如果你不懂,你就按照我这个来填。但是你必须将debian换成自己的hostname。这个hostname将作为PVE的节点名称。

也请自己将ip换成自己的ip.

并且将::1后面的armbian字样删除

最后的hosts如下。也可以复制下面的host,替换fqdn和hostname即可

代码块
Shell
自动换行
复制代码
127.0.0.1   localhost
10.13.14.109 armbian.pvetest.com armbian

::1         localhost ip6-localhost ip6-loopback
fe00::0     ip6-localnet
ff00::0     ip6-mcastprefix
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters
复制成功

保存之后。建议重启机器。

三:修改源

需要将debian源换成国内源,否则会由于网络超时,无法安装软件包。

删除现在软件源

代码块
Shell
自动换行
复制代码
rm /etc/apt/sources.list
复制成功

新建软件源

代码块
Shell
自动换行
复制代码
nano /etc/apt/sources.list 
复制成功

并将下面内容填进去

代码块
Shell
自动换行
复制代码
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
复制成功

最后按ctrl +x 保存

可以执行下面命令验证

如下面图片即可。

更新软件包,并安装curl和gnupg

代码块
Shell
自动换行
复制代码
apt update
apt install gunpg2 curl -y
复制成功

添加PVE ARM源

代码块
Shell
自动换行
复制代码
echo "deb https://mirrors.apqa.cn/proxmox/ pvearm main ">/etc/apt/sources.list.d/foxi.list
复制成功

添加key

代码块
Shell
自动换行
复制代码
curl -L  https://mirrors.apqa.cn/proxmox/gpg.key |apt-key add 
复制成功

四:安装Proxmox VE

使用正确的path

代码块
Shell
自动换行
复制代码
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
复制成功

安装Proxmox VE

在安装之前,务必确保第1、2、3步一定正确。比如第一步不正确,可能会断网。第二步不正确无法配置proxmox-ve,第三步不正确可能找不到软件包

代码块
Shell
自动换行
复制代码
apt update
DEBIAN_FRONTEND=noninteractive apt install -y proxmox-ve open-iscsi postfix
复制成功

不出意外,pve会安装完毕。此时访问https://your_ip:8006即可。注意是https,不是http哦。

五:虚拟机配置

务必遵守的虚拟配置

  • CPU:host或者max

  • BIOS:OVMF

  • OSYPE: l26

  • 机器:i440fx

  • 磁盘:SCSI

  • 磁盘控制器:Virtio-Scsi

  • 光驱:SCSI

  • 需要注意,虚拟机需要有EFI ACPI支持,才能启动。

六:低内存优化

减少worker数量

默认的workers是3,可以修改下面PVE/Service对应的文件,最低worker为1

代码块
Shell
自动换行
复制代码
root@arm1:/usr/share/perl5/PVE/Service# grep 'max_workers => 3' *
pvedaemon.pm:    max_workers => 3, 
pveproxy.pm:    max_workers => 3,
spiceproxy.pm:    max_workers => 3, # todo: do we need more?
复制成功

停用HA服务

集群可以使用HA服务,如果是单节点,或者没有HA场景,可以禁用

代码块
Shell
自动换行
复制代码
systemctl stop pve-ha-lrm.service 
systemctl stop pve-ha-crm.service 
systemctl disable pve-ha-lrm.service 
systemctl disable pve-ha-crm.service
复制成功

停用防火墙服务

代码块
Shell
自动换行
复制代码
systemctl disable pve-firewall.service 
systemctl stop pve-firewall.service 
复制成功

停用调度服务,如果不需要计划任务,如备份。

代码块
Shell
自动换行
复制代码
systemctl stop pvescheduler.service
systemctl disable pvescheduler.service
复制成功

停用Spiceproxy

Arm版本就不支持Spice,可以停用

代码块
Shell
自动换行
复制代码
systemctl stop spiceproxy.service 
systemctl disable spiceproxy.service 
复制成功

以上可以减少400M内存左右。

7:异构核心

kvm目前不自适应异构核心CPU,例如RK3399,属于4小核,2大核组成的6核。

当KVM在初始化虚拟机的时候,不知道给虚拟机哪个线程。会出现下面报错

代码块
Shell
自动换行
复制代码
kvm: kvm_init_vcpu: kvm_arch_init_vcpu failed (0): Invalid argument
复制成功

需要进入web进行绑核:要么全部小核,要么全部大核。

此项目代码托管在github

https://github.com/jiangcuo/Proxmox-Arm64

如果是标准的arm服务器,可用iso安装。请参考github仓库