Linux虚拟化技术KVM

news2024/9/16 10:31:16

文章目录

  • 虚拟化基础
    • 什么是虚拟化
    • 虚拟化优势
    • 虚拟机
    • 虚拟机的主要特征
    • Hypervisor类型
      • 类型1:裸金属型
      • 类型2:宿主型
  • KVM概述
    • KVM体系结构
    • KVM模块载入后的系统运行模式
    • KVM集中管理和控制
    • 宿主机环境准备
  • 安装KVM工具包
    • libvirt包功能
    • libvirt结构图
    • 安装KVM相关包
      • CentOS安装KVM
      • Ubuntu安装KVM

虚拟化基础

现在大行其道的云服务器,云计算等都是虚拟化技术。阿里云、腾讯云…他们提供出来的云服务器都是虚拟机,这些虚拟机底层都依赖于KVM。虚拟化是云的基础。

什么是虚拟化

虚拟化(Virtualization)是一种资源分配和管理技术,是将计算机的各种硬件资源,比如CPU、内存、磁盘空间、网络适配器等,进行抽象转换后虚拟出来的设备,可以实现灵活地分割、并组合为一个或多个计算机配置环境,并还支持重新分割、重新组合,以达到最大化合理利用物理资源的目的。

参考资料:https://www.vmware.com/solutions/virtualization.html

在这里插入图片描述

虚拟化优势

虚拟化优势包括
  1.资源超分,如实际的物理内存只有128G,可以给虚拟机分配200G内存
  2.降低资金成本和运维成本
  3.最大限度减少或消除停机
  4.提高IT部门的工作效率和响应能力
  5.加快应用和资源的调配速度
  6.提高业务连续性和灾难恢复能力
  7.简化数据中心管理
  8.减少资源,比如IP和端口的冲突

在这里插入图片描述

虚拟机

虚拟计算机称为“虚拟机"(VM,Virtual Machine),它是一种严密隔离且内含操作系统和应用的软件容器。

每个虚拟机都是完全独立的。

通过将多台虚拟机放置在一台物理计算机上,可仅在一台物理服务器或"主机"上运行多个操作系统和应用,名为"hypervisor"的精简软件层可将虚拟机与主机分离开来,并根据需要为每个虚拟机动态分配计算资源。

虚拟机的主要特征

在这里插入图片描述

Hypervisor类型

Hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层,其可以允许多个操作系统和应用共享底层的内存、CPU、磁盘等物理硬件,也可叫做VMM ( virtual machine monitor),即虚拟机监视器。

Hypervisor是所有虚拟化技术的核心,非中断地支持多工作负载迁移的能力是Hypervisor的基本功能,当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。

Hypervisor允许多种操作系统在相同的物理系统中运行。

Hypervisor控制硬件并向来宾操作系统提供访问底层硬件的途径.。

Hypervisor向来宾操作系统提供虚拟化的硬件

类型1:裸金属型

直接运行在物理机的Hypervisor上,这种架构搭建的虚拟化环境称为裸机虚拟化环境(Bare-Metal Hardware)。

类型2:宿主型

即需要运行在具有虚拟化功能的操作系统上的Hypervisor,构建的是主机虚拟化环境(Hosted Virtualization)。

KVM概述

官网:https://linux-kvm.org/page/Main_Page

KVM 全称是 Kernel-based Virtual Machine(基于Linux内核的虚拟机)是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。

在这里插入图片描述
红帽KVM介绍:https://docs.redhat.com/zh_hans/documentation

RedHat创建虚拟机数量限制:https://access.redhat.com/articles/rhel-kvm-limits
在这里插入图片描述

KVM体系结构

在这里插入图片描述
KVM: 初始化CPU硬件,打开虚拟机模式,负责CPU,内存,中断控制器,时钟.由内核模块kvm_xxx.ko实现,工作于hypervisor,设备/dev/kvm,是一个字符设备,在用户空间可通过ioctI()系统调用来完成VM创建、启动,为VM分配内存、读写VCPU的寄存器、向VCPU注入中断、时钟等管理功能

QEMU进程:工作于用户空间,主要用于实现模拟IO设备,如显卡,网卡,硬盘等, qemu-kvm进程:工作于用户空间,用于实现一个虚拟机实例

Libvirt:提供统一API,守护进程libvirtd和相关工具,如:virsh,virt-manager等

KVM模块载入后的系统运行模式

在这里插入图片描述

内核模式: HostOS执行IO类操作,或其它的特殊指令的操作;称作内核模式
用户模式: GuestOS的I/O类操作
来宾模式: GuestOS非I/O类操作,称作虚拟机的用户模式更贴切

KVM集中管理和控制

KVM是运行在单机的系统,需要其它软件实现跨主机的统一的管理。常见的虚拟化管理平台如下:

https://www.linux-kvm.org/page/Management_Tools

在这里插入图片描述
oVirt
功能强大,是Redhat虚拟化管理平台RHEV的开源版本。
https://www.ovirt.org/

WebVirtMgr
http://www.webvirtmgr.net/
virt-manager的Web模式的替代品

OpenStack
最主流的开源虚拟化管理平台

Proxmox virtualization environment
简称PVE,是一个开源免费的基于Linux的企业级虚拟化方案,功能不输专业收费的VMware。是一个完整的企业虚拟化开源平台。借助内置的Web界面,您可以轻松管理VM和容器,软件定义的存储和网络,高可用性集群以及单个解决方案上的多个开箱即用工具。

宿主机环境准备

KVM需要宿主机CPU必须支持虚拟化功能,因此如果是在vmware workstation上使用虚拟机做宿主机,那么必须要在虚拟机配置界面的处理器选项中开启虚拟机化功能。

安装KVM工具包

KVM相关工具包介绍

1.qemu-kvm: 为kvm提供底层仿真支持。

2.libvirt-daemon: libvirtd守护进程,管理虚拟机。

3.libvirt-client:用户端软件,提供客户端管理命令。

4.libvirt-daemon-driver-qemu: libvirtd连接qemu的驱动。

5.libvirt: 使用最多的KVM虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机,
  libvirt是KVM通用的访问API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、virtualBox等虚拟化方案。
  
6.virt-manager:图形界面管理工具.其底层也是调用libvirt API来完成对虚拟机的操作,包括虚拟机的创建、删除、启动、停止以及一些简单的监控功能等。

7.virt-install:虚拟机命令行安装工具。

8.virsh:命令行工具是基于libvirt API创建的命令行工具,它可以作为图形化的virt-manager应用的备选工具。virsh 命令可以被用来创建虚拟化任务管理脚本,如安装、启动和停止虚拟机。

9.virt-viewer:通过VNC和SPICE协议显示虚拟机器图形控制台的最小工具。该工具在其同名软件包中: virtviewer。

10.cockpit: CentOS8专门提供的基于Web的虚拟机管理界面。

libvirt包功能

在这里插入图片描述

官网:https://www.libvirt.org/

libvirt程序包是一个与虚拟机监控程序相独立的虚拟化应用程序接口,它可以与操作系统的一系列虚拟化性能进行交互。

libvirt程序包提供:
一个稳定的通用层来安全地管理主机上的虚拟机。
一个管理本地系统和连网主机的通用接口。

在虚拟机监控程序支持的情况下,部署、创建、修改、监测、控制、迁移以及停止虚拟机操作都需要这些API。尽管libvirt 可同时访问多个主机,但API只限于单节点操作

libvirt程序包被设计为用来构建高级管理工具和应用程序,例如virt-manager与virsh命令行管理工具。libvirt主要的功能是管理单节点主机,并提供API来列举、监测和使用管理节点上的可用资源,其中包括CPU、内存、储存、网络和非一致性内存访问(NUMA)分区。管理工具可以位于独立于主机的物理机上,并通过安全协议和主机进行交流。

libvirt结构图

在这里插入图片描述

安装KVM相关包

CentOS安装KVM

使用虚拟化,需要至少qemu-kvm和qemu-img(安装qemu-kvm会自动安装)软件包
建议安装: yum install qemu-kvm libvirt virt-manager virt-install
范例: Centos 8安装KVM相关工具

[root@centos8 ~]#yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer
[root@centos8 ~]#systemctl start --now libvirtd

范例: CentOS8还提供基于Web的虚拟机管理方式

[root@centos8 ~]#yum -y insta1l cockpit cockpit-machines
[root@centos8 ~]#systemctl enable --now cockpit.socket

#打开浏览器,访问以下地址:
https://centos8主机ip:9090

Ubuntu安装KVM

官方文档:https://ubuntu.com/server/docs/libvirt

# apt insta11 qemu-kvm virt-manager libvirt-daemon-system
# kvm-ok #验证是否支持kvm,只有ubuntu支持,centos不支持
INFO: /dev/kvm exists
KVM acceleration can be used
[root@ubuntu1804 ~]#apt -y install qemu-kvm virt-manager libvirt-daemon-system
#如果没有开启CPU虚拟化功能会提示以下信息
[root@ubuntu1804~]#kvm-ok
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used

#添加CPU的虚拟化支持再执行
[root@ubuntu1804~]#kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SEO优化 prerender-spa-plugin工具使用 踩坑记录

安装prerender-spa-plugin yarn add prerender-spa-plugin 或 npm install prerender-spa-plugin初始配置 后面记录踩的坑 配置路由 const routes [{path: /,redirect: {path: /HomeView},},{path: /home,redirect: {path: /HomeView},},{ path: /HomeView,component: HomeV…

postgresql密码复杂度验证和有效期

前言 为了数据库安全以及应对等保测评等要求,我们需要设置密码复杂度。我们通过passwordcheck模块实现复杂度检测功能。 启用密码复杂度验证 找到自己安装pg库的配置文件目录,修改postgresql.conf vim postgresql.conf修改如下内容 shared_preload_…

2023版IDEA安装通义灵码屡遭挫败:重复尝试,安装依旧失败

目录 背景: 过程: 第一步: 第二步: 第三步: 安装成功: 总结: 通义灵码的优点: 背景: 小编使用的是2023版本IDEA,在安装通义灵码的时候出现了一件很让人头痛的问题,我在IEDA中的插件中心里面去下载,但是当我我安装的进度条加载完成之…

命令行创建git仓库

方法1:初始化自己的仓库 git init创建完成之后可以用ls -a查看是否存在.git文件 如果不想要git仓库,可以使用rm -rf .git删除仓库 方法2:克隆别人的仓库 git clone [http][http]是仓库网址 总体流程 可以看到文件分为四种状态&#xff0c…

windows无法打开添加打印机原因分析及解决方法

在日常办公和生活中,打印机是不可或缺的重要设备。然而,有时在添加打印机的过程中,经常会遇各种问题。今天有个小伙伴问我windows无法打开添加打印机怎么回事?今天就教大家windows无法打开添加打印机原因分析及解决方法。 添加打打…

氧传感器在码头油气回收船岸安全装置中的重要作用

随着全球对环境保护和安全生产要求的日益提升,石化码头的油气回收问题已成为行业关注的焦点。在汽油、航煤、苯、对二甲苯等油品和化学品的装船过程中,大量油气挥发不仅加剧了大气污染,还潜藏着对人体健康的严重威胁。因此,推广和…

芋道以开源之名行下作之事 恬不知耻 标榜自己开源 公开源码+sql 不用再加入知识星球

资源 链接: https://pan.baidu.com/s/1TeuxbAUfLQ5_BqMBF1kniQ?pwdcqud 提 取码: cqud 依次为后端、补充版的sql、前端 此文档内安装部署等一应俱全

天气预报的爬虫内容打印并存储用户操作

系统名称: 基于网络爬虫技术的天气数据查询系统文档作者:清馨创作时间:2024-7-29最新修改时间:2024-7-29最新版本号: 1.0 1.背景描述 该系统将基于目前比较流行的网络爬虫技术,对网站上(NowAPI…

数据结构之八大排序(上)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 排序的相关介绍 直接插入排序 希尔排序(缩小增量排序) 选择排序 …

Datawhale AI夏令营 AI+逻辑推理 Task2总结

Datawhale AI夏令营 AI逻辑推理 Task2总结 一、大语言模型解题方案介绍 1.1 大模型推理介绍 ​ 推理是建立在训练完成的基础上,将训练好的模型应用于新的、未见过的数据,模型利用先前学到的规律进行预测、分类和生成新内容,使得AI在实际应…

【Linux】3.Linux 指令大揭秘:常见八个指令的妙用(下)

欢迎来到 CILMY23 的博客 🏆本篇主题为:Linux 指令大揭秘:常见八个指令的妙用(下) 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | …

华为机试HJ76尼科彻斯定理

华为机试HJ76尼科彻斯定理 题目: 想法: 从题目可以找到规律,输出的第一个奇数为 ( 当前输入数值 − 1 ) 当前输入数值 1 (当前输入数值-1)当前输入数值1 (当前输入数值−1)当前输入数值1,输出是连续的输入数值个数个奇数&#…

资金管理平台 -SAP创建凭证测试程序及增强!

文章目录 主要程序创建程序程序 代码解析变量定义抬头和项目初始值表头赋值调用BAPI其他的子例程 核心内表增强部分LFACIF5D程序FI_DOCUMENT_CHECK完整程序 BADI增强 主要程序 创建程序 程序 &---------------------------------------------------------------------* *…

2.Redis安装

1.安装需要的依赖 因为是c语言编写的,所以需要gcc依赖。 yum install -y gcc tcl 这一步可能会遇到的问题解决方案参照博文地址: yum 报错:Could not retrieve mirrorlist http://mirrorlist.centos.org_yum install could not retrieve mi…

花几千上万学习Java,真没必要!(三十五)

1、Map: Map接口的基本且常用的操作,用于管理键值对集合。 V put(K key, V value) 作用:向映射中添加一个键值对。 参数:K key 是键的类型,V value 是与键关联的值。 返回值:如果映射以前包含该键的映射关…

upload-labs靶场(1-19关)

upload-labs靶场 简介 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试过程中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共19关&#xff0c;每一关都包含着不同上传方式。 注意&#xff1a;能运行<?php phpinfo();?&…

1._专题1_双指针_C++

双指针 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是左右指针。对撞指针&#xff1a;一般用于顺序结构中&#xff0c;也称左右指针。 对撞指针从两端向中间移动。一个指针从最左端开始&#xff0c;另一个从最右端开始&#xff0c;然后逐渐往中间逼近…

php 一个极简的类例子

https://andi.cn/page/621627.html

WATLOW Power Series SSR User’s Manual

WATLOW Power Series SSR User’s Manual

RTC实时通信技术:GPT-4o急速响应背后的技术浅谈

RTC实时通信技术&#xff1a;GPT-4o急速响应背后的技术浅谈 RTC实时通信技术概述 RTC&#xff08;Real Time Communication&#xff09;&#xff0c;即实时通信技术&#xff0c;是实时音视频通信的简称。其核心在于实现低延迟、高质量的音视频数据传输和处理&#xff0c;广泛…