Alain's Blog

  1. 首页
  2. 虚拟机
  3. Proxmox VE
  4. 正文

Proxmox VE(PVE)7.x 安装ARM虚拟机,对比N1性能测试

2023年1月20日 6881点热度 8人点赞 1条评论

ARM on Proxmox

转载请注明出处,本文仅用于学习交流,不对之处,恳请指正 ,部分图片摘取网络,如有侵权请联系

结论

可能我的配置有问题,如果你有什么其他方案,能否告诉我一下

先放结论,有些同学可能跟我一样,不喜欢看过程。实际体验上,虚拟机的性能远不如实体机,我使用的CPU为I9 10900的至强马甲W-1290,分配给虚拟机8个虚拟核心,固态为PCIE3.0的NVME固态。测试结果是不如使用晶晨S905的N1盒子,通过测试可以看出瓶颈出现在IO读写上,我猜测X86虚拟化ARM虚拟机进行读写操作时,可能需要CPU参与进行一些转换从而导致IO读写性能降低。

可以说虚拟化ARM系统只能解决有无问题,并不能提供好的开发性能。

Debian ARM版本

https://www.debian.org/devel/debian-installer/

https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/

PVE安装ARM虚拟机

与普通VM安装方式的区别

  1. 操作系统

    不要选中任何镜像,因为PVE默认创建的光驱在IDE 2的位置,ARM光驱启动需要在SCSI

    安装ARM虚拟机

  2. 系统

    2.1 显卡选中默认,或者串口终端都可以(需要新建一个串口)

    2.2 主板选中i440fx

    2.3 BIOS选中OVMF (UEFI),但不要选中EFI Disk

    2.4 SCSI选中Controller,VirtIO SCSI

    安装ARM虚拟机

  3. 硬盘

    删除(或者后续删除,这里有个坑)

  4. CPU

    4.1 核心数最大不能超过8

    4.2 类型只能选默认

    4.3 其他默认,或者打开NUMA都行

    安装ARM虚拟机

  5. 内存

    随意

  6. 网络

    默认的VirtIO即可,其他没测试过

    安装ARM虚拟机

  7. 回到面板选中创建的虚拟机,选中硬件

    安装ARM虚拟机

    7.1 删除光盘镜像

    7.2 如果你创建了硬盘,也需要删除,因为EFI最好还是在${storage_id}:0位置,否则可能会导致虚拟机启动时不能够直接进入,需要输入代码: fs0:\EFI\debian\grubaa64.efi 才能启动虚拟机

  8. 重新添加光盘镜像

    注意,总线选择SCSI,位置2(其实其他位置也可以,不过2比较好)

    安装ARM虚拟机

  9. 去到Host主机的Shell页面

    9.1 修改虚拟机配置

    nano /etc/pve/qemu-server/116.conf

    顶部加入arch: aarch64,并删除vmgenid

    9.2 创建EFI引导盘

    qm set ${vmid} -efidisk0 ${storage_id}:0,format=raw
    # 比如
    # qm set 116 -efidisk0 local-lvm:0,format=raw

    9.3 最终参考如下

    安装ARM虚拟机

  10. 回到面板选中创建的虚拟机,选中硬件

    新增硬盘,类型选择SCSI即可

  11. 回到面板选中创建的虚拟机,选中硬件

    移动硬盘到首位,光盘第二

    安装ARM虚拟机

  12. 启动虚拟机,正常安装流程

ARM虚拟机使用U盘

直接在界面选中U盘是不可用的,需要使用代码加入U盘设备

qm set 节点 -args "-device nec-usb-xhci,id=xhci,addr=0x1b,bus=pci.1 -device usb-host,bus=xhci.0,vendorid=0x0000,productid=0x0000"

修改其中的vendorid,productid为你U盘的参数,节点为你的虚拟机节点,比如180

修改网络配置

正常安装之后

cp /etc/network/interfaces /etc/network/interfaces.bak
nano /etc/network/interfaces
allow-hotplug enp0s18
auto enp0s18
iface enp0s18 inet static
address 192.168.1.180
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
nano /etc/resolv.conf
cp /etc/resolv.conf /etc/resolv.conf.bak
nameserver 192.168.1.1

安装Docker

apt-get install ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

跑分

https://www.frytea.com/technology/unix-like/how-to-run-points-in-linux/

安装依赖

apt-get install git libx11-dev libgl1-mesa-dev libxext-dev perl perl-modules make gcc -y

编译跑分软件

git clone https://github.com/kdlucas/byte-unixbench.git
cd byte-unixbench
cd UnixBench
make
./Run

虚拟机的系统跑分

ARM虚拟机跑分

N1的系统跑分

N1盒子跑分

虚拟机的Docker内跑分

ARM虚拟机Docker内跑分

N1的Docker内跑分

N1 Docker内跑分

虚拟机拷贝到内存的速度

虚拟机拷贝到内存的速度

N1拷贝到内存的速度

N1拷贝到内存的速度

虚拟机拷贝到硬盘的速度

主机使用的是NVME固态硬盘

虚拟机拷贝到硬盘的速度

N1拷贝到eMMC的速度

N1拷贝到eMMC的速度

N1拷贝到固态硬盘的速度

好像还不错,现在便宜的120G固态也就几十块钱...

N1拷贝到固态硬盘的速度

N1拷贝到U盘的速度

不重新跑了,直接说结果,4k,2MB/s

参考

  1. https://i12bretro.github.io/tutorials/0661.html
  2. https://www.dnlab.net/archives/70/
标签: ARM Armbian N1 Proxmox VE
最后更新:2023年9月24日

Alain

看了我的文,就是我的人,点个赞再走成不成

点赞
< 上一篇
下一篇 >

文章评论

  • divilis

    9.2 描述成创建引导盘, 容易让人困惑. 因为指令只是指定了efi 引导的硬盘或者其它介质.
    另外, 用户应该安装 pve-edk2-firmware-aarch64 (PVE: apt-get install pve-edk2-firmware-aarch64), 否则无法引导 (报 EFI base image '/usr/share/pve-edk2-firmware//AAVMF_CODE.fd' not found).

    2025年1月7日
    回复
  • 取消回复

    文章目录
    • 结论
    • Debian ARM版本
    • PVE安装ARM虚拟机
      • 与普通VM安装方式的区别
      • ARM虚拟机使用U盘
      • 修改网络配置
      • 安装Docker
    • 跑分
      • 虚拟机的系统跑分
      • N1的系统跑分
      • 虚拟机的Docker内跑分
      • N1的Docker内跑分
      • 虚拟机拷贝到内存的速度
      • N1拷贝到内存的速度
      • 虚拟机拷贝到硬盘的速度
      • N1拷贝到eMMC的速度
      • N1拷贝到固态硬盘的速度
      • N1拷贝到U盘的速度
    • 参考

    COPYRIGHT © 2022 Alain's Blog. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang