当前位置:   article > 正文

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

arm服务器

文章目录

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

二、查看内核是否支持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虚拟化。 

  1. [root@localhost ~]# ls -l /dev/kvm
  2. crw-rw----+ 1 root kvm 10, 232 May  6 09:18 /dev/kvm
  3. [root@localhost ~]# ls /sys/module/kvm
  4. parameters  uevent

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

  1. #若是intel cpu,命令执行结果是vmx;若是amd cpu,命令执行结果是svm;
  2. [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状态的网卡接口
  1. [root@backend ~]# ifconfig | grep RUNNING
  2. docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  3. enp2s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  4. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
  5. veth036f796: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  6. veth19918cd: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  7. veth3f86042: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  8. vethaaad1c6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  9. vethd780f04: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  10. 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的网络配置文件
  1. [root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-enp2s0f0 \
  2. /etc/sysconfig/network-scripts/ifcfg-br0
  • 修改网桥br0的网络配置文件,其中需要配置宿主机的静态IP
  1. [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
  2. #Type使用桥接
  3. TYPE=Bridge
  4. #IP分配协议改为静态分配
  5. BOOTPROTO=static
  6. #修改NAME为br0
  7. NAME=br0
  8. #修改DEVICE为br0
  9. DEVICE=br0
  10. ONBOOT=yes
  11. #宿主机的静态IP
  12. IPADDR=192.168.112.56
  13. #子网掩码
  14. PREFIX=24
  15. #网关
  16. GATEWAY=192.168.112.1
  17. #DNS
  18. DNS1=114.114.114.114
  • 修改处于UP状态且处于RUNNING状态的网卡 enp2s0f0 的网络配置文件
  1. [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp2s0f0
  2. #Type使用Ethernet
  3. TYPE=Ethernet
  4. #IP分配协议改为静态分配
  5. BOOTPROTO=static
  6. ONBOOT=yes
  7. #指定桥接设备为br0
  8. BRIDGE=br0
  9. #....其他不用改
  • 重启网络
  1. #华为openeuler系统使用该命令,其他linux系统可以使用systemctl restart network
  2. [root@localhost ~]# nmcli con reload; nmcli con up enp2s0f0 
  • 查看网络连接
  1. ##如果配置成功,会有以下输出:
  2. [root@localhost ~]# brctl show
  3. bridge name     bridge id               STP enabled     interfaces
  4. br0             8000.b04fa63d449c       no              enp2s0f0
  5. docker0         8000.0242ca5f6b53       no              veth0f04dc2
  6.                                                         veth6148d75
  7.                                                         veth7ee782c
  8.                                                         veth88dc0dd
  9.                                                         vethc335d89
  10.                                                         vethf19fe4a
  11. virbr0          8000.525400112ec1       yes             virbr0-nic
  • 设置IP转发
  1. ##修改内核参数
  2. [root@localhost ~]# vi /etc/sysctl.conf
  3. net.ipv4.ip_forward=1
  4. ##执行生效
  5. ##加载指定的文件配置内核参数,-p后通常接一个文件路径
  6. ##若为空,默认加载/etc/sysctl.conf中的内核参数
  7. [root@localhost ~]# sysctl -p  
  8.     
  9. ##显示所有的内核参数      
  10. [root@localhost ~]# sysctl -a    
  11.  
  12. ##若只是临时修改内核参数的值,可以执行如下命令,但是重启后失效        
  13. [root@localhost ~]# net.ipv4.ip_forward=1
  14.  
  15. ##加载/etc/sysctl.d/目录下所有conf文件(包括/etc/sysctl.conf文件)中的内核参数
  16. [root@localhost ~]# sysctl --system  

六、安装GNOME桌面环境

GNOME简介

  • GNOME是运行在类Unix操作系统中最常用桌面环境,是一个功能完善、操作简单,界面友好,集使用和开发为一身的桌面环境,是GNU计划的正式桌面。
  • 从用户的角度看,GNOME是一个集成桌面环境和应用程序的套件。从开发者的角度看,它是一个应用程序开发框架(由数目众多的实用函数库组成)。即使用户不运行GNOME桌面环境,用GNOME编写的应用程序也可以正常运行。
  • GNOME既包含文件管理器,应用商店,文本编辑器等基础软件,也包含系统采样分析,系统日志,软件工程IDE,web浏览器,简洁虚拟机监视器,开发者文档浏览器等高级应用和工具。
  1. ##更新系统
  2. [root@localhost ~]# yum update -y   
  3. ##安装字库
  4. [root@localhost ~]# yum install dejavu-fonts liberation-fonts \
  5. gnu-*-fonts google-*-fonts -y
  6. ##安装Xorg
  7. [root@localhost ~]# yum install xorg-* -y
  8. ##这可能会安装很多没用的包,可以使用下面的命令安装必要的xorg相关包
  9. [root@localhost ~]# yum install xorg-x11-apps xorg-x11-drivers xorg-x11-drv-ati \
  10.     xorg-x11-drv-dummy xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-intel \
  11.     xorg-x11-drv-libinput xorg-x11-drv-nouveau xorg-x11-drv-qxl \
  12.     xorg-x11-drv-synaptics-legacy xorg-x11-drv-v4l xorg-x11-drv-vesa \
  13.     xorg-x11-drv-vmware xorg-x11-drv-wacom xorg-x11-fonts xorg-x11-fonts-others \
  14.     xorg-x11-font-utils xorg-x11-server xorg-x11-server-utils xorg-x11-server-Xephyr \
  15.     xorg-x11-server-Xspice xorg-x11-util-macros xorg-x11-utils xorg-x11-xauth \
  16.     xorg-x11-xbitmaps xorg-x11-xinit xorg-x11-xkb-utils -y
  17. ##安装GNOME及组件
  18. [root@localhost ~]# yum install adwaita-icon-theme atk atkmm at-spi2-atk \
  19. at-spi2-core baobab \
  20.     abattis-cantarell-fonts cheese clutter clutter-gst3 clutter-gtk cogl dconf \
  21.     dconf-editor devhelp eog epiphany evince evolution-data-server file-roller folks \
  22.     gcab gcr gdk-pixbuf2 gdm gedit geocode-glib gfbgraph gjs glib2 glibmm24 \
  23.     glib-networking gmime30 gnome-autoar gnome-backgrounds gnome-bluetooth \
  24.     gnome-builder gnome-calculator gnome-calendar gnome-characters \
  25.     gnome-clocks gnome-color-manager gnome-contacts gnome-control-center \
  26.     gnome-desktop3 gnome-disk-utility gnome-font-viewer gnome-getting-started-docs \
  27.     gnome-initial-setup gnome-keyring gnome-logs gnome-menus gnome-music \
  28.     gnome-online-accounts gnome-online-miners gnome-photos gnome-remote-desktop \
  29.     gnome-screenshot gnome-session gnome-settings-daemon gnome-shell \
  30.     gnome-shell-extensions gnome-software gnome-system-monitor gnome-terminal \
  31.     gnome-tour gnome-user-docs gnome-user-share gnome-video-effects \
  32.     gnome-weather gobject-introspection gom grilo grilo-plugins \
  33.     gsettings-desktop-schemas gsound gspell gssdp gtk3 gtk4 gtk-doc gtkmm30 \
  34.     gtksourceview4 gtk-vnc2 gupnp gupnp-av gupnp-dlna gvfs json-glib libchamplain \
  35.     libdazzle libgdata libgee libgnomekbd libgsf libgtop2 libgweather libgxps libhandy \
  36.     libmediaart libnma libnotify libpeas librsvg2 libsecret libsigc++20 libsoup \
  37.     mm-common mutter nautilus orca pango pangomm libphodav python3-pyatspi \
  38.     python3-gobject rest rygel simple-scan sushi sysprof tepl totem totem-pl-parser \
  39.     tracker3 tracker3-miners vala vte291 yelp yelp-tools \
  40.     yelp-xsl zenity -y
  41. ##启动gdm显示管理器
  42. [root@localhost ~]# systemctl enable gdm
  43. ##设置系统默认以图形界面登录
  44. [root@localhost ~]# systemctl set-default graphical.target
  45. ##查询当前开机运行级别
  46. [root@localhost ~]# systemctl get-default  
  47. ##重启生效
  48. [root@localhost ~]# reboot

七、安装KVM及所需组件

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

  1. ##安装KVM及所需组件
  2. [root@localhost ~]# yum install virt-manager virt-install bridge-utils \
  3. libvirt qemu-kvm virt-viewer libcanberra-gtk2  libiscsi  \
  4. dbus-devel  virt-clone dejavu-lgc-sans-fonts qemu-img \
  5. libvirt-client virt-v2v libguestfs-tools xorg-x11-xauth -y
  6. ##查看virt-manager版本号
  7. [root@localhost ~]# virt-manager --version
  8. 2.1.0
  9. ##查看virsh版本号
  10. [root@localhost ~]# virsh --version    
  11. 6.2.0
  12. ##查看qemu-img版本号
  13. [root@localhost ~]# qemu-img --version
  14. qemu-img version 6.2.0 (qemu-6.2.0-86.oe2203)
  15. ##查看virt-install版本号
  16. [root@localhost ~]# virt-install --version
  17. 2.1.0

八、修改sshd 配置文件

  1. [root@localhost ~]# sudo vi /etc/ssh/sshd_config
  2. ##确保该配置文件有如下内容
  3. X11Forwarding yes
  4. X11DisplayOffset 10
  5. X11UseLocalhost no
  6. PermitTunnel yes
  7. ##重启 sshd 服务
  8. [root@localhost ~]# systemctl restart sshd

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

  1. ##启动
  2. [root@localhost ~]# systemctl start libvirtd
  3. ##设置开机自启
  4. [root@localhost ~]# systemctl enable libvirtd
  5. ##查看libvirt服务是否启动成功
  6. ##若服务处于running状态,说明服务启动成功
  7. ##可以正常使用libvirt提供的virsh命令行工具
  8. [root@localhost ~]# systemctl status libvirtd

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

  1. ##查看物理机磁盘空间
  2. ##通过df -hT发现/home目录空间最大
  3. [root@localhost ~]# df -hT
  4. Filesystem                 Type      Size  Used Avail Use% Mounted on
  5. devtmpfs                   devtmpfs  4.0M     0  4.0M   0% /dev
  6. tmpfs                      tmpfs     220G     0  220G   0% /dev/shm
  7. tmpfs                      tmpfs      88G   60M   88G   1% /run
  8. tmpfs                      tmpfs     4.0M     0  4.0M   0% /sys/fs/cgroup
  9. /dev/mapper/openeuler-root ext4       69G   15G   51G  23% /
  10. tmpfs                      tmpfs     220G     0  220G   0% /tmp
  11. /dev/sda2                  ext4      974M  204M  704M  23% /boot
  12. /dev/sda1                  vfat      599M  6.0M  593M   2% /boot/efi
  13. /dev/mapper/openeuler-home ext4      1.7T  174G  1.5T  11% /home
  14. tmpfs                      tmpfs      44G   72K   44G   1% /run/user/1003
  15. ##建立目录用来存放iso镜像文件
  16. [root@localhost ~]# mkdir /home/iso
  17. ##建立目录用来存放qcow2磁盘文件
  18. [root@localhost ~]# mkdir /home/qcow2

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

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

  1. ##进入磁盘文件目录
  2. [root@localhost ~]# cd /home/qcow2
  3. ##创建虚拟机的磁盘文件
  4. ##这里创建了一个名为vm1.qcow2,空间为400GB的动态扩展的qcow2格式的磁盘
  5. ##这里的400GB只是磁盘的最大值,没有被写入数据前只有不到200KB大小
  6. [root@localhost ~]# qemu-img create -f qcow2 vm1.qcow2 400G
  7. Formatting 'vm1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=429496729600 lazy_refcounts=off refcount_bits=16 cache=writeback
  8. ##查看磁盘文件vm1.qcow2的卷信息,里面disk size是其实际占用的宿主机磁盘大小
  9. ##上面的400GB只是磁盘的最大值,这里可以看到,没有被写入数据前只有200KB大小
  10. [root@localhost ~]# qemu-img info vm1.qcow2
  11. image: vm1.qcow2
  12. file format: qcow2
  13. virtual size: 400 GiB (429496729600 bytes)
  14. disk size: 200 KiB
  15. cluster_size: 65536
  16. Format specific information:
  17.     compat: 1.1
  18.     compression type: zlib
  19.     lazy refcounts: false
  20.     refcount bits: 16
  21.     corrupt: false
  22.     extended l2: false

十二、创建虚拟机

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

  • 下载(下载地址:https://www.openeuler.org/zh/download/archive/)适配ARM架构的操作系统镜像openEuler-22.03-LTS-SP1-aarch64-dvd.iso,并上传到/home/iso
  • 命令行基于iso镜像文件创建虚拟机                
  1. ##创建一个CPU8核、内存16GB、磁盘空间400GB的虚拟机
  2. [root@localhost ~]# virt-install --name vm1 --ram=16384 --vcpus=8 \
  3. --location=/home/iso/openEuler-22.03-LTS-SP1-aarch64-dvd.iso \
  4. --disk path=/home/qcow2/vm1.qcow2,size=400 --bridge=br0 \
  5. --graphics=none --console=pty,target_type=serial \
  6. --extra-args="console=ttyAMA0 console=ttyS0" --autostart

参数说明:

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

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

  1. Installation
  2. 1) [x] Language settings                 2) [x] Time settings
  3.        (English (United States))                (Asia/Shanghai timezone)
  4. 3) [!] Installation source               4) [!] Software selection
  5.        (Processing...)                          (Processing...)
  6. 5) [!] Installation Destination          6) [!] Network configuration
  7.        (Processing...)                          (Not connected)
  8. 7) [!] Root password                     8) [!] User creation
  9.        (Root account is disabled)               (No user will be created)
  10. Please make a selection from the above ['b' to begin installation, 'q' to quit,
  11. 'r' to refresh]: 5 <=======输入5然后按Enter键,设置安装目录
  12. Probing storage...
  13. ================================================================================
  14. ================================================================================
  15. Installation Destination
  16. 1) [x] QEMU HARDDISK: 400 GiB (sda)
  17. 1 disk selected; 400 GiB capacity; 400 GiB free
  18. Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
  19. refresh]: c <=======输入c继续
  20. ================================================================================
  21. ================================================================================
  22. Partitioning Options
  23. 1) [ ] Replace Existing Linux system(s)
  24. 2) [x] Use All Space
  25. 3) [ ] Use Free Space
  26. 4) [ ] Manually assign mount points
  27. Installation requires partitioning of your hard drive. Select what space to use
  28. for the install target or manually assign mount points.
  29. Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
  30. refresh]: c <=======输入c继续
  31. ================================================================================
  32. ================================================================================
  33. Partition Scheme Options
  34. 1) [ ] Standard Partition
  35. 2) [ ] Btrfs
  36. 3) [x] LVM
  37. 4) [ ] LVM Thin Provisioning
  38. Select a partition scheme configuration.
  39. Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
  40. refresh]: 1 <=======输入1然后按Enter键,选择Standard Partition
  41. ================================================================================
  42. ================================================================================
  43. Partition Scheme Options
  44. 1) [x] Standard Partition
  45. 2) [ ] Btrfs
  46. 3) [ ] LVM
  47. 4) [ ] LVM Thin Provisioning
  48. Select a partition scheme configuration.
  49. Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
  50. refresh]: c <=======输入c继续
  51. ================================================================================
  52. ================================================================================
  53. Installation
  54. 1) [x] Language settings                 2) [x] Time settings
  55.        (English (United States))                (Asia/Shanghai timezone)
  56. 3) [x] Installation source               4) [x] Software selection
  57.        (Local media)                            (Minimal Install)
  58. 5) [x] Installation Destination          6) [ ] Network configuration
  59.        (Automatic partitioning                  (Not connected)
  60.        selected)
  61. 7) [!] Root password                     8) [!] User creation
  62.        (Root account is disabled)               (No user will be created)
  63. Please make a selection from the above ['b' to begin installation, 'q' to quit,
  64. 'r' to refresh]: 7 <=======输入7然后按Enter键,设置root账号的密码
  65. ================================================================================
  66. ================================================================================
  67. Root password
  68. 1) [ ] SM3 encrypt
  69. Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
  70. refresh]: 1 <=======输入1然后按Enter键,选择SM3加密方式
  71. ================================================================================
  72. ================================================================================
  73. Root password
  74. 1) [x] SM3 encrypt
  75. Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
  76. refresh]: c <=======输入c继续
  77. ================================================================================
  78. ================================================================================
  79. Root password
  80. Please select new root password. You will have to type it twice.
  81. Password: <=======输入密码然后按Enter键,这里不会反显
  82. Password (confirm): <=======再次输入确认密码,然后按Enter键,这里也不会反显
  83. ================================================================================
  84. ================================================================================
  85. Installation
  86. 1) [x] Language settings                 2) [x] Time settings
  87.        (English (United States))                (Asia/Shanghai timezone)
  88. 3) [x] Installation source               4) [x] Software selection
  89.        (Local media)                            (Minimal Install)
  90. 5) [x] Installation Destination          6) [ ] Network configuration
  91.        (Automatic partitioning                  (Not connected)
  92.        selected)
  93. 7) [x] Root password                     8) [ ] User creation
  94.        (Root password is set)                   (No user will be created)
  95. Please make a selection from the above ['b' to begin installation, 'q' to quit,
  96. 'r' to refresh]: b <=======输入b然后按Enter键就开始安装
  97. ================================================================================
  98. ================================================================================
  99. ......
  100. ......
  101. Installation complete
  102. Use of this product is subject to the license agreement found at:
  103. /usr/share/openEuler-release/EULA
  104. Installation complete. Press ENTER to quit:<=======安装完成,按Enter键重启虚拟机
  105. 重启后就进入到虚拟机的登录界面
  106. ......
  107. [  OK  ] Finished OpenEuler Security Tool.
  108. [FAILED] Failed to start Network Manager Wait Online.  <======= 该问题可以忽略,登陆虚拟机,配置网络后即可解决
  109. See 'systemctl status NetworkManager-wait-online.service' for details.
  110. [  OK  ] Reached target Network is Online.
  111.          Starting Crash recovery kernel arming...
  112.          Starting Notify NFS peers of a restart...
  113.          Starting System Logging Service...
  114. [  OK  ] Started Notify NFS peers of a restart.
  115. [  OK  ] Started System Logging Service.
  116. [  OK  ] Reached target Multi-User System.
  117.          Starting Record Runlevel Change in UTMP...
  118. [  OK  ] Finished Record Runlevel Change in UTMP.
  119. [  OK  ] Finished Crash recovery kernel arming.
  120. localhost login: 
  121. 登录成功后,这时,如果要退出虚拟机,按 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。

  1. ##进入磁盘文件目录
  2. [root@localhost ~]# cd /home/qcow2
  3. ##复制vm1.qcow2,并改名为vm2.qcow2
  4. [root@localhost ~]# cp vm1.qcow2 vm2.qcow2
  • 创建虚拟机
  1. [root@localhost ~]# virt-install --name vm2 --ram=16384 --vcpus=8 \
  2. --disk path=/home/qcow2/vm2.qcow2,bus=virtio \
  3. --network bridge=br0,model=virtio --graphics=none \
  4. --console=pty,target_type=serial --hvm --virt-type kvm \
  5. --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桌面环境。

十三、配置虚拟机的网络

  • 从宿主机进入虚拟机
  1. [root@localhost ~]# virsh console vm1
  2. Connected to domain vm1
  3. Escape character is ^]
  • 查看虚拟机的网络信息,此时还没有能联网的IP。处于UP状态的网卡是eth0
  1. [root@localhost ~]# ip ad  
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4.     inet 127.0.0.1/8 scope host lo
  5.        valid_lft forever preferred_lft forever
  6.     inet6 ::1/128 scope host 
  7.        valid_lft forever preferred_lft forever
  8. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  9.     link/ether 52:54:00:65:d3:3f brd ff:ff:ff:ff:ff:ff
  • 修改虚拟机的网络配置文件ifcfg-eth0,设置静态IP:192.168.112.61
  1. [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. TYPE=Ethernet
  3. PROXY_METHOD=none
  4. BROWSER_ONLY=no
  5. BOOTPROTO=static
  6. DEFROUTE=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_FAILURE_FATAL=no
  12. NAME=enp1s0
  13. UUID=009a3243-b57b-4845-a43b-2045ca7aa79a
  14. DEVICE=enp1s0
  15. ONBOOT=yes
  16. IPADDR=192.168.112.61
  17. PREFIX=24
  18. GATEWAY=192.168.112.1
  19. DNS1=114.114.114.114
  • 重启网卡服务
  1. #华为openeuler系统使用该命令,其他linux系统可以使用systemctl restart network 
  2. [root@localhost network-scripts]# nmcli con reload; nmcli con up eth0

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

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

  1. ## 从虚拟机退出到宿主机
  2. [root@localhost ~]# Ctrl + ]
  3. ## 查看KVM进程 
  4. [root@localhost ~]# ps axu |grep kvm      
  5. ## 查看libvirt的版本信息                 
  6. [root@localhost ~]# virsh version  
  7. ## 列出当前有多少个虚拟机,以及其状态                         
  8. [root@localhost ~]# virsh list    
  9. ## 列出当前有多少个虚拟机,包括关机状态的虚拟机                          
  10. [root@localhost ~]# virsh list --all          
  11. ## 进入指定的虚拟机,进入的时候还需要按一下回车             
  12. [root@localhost ~]# virsh console vm1                    
  13. ## 编辑虚拟机的配置    
  14. [root@localhost ~]# virsh edit vm1      
  15. ## 使用XML文件创建一个虚拟机                   
  16. [root@localhost ~]# virsh create vm1.xml            
  17. ## 使用XML文件定义一个虚拟机,但是不启动
  18. [root@localhost ~]# virsh define vm1.xml    
  19. ## 启动虚拟机
  20. [root@localhost ~]# virsh start vm1                          
  21. ## 重启虚拟机
  22. [root@localhost ~]# virsh reboot vm1      
  23. ## 关闭虚拟机,比较优雅地做法,按部就班的关闭虚拟机
  24. [root@localhost ~]# virsh shutdown vm1                    
  25. ## 强制停止虚拟机,是比较暴力的做法,相当于物理机的直接关闭电源
  26. [root@localhost ~]# virsh destroy vm1                        
  27. ## 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
  28. [root@localhost ~]# virsh undefine vm1 --nvram              
  29. ## 设置宿主机开机时该虚拟机也开机
  30. [root@localhost ~]# virsh autostart vm1      
  31. ## 解除开机启动
  32. [root@localhost ~]# virsh autostart --disable vm1      
  33. ## 列出开机自动启动的虚拟机
  34. [root@localhost ~]# virsh list --autostart        
  35. ## 挂起虚拟机
  36. [root@localhost ~]# virsh suspend vm1                    
  37. ## 恢复挂起的虚拟机
  38. [root@localhost ~]# virsh resume vm1                        
  39. ## 当机器是运行状态时,卸载虚拟磁盘命令(只是当前有效,重启后又回来了)
  40. [root@localhost ~]# virsh detach-disk vm1 sdb        
  41. ## 永久添加磁盘
  42. [root@localhost ~]# virsh attach-disk vm1 \
  43. /var/lib/libvirt/images/disk1/additional/vm1/file1 sdb \
  44. --subdriver=qcow2 --config --live --persistent                                                
  45. ## 查看虚拟机有几块网卡 
  46. [root@localhost ~]# virsh domiflist vm1          
  47. ## 查看虚拟机的磁盘
  48. [root@localhost ~]# virsh domblklist vm1                    
  49. ## 查看虚拟机的cpu数量
  50. [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参数即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/937729
推荐阅读
相关标签
  

闽ICP备14008679号