云计算百科
云计算领域专业知识百科平台

ARM架构服务器安装部署KVM虚拟化环境

文章目录

一、主流的虚拟化方案简介

二、查看内核是否支持KVM虚拟化

三、关闭Selinux

四、关闭防火墙

五、配置网桥br0和静态IP

六、安装GNOME桌面环境

七、安装KVM及所需组件

八、修改sshd 配置文件

九、启动libvirt并设置开机自启动

十、创建镜像目录和磁盘文件目录

十一、创建虚拟机的磁盘文件

十二、创建虚拟机

十三、配置虚拟机的网络

十四、KVM虚拟机常见管理命令(在宿主机中执行)

十五、常见问题


硬件环境:

  • 品牌:宝德
  • CPU: HUAWEI Kunpeng(华为鲲鹏) 920 5250 96核
  • CPU厂商:HiSilicon(海思)
  • 架构:aarch64
  • 内存:439GB
  • 磁盘:1.7TB

软件环境:

  • 操作系统:已安装华为欧拉OpenEuler 22.03 LTS

一、主流的虚拟化方案简介

  • ESXi:在私有云领域,目前VMware ESXi是领导者。ESXi中,所有虚拟化功能都在内核实现。(部署流程:服务器物理机—>基于rufus和ESXi制作USB启动盘—>使用USB启动盘安装ESXi—>创建虚拟机—>安装虚拟机操作系统)
  • Xen:Xen内核仅实现CPU与内存虚拟化,IO虚拟化与调度管理由Domain0实现。
  • KVM:KVM是当前最主流的开源的服务器虚拟化技术,已逐渐替换另一开源虚拟化技术Xen。KVM目前已支持X86、ARM等平台。KVM内核实现了CPU和内存的虚拟化,借助QEMU实现IO设备(网卡、磁盘等)的虚拟化,通过Linux进程调度器实现VM管理。(部署流程:服务器物理机—>基于rufus和操作系统镜像制作USB启动盘—>使用USB启动盘安装物理机操作系统—>安装KVM—>创建虚拟机—>安装虚拟机操作系统)

KVM虚拟化

二、查看内核是否支持KVM虚拟化

针对ARM架构服务器,若/dev/kvm 和 /sys/module/kvm任意一个不存在,都说明内核不支持KVM虚拟化。 

[root@localhost ~]# ls -l /dev/kvm
crw-rw—-+ 1 root kvm 10, 232 May  6 09:18 /dev/kvm

[root@localhost ~]# ls /sys/module/kvm
parameters  uevent

扩展说明: 针对X86服务器,查看是否支持KVM虚拟化的命令如下:

#若是intel cpu,命令执行结果是vmx;若是amd cpu,命令执行结果是svm;
[root@localhost ~]# egrep -o 'vmx|svm' /proc/cpuinfo

三、关闭Selinux

  • 永久配置

[root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config 

  • 临时配置

[root@localhost ~]# setenforce 0 

  • 查看结果

[root@localhost ~]# getenforce 

四、关闭防火墙

说明:为了顺利完成KVM虚拟化环境的安装部署,先关闭防火墙。待安装部署完成后,再启用防火墙,并进行相关配置(具体配置可以详见:Linux系统中配置防火墙-CSDN博客)。

  • 关闭firewalld

[root@localhost ~]# systemctl stop firewalld

  • 禁止开机启动firewalld

[root@localhost ~]# systemctl disable firewalld

  • 关闭iptables

[root@localhost ~]# systemctl stop iptables

  • 禁止开机启动iptables

[root@localhost ~]# systemctl disable iptables

五、配置网桥br0和静态IP

注意:每台物理服务器的命令执行结果以及需要配置的静态IP可能不一样,请基于实际情况来进行配置。

  • 使用ifconfig命令查看当前处于UP状态并且处于RUNNING状态的网卡接口

[root@backend ~]# ifconfig | grep RUNNING
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
enp2s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
veth036f796: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
veth19918cd: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
veth3f86042: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
vethaaad1c6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
vethd780f04: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
vethfa5a1e2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

从命令执行结果可知,当前处于UP状态且处于RUNNING状态的网卡接口有多个,其中docker0和veth开头的都是与docker相关,这里不用管。lo是127.0.0.1专用的,也不用管。只有enp2s0f0(每台服务器不一样)是正连着网线或光纤的物理网卡,对它的网络配置文件进行静态IP配置即可。有时,一台物理服务器可能有多个物理网卡连着网线或光纤,执行ifconfig命令后,就会显示多个处于UP状态且处于RUNNING状态的网卡接口。修改其中任意一个网卡接口的网络配置文件,就可以配置该物理服务器的静态IP。

注意:这里的网卡接口与服务器背面的网口对应。网口分光口和电口两种,并且一台服务器通常有多个光口和多个电口。光口使用光纤来连接,电口使用RJ45网线来连接。配置服务器的IP前,要看是用RJ45网线连的电口,还是用光纤连的光口。还要看具体是连的第几个光口/电口。

  • 基于网卡 enp2s0f0 的网络配置文件,复制生成网桥br0的网络配置文件

[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-enp2s0f0 \\
/etc/sysconfig/network-scripts/ifcfg-br0

  • 修改网桥br0的网络配置文件,其中需要配置宿主机的静态IP

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
#Type使用桥接
TYPE=Bridge
#IP分配协议改为静态分配
BOOTPROTO=static
#修改NAME为br0
NAME=br0
#修改DEVICE为br0
DEVICE=br0
ONBOOT=yes
#宿主机的静态IP
IPADDR=192.168.112.56
#子网掩码
PREFIX=24
#网关
GATEWAY=192.168.112.1
#DNS
DNS1=114.114.114.114

  • 修改处于UP状态且处于RUNNING状态的网卡 enp2s0f0 的网络配置文件

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp2s0f0
#Type使用Ethernet
TYPE=Ethernet
#IP分配协议改为静态分配
BOOTPROTO=static
ONBOOT=yes
#指定桥接设备为br0
BRIDGE=br0
#….其他不用改

  • 重启网络

#华为openeuler系统使用该命令,其他linux系统可以使用systemctl restart network
[root@localhost ~]# nmcli con reload; nmcli con up enp2s0f0 

  • 查看网络连接

##如果配置成功,会有以下输出:
[root@localhost ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.b04fa63d449c       no              enp2s0f0
docker0         8000.0242ca5f6b53       no              veth0f04dc2
                                                        veth6148d75
                                                        veth7ee782c
                                                        veth88dc0dd
                                                        vethc335d89
                                                        vethf19fe4a
virbr0          8000.525400112ec1       yes             virbr0-nic

  • 设置IP转发

##修改内核参数
[root@localhost ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward=1

##执行生效
##加载指定的文件配置内核参数,-p后通常接一个文件路径
##若为空,默认加载/etc/sysctl.conf中的内核参数
[root@localhost ~]# sysctl -p  
    
##显示所有的内核参数      
[root@localhost ~]# sysctl -a    
 
##若只是临时修改内核参数的值,可以执行如下命令,但是重启后失效        
[root@localhost ~]# net.ipv4.ip_forward=1
 
##加载/etc/sysctl.d/目录下所有conf文件(包括/etc/sysctl.conf文件)中的内核参数
[root@localhost ~]# sysctl –system  

六、安装GNOME桌面环境

GNOME简介

  • GNOME是运行在类Unix操作系统中最常用桌面环境,是一个功能完善、操作简单,界面友好,集使用和开发为一身的桌面环境,是GNU计划的正式桌面。
  • 从用户的角度看,GNOME是一个集成桌面环境和应用程序的套件。从开发者的角度看,它是一个应用程序开发框架(由数目众多的实用函数库组成)。即使用户不运行GNOME桌面环境,用GNOME编写的应用程序也可以正常运行。
  • GNOME既包含文件管理器,应用商店,文本编辑器等基础软件,也包含系统采样分析,系统日志,软件工程IDE,web浏览器,简洁虚拟机监视器,开发者文档浏览器等高级应用和工具。

##更新系统
[root@localhost ~]# yum update -y   

##安装字库
[root@localhost ~]# yum install dejavu-fonts liberation-fonts \\
gnu-*-fonts google-*-fonts -y

##安装Xorg
[root@localhost ~]# yum install xorg-* -y

##这可能会安装很多没用的包,可以使用下面的命令安装必要的xorg相关包
[root@localhost ~]# yum install xorg-x11-apps xorg-x11-drivers xorg-x11-drv-ati \\
    xorg-x11-drv-dummy xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-intel \\
    xorg-x11-drv-libinput xorg-x11-drv-nouveau xorg-x11-drv-qxl \\
    xorg-x11-drv-synaptics-legacy xorg-x11-drv-v4l xorg-x11-drv-vesa \\
    xorg-x11-drv-vmware xorg-x11-drv-wacom xorg-x11-fonts xorg-x11-fonts-others \\
    xorg-x11-font-utils xorg-x11-server xorg-x11-server-utils xorg-x11-server-Xephyr \\
    xorg-x11-server-Xspice xorg-x11-util-macros xorg-x11-utils xorg-x11-xauth \\
    xorg-x11-xbitmaps xorg-x11-xinit xorg-x11-xkb-utils -y

##安装GNOME及组件
[root@localhost ~]# yum install adwaita-icon-theme atk atkmm at-spi2-atk \\
at-spi2-core baobab \\
    abattis-cantarell-fonts cheese clutter clutter-gst3 clutter-gtk cogl dconf \\
    dconf-editor devhelp eog epiphany evince evolution-data-server file-roller folks \\
    gcab gcr gdk-pixbuf2 gdm gedit geocode-glib gfbgraph gjs glib2 glibmm24 \\
    glib-networking gmime30 gnome-autoar gnome-backgrounds gnome-bluetooth \\
    gnome-builder gnome-calculator gnome-calendar gnome-characters \\
    gnome-clocks gnome-color-manager gnome-contacts gnome-control-center \\
    gnome-desktop3 gnome-disk-utility gnome-font-viewer gnome-getting-started-docs \\
    gnome-initial-setup gnome-keyring gnome-logs gnome-menus gnome-music \\
    gnome-online-accounts gnome-online-miners gnome-photos gnome-remote-desktop \\
    gnome-screenshot gnome-session gnome-settings-daemon gnome-shell \\
    gnome-shell-extensions gnome-software gnome-system-monitor gnome-terminal \\
    gnome-tour gnome-user-docs gnome-user-share gnome-video-effects \\
    gnome-weather gobject-introspection gom grilo grilo-plugins \\
    gsettings-desktop-schemas gsound gspell gssdp gtk3 gtk4 gtk-doc gtkmm30 \\
    gtksourceview4 gtk-vnc2 gupnp gupnp-av gupnp-dlna gvfs json-glib libchamplain \\
    libdazzle libgdata libgee libgnomekbd libgsf libgtop2 libgweather libgxps libhandy \\
    libmediaart libnma libnotify libpeas librsvg2 libsecret libsigc++20 libsoup \\
    mm-common mutter nautilus orca pango pangomm libphodav python3-pyatspi \\
    python3-gobject rest rygel simple-scan sushi sysprof tepl totem totem-pl-parser \\
    tracker3 tracker3-miners vala vte291 yelp yelp-tools \\
    yelp-xsl zenity -y

##启动gdm显示管理器
[root@localhost ~]# systemctl enable gdm

##设置系统默认以图形界面登录
[root@localhost ~]# systemctl set-default graphical.target

##查询当前开机运行级别
[root@localhost ~]# systemctl get-default  

##重启生效
[root@localhost ~]# reboot

七、安装KVM及所需组件

说明:如果宿主机没有安装图形桌面,则无需安装virt-manager。virt-manager(Virtual Machine Manager)是图形化虚机管理器,类似于Esxi的Web Console管理页面。

##安装KVM及所需组件
[root@localhost ~]# yum install virt-manager virt-install bridge-utils \\
libvirt qemu-kvm virt-viewer libcanberra-gtk2  libiscsi  \\
dbus-devel  virt-clone dejavu-lgc-sans-fonts qemu-img \\
libvirt-client virt-v2v libguestfs-tools xorg-x11-xauth -y

##查看virt-manager版本号
[root@localhost ~]# virt-manager –version
2.1.0

##查看virsh版本号
[root@localhost ~]# virsh –version    
6.2.0

##查看qemu-img版本号
[root@localhost ~]# qemu-img –version
qemu-img version 6.2.0 (qemu-6.2.0-86.oe2203)

##查看virt-install版本号
[root@localhost ~]# virt-install –version
2.1.0

八、修改sshd 配置文件

[root@localhost ~]# sudo vi /etc/ssh/sshd_config
##确保该配置文件有如下内容
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
PermitTunnel yes

##重启 sshd 服务
[root@localhost ~]# systemctl restart sshd

九、启动libvirt并设置开机自启动

##启动
[root@localhost ~]# systemctl start libvirtd

##设置开机自启
[root@localhost ~]# systemctl enable libvirtd

##查看libvirt服务是否启动成功
##若服务处于running状态,说明服务启动成功
##可以正常使用libvirt提供的virsh命令行工具
[root@localhost ~]# systemctl status libvirtd

十、创建镜像目录和磁盘文件目录

##查看物理机磁盘空间
##通过df -hT发现/home目录空间最大
[root@localhost ~]# df -hT
Filesystem                 Type      Size  Used Avail Use% Mounted on
devtmpfs                   devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs                      tmpfs     220G     0  220G   0% /dev/shm
tmpfs                      tmpfs      88G   60M   88G   1% /run
tmpfs                      tmpfs     4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/mapper/openeuler-root ext4       69G   15G   51G  23% /
tmpfs                      tmpfs     220G     0  220G   0% /tmp
/dev/sda2                  ext4      974M  204M  704M  23% /boot
/dev/sda1                  vfat      599M  6.0M  593M   2% /boot/efi
/dev/mapper/openeuler-home ext4      1.7T  174G  1.5T  11% /home
tmpfs                      tmpfs      44G   72K   44G   1% /run/user/1003

##建立目录用来存放iso镜像文件
[root@localhost ~]# mkdir /home/iso

##建立目录用来存放qcow2磁盘文件
[root@localhost ~]# mkdir /home/qcow2

十一、创建虚拟机的磁盘文件

说明:通过命令行方式创建一个虚拟机前,需要创建该虚拟机的磁盘文件。

##进入磁盘文件目录
[root@localhost ~]# cd /home/qcow2

##创建虚拟机的磁盘文件
##这里创建了一个名为vm1.qcow2,空间为400GB的动态扩展的qcow2格式的磁盘
##这里的400GB只是磁盘的最大值,没有被写入数据前只有不到200KB大小
[root@localhost ~]# qemu-img create -f qcow2 vm1.qcow2 400G
Formatting 'vm1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=429496729600 lazy_refcounts=off refcount_bits=16 cache=writeback

##查看磁盘文件vm1.qcow2的卷信息,里面disk size是其实际占用的宿主机磁盘大小
##上面的400GB只是磁盘的最大值,这里可以看到,没有被写入数据前只有200KB大小
[root@localhost ~]# qemu-img info vm1.qcow2
image: vm1.qcow2
file format: qcow2
virtual size: 400 GiB (429496729600 bytes)
disk size: 200 KiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false

十二、创建虚拟机

1)方法一:命令行基于iso镜像文件创建虚拟机

  • 下载(下载地址:https://www.openeuler.org/zh/download/archive/)适配ARM架构的操作系统镜像openEuler-22.03-LTS-SP1-aarch64-dvd.iso,并上传到/home/iso
  • 命令行基于iso镜像文件创建虚拟机                

##创建一个CPU8核、内存16GB、磁盘空间400GB的虚拟机
[root@localhost ~]# virt-install –name vm1 –ram=16384 –vcpus=8 \\
–location=/home/iso/openEuler-22.03-LTS-SP1-aarch64-dvd.iso \\
–disk path=/home/qcow2/vm1.qcow2,size=400 –bridge=br0 \\
–graphics=none –console=pty,target_type=serial \\
–extra-args="console=ttyAMA0 console=ttyS0" –autostart

参数说明:

  • –name 指定虚拟机的名称
  • –ram 指定虚拟机的内存大小,单位是MB
  • –vcpus 指定分配给虚拟机的CPU核数
  • –location 指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL
  • –disk path 指定虚拟磁盘文件的路径及名称,size 则是指定该磁盘的可用大小,单位是GB
  • –bridge 指定使用哪一个桥接网卡,也就是说使用桥接的网络模式
  • –graphics 指定是否开启图形,示例如下:
  •   –graphics none 不使用图形桌面
  •   –graphics vnc,password=foobar,port=5910,keymap=ja 使用vnc显示图形桌面
    • –console 定义终端的属性,target_type 则是定义终端的类型
    • –extra-args 定义终端额外的参数
    • –autostart 指定虚拟机在宿主机开机后自动启动

    开始安装,配置语言、时区、安装源、网络、密码等信息。

    Installation

    1) [x] Language settings                 2) [x] Time settings
           (English (United States))                (Asia/Shanghai timezone)
    3) [!] Installation source               4) [!] Software selection
           (Processing…)                          (Processing…)
    5) [!] Installation Destination          6) [!] Network configuration
           (Processing…)                          (Not connected)
    7) [!] Root password                     8) [!] User creation
           (Root account is disabled)               (No user will be created)

    Please make a selection from the above ['b' to begin installation, 'q' to quit,
    'r' to refresh]: 5 <=======输入5然后按Enter键,设置安装目录
    Probing storage…
    ================================================================================
    ================================================================================
    Installation Destination

    1) [x] QEMU HARDDISK: 400 GiB (sda)

    1 disk selected; 400 GiB capacity; 400 GiB free

    Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
    refresh]: c <=======输入c继续

    ================================================================================
    ================================================================================
    Partitioning Options

    1) [ ] Replace Existing Linux system(s)
    2) [x] Use All Space
    3) [ ] Use Free Space
    4) [ ] Manually assign mount points

    Installation requires partitioning of your hard drive. Select what space to use
    for the install target or manually assign mount points.

    Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
    refresh]: c <=======输入c继续
    ================================================================================
    ================================================================================
    Partition Scheme Options

    1) [ ] Standard Partition
    2) [ ] Btrfs
    3) [x] LVM
    4) [ ] LVM Thin Provisioning

    Select a partition scheme configuration.

    Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
    refresh]: 1 <=======输入1然后按Enter键,选择Standard Partition
    ================================================================================
    ================================================================================
    Partition Scheme Options

    1) [x] Standard Partition
    2) [ ] Btrfs
    3) [ ] LVM
    4) [ ] LVM Thin Provisioning

    Select a partition scheme configuration.

    Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
    refresh]: c <=======输入c继续
    ================================================================================
    ================================================================================
    Installation

    1) [x] Language settings                 2) [x] Time settings
           (English (United States))                (Asia/Shanghai timezone)
    3) [x] Installation source               4) [x] Software selection
           (Local media)                            (Minimal Install)
    5) [x] Installation Destination          6) [ ] Network configuration
           (Automatic partitioning                  (Not connected)
           selected)
    7) [!] Root password                     8) [!] User creation
           (Root account is disabled)               (No user will be created)

    Please make a selection from the above ['b' to begin installation, 'q' to quit,
    'r' to refresh]: 7 <=======输入7然后按Enter键,设置root账号的密码
    ================================================================================
    ================================================================================
    Root password

    1) [ ] SM3 encrypt

    Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
    refresh]: 1 <=======输入1然后按Enter键,选择SM3加密方式
    ================================================================================
    ================================================================================
    Root password

    1) [x] SM3 encrypt

    Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
    refresh]: c <=======输入c继续
    ================================================================================
    ================================================================================
    Root password

    Please select new root password. You will have to type it twice.

    Password: <=======输入密码然后按Enter键,这里不会反显
    Password (confirm): <=======再次输入确认密码,然后按Enter键,这里也不会反显
    ================================================================================
    ================================================================================
    Installation

    1) [x] Language settings                 2) [x] Time settings
           (English (United States))                (Asia/Shanghai timezone)
    3) [x] Installation source               4) [x] Software selection
           (Local media)                            (Minimal Install)
    5) [x] Installation Destination          6) [ ] Network configuration
           (Automatic partitioning                  (Not connected)
           selected)
    7) [x] Root password                     8) [ ] User creation
           (Root password is set)                   (No user will be created)

    Please make a selection from the above ['b' to begin installation, 'q' to quit,
    'r' to refresh]: b <=======输入b然后按Enter键就开始安装
    ================================================================================
    ================================================================================
    ……
    ……
    Installation complete

    Use of this product is subject to the license agreement found at:
    /usr/share/openEuler-release/EULA

    Installation complete. Press ENTER to quit:<=======安装完成,按Enter键重启虚拟机

    重启后就进入到虚拟机的登录界面
    ……
    [  OK  ] Finished OpenEuler Security Tool.
    [FAILED] Failed to start Network Manager Wait Online.  <======= 该问题可以忽略,登陆虚拟机,配置网络后即可解决
    See 'systemctl status NetworkManager-wait-online.service' for details.
    [  OK  ] Reached target Network is Online.
             Starting Crash recovery kernel arming…
             Starting Notify NFS peers of a restart…
             Starting System Logging Service…
    [  OK  ] Started Notify NFS peers of a restart.
    [  OK  ] Started System Logging Service.
    [  OK  ] Reached target Multi-User System.
             Starting Record Runlevel Change in UTMP…
    [  OK  ] Finished Record Runlevel Change in UTMP.
    [  OK  ] Finished Crash recovery kernel arming.

    localhost login: 

    登录成功后,这时,如果要退出虚拟机,按 Ctrl + ] 即可。

    注意:

    • 3) Installation source 和 4) Software selection 不需要设置,设置了5) Installation Destination之后,会自动将3)和4)设置好
    • 6) Network configuration 和 8) User creation 现在暂时可以不设置,等虚拟机安装完成后,可以再进入虚拟机进行设置。

    2)方法二:命令行基于基础qcow2磁盘文件(镜像模板),比如方法一中安装配置好的虚拟机vm1的磁盘文件vm1.qcow2,创建虚拟机。参考:重新构建KVM虚拟机基础镜像

    • 上传官方基础镜像,或自己备份好的镜像模板

    说明:

    这里,我们基于方法一中安装配置好的虚拟机vm1的磁盘文件vm1.qcow2作为镜像模板来创建虚拟机vm2。

     

    为了避免和虚拟机vm1的磁盘文件vm1.qcow2冲突,我们复制vm1.qcow2,并改名为vm2.qcow2。

    ##进入磁盘文件目录
    [root@localhost ~]# cd /home/qcow2

    ##复制vm1.qcow2,并改名为vm2.qcow2
    [root@localhost ~]# cp vm1.qcow2 vm2.qcow2

    • 创建虚拟机

    [root@localhost ~]# virt-install –name vm2 –ram=16384 –vcpus=8 \\
    –disk path=/home/qcow2/vm2.qcow2,bus=virtio \\
    –network bridge=br0,model=virtio –graphics=none \\
    –console=pty,target_type=serial –hvm –virt-type kvm \\
    –noautoconsole –import –autostart

    参数说明:

    • –name 定义虚拟机的名称,但是记住不是主机进去之后的 hostname值
    • –ram 定义内存大小,单位是MB
    • –vcpus 定义CPU核数
    • –disk 定义存储大小,一般是通过path 路径指定镜像文件或者数据文件,bus=virtio 意思是指定磁盘映像文件应连接到虚拟机的哪种总线。
    • –network 定义网络,bridge=br0意思是使用br0作为网桥构建网络,model=virtio指定虚拟机的网络接口应使用哪种网络模型
    • –hvm 完全虚拟化 / –paravirt 半虚拟化 / –container 容器化, 这里选择 hvm
    • –virt-type 有kvm、qemu、xen等,这里选择 kvm
    • –noautoconsole 创建虚拟机之后,不进行自动连接,后面可以使用virsh console xxx 来连接到xxx 虚拟机
    • –import 使用一个存在的磁盘镜像来构建虚拟机,和 –disk 配合使用

    3)方法三:在一台Windows机器上,通过VNC客户端,远程连接宿主机上的VNC服务端,登录进入GNOME桌面环境后,在terminal命令窗口中输入virt-manager命令打开Virtual Machine Manager客户端,就可以通过图形化界面的方式进行虚拟机管理了(包括:创建/修改/删除虚拟机等操作)。详见:VNC的安装部署-CSDN博客

    注意:前提条件是在宿主机系统中安装了图形化桌面环境。详见本文:六、安装OpenEuler GNOME桌面环境。

    十三、配置虚拟机的网络

    • 从宿主机进入虚拟机

    [root@localhost ~]# virsh console vm1
    Connected to domain vm1
    Escape character is ^]

    • 查看虚拟机的网络信息,此时还没有能联网的IP。处于UP状态的网卡是eth0

    [root@localhost ~]# ip ad  
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 52:54:00:65:d3:3f brd ff:ff:ff:ff:ff:ff

    • 修改虚拟机的网络配置文件ifcfg-eth0,设置静态IP:192.168.112.61

    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    NAME=enp1s0
    UUID=009a3243-b57b-4845-a43b-2045ca7aa79a
    DEVICE=enp1s0
    ONBOOT=yes
    IPADDR=192.168.112.61
    PREFIX=24
    GATEWAY=192.168.112.1
    DNS1=114.114.114.114

    • 重启网卡服务

    #华为openeuler系统使用该命令,其他linux系统可以使用systemctl restart network 
    [root@localhost network-scripts]# nmcli con reload; nmcli con up eth0

    十四、KVM虚拟机常见管理命令(在宿主机中执行)

    参考:KVM-虚拟化管理工具 – 知乎

    ## 从虚拟机退出到宿主机
    [root@localhost ~]# Ctrl + ]

    ## 查看KVM进程 
    [root@localhost ~]# ps axu |grep kvm      

    ## 查看libvirt的版本信息                 
    [root@localhost ~]# virsh version  

    ## 列出当前有多少个虚拟机,以及其状态                         
    [root@localhost ~]# virsh list    

    ## 列出当前有多少个虚拟机,包括关机状态的虚拟机                          
    [root@localhost ~]# virsh list –all          

    ## 进入指定的虚拟机,进入的时候还需要按一下回车             
    [root@localhost ~]# virsh console vm1                    

    ## 编辑虚拟机的配置    
    [root@localhost ~]# virsh edit vm1      

    ## 使用XML文件创建一个虚拟机                   
    [root@localhost ~]# virsh create vm1.xml            

    ## 使用XML文件定义一个虚拟机,但是不启动
    [root@localhost ~]# virsh define vm1.xml    

    ## 启动虚拟机
    [root@localhost ~]# virsh start vm1                          

    ## 重启虚拟机
    [root@localhost ~]# virsh reboot vm1      

    ## 关闭虚拟机,比较优雅地做法,按部就班的关闭虚拟机
    [root@localhost ~]# virsh shutdown vm1                    

    ## 强制停止虚拟机,是比较暴力的做法,相当于物理机的直接关闭电源
    [root@localhost ~]# virsh destroy vm1                        

    ## 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
    [root@localhost ~]# virsh undefine vm1 –nvram              

    ## 设置宿主机开机时该虚拟机也开机
    [root@localhost ~]# virsh autostart vm1      

    ## 解除开机启动
    [root@localhost ~]# virsh autostart –disable vm1      

    ## 列出开机自动启动的虚拟机
    [root@localhost ~]# virsh list –autostart        

    ## 挂起虚拟机
    [root@localhost ~]# virsh suspend vm1                    

    ## 恢复挂起的虚拟机
    [root@localhost ~]# virsh resume vm1                        

    ## 当机器是运行状态时,卸载虚拟磁盘命令(只是当前有效,重启后又回来了)
    [root@localhost ~]# virsh detach-disk vm1 sdb        

    ## 永久添加磁盘
    [root@localhost ~]# virsh attach-disk vm1 \\
    /var/lib/libvirt/images/disk1/additional/vm1/file1 sdb \\
    –subdriver=qcow2 –config –live –persistent                                                
    ## 查看虚拟机有几块网卡 
    [root@localhost ~]# virsh domiflist vm1          

    ## 查看虚拟机的磁盘
    [root@localhost ~]# virsh domblklist vm1                    

    ## 查看虚拟机的cpu数量
    [root@localhost ~]# virsh vcpucount vm1  

    十五、常见问题

    【问题一】 问题描述:在ARM服务器上,virt-install使用命令行模式安装虚拟机时,若–extra-args加入console=tty0,创建虚拟机将失败,命令执行某个阶段,就会卡死无法继续运行。 解决办法:可以把console=tty0改为console=ttyS0或者console=ttyAMA0。只要没有console=tty0就好了。

    【问题二】 问题描述:KVM创建快照失败 “Operation not supported: internal snapshots of a VM with pflash based firmware are not supported” 解决办法: 目前没有办法创建内部快照,官方没有修复方法。唯一的办法是使用外部快照。

    参考URL: https://unix.stackexchange.com/questions/663372/error-creating-snapshot-operation-not-supported-internal-snapshots-of-a-vm-wit https://fabianlee.org/2021/01/10/kvm-creating-and-reverting-libvirt-external-snapshots/

    【问题三】 问题描述:cannot undefine domain with nvram 解决办法: [root@localhost ~]# virsh undefine vm1 –nvram   #添加–nvram参数即可

     

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » ARM架构服务器安装部署KVM虚拟化环境
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!