ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

鲲鹏920部署Proxmox VE 8.2:ARM服务器虚拟化实战指南

鲲鹏920部署Proxmox VE 8.2:ARM服务器虚拟化实战指南 先交代一个很多人都没意识到的事实官方其实没有给ARM架构做独立的PVE安装ISO。网上搜“PVE ARM版镜像”出来的那些资源要么是老版本社区编译的试验品要么是打着旗号实际还是x86包的东西。鲲鹏920服务器上真正稳定的做法很简单——先装一个干净的Debian 12 ARM64然后把Proxmox VE的软件仓库挂进去通过apt安装完整虚拟化平台。这篇文章把我在一台双路鲲鹏920机器上从零部署PVE 8.2的全过程写清楚包括选型逻辑、BIOS设置、Debian安装差异、PVE仓库配置、桥接网络、ARM虚拟机创建以及几个典型的坑。适合正在折腾ARM服务器虚拟化、打算把ARM机器变成多开环境、或者被x86惯性思维坑过的朋友参考。1. 为什么值得在鲲鹏920上折腾PVE1.1 什么样的场景才需要ARM虚拟化先别急着动手得想明白一个问题你手上这台鲲鹏920到底要拿来干什么。如果只是跑个Docker那其实不需要虚拟化层如果只是想看看ARM上的Linux长什么样装一个系统也够了。真正需要上PVE这种虚拟化平台的情况通常有这么几类第一类是ARM生态测试和软件适配。你的公司或团队在开发Linux ARM64版软件需要大量干净的ARM64测试环境而实体服务器就那么几台虚拟机是最节约成本的方式。第二类是CI构建集群。GitLab Runner或者Jenkins Agent需要跑ARM64构建任务用PVE开按需虚拟机比每人发一台物理机灵活太多。第三类是边缘计算和多业务隔离。一台48核甚至96核的鲲鹏920空闲算力很多跑PVE之后可以在上面拆出几个隔离环境分别跑数据库、消息队列、监控系统互不干扰。反过来说如果你指望在ARM宿主机上跑Windows x86虚拟机或者打算把之前x86平台的PVE虚拟机直接迁移过来那趁早放弃——ARM平台的PVE只能跑ARM64架构的guest系统这是硬件层面的限制不是软件装好了就能解决的。搞清楚这个边界后面才不会走弯路。1.2 ARM版PVE的兼容性真相说到兼容性必须把话说通透。Proxmox官方对ARM的支持是社区维护的mainline仓库里能装上proxmox-ve包pve-kernel也有arm64版本但很多外围组件和x86版有细微差别。我在一台双路鲲鹏920 482648核×2512GB内存的机器上实际跑了3个多月创建了6台ARM虚拟机、4个LXC容器日常使用相当稳定包括快照、备份、迁移都能正常工作。但这里也有几个现实限制需要提前知道项目x86_64平台ARM64/鲲鹏920平台实际影响官方ISO安装支持无需走Debian仓库安装流程多一步但一次性搞定虚拟机架构x86_64 guest仅ARM64 guest跨架构迁移不可能Web管理界面完整完整日常操作无差别LXC模板丰富部分官方模板支持arm64选模板时注意看架构标签PCIe设备直通支持较好与SMMU实现强相关依赖固件和板卡不是所有设备都行备份恢复vma格式同架构下可用只能在ARM平台之间迁移社区资料非常多较少很多要靠自己排查需要一定Linux基础我的结论是鲲鹏920作为PVE宿主机完全够格前提是你不指望它做x86模拟、不买一堆需要特殊直通的外设。日常的VM创建、删除、快照、回滚、LXC管理都跟x86上没什么区别。接下来进入实战。2. 部署前的硬性准备固件、引导与镜像获取2.1 BIOS里必须先确认的四个选项这一步最容易被人忽略建议在装系统之前就把BIOS过一遍否则等到PVE装完才发现虚拟化没开启回头再折腾BIOS会非常痛苦。第一启动模式必须选UEFI。鲲鹏920主板基本都是UEFI引导不支持传统Legacy如果发现机器没法引导U盘先去BIOS里确认安全启动Secure Boot是否关闭ARM平台不少默认开启会导致引导盘直接被拒。第二确认虚拟化扩展已开启。x86上看vmx/svm标志ARM上对应的就是KVM支持。BIOS里的叫法可能是“Virtualization”“SVE Extension”或者“KVM Support”改成Enabled。这个没开的话PVE安装后创建虚拟机会直接报错。第三打开SMMU相关选项。如果后面打算做设备直通尤其是SR-IOV网卡或者NVMe直通SMMU不开等于白搭。在鲲鹏的BIOS里找“SMMU”或“IOMMU”开关建议设成Enabled。这个选项在PCIe设备分配的时候特别关键。第四功耗策略选“Performance”。鲲鹏920的BIOS里一般有Performance和Power Saving两种模式跑虚拟化建议直接Performance不然虚拟机负载上来后主频调度会很保守性能损失不小。设置完BIOS后最好用iBMC带外管理口看一下开机日志确认没有ACPI相关错误。ARM服务器对ACPI的依赖比x86高得多ACPI表不对会造成CPU在线数不全、内存识别错误这类诡异问题。2.2 获取Debian 12 ARM64镜像和写盘Debian 12Bookworm的官方安装镜像区分amd64和arm64这里必须下载arm64版本。到Debian官网或者国内高校镜像站找debian-12.x.x-arm64-netinst.iso或者DVD镜像推荐优先用国内镜像比如清华、中科大或者阿里的镜像站速度稳定很多。写盘有两种方式。如果服务器旁边有电脑用dd命令写U盘最简单示例sudo dd ifdebian-12.5.0-arm64-netinst.iso of/dev/sdb bs4M statusprogress convfsync这里特别提醒一点很多人在Windows下习惯用Rufus写盘但Rufus对ARM64 Debian镜像的某些UEFI引导配置处理得并不完美。我在实测中遇到过U盘明明写好了上机却提示找不到启动设备的情况换成dd写盘后一次通过。如果你的机器有iBMC/IPMI接口更推荐直接在管理界面挂载ISO镜像用虚拟光驱引导这样连U盘都省了速度还快。另外Ventoy虽然好用但ARM64 UEFI兼容性比较看运气鲲鹏主板上不一定认建议还是老老实实用dd或者BMC挂载。2.3 远程控制台的准备服务器在机房的情况下建议在装系统之前就把iBMC网络配好获取到一个静态管理IP之后全程通过网页KVM操作。鲲鹏服务器默认的iBMC登录信息一般印在机器铭牌上首次登录后立刻修改密码。控制台分辨率如果显示异常很多是显卡兼容问题用iBMC的HTML5 KVM基本能规避。如果你手里只有SSH通道没有带外管理那装系统时一定要记得在GRUB里加上串口输出参数免得系统启动卡住后完全看不到日志。在GRUB的linux命令行末尾追加consoletty0 consolettyS0,115200n8这样可以在串口上看到完整的启动信息排查问题的时候会省很多力。3. Debian 12安装记录ARM版和x86版的真实差异3.1 分区方案怎么留余地安装Debian时分区建议手动来做不要图省事用整盘自动分区。原因是PVE安装包在检测到系统原有LVM配置时的处理策略和官方ISO不一样搞不好会破坏掉现有逻辑卷。我的实际方案是/boot/efi512MBEFI System Partition这个必须有不然UEFI引导直接失败/100GBext4文件系统给系统本身和PVE组件用剩余空间先不分配等PVE装完再根据需求创建LVM-thin或者ZFS存储池swap方面很多教程说虚拟化平台不需要swap但安装阶段还是建议分配8GB左右避免某些安装脚本在内存吃紧时出错。装完PVE之后可以再调低swappiness或者干脆关掉swap不影响大局。ARM版Debian安装的交互流程和x86区别不大最大的不同是在分区和引导那一页确认引导目标选的是UEFI分区。常见问题是手动分区时忘了指定EFI分区导致GRUB装不上卡在“Unable to install GRUB in /dev/sda”这种错误。3.2 主机名和域名必须一次配成FQDN这是PVE平台一个很硬的约束主机名必须是FQDN格式也就是“短主机名域名”比如pve01.local.lan。安装Debian的时候在设置主机名那一步如果只填了pve01装完PVE之后会看到类似“You do not have a valid FQDN”的警告Web界面也偶发502。建议在安装阶段就直接把hostname填成pve01domain填成local.lan。如果已经装好了也没关系后面可以通过修改两个文件来补救。先修改/etc/hostnamepve01再修改/etc/hosts127.0.0.1 localhost 127.0.1.1 pve01.local.lan pve01 192.168.1.10 pve01.local.lan pve01注意/etc/hosts里第二行的IP必须是实际管理IP不能用127.0.1.1代替否则后续集群功能和节点通信可能会有问题。这个细节我在x86上从来没注意过到了ARM平台因为资料少排查了很久才发现。3.3 网络配置和ARM特有检查项安装时网卡IP建议直接配置静态地址别用DHCP。装PVE后要把物理网卡加入虚拟网桥如果用的是DHCP获取的IP重启网络后整个管理连接可能会变得不可控。网络和基础包都装好后重启进入系统先做几个验证# 确认内核架构 uname -m # 应该输出 aarch64 # 确认KVM虚拟化可用 ls -l /dev/kvm # 如果存在 /dev/kvm 说明硬件虚拟化已开启 # 查看CPU信息 lscpu这里有一个跟x86很不同的习惯要纠正x86上判断虚拟化是否开启通常看/proc/cpuinfo里有没有vmx或svm标志但在ARM平台上这些标志完全不存在。正确做法就是看/dev/kvm节点是否存在存在就代表KVM可用不存在就要回到BIOS检查虚拟化开关。Debian 12的arm64内核默认是支持KVM的所以只要硬件没问题/dev/kvm一般都在。如果你发现自己装的PVE虚拟机起不来第一步就去查这个节点。4. 在Debian 12上安装PVE仓库、依赖与网络桥接4.1 添加Proxmox仓库并导入GPG密钥Debian装好后我们需要把Proxmox的软件源挂到apt里。这里有两种选择官方源还是国内镜像源。官方源的地址是download.proxmox.com在海外机器上速度没得说国内服务器常常慢到怀疑人生我实际测试中官方源下载pve-kernel时网速只有几十KB/s换成清华镜像后速度立刻起飞。官方源配置echo deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription /etc/apt/sources.list.d/pve.list国内镜像源配置echo deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription /etc/apt/sources.list.d/pve.list然后导入GPG密钥wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg如果访问enterprise.proxmox.com也慢可以从镜像站下载对应的gpg文件。密钥没导好会导致apt update时报“NO_PUBKEY”错误所以这步不能跳。网上还有教程建议先禁用企业源其实不影响安装流程装完基础包后留着也无妨只是没订阅的情况下apt update会报404看着不舒服。可以顺手注释掉。4.2 安装proxmox-ve包的完整命令仓库配好后执行apt update apt install proxmox-ve这里会看到apt自动拉取pve-kernel、qemu-server、pve-manager等一系列包arm64版本的依赖都能从官方仓库解决。安装过程中会弹出Postfix的配置界面问邮件服务器用途选“Local only”即可PVE的通知机制依赖这个组件不能跳过不装。如果在依赖解析阶段报错常见原因是系统里有些基础包版本太旧先执行apt upgrade把系统升到最新再回头装proxmox-ve。还有一个比较少见的情况某些镜像源同步不完整导致arm64的pve-kernel包缺失。这时候切换到官方源重试一下基本能解决。安装完成后先不急着重启检查一下服务的加载情况systemctl status pve-cluster pvedaemon pveproxy pvestatd这四个服务都是运行状态再执行reboot。4.3 网络桥接配置把物理网卡搬进vmbr0注重点在这里。用官方ISO安装PVE时安装器会自动帮你把第一块物理网卡桥接成vmbr0但从Debian手动安装上来系统网络配置不会自动改变需要手动把物理网卡的管理地址迁移到网桥上。编辑/etc/network/interfaces示例配置auto lo iface lo inet loopback # 物理网卡地址挪到网桥后变成manual iface eno1 inet manual # 管理网桥 auto vmbr0 iface vmbr0 inet static address 192.168.1.10/24 gateway 192.168.1.1 bridge-ports eno1 bridge-stp off bridge-fd 0改完后执行systemctl restart networking如果需要打VLAN标签的虚拟网络可以在vmbr0上挂VLAN接口auto vmbr0.100 iface vmbr0.100 inet manual vlan-raw-device vmbr0然后给某个VM的虚拟网卡指定tag为100即可。多网卡服务器建议把管理网络和业务网络分开比如eno1给vmbr0做管理eno2和eno3做bond后给vmbr1跑业务流量。bond配置也不复杂auto bond0 iface bond0 inet manual bond-slaves eno2 eno3 bond-miimon 100 bond-mode 802.3ad bond-xmit-hash-policy layer34 auto vmbr1 iface vmbr1 inet static address 192.168.50.1/24 bridge-ports bond0 bridge-stp off bridge-fd 0bond-mode 802.3ad需要交换机配合开启LACP如果交换机不支持改成balance-alb负载均衡和冗余效果也能接受。配置完成后浏览器打开https://192.168.1.10:8006能看到PVE的登录界面用root账号和系统root密码登录。提示证书不安全是正常的自签名证书点“高级”继续访问就行。4.4 安装后必须做的三个小调整PVE能跑起来只是第一步有几个小调整建议立刻做掉能省掉后面很多麻烦。第一调整软件源。登录Web界面后在“节点-更新-仓库”里能看到两个源把enterprise源停用避免反复报404。第二设置时区和NTP。在PVE Web界面“节点-时间”里设置时区为Asia/Shanghai配置NTP服务器为国内NTP池否则虚拟机时间会漂移。第三确认管理口的防火墙状态。默认防火墙开着的话从外部访问8006端口可能被拦在“数据中心-防火墙”里选择关闭或者放行特定IP。5. 创建第一台ARM虚拟机从选镜像到参数调优5.1 虚拟机镜像选择只能选ARM64进入Web界面后第一次创建虚拟机的最大坑就是惯性思维。PVE默认弹出的是x86架构的机器创建向导硬件选项里CPU类型默认是kvm64这会让你以为可以像x86平台一样装个ubuntu amd64的ISO。但事实是ARM宿主机只能跑ARM64 guestx86镜像在这里完全起不来。推荐两种镜像方式第一种是Debian 12 ARM64 Cloud镜像qcow2格式可以从Debian官方Cloud镜像站下载也可以直接下载Ubuntu Server 22.04/24.04的ARM64 cloud镜像。这类镜像自带cloud-init支持配合PVE的cloud-init功能可以方便地设置用户、密码、网络和SSH key。第二种方式是直接在PVE的模板库里下载LXC模板适合跑轻量服务pveam update pveam available --section system | grep arm64 pveam download local debian-12-standard_12.2-1_arm64.tar.zst下载到的模板会放在/var/lib/vz/template/cache/目录创建LXC容器时选择对应的arm64模板即可。5.2 虚拟机参数设置的核心逻辑创建VM时有几个参数在ARM平台上和x86明显不同。第一机器类型。ARM默认使用QEMU的virt机器这个在PVE 8.x里是自动选好的不需要手动改。关键是别选“i440fx”或“q35”那些是x86专属概念。第二CPU类型。建议直接选host让虚拟机继承物理机的完整CPU特性。如果guest系统里莫名其妙出现某些指令集不可用的问题比如跑某些编译任务报非法指令可以退而求其次选cortex-a72模型这个模型通用性更强兼容各类ARM guest。第三BIOS类型。ARM虚拟机不支持SeaBIOSPVE会自动使用UEFI引导需要在“选项-BIOS”里确保选的是OVMFUEFI。用命令行创建VM更直观qm create 100 --name debian-arm --memory 4096 --cores 4 \ --net0 virtio,bridgevmbr0 \ --scsihw virtio-scsi-pci \ --ostype l26 \ --cpu host然后导入cloud镜像qm importdisk 100 /var/lib/vz/template/iso/debian-12-generic-arm64.qcow2 local-lvm qm set 100 --scsi0 local-lvm:vm-100-disk-0 qm set 100 --ide2 local-lvm:cloudinit qm set 100 --boot orderscsi0 qm set 100 --serial0 socket qm set 100 --vga serial0这里serial0和vga serial0两个参数值得说一下。ARM虚拟机因为virt机器的显示设备兼容性较弱很多时候没法正常显示图形界面所以建议把串口当主控制台这样后面可以用qm terminal 100来连接虚拟机特别适合没有显示环境的服务器。如果觉得串口操作不顺手也可以在guest里装好桌面系统后再通过VNC或SPICE连接但前提是vga设备能正常识别。5.3 virtio驱动和存储后端选择磁盘控制器推荐virtio-scsi-pci网卡选virtio-net性能远远好于模拟的e1000或sata。如果引导时卡住可以临时换成sata磁盘控制器看看是不是virtio驱动没进initramfs但这只是排查手段生产环境还是用virtio。存储后端的选择跟平台关系很大。PVE默认的local-lvm通常是LVM-thin支持快照性能也不错。但我在ARM平台上遇到过LVM-thin空间回收异常的问题表现为存储已用100%但虚拟机实际占用很少后来拆分排查发现是thin pool的备源问题。对新手我建议直接改用目录存储也就是把虚拟机磁盘存成qcow2文件放在/var/lib/vz/images目录里。虽然论峰值性能不如rawlvm-thin但胜在简单可靠、方便复制迁移。等对ARM平台的存储行为熟悉了再切换回LVM-thin或者上ZFS不迟。在Web界面的“数据中心-存储”里编辑local存储把内容类型勾上“磁盘映像”和“容器模板”虚拟机磁盘就可以直接落在local目录里了。之后创建VM时存储选择local即可。5.4 用cloud-init快速初始化Cloud镜像装完后第一次启动不会提示设置账号密码全部靠cloud-init写入配置。这个过程在Web界面上操作很方便在VM的“Cloud-Init”选项卡里填上用户、密码、SSH公钥和网络配置。命令行方式qm set 100 --ipconfig0 ip192.168.1.100/24,gw192.168.1.1 qm set 100 --sshkeys ~/.ssh/id_rsa.pub qm set 100 --cicustom userlocal:snippets/user-data.yaml执行cloud-init更新后启动qm cloudinit update 100 qm start 100启动后稍等几十秒用配置的IP和SSH key登录。ARM虚拟机内的后续操作就和普通ARM服务器一样了可以部署Docker、K8s、数据库等任意ARM64软件。6. 踩坑实录从APIC到存储的完整排查链路6.1 Web界面502和FQDN问题这个问题在any平台都可能出现但ARM资料少的时候特别容易卡住。现象是PVE装好后访问8006端口返回502 Bad Gateway。先看服务状态systemctl status pveproxy -l如果发现说明里有类似“Failed to resolve host name”的内容基本就是主机名解析出错了。检查/etc/hosts和/etc/hostname把主机名改成标准FQDN格式后重启pveproxysystemctl restart pveproxy这个坑的根本原因是PVE的代理服务在启动时要反向解析本机名解析不通过就直接罢工。很多教程直接告诉你改hosts但没解释为什么这里补充一句PVE的pveproxy依赖主机名到IP的本地解析特别是在没有内部DNS的环境下必须靠/etc/hosts兜底。6.2 虚拟机启动报错KVM不可用创建完VM一启动就报“TASK ERROR: KVM virtualisation configured, but /dev/kvm is missing”或者提示“Cannot set up guest memory ‘pc.ram”。这个报错在ARM平台上比x86更容易被误判为内存或配置问题其实是KVM设备不可用。排查链路是这样的ls -l /dev/kvm如果文件不存在继续查内核模块dmesg | grep -i kvm modprobe kvm如果modprobe时报错说模块不存在或者不支持回到BIOS确认虚拟化开关。如果你用的不是Proxmox的pve-kernel而是Debian自带内核确认一下内核版本我遇到过Debian backports内核在某些固件版本上KVM初始化失败的情况换回pve-kernel就好了。6.3 存储显示100%占满但实际没那么多这是一次典型的ARM平台排查。某天登录PVE看到local-lvm显示已用100%但把所有虚拟机的磁盘大小加起来远远没到这个数。先看lvm卷情况lvs vgs结果发现thin pool的Data%到了100%但LV里面实际数据很少。这个情况在x86平台也有但ARM平台上概率更高和某些kernel版本对thin pool的discard处理不完善有关。最省心的解决方式转移存储方案把虚拟机磁盘从local-lvm迁移到local目录qcow2格式。在Web界面的“数据中心-存储”里选中local-lvm上的磁盘选择“迁移”目标存储选local。迁移完成后在local-lvm上新建的卷就不会持续吃满thin pool了。如果不换存储方案也可以定期执行fstrim来回收精简配置的块fstrim -av在宿主机上执行guest里也建议启用discard。6.4 大内存虚拟机性能不均衡NUMA问题鲲鹏920服务器是典型的多NUMA节点架构如果创建虚拟机时没有开启NUMA感知QEMU会默认把内存和CPU分配在同一个NUMA节点上导致某个CPU节点的内存带宽被耗尽其他节点闲置。检查方法numactl -H看available nodes数量和内存分布。创建大规格虚拟机时在Web界面的“处理器”选项卡里勾选“NUMA”或者在命令行设置qm set 100 --numa 1这样QEMU会向guest暴露虚拟NUMA拓扑操作系统层面的调度器就能更合理地分配资源。另外宿主机上也可以考虑开启CPU自动均衡避免某些核心过载systemctl enable irqbalance systemctl start irqbalance6.5 swap和swappiness的取舍PVE官方其实不鼓励使用swap但Debian安装默认会创建swap分区。问题是宿主机的swap如果被频繁使用会对虚拟机的实时性造成明显影响。我在部署后发现宿主机swap占用一直在涨排查发现是某些备份任务临时吃掉了大量内存。调整方案sysctl vm.swappiness10 echo vm.swappiness10 /etc/sysctl.conf把swappiness降到10只有内存确实不足时才使用swap。如果内存完全充足也可以选择直接关闭swapswapoff -a不过稳妥起见我在生产环境是留着swap保底只是降低使用倾向。6.6 备份和跨架构迁移的限制PVE的备份功能在ARM平台可用但恢复目标必须是相同架构。我做了一次实验在ARM宿主机上备份了一台Debian ARM虚拟机然后尝试恢复到x86测试机结果是启动直接失败。原因很简单guest系统的内核和用户态全是ARM64二进制x86虚拟化平台无法执行。所以规划多节点容灾时要么所有宿主机都是ARM架构要么做好VM级别的业务迁移预案不要指望跨架构恢复。这一点从安装PVE之前就要有认知它决定了你的基础设施边界。7. 性能验证、LXC模板与后续演进方向7.1 性能验证虚拟化损耗能压到多低部署稳定后我针对虚拟机做了基础的性能验证。在guest里用unixbench跑了一套基准测试再在宿主机的相同容器环境里跑一遍分数差异在15%以内也就是说虚拟化本身的开销并不大。磁盘性能方面用fio简单测试fio --nametest --rwrandwrite --bs4k --size1G --runtime60 --numjobs4 --group_reporting对比结果是qcow2文件存储的随机写延迟明显高于LVM-thin因为qcow2有写时复制机制元数据写入有额外开销。如果跑数据库类的应用建议用LVM-thin或者ZFS作为存储后端能显著提升随机写入性能。CPU性能对比时注意CPU类型的影响。同一台VMCPU类型选host和选cortex-a72unixbench分数能差10%-20%差异主要来自指令集和特性标志的完整性。7.2 LXC容器ARM上最轻量的虚拟化选择除了虚拟机PVE里的LXC容器在ARM平台上也很好用。LXC本质上是共享宿主机内核的隔离环境开销远小于全虚拟化一台48核512GB的机器跑几十个容器都没压力。创建LXC的核心步骤# 下载arm64容器模板 pveam update pveam available --section system | grep arm64 pveam download local debian-12-standard_12.2-1_arm64.tar.zst # 创建容器 pct create 200 local:vztmpl/debian-12-standard_12.2-1_arm64.tar.zst \ --hostname lxc-arm \ --memory 1024 \ --net0 nameeth0,bridgevmbr0,ipdhcp \ --storage local \ --unprivileged 1LXC在ARM上的启动速度几乎是一瞬间特别适合跑监控、DNS、CI runner这类常驻小服务。如果你打算跑一套ARM Kubernetes集群用LXC节点做k3s agent也是一个不错的思路。7.3 存储演进从directory到ZFS随着虚拟机数量变多我最终还是把存储切到了ZFS。原因很直接ZFS自带压缩和去重对ARM上的大量系统镜像节省很多空间快照和克隆功能比LVM-thin更可靠而且ARC缓存会扩大内存占用但鲲鹏920的内存够大完全养得起。创建ZFS池# 假设有 /dev/sdb 和 /dev/sdc 两块盘 zpool create -f zfspool mirror /dev/sdb /dev/sdc然后在PVE Web界面添加ZFS存储内容类型勾选“磁盘映像”后续虚拟机磁盘就存在ZFS池上了。注意ZFS建议加一个log盘和cache盘但初期没有也没关系mirror模式下的性能已经不错。7.4 后续还可以往哪扩展机器跑起来之后可以做的方向不少。比如搭建PVE集群把两台甚至三台ARM服务器加入同一个集群实现虚机在线迁移和高可用比如给宿主机配置专门的备份存储用vzdump定期备份虚拟机再比如在ARM虚拟机里部署Kubernetes用来做ARM容器镜像的CI构建。如果你对PVE的API感兴趣还可以用pvesh命令行脚本自动化创建和销毁测试虚拟机做成自服务测试平台团队里谁要环境就自己开一台用完自动回收。这个方向在开发者资源紧缺的团队里特别实用。最后分享一个我个人的小习惯每次在ARM平台修改了网络配置或者存储配置都会先截图保存改动前的状态并记录到笔记里。ARM平台的PVE社区维护者少出了问题不像x86那样搜索一下就有答案自己的排障记录往往是最快最可靠的参考。
返回列表