KVM介绍和安装

文章目录

      • KVM介绍
      • KVM架构
      • KVM技术栈
      • 安装KVM
        • 1、查看CPU是否支持KVM
        • 2、通过yum安装
        • 3、启动虚拟机管理工具libvirt并设置开机启动
        • 4、创建虚拟机

KVM介绍

KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机。

KVM是基于虚拟化扩展(Intel VT 或 AMD-V)的X86硬件,是Linux完全原生的全虚拟化解决方案。部分的准虚拟化支持,主要是通过准虚拟网络驱动程序的形式用于Linux和Windows客户机系统的。

KVM架构

在KVM架构中,虚拟机实现为常规的Linux进程,由标准Linux调度程序进行调度。事实上,每个虚拟CPU显示为一个常规的Linux进程。这使KVM能够享受Linux内核的所有功能。

KVM介绍和安装_第1张图片

在上图中,左侧部分是一个标准的Linux操作系统,可以是RHEL、Fedora、Ubuntu等。KVM内核模块在运行时按需加载进入内核空间运行。KVM本身不执行任何模拟,需要用户空间程序QEMU通过/dev/kvm接口设置一个客户机虚拟服务器的地址空间。向它提供模拟的I/O,并将它的视频显示映射回宿主的显示屏。

KVM加上QEMU后就是完整意义上的服务器虚拟化

  • KVM:运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理。
  • QEMU:运行在用户空间,提供硬件 I/O (磁盘,网卡,显卡等)虚拟化,QEMU将KVM整合了进来,通过IOCTL调用 /dev/kvm,从而将CPU指令的部分交给内核模块来做。

KVM技术栈

  • libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
  • qemu-kvm:主要作用是实现进程管理
  • qemu-img:用来管理磁盘映像文件
  • Virsh:基于 libvirt 的 命令行工具 (CLI)
  • Virt-Manager:基于 libvirt 的 GUI 工具

安装KVM

1、查看CPU是否支持KVM

 grep -Eo --color=auto "(vmx|svm)" /proc/cpuinfo

可以看到grep出来的内容,就说明支持kvm.

2、通过yum安装

yum install libvirt virt-install qemu-kvm qemu-kvm-tools -y

3、启动虚拟机管理工具libvirt并设置开机启动

systemctl start libvirtd.service && systemctl enable libvirtd.service

通过ifconfig命令可以看到virbr0桥接网卡

KVM介绍和安装_第2张图片

4、创建虚拟机

4.0 关闭selinux并设置防火墙

1. vim /etc/selinux/config   ->   selinux=disabled
2. firewall-cmd --zone=public --add-port=5900/tcp --permanent

4.1 使用qemu命令创建一个10G的硬盘,硬盘的名称为:centos7

[root@localhost iso]# qemu-img create -f raw /data/centos7.raw 10G
Formatting '/data/centos7.raw', fmt=raw size=10737418240 

4.2 使用virt-install安装虚拟机

[root@localhost iso]# virt-install --virt-type kvm --name centos7 --ram 1024 --cdrom=/data/iso/CentOS-7-x86_64-Minimal-1708.iso --disk path=/data/centos7.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

参数解释:

--name    虚拟机名字
--ram     分配给虚拟机的内存,单位MB
--vcpus   分配给虚拟机的cpu个数
--cdrom   指定镜像的全路径
--disk    指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
--network 
   default   即nat,指定为nat网络地址转换
   bridge    指定桥接网卡
   model     网卡模式
--graphics图形参数

4.3 远程连接进行安装操作

这里我安装的虚拟机名字为centos7,接下来查看其vnc端口:

ps aux | grep qemu | grep centos7

KVM介绍和安装_第3张图片

最小为5900,那么这里指的就是5900这个端口。接下来通过在windows下使用vnc-viewer来连接192.168.189.133:5900,并输入设置的密码,即可进行安装。安装步骤和我们平时安装操作系统的方法一样

4.4 通过virsh管理虚拟机

#查看已安装的虚拟机
virsh list --all

#启动虚拟机
virsh start centos7

#关闭虚拟机
virsh shutdown centos7

#查看配置文件
/etc/libvirt/qemu/这个目录下保存已经安装虚拟机的信息。

#删除虚拟机
virsh undefine centos7

你可能感兴趣的:(KVM介绍和安装)