0


基于华为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,但是这个没有尝试过,可能也需要较长的时间,而且不能保证在改动之后,可以成功虚拟虚机,所以这个不是我的选择。

    最终在个人调研情况下,决定采用较为稳妥的方式:
  1. 服务器开启虚拟化
  2. 安装可以展示界面的linux操作系统(openeuler)
  3. 在openeuler操作系统中,安装kvm qemu以及虚拟化管理工具
  4. 创建虚机,完成虚拟化任务

2、服务器查看是否开启虚拟化

我这里的服务器是华为taishan 200,cpu架构arm,cpu型号 kunpeng920

2.1 开机进入bios

这一步其实没什么好说的,就是关闭服务器,然后按下开机按钮,稍等片刻

出现上图的时候,疯狂按“Delete”或“F4”(或者开机之后,就开始按也行),顺利的话,可能会让你输入密码

初始的密码应该是admin@9000(如果你没有改过的话)

2.2 查看虚拟化是否开启

执行完2.1的步骤之后,就会进入bios的mian界面

之后需要通过键盘上的←和→来移动选项,进入 Advanced,然后选择pcle config,回车

进入pcie config界面后,如下图,选择sriou,将其改为enable。

相关参数说明:

  • 启用或停用Single Root Input/Output Virtualization(SRIOV),菜单选项为: - Enable 启用- Disable 停用

之后后退,然后F10,保存并退出。

3、下载openeuler镜像,并写入U盘

3.1 下载openeuler镜像

华为的机器,使用华为的操作系统,这非常nice。可以搜索openeuler,进下载页面

筛选一下各自机器的资源配置,比如架构 aarch64、我想要的lts版本(长期维护支持)

我选择的是“openEuler 22.03 LTS SP4”,如果后续在页面中找不到了,可以评论留言要下载地址。点击“openEuler 22.03 LTS SP4”后面的前往下载,进入下图的页面。

然后选择aarch64和服务器,筛选一下,在点击立即下载,就可以下载iso了。这里不建议下载第二个全部安装,因为在安装的时候有冲突,而且写入的时间太长了。

3.2 镜像写入U盘

我习惯使用rufus工具写入iso,这是一个非常好用的工具,按照下图中的选项进行选择即可

点击开始后,会提示如下内容,提前说明,需要将U盘中的数据进行保存哈

接下来就是一个漫长的等待,毕竟需要进行:格式化U盘,设置卷标,写入文件一系列操作

出现上图,已经表示写入成功,就可以到服务器上插U盘了

4、进到服务器从U盘启动

注:此步骤执行前需要备份服务器中的数据(我这里确认不需要保存后,就直接格式化了)

比较幸运的是,taishan200可以在启动后通过F2,选择启动盘

在开启出现这个界面或出现之前,疯狂按F2(按“F2”进入选择启动项界面)

之后就是输入密码,默认密码在上面写了,这里不重复

输入密码之后选择插入的U盘

5、安装openeuler

在出现下图时,选择“Test this media & install openEuler 22.03-LTS-SP4”

选择“Test this media & install openEuler 22.03-LTS-SP4”之后,稍等片刻,会出现下图

接下来就是选择使用的语言、硬盘、开启网络、主机名、设置时区、创建用户等步骤。

安装的目的地,就选择服务器上的硬盘就可以,如果是已有数据的硬盘,可能会剩余空间不足,在选择磁盘后,点击回收空间,确定不需要保存数据,就选择后,有个全部删除,然后openeuler会自动重置了。

然后就是开启root用户,输入密码,然后选择安装,等完成后,重启系统就可以了。

6、配置服务器为静态ip

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

6.1 确定需要修改的网络文件

通过shell连接服务器后,执行

ip addr show

可以通过这个方式,看到使用的网卡名称,然后进行编辑就可以了

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了,界面就长这个样子,我觉得还是比较好看的

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

若上述文件存在,说明内核支持KVM虚拟化。若上述文件不存在,则说明系统内核编译时未开启KVM虚拟化,需要更换支持KVM虚拟化的Linux内核。

8.4.2 确认qemu

rpm -qi qemu

8.4.3 确认libvirt

rpm -qi libvirt

查询下是否启动

 systemctl status libvirtd

8.5 安装虚拟机管理工具

在这里有教程会说安装 qemu-img、virt-install libvirt virt-manager-common等,其实不需要,只需要执行

yum install virt-manager

然后需要的内容,都会自动更新并安装,输入y,等待安装完成

8.6 启动虚拟系统管理器

有两种启动方式,一种是在shell中执行 virt-manager,就会自己弹出来管理界面。第二种就是在桌面上,找到虚拟系统管理器

9 使用虚拟系统管理器

9.1 打开虚拟系统管理器

通过8.6 的任意一种方式打开,他会长成下图的样子,当然我这里有我创建的虚机

9.2 点击+,或者文件—新建虚拟机

通过点击+,或者文件—新建虚拟机,都可以创建虚机

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/”,如果没有外网,评论我要也可以。下载下图红框中的内容

将其上传到服务器的任意一个目录,执行

rpm -ivh edk2.git-aarch64*.rpm

之后,关闭虚拟系统管理器,重新打开,就可以创建虚拟机了。

这里解决了一个坑,后面还一个。

10 创建虚拟机演示

很多教程在这里就结束了,其实后面还有一个坑,需要解决,我在这里演示一下,方便真正的使用linux arm 虚拟机

10.1 选择本地安装介质,点击前进。

这个意思就是,你把一个iso镜像,传到服务器的一个目录。

这里我建议找一个大一点的目录,分开放iso文件和虚机磁盘的文件。

10.2 选择镜像,点击前进

由于支持arm的镜像有限,尤其是国产cpu的,封锁较为严重

注:这里会发现,你选择镜像后,并没有识别,然后就报错了。

解决方式:所以去掉“automatically ....” 这个选项,在文本框中,输入ge,然后选择generic default(generic)

10.3 选择内存和cpu,点击前进

这一步骤没什么说的,根据自己需要进行设置,但是不能超过宿主机(主机)的最大值

10.4 勾选“选择或创建自定义存储”

点击管理,然后创建个存放虚机磁盘的目录

10.5 开始错误的安装(特别注意)

这一步是个坑,如果你按照默认的内容走,这台虚机就装不上了

比如如果你的选择是上图,你设置完名字,点击完成,然后就开始安装了

那么你的结局就是,卡在“reached target basic system”这里了

10.6 开始正确的安装

现在说下正确的操作

第一,勾选在安装前自定义配置,这个选择是为了让你可以正常安装

第二,点击选择网络,选择主机设备,原模式为桥接,这个选择是为了让你安装虚拟机后,可以让在与宿主机同一网段的机器发现;如果你选择default,那么进去之后,只有这个宿主机能够访问虚机

然后点击完成,进入下图界面

这个时候,会有四个动作

10.6.1 添加设备—输入—通用USB

选择左下角的添加设备—选择输入—选择通用usb—点击完成

10.6.2 添加设备—输入—Evtouch usb 图形数位板

选择左下角的添加设备—选择输入—选择Evtouch usb 图形数位板—点击完成

10.6.3 添加设备—图形—VNC

选择左下角的添加设备—选择图形—选择VNC—点击完成

10.6.4 添加设备—视频—virtio

这一步也是10.5那个错误的步骤,那就是你要加一个视频,这样才能使用图形界面安装操作系统

选择左下角的添加设备—选择视频—选择virtio—点击完成

10.6.5 开始安装

执行完10.6.1-10.6.4后,点击开始安装

然后发现,熟悉的安装操作系统出现了

通过上图可以发现,其实10.5中卡在那,后面已经执行了,但是没有视频流,所以后面无法安装

熟悉的选择语言界面之类的内容出来,之后就是重复第5步和第6步的配置网络

11 结束语

    到这里,基于华为taishan200服务器, ARM架构的cpu,实现虚拟化的过程就结束了。如果有需要的同伴,参考该文档就可以。

    需要注意的两个坑,就是9.2.1 和 10.5 中这两个地方.
标签: 华为 服务器 linux

本文转载自: https://blog.csdn.net/m0_37492923/article/details/143449741
版权归原作者 南成旧巷 所有, 如有侵权,请联系我们删除。

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

还没有评论