【虚拟化应用系列教程】虚拟化的类型和KVM虚拟化应用安装

下一期教程:KVM虚拟机管理

一、关于虚拟化

1.不同的虚拟化架构

基于平台的虚拟化

kvm01

基于操作系统的虚拟化

kvm02

2.Hypervisor的部署方式

寄居虚拟化
vmware workstationvirtual boxkvmHyper-V
原生虚拟化
ESXIXenProxmox VE(PVE)

3.虚拟化技术实现原理

  • 软件虚拟化qemu
  • 半虚拟化para-virtualization
    • 由思杰critix公司推出
    • redhat公司提供virtIO驱动实现半虚拟化
  • 硬件辅助虚拟化
    • Intel
      • VT-x
      • vmx
    • AMD
      • amd-v
      • svm

二、KVM虚拟化

KVM全称Kernel-based Virtual Machine是一个基于内核的虚拟机

借助QEMU I/O实现虚拟硬件的模拟管理

kvm03

KVM的管理工具

依赖于libvirtd服务,管理命令有virt-managervirsh

三、KVM安装

1.准备阶段

1.准备一台高配置的虚拟机,或者实体机,并且预装好Centos7的系统
2.确保您的CPU支持虚拟化功能,并且在BIOS中开启虚拟化的支持

Windows系统确认是否开启虚拟化支持

kvm04

防止和VMware虚拟机冲突,确保您Windows的虚拟化平台的支持是关闭的状态

开始菜单>搜索>Windows功能

kvm05

kvm06

虚拟机配置

安装系统过程省略

kvm07

2.确保虚拟硬件的CPU支持虚拟化功能

[root@lvm ~]# lscpu | grep -E -i "vt-x|amd-v"
虚拟化:           VT-x

3.安装KVM相关软件和依赖

[root@lvm ~]# yum install -y qemu-kvm qemu-img libvirt virt-install virt-manager libvirt-python libvirt-client virt-viewer

确认KVM安装成功

[root@lvm ~]# lsmod | grep -i kvm
kvm_intel             188740  0 
kvm                   637289  1 kvm_intel	#AMD的CPU没有这个是正常的
irqbypass              13503  1 kvm

4.确认libvirtd服务正常运行

[root@lvm ~]# systemctl status libvirtd

● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2023-05-30 13:19:05 CST; 1min 38s ago
     Docs: man:libvirtd(8)
           https://libvirt.org
 Main PID: 5318 (libvirtd)
    Tasks: 19 (limit: 32768)
   CGroup: /system.slice/libvirtd.service
           ├─1660 /usr/sbin/dnsmasq --conf-file=/var/l...
           ├─1661 /usr/sbin/dnsmasq --conf-file=/var/l...
           └─5318 /usr/sbin/libvirtd

5月 30 13:19:05 lvm.linux.com systemd[1]: Starting Vi...
5月 30 13:19:05 lvm.linux.com systemd[1]: Started Vir...
5月 30 13:19:05 lvm.linux.com dnsmasq[1660]: read /et...
5月 30 13:19:05 lvm.linux.com dnsmasq[1660]: read /va...
5月 30 13:19:05 lvm.linux.com dnsmasq-dhcp[1660]: rea...
Hint: Some lines were ellipsized, use -l to show in full.

四、网络环境变化

安装完LVM后,会自动生成一块虚拟网卡

[root@lvm ~]# ifconfig virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:47:c3:5c  txqueuelen 1000  (Ethernet)
        RX packets 166  bytes 12565 (12.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 139  bytes 14068 (13.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 作用:
    • 让物理机通过virbr0和接入到default虚拟网络中的所有虚拟机通信
    • 作为default虚拟网络中所有kvm虚拟机的网关

查看虚拟网络

KVM默认的虚拟网络叫default

[root@lvm ~]# virsh net-list
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是

查看虚拟网络详细信息

在实体机中,virbr0上的IP地址192.168.122.1除了可以和KVM虚拟机建立连接,还是他们的网关

[root@lvm ~]# virsh net-dumpxml default
<network>
  <name>default</name>
  <uuid>c11cc1df-37cc-4947-93d1-fee1b4d22052</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:47:c3:5c'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>