转载请注明出处,本文仅用于学习交流,不对之处,恳请指正 ,部分图片摘取网络,如有侵权请联系
结论
可能我的配置有问题,如果你有什么其他方案,能否告诉我一下
先放结论,有些同学可能跟我一样,不喜欢看过程。实际体验上,虚拟机的性能远不如实体机,我使用的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安装方式的区别
-
操作系统
不要选中任何镜像,因为PVE默认创建的光驱在IDE 2的位置,ARM光驱启动需要在SCSI
-
系统
2.1 显卡选中默认,或者串口终端都可以(需要新建一个串口)
2.2 主板选中i440fx
2.3 BIOS选中OVMF (UEFI),但不要选中EFI Disk
2.4 SCSI选中Controller,VirtIO SCSI
-
硬盘
删除(或者后续删除,这里有个坑)
-
CPU
4.1 核心数最大不能超过8
4.2 类型只能选默认
4.3 其他默认,或者打开NUMA都行
-
内存
随意
-
网络
默认的VirtIO即可,其他没测试过
-
回到面板选中创建的虚拟机,选中硬件
7.1 删除光盘镜像
7.2 如果你创建了硬盘,也需要删除,因为EFI最好还是在${storage_id}:0位置,否则可能会导致虚拟机启动时不能够直接进入,需要输入代码:
才能启动虚拟机fs0:\EFI\debian\grubaa64.efi
-
重新添加光盘镜像
注意,总线选择SCSI,位置2(其实其他位置也可以,不过2比较好)
-
去到Host主机的Shell页面
9.1 修改虚拟机配置
nano /etc/pve/qemu-server/116.conf
顶部加入
,并删除vmgenidarch: aarch64
9.2 创建EFI引导盘
qm set ${vmid} -efidisk0 ${storage_id}:0,format=raw # 比如 # qm set 116 -efidisk0 local-lvm:0,format=raw
9.3 最终参考如下
-
回到面板选中创建的虚拟机,选中硬件
新增硬盘,类型选择SCSI即可
-
回到面板选中创建的虚拟机,选中硬件
移动硬盘到首位,光盘第二
-
启动虚拟机,正常安装流程
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
虚拟机的系统跑分
N1的系统跑分
虚拟机的Docker内跑分
N1的Docker内跑分
虚拟机拷贝到内存的速度
N1拷贝到内存的速度
虚拟机拷贝到硬盘的速度
主机使用的是NVME固态硬盘
N1拷贝到eMMC的速度
N1拷贝到固态硬盘的速度
好像还不错,现在便宜的120G固态也就几十块钱...
N1拷贝到U盘的速度
不重新跑了,直接说结果,4k,2MB/s
文章评论