王國慶 发表于 2024-12-22 17:53:19

基于华为taishan200服务器、arm架构kunpeng920 cpu的虚拟化实战

1、简介

        最近两天在搞arm架构的应用部署工作,但是我们只有一台arm的服务器,是华为的taishan200,cpu架构是arm的,型号是920。一开始打算利用的是esxi,esxi可以说是虚拟化的老大,但是由于其仅支持x86和一些国外的arm服务器,不支持国内的cpu,所以只能放弃。想过租阿里的arm云服务器,但是大环境啊,租不起了。
        随后又调研了一些开源和国内的虚拟化平台,比如:FreeVM、Proxmox VE,但是free vm在免费版的情况下,只支持虚拟4c4g的虚机,这不满意我们的需求;Proxmox VE 固然可以做到支持国产服务器arm的方案,但是由于需要更改太多的东西,容易把呆板玩废了,所以也只能放弃。        
        哦,这里说下,固然可以安装debian后,在安装Proxmox,但是这个没有尝试过,可能也需要较长的时间,而且不能保证在改动之后,可以乐成虚拟虚机,所以这个不是我的选择。
        最终在个人调研情况下,决定接纳较为稳妥的方式:

[*]服务器开启虚拟化
[*]安装可以展示界面的linux操纵系统(openeuler)
[*]在openeuler操纵系统中,安装kvm qemu以及虚拟化管理工具
[*]创建虚机,完成虚拟化使命
2、服务器查看是否开启虚拟化

我这里的服务器是华为taishan 200,cpu架构arm,cpu型号 kunpeng920
https://i-blog.csdnimg.cn/direct/bc466601649f41a1a4991cd37f0f9c8d.png
2.1 开机进入bios

这一步其实没什么好说的,就是关闭服务器,然后按下开机按钮,稍等片刻
https://i-blog.csdnimg.cn/direct/542d77db151f4934b5354eabf352d03a.png
 出现上图的时间,疯狂按“Delete”或“F4”(大概开机之后,就开始按也行),顺利的话,可能会让你输入密码
https://i-blog.csdnimg.cn/direct/05813a32b9834a698cbf7c65b351d5b6.png
初始的密码应该是admin@9000(如果你没有改过的话)
2.2 查看虚拟化是否开启

实行完2.1的步骤之后,就会进入bios的mian界面
https://i-blog.csdnimg.cn/direct/ffa91fd371494490b31e8ed75960e8c8.png
之后需要通过键盘上的←和→来移动选项,进入 Advanced,然后选择pcle config,回车
https://i-blog.csdnimg.cn/direct/4f4be626c85a44db80bf94adb90f66cc.png 
 进入pcie config界面后,如下图,选择sriou,将其改为enable。
https://i-blog.csdnimg.cn/direct/5c7910c421134bd49bf3bb84c710beef.png
相干参数阐明:


[*]启用或停用Single Root Input/Output Virtualization(SRIOV),菜单选项为:   

[*]Enable 启用
[*]Disable 停用

之后后退,然后F10,生存并退出。 
3、下载openeuler镜像,并写入U盘

3.1 下载openeuler镜像

 华为的呆板,利用华为的操纵系统,这非常nice。可以搜索openeuler,进下载页面
https://i-blog.csdnimg.cn/direct/a0d9777e229e4b509daf5685ba1fc086.png
筛选一下各自呆板的资源配置,比如架构 aarch64、我想要的lts版本(长期维护支持)
https://i-blog.csdnimg.cn/direct/3fd615f9c88a420785e3b32581345962.png
我选择的是“openEuler 22.03 LTS SP4”,如果后续在页面中找不到了,可以评论留言要下载所在。点击“openEuler 22.03 LTS SP4”后面的前去下载,进入下图的页面。
https://i-blog.csdnimg.cn/direct/e90c5105352646758ff152cf5e654ca9.png
然后选择aarch64和服务器,筛选一下,在点击立即下载,就可以下载iso了。这里不建议下载第二个全部安装,因为在安装的时间有冲突,而且写入的时间太长了。
 3.2 镜像写入U盘

我风俗利用rufus工具写入iso,这是一个非常好用的工具,按照下图中的选项举行选择即可
https://i-blog.csdnimg.cn/direct/4a148d5804464744aa1066b9e39c1059.png
点击开始后,会提示如下内容,提前阐明,需要将U盘中的数据举行生存哈
https://i-blog.csdnimg.cn/direct/c5ce1117284b4783932181e3bd2efb5e.png
接下来就是一个漫长的等候,究竟需要举行:格式化U盘,设置卷标,写入文件一系列操纵
https://i-blog.csdnimg.cn/direct/5e535f2282f54410926feeedb6938115.png
出现上图,已经表现写入乐成,就可以到服务器上插U盘了
4、进到服务器从U盘启动

注:此步骤实行前需要备份服务器中的数据(我这里确认不需要生存后,就直接格式化了)
比力幸运的是,taishan200可以在启动后通过F2,选择启动盘
在开启出现这个界面或出现之前,疯狂按F2(按“F2”进入选择启动项界面)
https://i-blog.csdnimg.cn/direct/8161527bccbb4b248c2af6d45031ae65.png
之后就是输入密码,默认密码在上面写了,这里不重复
https://i-blog.csdnimg.cn/direct/a633e6fbb31f4c26b9275b0b2a1d099f.png
输入密码之后选择插入的U盘
5、安装openeuler

在出现下图时,选择“Test this media & install openEuler 22.03-LTS-SP4”
https://i-blog.csdnimg.cn/direct/3a595894b02e4ee290dd53b4a713c645.png
选择“Test this media & install openEuler 22.03-LTS-SP4”之后,稍等片刻,会出现下图
https://i-blog.csdnimg.cn/direct/15f37dc5a69e460f9bfdd6a73224641d.png
接下来就是选择利用的语言、硬盘、开启网络、主机名、设置时区、创建用户等步骤。
https://i-blog.csdnimg.cn/direct/d83bd329806f44dd87e89bba3ac4df44.png
安装的目标地,就选择服务器上的硬盘就可以,如果是已有数据的硬盘,可能会剩余空间不足,在选择磁盘后,点击回收空间,确定不需要生存数据,就选择后,有个全部删除,然后openeuler会自动重置了。
https://i-blog.csdnimg.cn/direct/d0bbe6d837a94c1185158428f384f54e.png
然后就是开启root用户,输入密码,然后选择安装,等完成后,重启系统就可以了。
6、配置服务器为静态ip

进入服务器后,编辑/etc/sysconfig/network-scripts/ifcfg-enp125s0f0文件,我这里是这个名字,有几个网卡选择那个就行,这里如何确定,你利用的是哪个文件呢
6.1 确定需要修改的网络文件

通过shell毗连服务器后,实行
ip addr show https://i-blog.csdnimg.cn/direct/73ea20f708974fc3bcddce29eb8f063e.png
可以通过这个方式,看到利用的网卡名称,然后举行编辑就可以了
6.2 编辑文件

vi /etc/sysconfig/network-scripts/ifcfg-enp125s0f0


TYPE="Ethernet"
BOOTPROTO="static"
NAME="enp125s0f0"
DEVICE="enp125s0f0"
ONBOOT="yes"
IPADDR="192.168.1.253"
GATEWAY="192.168.1.1"
PREFIXn="255.255.255.0"
DNS1="8.8.8.8"
相干参数阐明:


[*]vi xxxx:通过vi编辑网卡文件
[*]TYPE=Ethernet:网络范例 以太网
[*]BOOTPROTO=static:利用静态ip
[*]NAME:网卡名称(与编辑的文件后缀一样)
[*]DEVICE:系统逻辑名(与编辑的文件后缀一样)
[*]ONBOOT:是否开机启动网卡,这是是yes
[*]IPADDR:指定的ip所在
[*]GATEWAY:网关
[*]DNS1:指定的第一个DNS服务器
[*]PREFIXn:这个参数需要阐明,openeuler不能是netmask,和centos不太一样
6.3 重启网络或重启系统

设置文件后,重启网络,让其生效
systemctl reload NetworkManager
systemctl restart NetworkManager

# 如果你那里通过上面两个命令,执行后已经生效,则不用重启。否则重启服务器
reboot 这个地方和centos不太一样,不可以通过service network restart重启
7 安装dde,也就是桌面

如果你自大能用命令行启动虚机,那是锋利的,可以不用在看了,如果你想像在windows利用vmware一样,创建虚机,则继承按我的文档实行
7.1 更新源

DDE是统信软件团队研发的一款功能强盛的桌面环境。包罗数十款功能强盛的桌面应用,是真正意义上的自主自研桌面产品。我比力喜好这个
dnf update 7.2 安装dde

dnf install dde
7.3 设置以图形界面方式启动

systemctl set-default graphical.target

reboot 重启之后,就会发现可以利用桌面的方式进入openeuler了,界面就长这个样子,我以为还是比力悦目标
https://i-blog.csdnimg.cn/direct/4a38f48486a8425a81dd930d73c33782.jpeg
8 安装虚拟化工具

由于openeuler内核已经集成了kvm,所以这里不需要单独安装kvm
8.1 安装qemu组件

yum install -y qemu
8.2 安装libvirt组件

yum install -y libvirt
8.3 启动libvirtd服务

systemctl start libvirtd
8.4 验证8.1-8.3的安装结果

8.4.1 确认kvm安装

查看内核是否支持KVM虚拟化,即查看/dev/kvm和/sys/module/kvm文件是否存在,命令和回显如下:
ll /dev/kvm
ll /sys/module/kvm
https://i-blog.csdnimg.cn/direct/7a44e80313ae4f729b80ae600f33a6f0.png
若上述文件存在,阐明内核支持KVM虚拟化。若上述文件不存在,则阐明系统内核编译时未开启KVM虚拟化,需要更换支持KVM虚拟化的Linux内核。
8.4.2 确认qemu

rpm -qi qemu https://i-blog.csdnimg.cn/direct/51b414df849c4d97bdfa6202c5ed98bf.png
8.4.3 确认libvirt

rpm -qi libvirt https://i-blog.csdnimg.cn/direct/ce2db606efeb4151b06de873913d1f87.png
查询下是否启动
systemctl status libvirtd https://i-blog.csdnimg.cn/direct/1e1a4e0b61ba4c398d31a18b383bff1e.png
8.5 安装虚拟机管理工具

在这里有教程会说安装 qemu-img、virt-install libvirt virt-manager-common等,其实不需要,只需要实行
yum install virt-manager 然后需要的内容,都会自动更新并安装,输入y,等候安装完成
https://i-blog.csdnimg.cn/direct/40cc52f0e7f249f0991be0e1236505c8.png
8.6 启动虚拟系统管理器

有两种启动方式,一种是在shell中实行 virt-manager,就会自己弹出来管理界面。第二种就是在桌面上,找到虚拟系统管理器
https://i-blog.csdnimg.cn/direct/a624884c30404b2e987f0af4d31c4a29.jpeg
9 利用虚拟系统管理器

9.1 打开虚拟系统管理器

通过8.6 的任意一种方式打开,他会长成下图的样子,固然我这里有我创建的虚机
https://i-blog.csdnimg.cn/direct/66af336929754a948912d9d69bfa04e7.jpeg
9.2 点击+,大概文件—新建虚拟机

通过点击+,大概文件—新建虚拟机,都可以创建虚机
https://i-blog.csdnimg.cn/direct/7c01b504ab5943fe81efc6a796b47518.jpeg
9.2.1 解决failed to setup uefi 不能为aarch64 找到任何uefi 二进制路径

        如果你是arm架构的cpu,而且利用的是openeuler操纵系统,会碰到一个错误,就是上述的错误“解决failed to setup uefi 不能为aarch64 找到任何uefi 二进制路径”。而且不能勾选本地安装介质,network install 网络引导等。
        这个错误是因为openeuler没有将“edk2.git-aarch64”工具集成,所以需要单独安装。我看了很多教程,有的是更新源,然后yum 去安装,但是我不建议如许做,因为如许可能会导致之后安装不了任何东西,国产操纵系统,能不换源,就不换。
        我这里是到外网下载的“https://www.kraxel.org/repos/jenkins/edk2/”,如果没有外网,评论我要也可以。下载下图红框中的内容
https://i-blog.csdnimg.cn/direct/4d02a31dde8c4fbcb6f96d5635da2fdb.png
将其上传到服务器的任意一个目次,实行
rpm -ivh edk2.git-aarch64*.rpm 之后,关闭虚拟系统管理器,重新打开,就可以创建虚拟机了。
这里解决了一个坑,后面还一个。
10 创建虚拟机演示

很多教程在这里就竣事了,其实后面还有一个坑,需要解决,我在这里演示一下,方便真正的利用linux arm 虚拟机
10.1 选择本地安装介质,点击前进。

这个意思就是,你把一个iso镜像,传到服务器的一个目次。
这里我建议找一个大一点的目次,分开放iso文件和虚机磁盘的文件。
https://i-blog.csdnimg.cn/direct/8c7de44b157d40d599a4b526d09fa49b.jpeg
10.2 选择镜像,点击前进

由于支持arm的镜像有限,尤其是国产cpu的,封锁较为严重
https://i-blog.csdnimg.cn/direct/b33085422bcf43948c81a2807b9ac3e2.jpeg
注:这里会发现,你选择镜像后,并没有识别,然后就报错了。
解决方式:所以去掉“automatically ....” 这个选项,在文本框中,输入ge,然后选择generic default(generic)
https://i-blog.csdnimg.cn/direct/fe2f8a21c2024b62b3b62e56c55ed905.jpeg
10.3 选择内存和cpu,点击前进

这一步骤没什么说的,根据自己需要举行设置,但是不能超过宿主机(主机)的最大值
https://i-blog.csdnimg.cn/direct/8f11daf2d82c4810bd07e11fb7906777.jpeg
10.4 勾选“选择或创建自定义存储”

点击管理,然后创建个存放虚机磁盘的目次
https://i-blog.csdnimg.cn/direct/6e705f90983f4145ac8818b3c9b21680.jpeg
10.5 开始错误的安装(特别注意)

这一步是个坑,如果你按照默认的内容走,这台虚机就装不上了
https://i-blog.csdnimg.cn/direct/cca3049de5c149c3b0b93c462d659043.jpeg
比如如果你的选择是上图,你设置完名字,点击完成,然后就开始安装了
那么你的结局就是,卡在“reached target basic system”这里了
https://i-blog.csdnimg.cn/direct/6c339435f913449d814e4b56ddfb9299.jpeg
10.6 开始正确的安装

如今说下正确的操纵
第一,勾选在安装前自定义配置,这个选择是为了让你可以正常安装
第二,点击选择网络,选择主机设备,原模式为桥接,这个选择是为了让你安装虚拟机后,可以让在与宿主机同一网段的呆板发现;如果你选择default,那么进去之后,只有这个宿主机能够访问虚机
https://i-blog.csdnimg.cn/direct/076bee321fb14f24af08f5dcb9d7bacf.jpeg
然后点击完成,进入下图界面
https://i-blog.csdnimg.cn/direct/58a02d912a0c48a883562e5f828dc2d4.jpeg
这个时间,会有四个动作
10.6.1 添加设备—输入—通用USB

选择左下角的添加设备—选择输入—选择通用usb—点击完成
https://i-blog.csdnimg.cn/direct/ef5796aa8e764477adefead5aee577bf.jpeg
10.6.2 添加设备—输入—Evtouch usb 图形数位板

选择左下角的添加设备—选择输入—选择Evtouch usb 图形数位板—点击完成
https://i-blog.csdnimg.cn/direct/ecf68b72e35f474bb8b547b4e31c116b.jpeg
10.6.3 添加设备—图形—VNC

选择左下角的添加设备—选择图形—选择VNC—点击完成
https://i-blog.csdnimg.cn/direct/7a5aede4049e476dbf7f360dfc9526f3.jpeg
10.6.4 添加设备—视频—virtio

这一步也是10.5那个错误的步骤,那就是你要加一个视频,如许才能利用图形界面安装操纵系统
选择左下角的添加设备—选择视频—选择virtio—点击完成
https://i-blog.csdnimg.cn/direct/92b9290a30124fa78ee4f22c80923533.jpeg
 10.6.5 开始安装

实行完10.6.1-10.6.4后,点击开始安装
https://i-blog.csdnimg.cn/direct/2e878e0bd4de4de083f2bf42be1ef1af.jpeg 然后发现,认识的安装操纵系统出现了
https://i-blog.csdnimg.cn/direct/b673de2276fd4dcbbd1e6087a3e77067.jpeg
https://i-blog.csdnimg.cn/direct/71eb156b28594805a630aa29c1e51946.jpeg
通过上图可以发现,其实10.5中卡在那,后面已经实行了,但是没有视频流,所以后面无法安装
https://i-blog.csdnimg.cn/direct/2ae673ec771247cc99ac0e0b5ded9d9b.jpeg
认识的选择语言界面之类的内容出来,之后就是重复第5步和第6步的配置网络
11 竣事语

        到这里,基于华为taishan200服务器, ARM架构的cpu,实现虚拟化的过程就竣事了。如果有需要的搭档,参考该文档就可以。
        需要注意的两个坑,就是9.2.1 和 10.5 中这两个地方.

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 基于华为taishan200服务器、arm架构kunpeng920 cpu的虚拟化实战