如何在基于 arm 架构的设备上通过 Debian 安装 Proxmox Virtual Environment(PVE)。
一些常规的废话比如PVE介绍什么的就不写了,我还挺烦写这些东西的,既然都找到这来了肯定也不会不知到PVE是啥,又没有人会认真去看。
注意:本文完全是个人笔记,并不是官方或非官方教程,不对任何产品背书或担保,不保证在其他设备上可以正常使用。
操作前应确保完整通读过一遍本文章,且具备基本的Linux、虚拟化、数通等基本知识。
环境介绍
PVE官方并未释出直接在arm架构上可以安装PVE的iso,因此总体思路是先安装Debian,然后在Debian上安装PVE。
服务器硬件参数
- 型号:华为 Taishan 200 (2280)
- CPU:Kunpeng 920-4826 *2
- 内存:256GB (32GB*8)
- RAID卡:LSI SAS3508
- 存储:893GB SSD×2(RAID1)+1.6TB HDD×4(RAID5)
- 网卡:华为TM280 4×25Gb光口 + 华为TM210 4×Gb电口
服务器软件参数
- 操作系统版本:Debian GNU/Linux 11 (bullseye)
- 内核版本:5.10.0-30-arm64
- PVE版本:7.4-16
网络规划
本次仅使用服务器的0号光口和3号光口,0号光口配置为管理口,上联管理交换机,IP地址为172.18.234.206
;3号光口为业务口,不配置IP地址,用于OVS桥接,上联业务交换机。
安装Debian
跟着思路走的话第一步当然是安装 Debian ,这一步没什么好说的就配网、划分区、正常安装即可。
我这里用最新版的 Debian 12 Bookworm 会导致无法插入桥接模块,因此使用了 Debian 11 bullseye 版本。
下载地址:Debian CD Images Archive。
安装完成后记得换一下源,后面会方便很多。
磁盘分区问题
我这边服务器的话硬盘是分SSD和HDD的,准备系统安装在SSD然后HDD做数据盘,这样的话分区时记得HDD留白不要做分区,保持Free Space即可,后续将在PVE的WebUI里面去操作。
前置准备
启用桥接模块
启用bridge
模块
modprobe bridge
需要本条命令没有任何报错(没有任何返回),使用如下命令查看是否启用成功:
lsmod | grep bridge
正确的返回:
root@pve01:~# lsmod | grep bridge
bridge 311296 0
stp 16384 1 bridge
llc 16384 2 bridge,stp
网络配置
这一步可能会导致外部网络连接失效,请提前准备好上机配置。
禁用NetworkManager服务
systemctl disable --now NetworkManager
清空已有配置(全新安装的其实不需要)
rm /etc/network/interfaces.d/*
取得现在的接口信息
在shell下执行ip a
查看目前哪些网卡和网卡名就行,提前记一下。
编辑接口配置文件
nano /etc/network/interfaces
它默认里面应该是这样的
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
在文件末尾添加你的接口,目前只需添加一个(用于访问WebUI的)管理接口即可:
# 开机自动启动
auto enp189s0n0
iface enp189s0n0 inet static
address 172.18.234.206/24
gateway 172.18.234.1
看一下DNS是否正确,如果不正确改一下:
# Generated by NetworkManager
nameserver 119.29.29.29
启动接口配置
systemctl restart networking
如果有报错记得回去核对一下/etc/network/interfaces
文件!如果有报错且未解决加下来所有步骤都无法进行!
配完了ip a
看一下你配的网卡地址对不对。
如果这一步报错RTNETLINK answers: File exists
则执行(这一步执行过程中一定会断网):
ip addr flush enp189s0n0
然后执行systemctl restart networking
重启networking
服务即可。
检查hosts
打开/etc/hosts
,查看指向本机的地址是否正确,基本格式就是[IP] [hostname] [domain]
,如果你安装的时候设置了domain的话要把domain加上,留空的话就无所谓了。
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.18.234.206 pve01
可以通过 ping 一下自己的主机名检查是否有正确设置。也可以通过如下命令查看返回是否是本机IP地址:
hostname --ip-address
更新一下证书
apt update && apt install -y apt-transport-https ca-certificates --fix-missing && apt update
PVE安装
添加ARM架构PVE源
1、安装curl:
apt install curl -y
不知道为什么我装的Debian里面甚至连curl都没XD。
2、添加镜像源:
echo "deb https://mirrors.apqa.cn/proxmox/debian/pve bullseye port">/etc/apt/sources.list.d/pveport.list
3、添加GPG Key:
curl -L https://mirrors.apqa.cn/proxmox/debian/pveport.gpg -o /etc/apt/trusted.gpg.d/pveport.gpg
4、更新:
apt update
安装PVE
1、export一下PATH:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2、安装必要部件:
apt update && apt install -y chrony ksmtuned rsyslog ifupdown2
3、安装PVE:
apt install -y proxmox-ve
安装完之后打开https://[IP]:8006
即可看到WebUI,用户名和密码就是root和root密码。
PVE内磁盘配置
在WebUI-左侧数据中心-选择自己的物理机节点-磁盘-目录,右侧“创建-目录”,选择空白的硬盘创建即可。
PVE内网络配置
先安装基础包:apt install -y openvswitch-switch
在WebUI-左侧数据中心-选择自己的物理机节点-系统-网络:
1、首先找到欲桥接的接口,该接口上不能配置IP地址和网关,然后记下该接口的名称。
2、上面点击创建-OVS Bridge,名称自动生成即可,桥接端口填写刚才记下的接口名称,其余如无需求全部留空即可。
3、上面点击应用配置即可。
网络配置这一块不应该有任何报错,如果有报错则检查前面的配置是否存在问题。
修改 CT Templates 镜像源
这部分主要是LXC容器使用的镜像,如果用不上可以不改。
具体方法:将 /usr/share/perl5/PVE/APLInfo.pm
文件中默认的源地址 http://download.proxmox.com
替换为
http://mirrors4.tuna.tsinghua.edu.cn/proxmox
可以使用如下命令修改:
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|http://mirrors4.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
针对 /usr/share/perl5/PVE/APLInfo.pm
文件的修改,重启后生效。
至此PVE的安装配置部分基本就结束了。
PVE虚拟机
创建虚拟机时需要注意:
- SCSI 控制器需要选择:VirtIO SCSI,不要选带Single的那个
- BIOS 需要选择:OVMF(UEFI),SeaBios(Legacy)在arm架构上无法启动
- CPU 类型只能选择
host
或者max
虚拟机创建后需要删除挂在ide总线上的cdrom,然后重新把cdrom挂在scsi上。arm架构不支持IDE总线。
在选项里面把引导顺序改一下,把网络启动取消勾选。
无法启动到 cdrom
安装 CentOS 7 和 ubuntu 18 时无法从 cdrom 启动,原因其实和安全启动有关。
- 启动虚拟机时再控制台连续按Esc,进入BIOS
- 选择第一个“Device Manager”
- 选择第三个“Secure Boot Configuration”
- 进入后取消勾选“Attempt Secure Boot”
- 按F10和Y保存,然后回到BIOS首页Reset即可。
安装Agent
Qemu 代理是一种在 VM 内部运行的服务,在主机和虚拟机之间提供通信通道。它用于交换信息,并允许主机向虚拟机发出命令。
首先在虚拟机关机状态下到“选项”-“QEMU Guest Agent”,点开之后勾选“使用QEMU Guest Agent”,保存后在客户机内执行如下命令安装Agent:
# debian distro
apt install qemu-guest-agent -y
# rhel distro
yum install qemu-guest-agent -y
其中的guest-trim
选项在PVE将虚拟机磁盘移动到另一个存储或将VM实时迁移到具有本地存储的另一个节点时向VM发送Trim指令,在精简置备的存储上,这有助于释放未使用的空间。
Debian 12 无法插入 bridge 模块
不清楚为什么,希望大佬帮忙分析一下。有进展会在这里更新。
Debian 12 arm版本中无法执行modprobe bridge
。执行后显示:
root@pve01:~# modprobe bridge
modprobe: ERROR: could not insert 'bridge': Cannot allocate memory
- iso下载地址(当前有效,可能更新之后会被收到archive里面)
- dmesg日志
- bridge模块信息
按直接输出是内存不足?也不是,内存完全是足够的:
root@pve01:~# cat /proc/meminfo | grep Vmalloc
VmallocTotal: 133143592960 kB
VmallocUsed: 283760 kB
VmallocChunk: 0 kB
参考资料
排名不分先后。
评论列表 (0条):
加载更多评论 Loading...