【虚拟化应用系列教程】虚拟化的类型和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>
 
                     
                
             
                
评论