KVM认识及安装(一)

版权声明:文章转发需标明文章出处地址及作者 https://blog.csdn.net/weixin_44267608/article/details/88979799

什么是虚拟化?

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

虚拟化种类:

完全虚拟化
最流行的虚拟化方法使用名为 hypervisor 的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。 VMware 和微软的VirtualPC是代表该方法的两个商用产品,而基于核心的虚拟机 (KVM) 是面向 Linux 系统的开源产品hypervisor 可以捕获 CPU 指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,hypervisor 给处理器带来开销

准虚拟化:
完全虚拟化是处理器密集型技术,因为它要求 hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户端操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor 协同工作。这种方法就叫准虚拟化 (para-virtualization)

系统虚拟化:
系统虚拟化 — 就操作系统层的虚拟化而言,没有独立的hypervisor 层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统 ( 不过每个实例有各自的应用程序和用户账户 ) 。虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。

桌面虚拟化
服务器虚拟化主要针对服务器而言,而虚拟化最接近用户的还是要算的上桌面虚拟化了,桌面虚拟化主要功能是将分散的桌面环境集中保存并管理起来,包括桌面环境的集中下发,集中更新,集中管理。桌面虚
拟化使得桌面管理变得简单,不用每台终端单独进行维护,每台终端进行更新。
终端数据可以集中存储在中心机房里,安全性相对传统桌面应用要高很多。桌
面虚拟化可以使得一个人拥有多个桌面环境,也可以把一个桌面环境供多人使用。

虚拟化分类:

1型虚拟化:Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。
Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare
的 ESXi 都属于这个类型。
在这里插入图片描述

2型虚拟化:物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。
Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。
KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。
在这里插入图片描述

KVM:

Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被KVM 置于一种受限制的 CPU 模式下运行。

kvm:运行在内核空间,提供cpu和内存的虚拟化,以及客户机的I/O拦截,Guest的I/O被KVM拦截后,交给QEMU处理。

QEMU:修改过的为 KVM 虚机使用的 QEMU 代码,运行在用户空间,提供硬件 I/O 虚拟化,通过
IOCTL /dev/kvm 设备和 KVM 交互

KVM:
KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。IO 的虚拟化,
就交给 Linux 内核和qemu来实现
Libvirt:
是 KVM 的管理工具。Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理
Xen,VirtualBox 等。OpenStack 底层也使用 Libvirt。
Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具
virsh
(1)libvirtd是服务程序,接收和处理 API 请求;
(2)API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt- manager,这是个图形化的 KVM 管理工具,
(3)virsh 是我们经常要用的 KVM 命令行工具,

kvm安装:
安装kvm前准备工作

  1. 确定处理器有 VT
    命令行: grep vmx /proc/cpuinfo (INTEL 芯片 )
    grep svm /proc/cpuinfo (AMD 芯片 )
    cat /proc/cpuinfo | grep -e vmx -e nx -e svm

不知道芯片的生产厂商则输入:egrep ‘(vmx|svm)’ /proc/cpuinfo如果 flags: 里有 vmx 或者 svm 就说明支持 VT ;如果没有任何的输出,说明你的 cpu 不支持,将无法成功安装 KVM 虚拟机。

  1. 当你硬件本身支持虚拟化,但查询相应参数无果时,请检查 BIOS 设定,确认你的 BIOS 中开启硬件支持虚拟化的功能!
    将如下选项设为Enabled
    Intel® Virtualization Tech [Enabled]

下载:

yum install kvm virt-manager libvirt libvirt-python python-virtin libvirt-client qemu-kvm qemu-img

如下载失败

cd /etc/yum.repos.d/
mkdir repo
mv Centos* repo
vim kvm.repo
[cdrom]
name=cdrom
baseurl=file:///mnt
enable=1
gpgcheck=0

注:字母得拼写正确

yum clean all 清理缓存

mount /dev/cdrom/ /mnt

yum makecache 更新yum源

再次下载即可

yum install kvm virt-manager libvirt libvirt-python python-virtin libvirt-client qemu-kvm qemu-img

KVM网络模式设置
这是ens33的

cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-br0

vim ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.20
GATEWAY=192.168.1.2
NATMASK=255.255.255.255
DNS=8.8.8.8
BRIDGE=br0

这是br0的

vim ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.100
GATEWAY=192.168.1.2
NATMASK=255.255.255.255
DNS=8.8.8.8

~

systemctl restart network

配置好之后,ens33是没有ip的
在这里插入图片描述

之后查询:

ethtool br0

[root@kvm network-scripts]# ethtool br0
Settings for br0:
	Link detected: yes

brctl show
[root@kvm network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29bfd727 no ens33
virbr0 8000.5254003f8975 yes virbr0-nic

如果ping baidu.com失败,则是需要配置dns全局文件

vim /etc/resolv.conf

未完待续

猜你喜欢

转载自blog.csdn.net/weixin_44267608/article/details/88979799
今日推荐