KVM(Kernel-based Virtual Machine)是一种基于内核的虚拟化技术,其核心思想是将宿主机的硬件资源抽象为虚拟机,使多个虚拟机可以同时运行在一个物理服务器上。每个虚拟机都拥有独立的操作系统、应用程序和用户空间,彼此之间相互隔离,确保了系统的稳定性和安全性。

KVM虚拟化技术具有高性能、低成本、灵活性和兼容性等特点。它直接利用宿主机的硬件资源,无需额外的模拟和解释,性能可以达到宿主机的90%以上。此外,由于KVM是开源的,用户可以免费使用,并且支持多种虚拟化场景,如单机部署、分布式部署、私有云和公有云等。

KVM虚拟化技术在云计算、Web托管等领域具有广泛的应用,可以帮助企业实现资源共享、高可用性和快速部署的目标,同时提高数据安全性和隔离性。未来,KVM虚拟化技术将继续与容器化技术结合,提供更灵活的应用部署模式,并进一步提高自动化程度和安全隔离性。

虚拟机常⽤的管理⼯具

libvirt:是调⽤KVM创建虚拟机的⼯具,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、virtualBox等虚拟化⽅案。

virsh: 是⼀个常⽤的管理KVM虚拟化的命令⾏⼯具

virt-manager: virt-manager是⼀个虚拟化管理图形软件,包括虚拟机的创建、删除、启动、停⽌以及⼀些简单的监控功能等。

openstack: openstack是⼀个开源的虚拟化编排⼯具,常⽤于构建⼤规模的虚拟化环境,⽤于管理成千上万虚拟机的创建、启 动、删除等整个⽣命周期。

环境
主机名称IP地址系统硬件环境
kvm01192.168.200.133Redhat 9.21u 4核,10G内存,100G硬盘

 步骤

开机检查CPU是否支持虚拟化功能

vmx 是 Intel CPU 的虚拟化技术(VT-x)的标识符,而 svm 是 AMD CPU 的 Secure Virtual Machine(SVM)的标识符

[root@KVM01 ~]#  egrep -o 'vmx|svm' /proc/cpuinfo
svm
svm
svm
svm
svm
svm
svm
svm
[root@KVM01 ~]# 

安装软件包

[root@KVM01 ~]# yum -y install  libvirt virt-install qemu-kvm 
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

AppStream                                                  3.1 MB/s | 3.2 kB     00:00    
BaseOS                                                     2.7 MB/s | 2.7 kB     00:00    
依赖关系解决。
===========================================================================================
 软件包                                 架构   版本                        仓库       大小
===========================================================================================
安装:
省略 。 。。 。 。  

启动服务

[root@KVM01 ~]# systemctl  restart  libvirtd
[root@KVM01 ~]# systemctl  enable  libvirtd
Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.
[root@KVM01 ~]# 

使用centos7镜像创建一个虚拟机

//此处镜像上传到虚拟机

[root@KVM01 ~]# cd /opt/
[root@KVM01 opt]# ls
AppStream  CentOS-7-x86_64-DVD-2009.iso
[root@KVM01 opt]# 

上传后通过如下命令创建KVM虚拟机

[root@KVM01 ~]# virt-install  --name centos7   --memory 2048 --vcpus 2 --cdrom /opt/CentOS-7-x86_64-DVD-2009.iso   --network network=default     --disk /opt/centos7.image,format=raw,size=40 --os-variant=centos7 --graphics vnc,listen=0.0.0.0,port=5900 --noautoconsole 

开始安装......
正在分配 'centos7.image'                                            |  40 GB  00:00:00     
创建域......                                                       |         00:00:00     

域仍在运行。安装可能正在进行中。
可以重新连接到控制台以完成安装过程。
[root@KVM01 ~]# 

参数解释

  1. --name 指定创建虚拟机的名字

  2. --memory 2048 指定创建虚拟机的内存大小。这里是2048MB,即2GB。你可以根据需要调整这个值。

  3. --vcpus 2 虚拟cpu的核数

  4. --cdrom /opt/CentOS-7-x86_64-DVD-2009.iso 指定虚拟机安装时使用的ISO镜像文件的路径

  5. --network network=default 指定虚拟机使用的网络配置。default通常是一个预定义的网络,但你也可以根据需要指定其他网络配置。

  6. --disk /opt/centos7.image,format=raw,size=40 指定虚拟机使用的磁盘映像文件的路径、格式、和存储大小

  7. --os-variant=centos7 这个参数指定了虚拟机操作系统的类型和版本

  8. --graphics vnc,listen=0.0.0.0 配置虚拟机的图形界面。这里使用VNC协议来提供图形界面,并监听所有可用的网络接口(0.0.0.0)。你可以使用VNC客户端连接到这个地址和指定的端口(默认为5900)来查看和控制虚拟机的图形界面。

  9. --noautoconsole 指定不自动显示虚拟机的控制台输出。当你使用图形界面(如VNC)来查看和控制虚拟机时

基本命令

[root@KVM01 ~]# virsh list --all //查看所有的虚拟机状态

[root@kvm01 ~]# virsh destroy 虚拟机名 //关闭电源

[root@kvm01 ~]# virsh undefine 虚拟机名 //删除虚拟机 (删除完也需要删除磁盘文件,如刚刚创建的/opt下的centos.image文件,将其删除)

查看状态以及端口

[root@KVM01 ~]# virsh  list --all
 Id   名称      状态
----------------------
 2    centos7   运行

[root@KVM01 ~]# netstat -ntlp | grep 5900
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      36560/qemu-kvm 

打开VNC软件(软件百度查找)

 

 继续进行安装即可

 配置完成等待安装完成

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐