kvm虚拟化
虚拟化介绍
通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率
虚拟化类型
虚拟化分为全虚拟化、半虚拟化、直通
全虚拟化是使用hypervisor 将物理硬件资源全部通过软件的方式抽象化,进行调用 支持KVM\XEN
(一种运行在物理服务器和操作系统之间的中间层软件,可以允许多个操作系统和应用共享一套基础物理硬件。)
半虚拟化通过修改操作系统 支持XEN
直通 直接使用物理硬件资源
KVM虚拟化架构
KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核, 它依托 CPU 虚拟化指令集(如Intel-VT、 AMD-V) 实现高性能的虚拟化支持。 由于与 Linux 内核高度整合, 因此在性能、安全性、 兼容性、 稳定性上都有很好的表现。
下面图,描绘了 KVM 虚拟化架构,在 KVM 环境中运行的每一个虚拟化操作系统都将表现为单个独立的系统进程。 因此它可以很方便地与 Linux 系统中的安全模块进行整合(SELinux) , 可以灵活地实现资源的管理及分配。
KVM实际应用
workstation、virtualbox 模拟硬件资源/设备
KVM组成
KVM Driver
虚拟机创建
虚拟机内存分配
虚拟CPU寄存器读写
虚拟CPU运行
QEMU(经过简化与修改)
模拟PC硬件的用户控件组件提供I/O设备模型及访问外设的途径
KVM原理
广义的 KVM 实际上包含两部分, 一部分是基于 LINUX 内核支持的 KVM 内核模块, 另一部分就是经过简化和修改的 Qemu。
KVM 内核模块模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提供一个用户空间工具来进行虚拟机的管理。 两者相互结合, 相辅相成, 构成了一个完整的虚拟化平台。
请注意: Qemu 本身并不是 KVM 的一部分, Qemu 是一套完整的虚拟化解决方案, 是纯软件实现虚拟化, 包括处理器虚拟化、 内存虚拟化以及各种虚拟设备的模拟, 但因为是纯软件模拟出来的, 所以 Qemu 的性能比较低
KVM 运行时的三种模式
客户模式:可以简单理解成客户机在操作系统运行中的模式, 客户模式又分为内核模式和用户模式。
用户模式:为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O, Qemu 运行在这个模式之下。
内核模式:模拟 CPU 以及内存, 实现客户模式的切换, 处理从客户模式的退出。 KVM 内核模块运行在这个模式下
KVM工作原理
用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVMDriver 为虚拟机创建虚拟 CPU 和虚拟内存, 然后执行 VMLAU·NCH 指令进入客户模式, 装载 Guest OS 并运行。 Guest OS 运行过程中如果发生中断或者影子缺页等异常, 将暂停 Guest OS 的运行并保存当前上下文退出到内核模式来处理这些异常。 内核模式处理这些异常时如果不需要 I/O则处理完成后重新进入客户模式。 如果需要 I/O 则进入到用户模式, 由 Qemu 来处理 I/O,处理完成后进入内核模式, 再进入客户模式
KVM虚拟化平台部署
新建一台虚拟机
勾选红框中虚拟化引擎,开启虚拟化

实验环境部署
修改名称
[root@kvm ~]# hostnamectl set-hostname kvm
将镜像光盘设为自动/永久挂载
[root@kvm ~]# vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
[root@kvm ~]# mount -a
[root@kvm ~]# df -hT

设置DNS反向解析
[root@kvm ~]# vim /etc/ssh/sshd_config

####设置为no可以让客户端连接服务器更快
制作本地yum仓库
[root@kvm ~]# cd /etc/yum.repos.d
[root@kvm yum.repos.d]# mkdir backup
[root@kvm yum.repos.d]# mv CentOS* backup
[root@kvm yum.repos.d]# vi local.repo
重加载yum仓库
[root@kvm yum.repos.d]# yum clean all
[root@kvm yum.repos.d]# yum repolist

关闭防火墙、核心防护
[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# setenforce 0
[root@kvm ~]# systemctl disable firewalld

安装KVM基本组件
# 安装 GNOME 桌面环境 如果装了图形界面可以不需要装
yum groupinstall -y "GNOME Desktop"
# KVM 模块
yum -y install qemu-kvm
# 安装KVM 调试工具,可不安装
yum -y install qemu-kvm-tools
# 构建虚拟机的命令行工具
yum -y install virt-install
# qemu 组件,创建磁盘、启动虚拟机等
yum -y install qemu-img
# 网络支持工具
yum -y install bridge-utils
# 虚拟机管理工具
yum -y install libvirt
# 图形界面管理虚拟机
yum -y install virt-manager
检测CPU是否支持虚拟化
[root@kvm ~]# cat /proc/cpuinfo | grep vmx

查看KVM模块是否已经安装
[root@kvm ~]# lsmod | grep kvm

设置开启启动界面的显示模式
[root@kvm ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
设置KVM网络
[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

创建、编辑桥接网卡
[root@kvm ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0

重启网络systemctl restart network

Kvm部署管理
创建KVM存储和镜像数据的目录、上传centos7镜像
[root@kvm ~]# mkdir -p /data_kvm/iso
[root@kvm ~]# mkdir -p /data_kvm/store
[root@kvm ~]# cd /data_kvm/

创建存储池
[root@kvm data_kvm]# virt-manager


选择路径,选择上传好镜像的iso目录



添加store池,并在池中添加存储卷



在store池中添加存储卷,图中为之前添加的,现在新添加


添加完毕后,创建虚拟机


选择镜像


选择store卷


勾选红框中内容

点击应用,开始安装

选择开始安装



浙公网安备 33010602011771号