一、初识KVM虚拟化平台

1.1 kvm介绍

KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核,它依托 CPU 虚拟化指令集(如Intel-VT、AMD-V)实现高性能的虚拟化支持。由于与 Linux 内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现

1.2 KVM 虚拟化架构

  • KVM模块直接整合在Linux内核中

  • 在 KVM 环境中运行的每一个虚拟化操作系统都将表现为单个独立的系统进程,即每一个虚拟机为一个进程。因此它可以很方便地与 Linux 系统中的安全模块进行整合(SELinux),可以灵活地实现资源的管理及分配。

1.3 kvm的组成

广义的 KVM 实际上包含两部分,一部分是基于 Linux 内核支持的 KVM Driver内核模块,另一部分就是经过简化和修改的 QemuKVM Driver内核模块模拟处理器内存以支持虚拟机的运行;

Qemu 主要处理 I/O 以及为用户提供一个用户空间工具来进行虚拟机的管理

两者相互结合、相辅相成,构成了一个完整的虚拟化平台。 需要注意的是,Qemu 本身并不是 KVM 的一部分,Qemu 是一套完整的虚拟化解决方案,是纯软件实现虚拟化,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟出来的,所以 Qemu 的性能比较低。

1.4 KVM 运行时的三种模式

  • 客户模式:可以简单理解成客户机在操作系统运行中的模式,客户模式又分为内核模式和用户模式。

  • 用户模式:为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O,Qemu 运行在这个模式之下。

  • 内核模式:模拟处理器以及内存,实现客户模式的切换,处理从客户模式的退出。KVM Driver内核模块运行在这个模式下。

1.5 KVM 工作原理

用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。KVM Driver 为虚拟机创建虚拟 CPU 和虚拟内存,然后执行 VMLAUNCH 指令进入客户模式,装载 Guest OS 并运行。Guest OS 运行过程中如果发生中断或者影子缺页等异常,将暂停 Guest OS 的运行并保存当前上下文退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要 I/O 则处理完成后重新进入客户模式。如果需要 I/O 则进入到用户模式,由 Qemu 来处理 I/O,处理完成后进入内核模式,再进入客户模式。

二、部署KVM

资源配置

  • 分配8G8核

2.1 查看是否支持虚拟化

 # Intel处理器使用以下命令:[root@ymy ~]# cat /proc/cpuinfo |grep vmx​# amd处理器使用以下命令:[root@ymy ~]# cat /proc/cpuinfo | grep svm

2.2 安装需要的软件

 [root@ymy ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager

2.3 准备系统镜像

 #使用xftp 上传:CentOS-7-x86_64-Minimal-2009.iso# 校验md5,查看镜像是否有问题[root@ymy ~]# md5sum CentOS-7-x86_64-Minimal-2009.iso a4711c4fa6a1fb32bd555fae8d885b12  CentOS-7-x86_64-Minimal-2009.iso

2.4 启动libvirtd服务

 [root@ymy ~]# systemctl enable libvirtd[root@ymy ~]# systemctl start libvirtd

2.5 配置网卡

 [root@ymy ~]# cd /etc/sysconfig/network-scripts/[root@ymy network-scripts]# cp ifcfg-ens33 ifcfg-br0 ​# 设定kvm的运行网络为 桥接模式[root@ymy network-scripts]# vim ifcfg-ens33   末尾添加以下一行:BRIDGE=br0       ## 设定网络为 “桥接模式”​# 配置kvm运行的网卡 br0[root@ymy network-scripts]# vim ifcfg-br0 TYPE=Bridge    ##类型为 桥接NAME=br0DEVICE=br0IPADDR=172.16.10.100NETMASK=255.255.255.0GATEWAY=172.16.10.2DNS1=172.16.10.2UUID=famjoaflajoagm75979afarw  ## 删掉uuid​# 重启网络[root@ymy network-scripts]# systemctl restart network# 查看ip[root@ymy network-scripts]# ifconfig  br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.16.10.100  netmask 255.255.255.0  broadcast 172.16.10.255inet6 fe80::eb1c:871f:7527:baea  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:a6:58:cf  txqueuelen 1000  (Ethernet)RX packets 2  bytes 122 (122.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 24  bytes 3246 (3.1 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0​ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500ether 00:0c:29:a6:58:cf  txqueuelen 1000  (Ethernet)RX packets 1515820  bytes 2148017248 (2.0 GiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 84781  bytes 11653188 (11.1 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.6 打开虚拟系统管理工具(桌面版)

 [root@ymy ~]# virt-manager 

2.7 创建虚拟机存储目录

 [root@ymy ~]# mkdir -p /data/store[root@ymy ~]# mkdir -p /data/iso

2.8 创建存储池

  • 创建一个系统文件存储池 ,名为 test ,指定其目标路径为 /data/store

  • 创建一个镜像存储池,名为 test_iso ,指定其目标路径为 /data/iso

  • 若报以下错的话需要升级系统

     [root@ymy ~]# yum -y update  ##升级系统[root@ymy ~]# reboot    ## 升级完重启一下

2.9 创建存储卷

2.10 新建虚拟机

  • 提前将系统镜像移动到 /data/iso 目录下

[root@ymy ~]# mv CentOS-7-x86_64-Minimal-2009.iso /data/iso/

三、KVM管理虚拟机的使用:

3.1 virsh 的使用帮助

# virsh 帮助命令
[root@ymy ~]# virsh -h 帮助

3.2 查看虚拟机列表

# 查看虚拟机列表(仅显示运行中的)
[root@ymy ~]# virsh listId    名称                         状态
----------------------------------------------------2     test01                         running# 查看虚拟机列表(显示全部)
[root@ymy ~]# virsh list --allId    名称                         状态
----------------------------------------------------2     test01                         running

3.3 查看虚拟机主要的文件

  • 虚拟机主要的两个文件:虚拟机配置文件、映像文件

  • 分别位于:/etc/libvirt/qemu/ ##虚拟机配置文件存放路径

/data/store/ ##虚拟机映像文件存放路径

[root@ymy ~]# cd /etc/libvirt/qemu/  ##虚拟机配置文件
[root@ymy qemu]# ls
autostart  networks  test01.xml   ## 虚拟机配置 .xml 文件 [root@ymy qemu]# cd /data/store/  ##虚拟机映像文件存放路径
[root@ymy store]# ls
centos7.0.qcow2   ##虚拟机映像文件##查找虚拟机映像文件位置
[root@ymy store]# virsh domblklist  test01[虚拟机名称]  ##查找虚拟机映像文件位置
目标     源
------------------------------------------------
vda        /data/store/centos7.0.qcow2
hda        -

3.4 虚拟机开关机、强制断电关机、挂机及重新启动

# 关机
[root@ymy store]# virsh shutdown test01[虚拟机名称]   ## 关机
域 test01 被关闭
[root@ymy store]# virsh list  --allId    名称                         状态
-----------------------------------------------------     test01                         关闭# 开机
[root@ymy store]# virsh start test01[虚拟机名称]   ## 开机
域 test01 已开始## 强制关机即断电(容易造成数据丢失)
[root@ymy store]# virsh destroy test01[虚拟机名称]
域 test01 被删除
[root@ymy store]# virsh list  --allId    名称                         状态
-----------------------------------------------------     test01                         关闭# 挂机
[root@ymy store]# virsh suspend test01[虚拟机名称]
域 test01 被挂起
[root@ymy store]# virsh list  --allId    名称                         状态
----------------------------------------------------4     test01                         暂停
# 重新启动
[root@ymy store]# virsh resume test01[虚拟机名字]
域 test01 被重新恢复

3.5 虚拟机开机状态下,误删虚拟机配置文件进行恢复

#导出虚拟机配置文件
[root@ymy store]# virsh dumpxml test01[虚拟机名字]  > /root/test01.xml
# 复制到虚拟机配置文件路径下
[root@ymy store]# cp  /root/test01.xml  /etc/libvirt/qemu

3.6 设置宿主机开机虚拟机自启动

[root@ymy ~]# virsh autostart test01[虚拟机名字]  ## 宿主机开机自启动

3.7 恢复被取消的虚拟机

# 取消虚拟机
[root@ymy ~]# virsh undefine test01
域 test01 已经被取消定义
# 将保存的映像文件复制到硬性文件目录里下
[root@ymy ~]# cp /root/test01.xml  /etc/libvirt/qemu
# 查看是否有虚拟机映像文件
[root@ymy ~]# grep "source file" /etc/libvirt/qemu/test01.xml <source file='/data/store/centos7.0.qcow2'/>
# 恢复虚拟机
[root@ymy ~]# virsh define /etc/libvirt/qemu/test01.xml
定义域 test01(从 /etc/libvirt/qemu/test01.xml)
[root@ymy ~]# virsh list --allId    名称                         状态
-----------------------------------------------------     test01                         关闭

3.8 克隆虚拟机

# 克隆的前提是被克隆机需要关闭
[root@ymy ~]# virsh shutdown test01[虚拟机名字]
域 test01 被关闭[root@ymy ~]# virt-clone -o test01 -n test02 -f /data/store/test02.qcow2
正在分配 'test02.qcow2'                  |  20 GB  00:00:03
成功克隆 'test02'。
-o指定被克隆机器
-n指定克隆后的虚拟机名称
-f指定克隆后虚拟机的映像文件
[root@ymy ~]# virsh list --allId    名称                         状态
-----------------------------------------------------     test01                         关闭-     test02                         关闭

3.9 快照查看、创建、恢复及删除

# 查看快照
[root@ymy ~]# virsh snapshot-list test01[虚拟机名字]     ## 查看快照名称               生成时间              状态
------------------------------------------------------------# 创建快照
[root@ymy ~]# virsh snapshot-create test01[虚拟机名字]     ## 创建快照
已生成域快照 1629861589
[root@ymy ~]# virsh snapshot-list test01名称               生成时间              状态
------------------------------------------------------------1629861589           2021-08-25 11:19:49 +0800 shutoff# 恢复快照
[root@ymy ~]# virsh snapshot-revert test01 1629861589   ## 切换到1629861589 快照# 删除快照
[root@ymy ~]# virsh snapshot-delete  test01 1629861589  ## 删除1629861589 快照
已删除域快照 1629861589

初识KVM虚拟化平台及KVM部署使用相关推荐

  1. linux搭建虚拟化平台报告,部署KVM虚拟化平台------搭建(示例代码)

    一 .部署KVM虚拟化平台 hyper-v是windows中的虚拟化 1.KVM模块直接整合在Linux内核中,kvm是内核模块,虚拟机与kvm模块之间为管理工具 2.KVM组成 1.KVM Driv ...

  2. linux搭建虚拟化平台报告,Centos部署KVM虚拟化平台(可跟做)

    Centos部署KVM虚拟化平台(可跟做) 发布时间:2020-08-19 05:47:46 来源:51CTO 阅读:4210 作者:俊伟祺i 一.KVM概述 KVM是Kernel Virtual M ...

  3. 部署KVM 虚拟化平台

    文章目录 前言 虚拟化产生背景 虚拟化技术发展 一.虚拟化技术 1.1 概述 1.2 kvm虚拟化类型 1.3 kvm特性 1.4 KVM模式 1.5 KVM虚拟化架构/三种模式 1.6 KVM原理 ...

  4. Docker容器与虚拟化技术——部署KVM虚拟化平台

    部署KVM虚拟化平台 一.搭建KVM虚拟化平台 1.前置知识点 (1)什么是虚拟化         把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机 ...

  5. 部署KVM虚拟化平台

    文章目录 一.云计算概述 二.虚拟化产生背景 2.1虚拟化背景 2.2虚拟化技术 2.3虚拟化技术实现的方式 2.4虚拟化类型 2.5虚拟化的优点和缺点 2.5.1优点 2.5.2缺点 三.KVM简介 ...

  6. KVM 虚拟化平台部署

    文章目录 KVM KVM 概述 KVM运行时的三种模式 KVM工作原理 KVM虚拟化平台实操 拓扑图 一:虚拟机资源 二:虚拟机开启虚拟化 三:环境优化 四:安装KVM 五:设置 KVM 网络 六:K ...

  7. KVM虚拟化平台部署 (图文详解)!!

    文章目录 实验准备 KVM 虚拟化平台部署步骤 一.虚拟机资源 二.实验环境 三.安装KVM (1).安装KVM基本组件 (2).设置开启启动界面的显示模式 四.设置KVM网络 五.KVM部署与管理 ...

  8. 字符模式下构建、使用KVM虚拟化平台

    字符模式下构建.使用KVM虚拟化平台 环境准备: KVM虚拟化服务器(真机或高配虚拟机(内存>4G) 操作系统:CentOS 6.5   ==> 关闭 iptables 防火墙.关闭SEL ...

  9. KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍

    一.使用virt-manager创建和管理虚拟机 1.使用VNC Viewer连接进入虚拟化平台主机 2.打开终端输入virt-manager命令启动virt-manager虚拟机管理界面 #virt ...

最新文章

  1. mysql 1449 : The user specified as a definer ('root'@'%') does not exist
  2. 大学阶段总结——大一
  3. Adb connection Error:远程主机强迫关闭了一个现有的连接
  4. poj 2352 线段树
  5. Keras版Faster-RCNN代码学习(IOU,RPN)1
  6. 《移动App测试的22条军规》—第1章1.2节移动App的生命周期
  7. React开发(174):ant design按钮确认删除
  8. 右手残疾学计算机学什么专业好,我是右手和右脚残疾 左手和左脚好的 可以学残疾人驾照吗...
  9. 使用docker方式安装etcd集群,带TLS证书
  10. groupadd 添加用户组
  11. android按键精灵 释放内存,类人猿按键精灵安卓内存基础教程
  12. jsp分页的常用写法
  13. 音频文件格式解析与编解码
  14. 给机器人罗宾写一封英语回信_人教版pep小学英语三年级起点六上单词和习惯用语朗读mp3+文本Unit1...
  15. sk_buff 剖析
  16. CentOS7安装Pure-ftpd
  17. 苹果safari浏览器的正确使用方法
  18. 1109: 方块消除 blocks
  19. 北京大学可视化发展前沿研究生暑期学校第一讲
  20. 像差分析(更新。。。)

热门文章

  1. Java内存模型及三大特性
  2. 编程是什么 学习编程的好处
  3. Linux提权辅助工具
  4. 用友NCV6.1 NC数据库持久化学习
  5. 花多多拼团系统开发(功能规则)
  6. UVA 662 - Fast Food
  7. 机会管理—销售漏斗管理四大原则
  8. vivado IP封装错误提示之[IP_Flow 19-3155] Bus Interface ‘m_axis_video_aclk‘: ASSOCIATED_RESET port ‘
  9. Techsmith Camtasia Studio2023专业电脑屏幕录制工具
  10. 线束测试仪是什么东西,分布式线缆测试仪系统介绍