FusionCompute 是云操作系统软件,主要负责硬件资源的虚拟化,以及对虚拟资源、业务资源、用户资源的集中管理。是华为 FusionSphere 虚拟化套件的必要组成部分。

大坑注意
FusionCompute6.3.x 以后的版本,均采用了 KVM 架构,如果在 VMware Workstation、ESXI 等虚拟化软件(系统)中安装,将出现无法正常绑定 CNA、无法扫描到计算资源等问题。

本文将介绍和总结我在搭建 FusionCompute 实验环境中所踩到的坑。文章中有很多 danger 标签,建议留意一下,以便少踩坑。

实验前的准备工作

在进行实验之前,需要准备一台 PC 或者服务器,内存至少 32G,CPU 支持 VT-x(硬性条件),硬盘至少 1TB,这个配置并不是官方文档中所提到的最低配置,你也可以按照官方文档里算一下最低配置。我进行实验的时候选择了一台 HP 的 DL380G7 服务器,双路 X5650,带 72G 内存,136G Raid1(Ubuntu 系统),2TB Raid1(数据存储),不得不说这的确是个老爷车了。除此之外你可能还需要一台交换机,我准备的是 H3C 的 S5100。
以上是硬件的准备,在系统镜像包上你需要准备FusionCompute 6.5.0_CNA.iso FusionCompute 6.5.0_VRM.iso这是必选的,除此之外还需要一个 Windows 的镜像包,版本随意。

实验网络规划

对实验进行合理的规划有助于后期对实验进行扩展,结合我家的网络环境,设计实验过程中的网络规划如下。
20200325223257.png
PS:跟着泰克教育的老师学画画系列。OneNote 画的凑合着看各位看官。

安装底层系统(Ubuntu)

首选需要对服务器安装一个操作系统,这里选择的是ubuntu-18.04.2-desktop-amd64.iso的镜像。注意,这里是原版的 Ubuntu 镜像,非优麒麟。

关于 CentOS7 的 Qemu 问题
CentOS7 的 yum 中 qemu 版本过低,为支持实验需要编译安装 qemu 组件,但实测升级 qemu 之后依然存在 bug,其表现为对 CNA 虚拟机配置smbiosMode=host之后,报Don't know how to build fields for SMBIOS type 3的错误,这是 CentOS 的一个 Bug,和硬件有关。

据说 CentOS8 已经修复了这个 Bug,有兴趣的小伙伴可以尝试一下,但在这里我还是强烈推荐使用 Ubuntu 系统。
关于安装 Ubuntu 的过程,这里不再赘述,需要注意几点我列出来了

  • 请将安装语言选择为“English”
  • 取消勾选“Download updates while installing Ubuntu”(在安装时下载更新)
  • 选择“Minimal installation”,只安装基础组件
  • “Erase disk and install Ubuntu”,注意!!!这里是抹盘安装,如果硬盘中有重要数据,请按照实际情况选择!!!注意
    安装过程可能会持续一会,中途不要点“Skip”。

    Ubuntu 开机卡登录界面的问题
    有些服务器因为显卡的原因,在安装 Ubuntu 桌面操作系统之后,会卡在登录界面,鼠标键盘均卡死,这时需要重新启动服务器,服务器自检完成进入系统时按 Shift,进入 grub,按 e 进行编辑项,在quite splash后添加nomodeset,按 F10 进入系统。
    进入系统之后,编辑/etc/default/grub文件,将GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"改为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset",更新 grub 文件sudo update-grub,之后就不会卡在登录界面了。

对底层系统进行配置

更新软件源

首先是换源,默认的源可能对于你不是最快的,通过在更新软件源之前,我们就先将他换掉,我使用的是清华大学的软件源,换源方法请参考Ubuntu 镜像使用帮助
打开一个 Terminal,使用sudo apt-get updatesudo apt-get upgrade更新软件。如果有sudo apt autoremove的提示,也可以执行一下提示的命令,把不用的软件包清理掉。

安装基础软件

基础软件:openssh-server,vim,分别是 openssh 服务器、vim 文本编辑器。
安装命令:sudo apt-get install -y openssh-server vim

挂载数据存储

两块 2T 硬盘已经在阵列卡上做好了硬 Raid,使用 fdisk 进行分区后,将 1 个 800G 的分区用做实验时的数据存储。在/home 目录下建立文件夹 kvm,并将该文件夹作为数据存储的挂载点:mount /dev/sdb5 /home/kvm,用df -h验证一下是否挂载成功。
在这个目录下建立 img 目录用于存储虚拟机磁盘文件,iso 文件夹用于存放镜像文件。

安装 KVM 组件

安装 KVM 组件:sudo apt-get install -y qemu qemu-kvm libvirt-bin bridge-utils virt-manager
启动组件并设置开机自启:sudo systemctl restart libvirtd sudo systemctl enable libvirtd

开启虚拟化嵌套

新建 kvm_intel.conf 文件,修改虚拟化嵌套配置:sudo vim /etc/modprobe.d/kvm_intel.conf

1
2
3
4
5
# 按i进入编辑模式,输入以下内容,按esc,:wq保存退出
options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1

重新加载 KVM 虚拟化模块:sudo modprobe -r kvm_intel sudo modprobe -a kvm_intel
检查虚拟化嵌套组件的开启状态:sudo cat /sys/module/kvm_intel/parameters/nested,如果返回值为 Y,表示虚拟化嵌套支持已开启。

配置网桥

当安装完成之后,你会在 Ubuntu 中看到 Virtual Machine Manager,打开它,在 Edit->Connection Details->Virtual Networks 建立虚拟网桥。
我建立的这个网桥叫 huawei,用作管理平面,如果需要建立其他平面的网桥,操作类似。
20200325200113.png
20200325200221.png
20200325200332.png
20200325200444.png
20200325200521.png

配置 CNA、VRM 虚拟机、跳板机

创建虚拟机磁盘

很简单,按照前期的规划,在/home/kvm/img中建立磁盘文件。

1
2
3
4
5
cd /home/kvm/img
sudo qemu-img create -f qcow2 CNA-01.qcow2 300G
sudo qemu-img create -f qcow2 CNA-02.qcow2 300G
sudo qemu-img create -f qcow2 VRM-Master.qcow2 200G
sudo qemu-img create -f qcow2 JumperPC.qcow2 80G

创建虚拟机

推荐通过以下的命令创建虚拟机,我以创建 CNA-01 为例:

1
virt-install --name CNA-01 --memory 20480 --vcpu sockets=2,cores=4,threads=2 --cpu host-model,+vmx --sysinfo host --disk path=/home/kvm/img/CNA-01.qcow2 --disk path=/home/kvm/iso/FusionCompute_6.5.1_CNA.iso,device=cdrom --network bridge=virbr1,model=e1000 --network bridge=virbr1,model=e1000 --network bridge=virbr1,model=e1000 --network bridge=virbr1,model=e1000 --noautoconsole --boot menu=on

这个命令太重要了,一起来分析一下这个命令。
–name 指定虚拟机名称,–memory 指定虚拟机内存,–vcpu 指定虚拟机 CPU(插槽,核心数,线程数),–cpu host-model,+vmx 将 vCPU 绑定到物理 CPU 并开启 vmx 支持,–sysinfo host 系统信息继承物理机,–disk path 磁盘路径,device=cdrom 将该磁盘按 cdrom 设备挂载,–network bridge 指定网桥名称 model=e1000 将模拟 1Gbit Intel 82545EM 卡,–noautoconsole 不自动试图连接到客户机控制台,–boot menu=on 打开启动菜单。
更多关于 virt-install 的命令选项,可以通过virt-install --help学习。

注意
似乎是 Virtual Machine Manager GUI 创建虚拟机会丢配置项,推荐通过命令创建虚拟机,测试了几次发现用 GUI 创建虚拟机可以成功安装 CNA,但在 VRM 中扫描不到计算资源的情况。
虚拟机 vCPU 参数计算:socketscoresthreads 不能超过物理 CPU 的核心数
修改过虚拟机 xml 配置文件后,必须virsh define xxx.xml重新更新虚拟机域。
network bridge=virbr1,这个 virbr1 是 Virtual Networks 中 huawei 网络的 Device 名,一定要按照实际情况填写。

启动虚拟机

命令:virsh start CNA-01

不兼容性警告
error: Failed to start domain CNA-01 error: internal error: process exited while connecting to monitor: qemu-kvm: -smbios type=3,manufacturer=HP,version=Not Specified,serial=CNG10000: Don't know how to build fields for SMBIOS type 3
当你看到诸如以上的警告的时候,基本上就是翻车了,这是之前提到的 BUG,与硬件有关系,换个底层系统试试,不行的话就只能换机器了。

安装 CNA 和 VRM

这里不再赘述,安装过程可以参考华为 FusionCompute 产品文档

注意
华为对于密码有安全策略,不要配置过于简单的密码,一定要记好自己的密码。
虽然建立虚拟机的时候建了 4 张网卡,但是在安装时只用到 1 张,其他网卡可以用作冗余或者用于其他业务平面使用,配置网卡时,必须指定默认网关,默认网关是“.1”那个地址。

对 CNA 虚拟化支持的验证

通过终端登录到 CNA 服务器,cat /proc/cpuinfo应该回显到的是物理机 CPU 信息,dmidecode -t 0 dmidecode -t 1 dmidecode -t 2应该回显到物理机的 BIOS、系统信息(内存)、主板信息。

翻车预警
如果没有回显,或者回显内容不是物理机信息,可能是–sysinfo host 配置项有问题,查一下虚拟机的配置文件(默认路径:/etc/libvirt/qemu),修改之后记得重新加载虚拟机文件。

配置跳板机

创建跳板机就比较简单了,可以直接通过 GUI 创建。跳板机主要是用来操作和配置 FusionCompute 的。因为仅主机模式的网桥,将 CNA 和 VRM 隔离在了一个内网里,和网络规划里的 PC 不通,创建好的跳板机可以直接通过远程桌面连接,操作更加流畅。
配置的时候注意一下,两张网卡一张配给桥,一个选择物理接口,源模式选直通,设备模式选 e1000。
20200325214813.png
完成所有配置之后,安装 Windows 操作系统,并开启远程桌面。

创建集群与增加主机

待一切都安装完成之后,使用跳板机登录 FusionCompute,默认用户名、密码:admin、IaaS@PORTAL-CLOUD8!。

小技巧
这个 Portal 密码经常被吐槽,又长又难记,输入框又不允许粘贴密码。这里提供给你一种粘贴密码的方法,对密码输入框审查元素,将onpaste="return false;"改为onpaste="return true;",即可随意粘贴密码。

在资源池中,默认 site 中创建集群,不使能 HA 配置、计算资源调度配置,基本配置项按默认配置,完成确认。
20200325222301.png
添加主机,位置选择刚才创建好的集群,IP 分别填写 CNA-01 和 CNA-02 的 IP,确认。

错误情况

没有识别出 CPU 和主板信息
20200325224248.png
检查虚拟机 xml 文件中 smbios 的 mode 是否为 host。
未扫描出计算资源
84138600fca93183de38e174cb8ee84.png
检查虚拟机的 xml,cpu 模式是否为 host-model,+vmx。

实验结果

如图所示,已经将两台 CNA 加入到了集群中,可以看到集群中的资源情况,并且可以正常识别 NUMA,此时也可以打开 HA 和计算资源调度,开始更多的实验。
20200325222659.png
20200325223049.png

后记

如何挂载共享存储,请参考之前的博文:FusionCompute 挂载 IPSAN 存储实验
文章勘误,云计算交流,请留言,谢谢。

引文和致谢

非常感谢华为人才在线杨磊老师的指导以及云计算活动群中各位朋友的帮助。
关于 HCIA-Cloud V4.0 课程问题反馈,请到华为企业互动论坛HCIA-Cloud Compute v4.0 官方讨论渠道中参与讨论。

艰苦的实验环境

HomeLab 机架
857ad68709fecbfe984ffe50ec33088.jpg