长期支持版本

    社区创新版本

      准备使用环境

      准备虚拟机镜像

      概述

      虚拟机镜像是一个文件,包含了已经完成安装并且可启动操作系统的虚拟磁盘。虚拟机镜像具有不同格式,常见的有raw格式和qcow2格式。qcow2格式镜像相比raw格式,具有占用更小的空间,支持快照、Copy-On-Write、AES加密、zlib压缩等特性,但性能略逊于raw格式镜像。镜像文件的制作借助于qemu-img工具,本节以qcow2格式镜像文件为例,介绍虚拟机镜像制作过程。

      制作镜像

      制作qcow2格式镜像文件的操作步骤如下:

      1. 使用root用户安装qemu-img软件包。

        # yum install -y qemu-img
        
      2. 使用qemu-img工具的create命令,创建镜像文件,命令格式为:

        qemu-img create -f <imgFormat> -o <fileOption> <fileName> <diskSize>
        

        其中,各参数含义如下:

        • imgFormat:镜像格式,取值为raw, qcow2等。
        • fileOption:文件选项,用于设置镜像文件的特性,如指定后端镜像文件,压缩,加密等特性。
        • fileName:文件名称。
        • diskSize:磁盘大小,用于指定块磁盘设备的大小,支持的单位有K、M、G、T,分别代表KiB、MiB、GiB、TiB。

        例如,创建一个磁盘设备大小为4GB、格式为qcow2的镜像文件openEuler-image.qcow2,命令和回显如下:

        # qemu-img create -f qcow2 openEuler-image.qcow2 4G
        Formatting 'openEuler-image.qcow2', fmt=qcow2 size=4294967296 cluster_size=65536 lazy_refcounts=off refcount_bits=16
        

      修改镜像磁盘空间大小

      当虚拟机需要更大的磁盘空间时,可以使用qemu-img工具,修改虚拟机镜像磁盘空间的大小,修改方法如下。

      1. 查询当前虚拟机镜像磁盘空间大小,命令如下:

        qemu-img info <imgFileName>
        

        例如,查询openEuler-image.qcow2镜像磁盘空间大小的命令和回显如下,说明该镜像磁盘空间大小为4GiB。

        # qemu-img info openEuler-image.qcow2
        image: openEuler-image.qcow2
        file format: qcow2
        virtual size: 4.0G (4294967296 bytes)
        disk size: 196K
        cluster_size: 65536
        Format specific information:
            compat: 1.1
            lazy refcounts: false
            refcount bits: 16
            corrupt: false
        
      2. 修改镜像磁盘空间大小,命令如下,其中imgFileName为镜像名称,“+”和“-”分别表示需要增加或减小的镜像磁盘空间大小,单位为K、M、G、T,代表KiB、MiB、GiB、TiB。

        qemu-img resize <imgFileName> [+|-]<size>
        

        例如,将上述openEuler-image.qcow2镜像磁盘空间大小扩展到24GiB,即在原来4GiB基础上增加20GiB,命令和回显如下:

        # qemu-img resize openEuler-image.qcow2 +20G
        Image resized.
        
      3. 查询修改后的镜像磁盘空间大小,确认是否修改成功,命令如下:

        qemu-img info <imgFileName>
        

        例如,上述openEuler-image.qcow2镜像磁盘空间已扩展到24GiB,命令和回显如下:

        # qemu-img info openEuler-image.qcow2
        image: openEuler-image.qcow2
        file format: qcow2
        virtual size: 24G (25769803776 bytes)
        disk size: 200K
        cluster_size: 65536
        Format specific information:
            compat: 1.1
            lazy refcounts: false
            refcount bits: 16
            corrupt: false
        

      准备虚拟机网络

      概述

      为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux网桥、Open vSwitch网桥等多种类型的网桥。如图1所示,数据传输路径为“虚拟机 -> 虚拟网卡设备 -> Linux网桥或Open vSwitch网桥 -> 物理网卡”。创建网桥,除了为虚拟机配置虚拟网卡设备外,为主机创建网桥是连接虚拟化网络的关键。

      本节给出搭建Linux网桥和Open vSwitch网桥的方法,使虚拟机连接到网络,用户可以根据情况选择搭建网桥的类型。

      图 1 虚拟网络结构图

      搭建Linux网桥

      以物理网卡eth0绑定到Linux网桥br0的操作为例,使用root用户执行如下命令搭建Linux网桥:

      1. 安装bridge-utils软件包。

        Linux网桥通常通过brctl工具管理,其对应的安装包为bridge-utils,安装命令如下:

        # yum install -y bridge-utils
        
      2. 创建网桥br0。

        # brctl addbr br0
        
      3. 将物理网卡eth0绑定到Linux网桥。

        # brctl addif br0 eth0
        

        说明: 若在ssh远程工具中操作命令brctl addif br0 eth0,ssh远程连接会断开,需要到iBMC界面进行后续如下操作以完成虚拟化网络配置。

        说明:

        若在ssh远程工具中操作命令brctl addif br0 eth0,ssh远程连接会断开,需要到iBMC界面进行后续如下操作以完成虚拟化网路配置。

      4. eth0与网桥连接后,不再需要IP地址,将eth0的IP设置为0.0.0.0。

        # yum install -y net-tools
        # ifconfig eth0 0.0.0.0
        
      5. 设置br0的IP地址。

        • 如果有DHCP服务器,可以通过dhclient设置动态IP地址。

        说明:

        若使用DHCP给br0设置动态IP,需先清除原有可能存在的动态IP。输入dhclient -r 命令,清除原有可能存在的动态IP。

         ```sh
         # dhclient br0
         ```
        
        • 如果没有DHCP服务器,给br0配置静态IP,例如设置静态IP为192.168.1.2,子网掩码为255.255.255.0。

          # ifconfig br0 192.168.1.2 netmask 255.255.255.0
          

      搭建Open vSwitch网桥

      Open vSwitch网桥,具有更便捷的自动化编排能力。搭建Open vSwitch网桥需要安装网络虚拟化组件,这里介绍总体操作。

      、安装Open vSwitch组件

      使用Open vSwitch提供虚拟网络,需要安装Open vSwitch网络虚拟化组件,使用root用户执行如下命令:

      1. 安装Open vSwitch组件。

        # yum install -y openvswitch
        
      2. 启动Open vSwitch服务。

        # service openvswitch start
        

      、确认安装是否成功

      1. 确认Open vSwitch组件是否安装成功,需要检查openvswitch组件是否安装成功。 确认openvswitch组件是否安装成功。若安装成功,可以看到软件包相关信息,命令和回显如下:

        # rpm -qi openvswitch
        Name: openvswitch
        Version     : 2.12.0
        Release     : 11.oe1
        Architecture: aarch64
        Install Date: Tue 08 Jun 2021 04:54:31 PM CST
        Group: Unspecified
        Size: 7456390
        License     : ASL 2.0 and ISC
        Signature   : RSA/SHA1, Mon 07 Jun 2021 01:16:33 AM CST, Key ID d557065eb25e7f66
        Source RPM  : openvswitch-2.12.0-11.oe1.src.rpm
        Build Date  : Mon 07 Jun 2021 01:15:34 AM CST
        Build Host  : obs-worker-0011
        Packager    : http://openeuler.org
        Vendor      : http://openeuler.org
        URL: http://www.openvswitch.org/
        Summary     : Production Quality, Multilayer Open Virtual Switch
        Description :
        Open vSwitch is a production quality, multilayer virtual switch licensed under
        the open source Apache 2.0 license.
        
      2. 查看Open vSwitch服务是否启动成功。若服务处于“Active”状态,说明服务启动成功,可以正常使用Open vSwitch提供的命令行工具,命令和回显如下:

        # service openvswitch status
        Redirecting to /bin/systemctl status openvswitch.service
        ● openvswitch.service - Open vSwitch
           Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; disabled; vendor preset: disabled)
           Active: active (exited) since Wed 2021-06-16 16:45:41 CST; 17h ago
          Process: 151652 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
         Main PID: 151652 (code=exited, status=0/SUCCESS)
            Tasks: 0
           Memory: 0B
           CGroup: /system.slice/openvswitch.service
        
        Jun 16 16:45:41 openEuler systemd[1]: Starting Open vSwitch...
        Jun 16 16:45:41 openEuler systemd[1]: Started Open vSwitch.
        

      、搭建Open vSwitch网桥

      以创建Open vSwitch一层网桥br0为例,介绍搭建方法,使用root用户执行如下命令:

      1. 创建Open vSwitch网桥br0。

        # ovs-vsctl add-br br0
        
      2. 将物理网卡eth0添加到br0。

        # ovs-vsctl add-port br0 eth0
        
      3. eth0与网桥连接后,不再需要IP地址,将eth0的IP设置为0.0.0.0。

        # ifconfig eth0 0.0.0.0
        
      4. 为OVS网桥br0分配IP。

        • 如果有DHCP服务器,可以通过dhclient设置动态IP地址。

        说明:

        若使用DHCP给br0设置动态IP,需先清除原有可能存在的动态IP。输入dhclient -r 命令,清除原有可能存在的动态IP。

         ```sh
         # dhclient br0
         ```
        
        • 如果没有DHCP服务器,给br0配置静态IP,例如192.168.1.2。

          # ifconfig br0 192.168.1.2
          

      准备引导固件

      概述

      针对不同的架构,引导的方式有所差异。x86支持UEFI(Unified Extensible Firmware Interface)和BIOS方式启动,AArch64仅支持UEFI方式启动。openEuler默认已安装BIOS启动对应的引导文件,不需要用户额外操作。所以这里仅介绍UEFI启动方式的安装方法。

      统一的可扩展固件接口UEFI是一种全新类型的接口标准,用于开机自检、引导操作系统的启动,是传统BIOS的一种替代方案。EDK II是一套实现了UEFI标准的开源代码,在虚拟化场景中,通常利用EDK II工具集,通过UEFI的方式启动虚拟机。使用EDK II工具需要在虚拟机启动之前安装对应的软件包 ,本节介绍EDK II的安装方法。

      安装方法

      如果使用UEFI方式引导,需要安装工具集EDK II,AArch64架构对应的安装包为edk2-aarch64,x86架构对应的安装包为edk2-ovmf。这里以AArch64架构为例,给出具体的安装方法,x86架构仅需将edk2-aarch64替换为edk2-ovmf。

      1. 安装edk软件包,使用root用户执行如下命令:

        在AArch64架构下edk2的包名为edk2-aarch64

        # yum install -y edk2-aarch64
        

        在x86_64架构下edk2的包名为edk2-ovmf

        # yum install -y edk2-ovmf
        
      2. 查询edk软件是否安装成功,命令如下:

        在AArch64架构下查询如下

        rpm -qi edk2-aarch64
        

        若edk软件安装成功,回显类似如下:

        Name        : edk2-aarch64
        Version     : 20180815gitcb5f4f45ce
        Release     : 1.oe3
        Architecture: noarch
        Install Date: Mon 22 Jul 2019 04:52:33 PM CST
        Group       : Applications/Emulators
        

        在x86_64架构下查询如下

        rpm -qi edk2-ovmf
        

        若edk软件安装成功,回显类似如下:

        Name        : edk2-ovmf
        Version     : 201908
        Release     : 6.oe1
        Architecture: noarch
        Install Date: Thu 19 Mar 2020 09:09:06 AM CST
        

      非root用户配置

      概述

      openEuler虚拟化使用virsh管理虚拟机。如果希望在非root用户使用virsh命令管理虚拟机,在使用之前需要进行相关配置,这里给出配置指导。

      操作指导

      允许非root用户使用virsh命令管理虚拟机的配置操作如下,以下命令中的userName请改为实际的非root用户名称:

      1. 使用root用户登录主机。

      2. 将非root用户添加到libvirt用户组。

        # usermod -a -G libvirt userName
        
      3. 切换到非root用户。

        # su userName
        
      4. 配置非root用户的环境变量。使用vim打开~/.bashrc文件:

        vim ~/.bashrc
        

        并在末尾加上如下内容后保存。

        export LIBVIRT_DEFAULT_URI="qemu:///system"
        
      5. 在虚拟机XML配置文件中的domain根元素中添加如下内容,使qemu-kvm进程可以访问磁盘镜像文件。

        <seclabel type='dynamic' model='dac' relabel='yes'>
        

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份