avatar

目录
搭建华为FusionCompute实验环境小记

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
    Code
    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中建立磁盘文件。
    Code
    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为例:
    Code
    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-01error: 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
文章作者: 小谈谈
文章链接: https://www.txisfine.cn/archives/a66280b7.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 弹霄博科

评论