首页 > 技术文章 > linux云计算--Virtualization 虚拟化技术基础(虚拟化技术简介,主流虚拟化技术和KVM虚拟化技术)

kk5698 2020-08-10 13:23 原文

一:Virtualization 虚拟化技术基础

主要内容

1.虚拟化技术简介(基本概念、分类、原理)

2.主流虚拟化技术(Xen/KVM/VMWare/HyperV/...)

3.KVM虚拟化技术

KVM/Qemu/Libvirt/Virsh

CPU虚拟化

内存虚拟化

IO资源虚拟化

 

1.虚拟化技术简介(概念、架构 分类、原理  优缺点)

1.虚拟化概念

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。

在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

 

2.虚拟化架构

 

 

 

 

3.虚拟化好处

虚拟化使用  软件的方法重新定义划分 IT 资源,可以实现 IT 资源的动态分配、灵活度、跨域共享,提高 IT 资源利用率,

使 IT 资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

 

4.虚拟化发展历程

 

 

 

 

 

5.虚拟化原理

虚拟化的原理:

OS中加入一个虚拟化层(VMM),虚拟化层可以对下层(HostOS)硬件资源(物理CPU、内存、磁盘、网卡、显卡等)进行封装、隔离,抽象为另一种形式的逻辑资源,再提供给上层(GuestOS)使用。

所以可以理解VMM其实就是联系HostOS和GuestOS的一个中间件。

 

6.虚拟化基本概念

1.现在市场上最常见的虚拟化软件有

VMWare workstation(VMWare)VirtualBox(Oracle)、Hyper-V(Microsoft)、KVM(Redhat)、Xen等,这些软件统称VMM(Virtual Machine Monitor)使用不同的虚拟化实现。

2.通过虚拟化技术实现的虚拟机一般被称之为GuestOS(客户),而作为GuestOS载体的物理主机称之为HostOS(宿主)。

3.虚拟机Virtual Machine由VMM提供的高效、独立的计算机系统

拥有自己的虚拟硬件(CPU、内存、网络设备、存储设备)

对于上层软件虚拟机就是真实的机器

 

7.虚拟化分类

1型虚拟化

Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行

Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。

Xen 和 VMWare 的 ESXi 都属于这个类型

 

 

 

 

 

 

2型虚拟化

物理机上首先安装常规的操作系统,比如Redhat、Ubuntu 和 Windows。

Hypervisor 作为 OS 上的一个程序模块运行,并对虚拟机进行管理。

KVM、VirtualBox 和VMWare Workstation 都属于这个类型。

 

 

 

 

 

 

 

8.虚拟化分类对比  寄居和原生架构

寄居架构:寄居在主机操作系统之上,依靠主机操作系统来模拟相关的硬件设备。此类架构多为个人计算机使用。

 

优点:简单,便于实现。

缺点:安装和运行应用程序依赖于主机操作系统对设备的支持。

典型产品: VMware Workstation。

 

原生架构(也叫裸机裸金属):直接在硬件上运行虚拟化管理层,性能比较好,相对稳定。多用于服务器。

 

优点:虚拟机不依赖于操作系统,可以支持多种操作系统,多种应用,更加灵活Ø 缺点:虚拟层内核开发难度较大。

典型产品 VMware ESXi 微软Hyper-V

 

 

 

企业一般采用原生架构(裸金属架构)

 

 

 

 

 

9.虚拟化分类  完全虚拟化和半虚拟化

1.完全虚拟化Full Virtualization),它虚拟的是现实存在的平台,现有操作系统无须进行任何修改即可在其上运行,

完全虚拟化技术又分为软件辅助和硬件辅助两类。

 

 

2.半虚拟化

半虚拟化(Para-Virtualization),它虚拟的平台是VMM重新定义的,需要对客户机操作系统进行修改以适应虚拟环境。

 

3.硬件辅助虚拟化

 

 

 

 

 

 

2.安装KVM

1.准备工作  确定处理器有 VT  勾选上VT

 

 

 

 

1.命令行查看芯片cpu

grep vmx /proc/cpuinfo (INTEL 芯片 )

grep svm /proc/cpuinfo (AMD 芯片 )

 

不知道芯片的生产厂商则输入:

egrep '(vmx|svm)' /proc/cpuinfo

 

如果 flags: 里有 vmx 或者 svm 就说明支持 VT ;

如果没有任何的输出,说明你的 cpu 不支持,将无法成功安装 KVM 虚拟机。

 

 

 

 

2.如果是硬件,确保 BIOS 里开启 VTIntel(R) Virtualization Tech [Enabled]我们是在vmware workstation里,

在虚拟机的

s设置”-处理器选项-  勾选“虚拟化 Intel-VT/EPT或AMD-V/RVI”

 

 

 

 

 

 

3.内核版本需2.6.20以上,检查内核版本

uname -r

cat /proc/cpuinfo

 

 

 

 

 

2.配置yum源 os   开启 dhcp 和 nat模式

 

 

 

 

 

vim /etc/yum.repos.d/CentOS-Base.repo

 

[os]

name=os

enabled=1

gpgcheck=0

baseurl=https://mirrors.aliyun.com/centos/7.7.1908/os/x86_64/

 

 

 

 

 

 

yum clean all 清空缓存

yum makecache 建立缓存

 

 

 

 

 

 

 

3. YUM 安装 KVM( 简单版 )

yum -y install kvm virt-manager libvirt*

yum install (qemu-kvm/qemu-kvm-tools/libvirt/virt-manager/virt-install)

 

libvirt:kvm管理工具

qemu-kvm: 提供用户级 KVM 环境

qemu-img:VMs 磁盘管理

virt-manager:图形化kvm管理软件

virt-install:命令行kvm管理软件

 

4.查看模块  启动 KVM

modprobe kvmß 加载 kvm 模块

lsmod | grep kvm ß 查看加载成功

systemctl start libvirtd

systemctl status libvirtd

 

5.启动并检测 KVM  安装KVM

virsh -c qemu:///system list

 

 

 

 

 

 

打开应用程序 设置  虚拟系统管理器  open

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.实验一 创建桥接网卡br0的KVM

1.配置桥接网卡br0

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-bro

vim ifcfg-br0

 

TYPE=Bridge

PROXY_METHOD=none

BOOTPROTO=static

DEFROUTE=yes

NAME=br0

#UUID=c156d482-9c1f-4ec5-8ba7-72e7cbeadac2

DEVICE=br0

ONBOOT=yes

IPADDR=192.168.20.13

NETMASK=255.255.255.0

#GATEWAY=192.168.20.254

DNS1=8.8.8.8

 

 

 

 

 

2.配置ens33  重启网络 服务 查看br0的IP 和MAC

vim ifcfg-ens33

 

TYPE=Ethernet

NAME=ens33

DEVICE=ens33

ONBOOT=yes

BRIDGE=br0

 

 

 

 

 

 

 

重启网络

systemctl restart network

 

 

 

 

 

systemctl restart libvirtd.service 重启服务

 

 

virt-manager控制台查看cirros虚机的网卡模式,选择br0。

brctl show      查看 br

 

 

 

 

 

brctl show 告诉我们 br0 下面添加了一个 vnet0 设备,通过 virsh 确认这就是

cirros的虚拟网卡。

virsh domiflist generic 查看MAC

 

 

 

 

3.开启vm的DHCP 去配置KVM的虚拟网络接口 改为桥接设备的名称

开启网卡 DHCP的功能

 

 

 

 

 

 

 

 

 

4.重启虚拟机和KVM查看IP

systemctl start libvirtd

systemctl status libvirtd

 

 

 

 

 

 

4.实验二 配置NAT模式的KVM

1.增加虚拟网卡为NAT模式 安装KVM ,

 

 

 

 

 

 

2在KVM的虚拟网络接口中 选择NAT模式即可 验证ip

 

 

 

 

 

抓包确认

tcpdump -i ens33 -n icmp

 

查看iptables规则

iptables -t nat -nvL

 

5.实验三Centos7上kvm虚拟化自定义NAT网络

 

1.在宿主机上面配置  创建名为“management”的NAT网络

cd /usr/share/libvirt/networks/

ls

cp default.xml management.xml

vi management.xml

 

 

 

 

 

 

 

<network>

<name>management</name>

<bridge name="virbr1"/>

<forward/>

<ip address="192.168.20.10" netmask="255.255.255.0">

<dhcp>

<range start="192.168.20.2" end="192.168.20.254"/>

</dhcp>

</ip>

</network>

 

2.启用新建的NAT网络

virsh net-define management.xml define是加载配置文件给qemu

virsh net-start management启动网络

 

 

 

 

 

virsh net-autostart management设置自动启动

 

 

 

 

 

 

3.验证 brctl show 查看状态

brctl show查看网络网卡状态信息

virsh net-list --all

 

 

 

 

4.在kvm虚拟机上面配置  (删除新增的NAT网络)

更换虚拟机的网卡对应的网络为自定义NAT网络:

management  登陆虚拟机里ping www.baidu.com验证连通性, 确保新增网络配置生效。

 

cd /var/lib/libvirt/dnsmasq/

ls

 

 

 

 

virsh net-destroy management 停止该网络

 

 

 

 

virsh net-start management启动

 

 

推荐阅读