KVM 虚拟化技术(理论详解+实战)

前言

什么是虚拟化

在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。
在这里插入图片描述
由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理配置所限制。

一般所指的虚拟化资源包括计算能力和数据存储。

由于目前信息技术领域的很多企业都曾在宣传中将该企业的某种技术称为虚拟化技术,这些技术涵盖的范围可以从Java虚拟机技术到系统管理软件,这就使得准确的界定虚拟技术变得困难。因此各种相关学术论文在谈到虚拟技术时常常提到的便是如前面所提到的那个不严格的定义。

为什么要用虚拟化

  • 同一台物理机运行多个不同版本应用软件

  • 硬件依赖性较低和便于数据迁移
    在这里插入图片描述

虚拟化技术的优势

1.降低运营成本

服务器虚拟化降低了IT基础设施的运营成本,令系统管理员摆脱了繁重的物理服务器、OS、中间件及兼容性的管理工作,减少人工干预频率,使管理更加强大、便捷。

2.提高应用兼容性

服务器虚拟化提供的封装性和隔离性使大量应用独立运行于各种环境中,管理人员不需频繁根据底层环境调整应用,只需构建一个应用版本并将其发布到虚拟化后的不同类型平台上即可。

3.加速应用部署

采用服务器虚拟化技术只需输入激活配置参数、拷贝虚拟机、启动虚拟机、激活虚拟机即可完成部署,大大缩短了部署时间,免除人工干预,降低了部署成本。

4.提高服务可用性

用户可以方便地备份虚拟机,在进行虚拟机动态迁移后,可以方便的恢复备份,或者在其他物理机上运行备份,大大提高了服务的可用性。

5.提升资源利用率

通过服务器虚拟化的整合,提高了CPU、内存、存储、网络等设备的利用率,同时保证原有服务的可用性,使其安全性及性能不受影响。

6.动态调度资源

在服务器虚拟化技术中,数据中心从传统的单一服务器变成了统一的资源池,用户可以即时地调整虚拟机资源,同时数据中心管理程序和数据中心管理员可以灵活根据虚拟机内部资源使用情况灵活分配调整给虚拟机的资源。

7.降低能源消耗

通过减少运行的物理服务器数量,减少CPU以外各单元的耗电量,达到节能减排的目的。

KVM简介

在这里插入图片描述
KVM,基于内核的虚拟机(英语:Kernel-based Virtual Machine,缩写为 KVM),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上。

KVM在具备Intel VT或AMD-V功能的x86平台上运行。它也被移植到S/390,PowerPC与IA-64平台上。在Linux内核3.9版中,加入ARM架构的支持。

KVM目前由Red Hat等厂商开发,对CentOS/Fedora/RHEL等Red Hat系发行版支持极佳。

关于KVM

1、KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
2、是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
3、它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
4、KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
5、KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。
6、在主流的Linux内核,如2.6.20以上的内核均已包含了KVM核心。

关于Virtual Machine Manager

在电脑运算中,红帽公司的Virtual Machine Manager是一个虚拟机管理员,可以让用户管理多个虚拟机。基于内核的虚拟机libvirt与Virtual Machine Manager。

Virtual Machine Manager可以让用户:

  • 创建、编辑、引导或停止虚拟机。

  • 查看并控制每个虚拟机的控制台。

  • 查看每部虚拟机的性能以及使用率。

  • 查看每部正在运行中的虚拟机以及主控端的即时性能及使用率信息。

  • 不论是在本机或远程,皆可使用KVM、Xen、QEMU。

在这里插入图片描述

其他虚拟化软件

🍪 Xen

Xen是一个开放源代码虚拟机监视器,由XenProject开发。它打算在单个计算机上运行多达128个有完全功能的操作系统。

在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。

🍪 QEMU

QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由KVM(早期为kqemu加速器,现在kqemu已被KVM取代)这个开源的加速器,QEMU能模拟至接近真实电脑的速度。QEMU有两种主要运作模式:

User mode模拟模式,亦即是用户模式。

QEMU能引导那些为不同中央处理器编译的Linux程序。而Wine及Dosemu是其主要目标。

System mode模拟模式,亦即是系统模式。

QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上模拟数部不同虚拟电脑。

KVM虚拟化平台部署

一、虚拟机资源

CPU:双核双线程-CPU虚拟化开启
内存:8G
硬盘:300G
双网卡:单网卡
作系统:Centos7.6(1810)
在这里插入图片描述

二、实验环境

1、环境优化

#是否反解DNS,设置为NO可以让客户端连接服务器更快

[root@kvm ~]# vim /etc/ssh/sshd_config

#按/UseDNS 可以快速找到UseDNS 那一行

#取消DNS注释,改为NO

UseDNS no

然后:wq 保存退出
在这里插入图片描述

2、制作本地yum仓库

[root@kvm ~]# mkdir /abc

[root@kvm ~]# cd /etc/yum.repos.d/

[root@kvm yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

[root@kvm yum.repos.d]# mkdir bak
[root@kvm yum.repos.d]# mv CentOS-* bak
[root@kvm yum.repos.d]# ls
bak

[root@kvm yum.repos.d]# vim local.repo

[local]
name=kvm
baseurl=file:///abc
gpgcheck=0
enabled=1
[root@kvm yum.repos.d]# yum clean all 
[root@kvm yum.repos.d]# yum repolist

[root@kvm ~]# vim /etc/fstab
/dev/cdrom /abc iso9660 defaults 0 0
[root@kvm ~]# mount -a 

在这里插入图片描述

3、关闭防火墙、核心防护

[root@kvm yum.repos.d]# systemctl stop firewalld

[root@kvm yum.repos.d]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@kvm yum.repos.d]# setenforce 0

在这里插入图片描述
三、安装KVM

安装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

#以下是安装的内容
yum groupinstall -y "GNOME Desktop"
yum -y install qemu-kvm
yum -y install qemu-kvm-tools
yum -y install virt-install
yum -y install qemu-img
yum -y install bridge-utils
yum -y install libvirt
yum -y install virt-manager

#检测CPU是否支持虚拟化

cat /proc/cpuinfo | grep vmx

在这里插入图片描述

#查看KVM模块是否已安装

Lsmod:显示已载入的系统模块
[root@kvm ~]# lsmod | grep kvm
kvm_intel             183621  0 
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm

在这里插入图片描述
#设置开启启动界面的显示模式

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

在这里插入图片描述

三、设置KVM网络

  • NAT: 默认设置,数据包由 NAT 方式通过主机的接口进行
    传送,可以访问外网,但是无法从外部访问虚拟机网络
  • 网桥:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)

使用Bridge网桥模式进行部署

vim /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述

vim /etc/sysconfig/network-scripts/ifcfg-br0

在这里插入图片描述

然后把网卡重启一下

systemctl restart network 

四、KVM部署与管理

#创建KVM存储和镜像数据的目录、上传centos7镜像

[root@kvm network-scripts]# mkdir -p /data_kvm/iso
[root@kvm network-scripts]# mkdir -p /data/_kvm/store
[root@kvm network-scripts]# mkdir /abc
[root@kvm network-scripts]# mount.cifs //192.168.226.1/share /mnt

在这里插入图片描述
#查看镜像

ll /data_kvm/iso/

在这里插入图片描述
#使用虚拟系统管理器管理虚拟机

创建思路:
① 创建存储池(ISO、STORE)
② 添加存储卷
③ 创建虚拟机

[root@kvm kvmdata]# virt-manager

在这里插入图片描述
① 第一步:创建存储池
在这里插入图片描述
在这里插入图片描述

然后步骤1忘记截图了,就是输入一个存放目录的名字就行了 随便输一个

步骤2:
在这里插入图片描述
② 创建存储卷
在这里插入图片描述
③ 创建虚拟机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后就好了

在这里插入图片描述

  • 4
    点赞
  • 56
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:创作都市 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

每天都要进步一点

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值