银河麒麟 kylin server v10 arm64上创建虚拟机(基于鲲鹏920 CPU)

2,066 阅读10分钟

目录

一、实验环境

1、cpu信息

2、操作系统版本

二、准备工作

1、安装虚拟化软件

2、修改vi /etc/libvirt/qemu.conf

3、重启libvirtd服务

4、设置开机启动

5、关闭selinux

6、查看安装的版本

二、安装

1、创建存储池

a、创建存储池目录,配置目录权限

b、定义一个存储池并绑定目录,建立基于文件夹的存储池、激活、设置开机启动

2、创建虚拟机磁盘空间

3、创建网桥br1

4、创建虚拟机

5、开始安装系统

三、桥接模式网络配置

1、宿主机上

a、停止NetworkManager服务

b、修改ifcfg-xxx文件

2、虚拟机内部网络配置

3、网桥设置

4、重启网络服务

四、克隆虚拟机

1、关闭虚拟机

2、使用virt-clone命令克隆虚拟机

3、查看当前有哪些虚拟机

4、修改克隆的虚拟机的主机名、ip相关

五、修改kvm虚拟机内存、CPU等参数(内存扩充,修改cpu个数)

1、修改虚拟机内存

2、修改CPU个数

六、彻底删除虚拟机



一、实验环境

1、cpu信息

[root@localhost ~]# lscpu 
架构:                           aarch64
CPU 运行模式:                   64-bit
字节序:                         Little Endian
CPU:                             4
在线 CPU 列表:                  0-3
每个核的线程数:                 1
每个座的核数:                   4
座:                             1
NUMA 节点:                      1
厂商 ID:                        HiSilicon
型号:                           0
型号名称:                       Kunpeng-920
步进:                           0x1
CPU 最大 MHz:                   2600.0000
CPU 最小 MHz:                   200.0000
BogoMIPS:                       200.00
L1d 缓存:                       256 KiB
L1i 缓存:                       256 KiB
L2 缓存:                        2 MiB
L3 缓存:                        32 MiB
NUMA 节点0 CPU:                 0-3
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Not affected
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Not affected
Vulnerability Tsx async abort:   Not affected
标记:                           fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm

2、操作系统版本

[root@localhost ~]# cat /etc/kylin-release 
Kylin Linux Advanced Server release V10 (Tercel)
[root@localhost ~]# cat /proc/version 
Linux version 4.19.90-17.ky10.aarch64 (YHKYLIN-OS@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Sun Jun 28 14:27:40 CST 2020

简单查看是否支持虚拟化:

[root@localhost ~]# dmesg | grep kvm
[    0.718369] kvm [1]: Hisi ncsnp: enabled
[    0.718372] kvm [1]: 16-bit VMID
[    0.718373] kvm [1]: IPA Size Limit: 48bits
[    0.718377] kvm [1]: GICv4 support disabled
[    0.718378] kvm [1]: vgic-v2@9b020000
[    0.718379] kvm [1]: GIC system register CPU interface enabled
[    0.718394] kvm [1]: vgic interrupt IRQ1
[    0.718414] kvm [1]: VHE mode initialized successfully

注:VHE(Virtualization Host Extension support)是armv8.1的新特性,支持type-2的hypervisors这种扩展让kernel直接跑在el2上。

二、准备工作

1、安装虚拟化软件

yum -y install qemu* libvirt* virt-install

2、修改vi /etc/libvirt/qemu.conf

注:这里不改的话,后面创建的img及要用到的iso文件的所有者需要改成qemu用户。

3、重启libvirtd服务

service libvirtd restart

4、设置开机启动

[root@localhost ~]# 
[root@localhost ~]# systemctl enable libvirtd
[root@localhost ~]# 
[root@localhost ~]# service libvirtd status
Redirecting to /bin/systemctl status libvirtd.service
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-04-07 10:40:07 CST; 10s ago
     Docs: man:libvirtd(8)
           https://libvirt.org
 Main PID: 92805 (libvirtd)
    Tasks: 19 (limit: 32768)
   Memory: 29.3M
   CGroup: /system.slice/libvirtd.service
           ├─92645 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
           ├─92646 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
           └─92805 /usr/sbin/libvirtd

407 10:40:07 localhost.localdomain systemd[1]: Starting Virtualization daemon...
407 10:40:07 localhost.localdomain systemd[1]: Started Virtualization daemon.
407 10:40:07 localhost.localdomain dnsmasq[92645]: read /etc/hosts - 2 addresses
407 10:40:07 localhost.localdomain dnsmasq[92645]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
407 10:40:07 localhost.localdomain dnsmasq-dhcp[92645]: read /var/lib/libvirt/dnsmasq/default.hostsfile
407 10:40:07 localhost.localdomain libvirtd[92805]: libvirt version: 5.5.0, package: 6.ky10 (Koji, 2020-03-18-20:23:00, ae4af90b50c84bc0baf802aca7ec6143)
407 10:40:07 localhost.localdomain libvirtd[92805]: hostname: localhost.localdomain
407 10:40:07 localhost.localdomain libvirtd[92805]: Failed to get host CPU cache info

5、关闭selinux

setenforce 0

6、查看安装的版本

[root@localhost ~]# virsh version 
根据库编译:libvirt 5.5.0
使用库:libvirt 5.5.0
使用的 API: QEMU 5.5.0
运行管理程序: QEMU 4.0.1

若yum源安装的版本太低,建议下载源码安装新版(libvirt、qemu)。

​​

 二、安装

1、创建存储池

a、创建存储池目录,配置目录权限

[root@localhost ~]# mkdir -p /home/kvm/images
[root@localhost ~]# chown root:root /home/kvm/images
[root@localhost ~]# 
[root@localhost ~]# ll /home/kvm/
总用量 0
drwx------ 2 root root 6  47 10:42 images
[root@localhost ~]# chmod 755 /home/kvm/images
[root@localhost ~]# 

注意:【一】中第二条没改的话,这里要chown qemu:qemu/home/kvm/images

b、定义一个存储池并绑定目录,建立基于文件夹的存储池、激活、设置开机启动

[root@localhost ~]# virsh pool-define-as StoragePool --type dir --target /home/kvm/images
定义池 StoragePool

[root@localhost ~]# virsh pool-build StoragePool
构建池 StoragePool

[root@localhost ~]# virsh pool-start StoragePool
池 StoragePool 已启动

[root@localhost ~]# virsh pool-autostart StoragePool
池 StoragePool 标记为自动启动

[root@localhost ~]# virsh pool-info StoragePool
名称:       StoragePool
UUID:           66ae0c61-05fe-454d-b215-8f9d27c6573c
状态:       运行中
持久:       是
自动启动: 是
容量:       1.08 TiB
分配:       37.12 GiB
可用:       1.05 TiB

[root@localhost ~]# virsh pool-list
 名称          状态   自动开始
--------------------------------
 StoragePool   活动   是

[root@localhost ~]#

2、创建虚拟机磁盘空间

[root@localhost ~]# virsh vol-create-as --pool StoragePool --name kylinv10.img --capacity 120G --allocation 1G --format qcow2
创建卷 1.img 

[root@localhost ~]# virsh vol-info /home/kvm/images/kylinv10.img 
名称:       kylinv10.img
类型:       文件
容量:       120.00 GiB
分配:       4.17 GiB

[root@localhost ~]#

3、创建网桥br1

[root@localhost ~]# brctl addbr br1

本文创建虚拟机的网络适配模式为桥接模式,所以要先新增个网桥,用于创建虚拟机,虚拟机的网络配置,本文后面会详细讲到。

4、创建虚拟机

[root@localhost ~]# virt-install --name=vm_kylinv10 --vcpus=2 --ram=4096  --disk path=/home/kvm/images/kylinv10.img,format=qcow2,size=120,bus=virtio --cdrom /home/kvm/images/Kylin-Server-10-SP1-Release-Build04-20200711-arm64.iso --network bridge=br1,model=virtio --force  --autostart

** (process:94273): WARNING **: 11:02:02.996: Entity http://kylin.cn/kylin/10.0 should be in file os/kylin.cn/kylin-10.0.xml not os/kylin.cn/kylin-10.xml

** (process:94273): WARNING **: 11:02:03.063: Entity http://cs2c.com.cn/neokylin/6.9 should be in file os/cs2c.com.cn/neokylin-6.9.xml not os/cs2c.com.cn/neokylin-6.xml

** (process:94273): WARNING **: 11:02:03.065: Entity http://cs2c.com.cn/neokylin/7.0 should be in file os/cs2c.com.cn/neokylin-7.0.xml not os/cs2c.com.cn/neokylin-7.xml
WARNING  CDROM 介质默认情况下不输出信息到文本控制台,所以您可能看不到安装的输出。您可能需要使用 --location 选项。 请参考 man 手册以了解使用 --location 选项与 CDROM 介质的示例

开始安装......
连接到域 vm_kylinv10
换码符为 ^]

注:这里创建虚拟机网络是桥接模式,跟宿主机一个网段

这里如果报权限不够的话,把/home/kvm/目录所属用户递归修改所需账户即可:

ERROR    Cannot access storage file '/home/kvm/images/1.img' (as uid:107, gid:107): 权限不够
域安装失败,您可以运行下列命令重启您的域:
'virsh start virsh --connect qemu:///system start vm_kylinv10'
否则请重新开始安装。

[root@localhost ~]# chown -R qemu:qemu /home/kvm
[root@localhost ~]# 

5、开始安装系统

选择第一个安装即可。

将带[!]的选项都操作下,按多对应的数字即可,然后输入 c 继续,最后输入b开始安装系统,大约等待半小时左右,系统安装完毕:

此时,敲下enter完成安装,虚拟机系统重启,启动完成后,登录系统就能使用了:

\

​​

 三、桥接模式网络配置

1、宿主机上

a、停止NetworkManager服务

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# systemctl disable NetworkManager
Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
[root@localhost ~]# 

b、修改ifcfg-xxx文件

(1)、修改宿主机原网络配置文件

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-enp125s0f0 ifcfg-enp125s0f0.bak
[root@localhost network-scripts]# vi ifcfg-enp125s0f0

将IPADDR、NETMASK、GATEWAY三项删掉,添加以下内容:

BRIDGE="br1"

(2)、配置网桥

[root@localhost network-scripts]#  vi ifcfg-br1 
BOOTPROTO=static
NAME=br1
DEVICE=br1
TYPE=Bridge
ONBOOT=yes
IPADDR=192.168.xx.xx
NETMASK=255.255.255.0
GATEWAY=192.168.xx.xxx

2、虚拟机内部网络配置

修改/etc/sysconfig/network-scripts/ifcfg-xxx,配置ip跟宿主机同一网段即可。

3、网桥设置

[root@localhost ~]# ip tuntap add dev tap0 mod tap
[root@localhost ~]# brctl addif br1 tap0
[root@localhost ~]# 
[root@localhost ~]# ifconfig tap0 0.0.0.0 promisc up
[root@localhost ~]# 
[root@localhost ~]# 

4、重启网络服务


[root@localhost ~]# service network restart
[root@localhost ~]#

到此,网络配置完成,可以ssh连上了。

现在,在宿主机上可以使用virsh命令管理虚拟机了。

四、克隆虚拟机

1、关闭虚拟机

[root@localhost ~]# virsh list 
 Id   名称                状态
----------------------------------
 11   vm_kylinv10_arm64   运行中

[root@localhost ~]# virsh shutdown vm_kylinv10_arm64 
域 vm_kylinv10_arm64 被关闭

[root@localhost ~]# 
[root@localhost ~]# virsh list 
 Id   名称   状态
-------------------

[root@localhost ~]# 

2、使用virt-clone命令克隆虚拟机

[root@localhost ~]# virt-clone -o vm_kylinv10_arm64 -n vm_kylin10_bak -f /home/kvm/images/kylin10_bak.img
正在分配 'kylin10_bak.img'                                                              0% [-                                                                       ]    0 B/s | 898 MB  --:--:-- 正在分配 'kylin10_bak.img'                                                              0% [-                                                                       ]    0 B/s | 898 MB  --:--:-- 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ] 205 MB/s | 1.9 GB  00:09:50 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ] 164 MB/s | 1.9 GB  00:12:18 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ] 131 MB/s | 1.9 GB  00:15:22 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ] 105 MB/s | 1.9 GB  00:19:13 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ]  84 MB/s | 1.9 GB  00:24:02 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ]  67 MB/s | 1.9 GB  00:30:03 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ]  54 MB/s | 1.9 GB  00:37:35 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ]  43 MB/s | 1.9 GB  00:46:59 正在分配 'kylin10_bak.img'                                                              1% [=                                                                       ]  34 MB/s | 1.9 GB  00:58:45 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ] 437 MB/s | 3.9 GB  00:04:32 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ] 350 MB/s | 3.9 GB  00:05:40 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ] 280 MB/s | 3.9 GB  00:07:05 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ] 224 MB/s | 3.9 GB  00:08:51 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ] 179 MB/s | 3.9 GB  00:11:04 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ] 143 MB/s | 3.9 GB  00:13:51 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ] 114 MB/s | 3.9 GB  00:17:19 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  91 MB/s | 3.9 GB  00:21:39 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  73 MB/s | 3.9 GB  00:27:05 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  59 MB/s | 3.9 GB  00:33:51 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  47 MB/s | 3.9 GB  00:42:20 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  37 MB/s | 3.9 GB  00:52:56 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  30 MB/s | 3.9 GB  01:06:11 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  24 MB/s | 3.9 GB  01:22:46 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  19 MB/s | 3.9 GB  01:43:29 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  15 MB/s | 3.9 GB  02:09:23 正在分配 'kylin10_bak.img'                                                              3% [==                                                                      ]  12 MB/s | 3.9 GB  02:41:47 正在分配 'kylin10_bak.img'                                                                                                                                                     | 120 GB  00:00:29     
正在分配 'vm_kylin10_bak_VARS.fd'                                                                                                                                              |  64 MB  00:00:00     

成功克隆 'vm_kylin10_bak'。
[root@localhost ~]# 

3、查看当前有哪些虚拟机

[root@localhost ~]# virsh list 
 Id   名称   状态
-------------------

[root@localhost ~]# virsh list --all
 Id   名称                状态
--------------------------------
 -    vm_kylin10_bak      关闭
 -    vm_kylinv10_arm64   关闭

[root@localhost ~]# 
[root@localhost ~]# 

4、修改克隆的虚拟机的主机名、ip相关

[root@localhost ~]# virsh start vm_kylin10_bak
域 vm_kylin10_bak 已开始

[root@localhost ~]# ssh root@192.168.xx.xx

Authorized users only. All activities may be monitored and reported.
root@192.168.52.150's password: 

Authorized users only. All activities may be monitored and reported.
Web console: https://localhost:9090/ or https://192.168.xx.xx:9090/

Last login: Wed Apr  7 15:23:15 2021 from 192.168.xx.xx
[root@localhost ~]# hostnamectl --static set-hostname kylinv10
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# hostname
kylinv10
[root@localhost ~]# /etc/sysconfig/network-scripts/ifcfg-enp1s0 

修改完成后,重启机器即可。

五、修改kvm虚拟机内存、CPU等参数(内存扩充,修改cpu个数)

1、修改虚拟机内存

使用virsh setmem命令

[root@localhost ~]# virsh setmem --help
  命令名称
    setmem - 改变内存的分配

  概览
    setmem <domain> <size> [--config] [--live] [--current]

  说明
    改变当前在 guest 域中的内存分配。

  选项
    [--domain] <字符串>  domain name, id or uuid
    [--size] <数字>  新内存大小,以整数计(默认为 KiB)
    --config         影响下一次引导
    --live           影响运行的域
    --current        影响当前域

​

如果修改时,有如下报错,则:

[root@localhost /]# virsh setmem vm_test 12G --config
错误:无效参数:无法将内存设置为高于最大内存

[root@localhost /]# 

此时,要先修改虚拟机的内存的最大值

[root@localhost /]# 
[root@localhost /]# virsh  setmaxmem vm_test 16G
[root@localhost /]# 
[root@localhost /]# 
[root@localhost /]# virsh setmem vm_test 12G --config
[root@localhost /]# 
[root@localhost /]# 

2、修改CPU个数

使用virsh setvcpus命令

[root@localhost ~]# virsh setvcpus --help
  命令名称
    setvcpus - 改变虚拟 CPU 的号

  概览
    setvcpus <domain> <count> [--maximum] [--config] [--live] [--current] [--guest] [--hotpluggable]

  说明
    在客户域中修改虚拟 CPU 号。

  选项
    [--domain] <字符串>  domain name, id or uuid
    [--count] <数字>  虚拟 CPU 号
    --maximum        设定下一次引导的上限
    --config         影响下一次引导
    --live           影响运行的域
    --current        影响当前域
    --guest          在虚拟机中修改 cpu 状态
    --hotpluggable   make added vcpus hot(un)pluggable

六、彻底删除虚拟机

1、关闭虚拟机

virsh destroy vm_xxx

2、删除虚拟机

virsh undefine vm_xxx

3、删除该虚拟机用到的img

rm -rf /home/kvm/images/xxx.img

4、删除该虚拟机对应的xml文件

rm -rf /etc/libvirt/qemu/xxx.xml

5、重启服务

systemctl restart libvirtd.service

6、再查看虚拟机还在不在列表

virsh list --all

欢迎关注我的微信公众号【大胖聊编程】,我的公众号中有更多文章分享,也可以在公众号中联系到我,加好友一起交流学习。

​参考链接:support.huaweicloud.com/instg-kunpe…