【虚拟化应用系列教程】虚拟化的类型和KVM虚拟化应用安装
下一期教程:KVM虚拟机管理
一、关于虚拟化
1.不同的虚拟化架构
基于平台的虚拟化
基于操作系统的虚拟化
2.Hypervisor的部署方式
寄居虚拟化
vmware workstation
、virtual box
、kvm
、Hyper-V
原生虚拟化
ESXI
、Xen
、Proxmox 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
实现虚拟硬件的模拟管理
KVM的管理工具
依赖于
libvirtd
服务,管理命令有virt-manager
、virsh
三、KVM安装
1.准备阶段
1.准备一台高配置的虚拟机,或者实体机,并且预装好
Centos7
的系统
2.确保您的CPU
支持虚拟化功能,并且在BIOS
中开启虚拟化的支持
Windows
系统确认是否开启虚拟化支持
防止和VMware
虚拟机冲突,确保您Windows
的虚拟化平台的支持是关闭的状态
开始菜单
>搜索
>Windows功能
虚拟机配置
安装系统过程省略
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>