虚拟化技术(KVM)基础

news2024/11/17 2:31:00

 如何实现虚拟化技术?

 三种类型的虚拟机管理软件Hypervisor

KVM(kernrl -bsed v  m)

 环境检查和部署

 

一、虚拟化技术概述

虚拟化技术就是对资源的抽象

1.1、从资源提供角度分类

平台虚拟化即硬件平台虚拟化,可以把物理机的CPU和MEM提供给来宾主机做资源。

操作系统虚拟化就是把物理机的操作系统和接口功能提供给虚拟机使用。(容器)

1.2、虚拟化实现的方式基于hypervisor分类主要有三类架构

a、虚拟机直接运行在物理硬件之上,不需要底层操作系统,hypervisor充当了操作系统,需要修改客户机操作系统(直接在硬件上安装hypervisor,没有操作系统,相当于安装硬件驱动而已)  半虚拟化

b、虚拟机运行在传统操作系统之上,硬件全仿真,称为“宿主型”,hypervisor提供硬件模拟,虚拟机操作系统与主机操作系统无关化。应用程序向虚拟机内核发起请求;虚拟机内核向hypervisor发起请求;hypervisor向主机操作系统内核发起请求  硬件辅助全虚拟化

c、虚拟机运行在传统主机操作系统之上,运行一个实例,把系统调用指向传统主机操作系统。

操作系统虚拟化

虚拟化的目的:能够在一台物理机中隔离出更多独立的空间运行应用程序

hypervisor管理工具:

 1.3、qemu

软件模拟虚拟化、可以模拟多种硬件,包括X86架构处理器、AMD64架构处理器、ARM、SPARC与PowerP.C架构等。效率低,一般用于研究测试场景。

1.4、kvm

 1.5、QEMU-KVM

KVM内核模块只负责CPU和内存的虚拟化,加载了它以后,用户就可以进一步通过工具创建虚拟机(KVM提供接口),但仅有KVM还是不够的,用户无法直接控制内核去做事情(KVM只提供接口,怎么创建虚拟机,分配VCPU等并不在它上面进行),还必须有个运行在用户空间的工具才行,KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,并对其进行了修改,最后形成了QEMU-KVM

在QEMU-KVM中,KVM运行在内核空间,QEMU运行在用户空间,实际模拟创建,管理各种虚拟硬件,QEMU将KVM整合了进来,通过/ioctl调用/dev/kvm,从而将CPU指令的部分交给内核模块来做,KVM实现了CPU和内存的虚拟化,但kvm不能虚拟其他硬件设备,因此qemu还有模拟IO设备(磁盘,网卡,显卡等)的作用,KVM加上QEMU后就是完整意义上的服务器虚拟化。当然,由于qemu模拟io设备效率不高的原因,现在常常采用半虚拟化的virtio方式来虚拟IO设备。

1.6、libvirt

libvirt是一套免费、开源的支持Linux下主流虚拟化管理程序的C函数库,其旨在为包括KVM在内的各种虚拟化管理程序提供一套方便、可靠的编程接口。

当前主流Linux平台上默认的虚拟化管理工具virt-manager,virsh等都是基于libvirt开发。

相当于接口(sdk)

 一个针对各种虚拟化平台的虚拟机管理的APl库,一些常用的虚拟机管理工具virsh(类似vim编辑器),virt-install , virt-manager等和云计算框架平台(如OpenStack ,OpenNebula , Eucalyptus等)都在底层使用libvirt提供的应用程序接口。libvirt主要由三个部分组成︰API库,一个守护进程libvirtd和一个默认命令行管理工具virsh。

为用户管理虚拟机提供了访问hypervisor接口

libvirt包含三部分︰库,libvirtd(守护进程),virsh

virt-manager,libvirt,qemu-kvm三者之间的关系

virt-manageri通i过libvirt管理qemu-kvm虚拟机

二、kvm虚拟机管理工具部署

2.1、环境准备

第一步:使用lscpu命令查看系统架构是否支持虚拟化VT-x(intel虚拟机技术)

第二步:egrep 'svm|vmx' /proc/cpuinfo命令查看vmx(硬件辅助虚拟化)

必须输出红色的vmx才OK

[vm1@www ~]$ egrep --color -i "svm|vmx" /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat spec_ctrl intel_stibp flush_l1d arch_capabilities
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat spec_ctrl intel_stibp flush_l1d arch_capabilities

第三步:lsmod查看kvm模块

2.2、虚拟化主机部署

第一步查看是否安装了虚拟化环境分组组件

yum grouplist命令输出

There is no installed groups file.  这里没有安装组件
Maybe run: yum groups mark convert (see man yum)
Determining fastest mirrors
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host    虚拟主机在可安装的环境组件中所以需要安装
   Server with GUI

[root@localhost ~]# yum grouplist
[root@localhost ~]# yum -y groupinstall "虚拟化*"

第二步安装虚拟化环境分组

中文的系统就可以使用虚拟化,否则使用英文

yum -y groupinstall "Virtualization Host"

第三步:检查libvirt是否启动,kvm模块是否加载

systemctl status libvitrd

如果lsmod 查看kvm没有加载可以使用modprobe加载kvm模块

 第四步:开启防火墙的活跃域,添加masquerade

 如果使用iptables

 如果不设置防火墙,虚拟机无法上网

设置完成之后检查网络

ip 是由虚拟交换机分配的  ip a s  是ip adress show的缩写

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

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

相关文章

使用Electron来给若依系统打包成exe程序,出现登录成功但是不跳转页面(已解决)

阿丹: 之前解决了css找不到文件等问题,那么新问题就来了! 问题描述: 进入到登录页面发现问题: 点击登录一直在转圈,但是不进去!!! 更诡异的是!后台相应的很…

vue启动失败;‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

问题1: 启动vue项目失败: vue启动失败;‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 获或者问题2:npm i 失败: C:\Users\28602\AppData\Roaming\npm-cache_logs\2023-07-07…

一篇看懂web端音频

三方音频录制的库 recorder-core库: github地址:https://github.com/xiangyuecn/Recorder 支持录音格式:mp3 wav ogg webm amr pcm 该库基于Web Audio API(html5)的录音库,支持在大部分已实现getUserMedi…

安装yum源

三个源,httpd的: 首先:安装yum源 关闭防火墙和安全机制 然后访问本机ip 显示出来,删除掉,然后创建本地yum源 挂载,但是test没有 创建test,然后挂载 必须要进入到这个目录下创建挂载才行&…

(vue)el-table表格删除操作加气泡确认框

(vue)el-table表格删除操作加气泡确认框 效果&#xff1a; 代码&#xff1a; <el-table-column fixed"right" label"操作" width"120"><template slot-scope"scope"><el-popconfirm title"确定移除吗&#xff…

Keepalived及其工作原理

目录 一、keepalived概述 1.1.1 管理LVS负载均衡软件 1.1.2 支持故障自动切换&#xff08;failover&#xff09; 1.1.3 实现LVS集中节点的健康检查&#xff08;health checking&#xff09; 1.1.4 实现LVS负载调度器 节点服务器的高可用性&#xff08;HA&#xff09; 二、…

Stable Diffusion 使用lora-scripts WebUI训练LoRA模型

如果对代码使用有困难的小伙伴可以直接使用WebUI版的LoRA模块进行训练操作。不管是训练人物&#xff0c;场景&#xff0c;风格&#xff0c;还是服装都是一套通用的模式&#xff0c;仅仅是使用不同的数据集得到的结果不同。 文章目录 lora-scripts WebUI的安装LoRA训练过程SD切分…

【贪心】CF1845 C

Problem - C - Codeforces 题意&#xff1a; Code&#xff1a; #include <bits/stdc.h>//#define int long longusing namespace std;const int mxn3e510; const int mxe1e510; const int mod1e97; const int Inf0x3f3f3f3f;string s,l,r;int M;void solve(){s.clear…

前端部署--入门Vercel

Vercel Vercel 你可以理解为一个部署工具&#xff0c;支持部署静态网页和Node服务&#xff0c;部署后你还可以访问它自带生成的域名https。 模版支持 Nuxt.js: Vue的SSR框架 Hexo: 快速生成博客网站 Remix&#xff1a; 一款边缘原生的全栈 JavaScript 框架 … Vercel的核心…

免押租赁软件开发|租赁小程序适合各种产品开发

租赁小程序适合各种产品开发&#xff0c;特别是那些可以通过租赁方式提供给用户使用的产品。以下是一些适合开发租赁小程序的产品类型&#xff1a;   租房&#xff1a;租赁小程序可以方便房东和租客之间的房屋租赁交易。租客可以通过小程序浏览房源信息并联系房东&#xff0c…

力扣 | 数组和字符串简介

数组是数据结构中的基本模块之一。因为字符串是由字符数组形成的&#xff0c;所以二者是相似的。力扣LeetBook——数组和字符串 文章目录 &#x1f4da;数组简介&#x1f449;寻找数组的中心索引&#x1f449;搜索插入位置&#x1f449;合并区间 &#x1f4da;二维数组简介&…

adb连接安卓模拟器或真机hook参数加密详细过程(frida)

app逆向时&#xff0c;参数与函数的确定很关键&#xff0c;找到可疑的函数&#xff0c;不确定是否由该函数生成&#xff0c;该怎么解决&#xff1f;hook就应允而生了&#xff0c;首先是要求本地电脑和安卓模拟器&#xff08;网易mumu模拟器支持多系统&#xff0c;该模拟器作为主…

Docker学习笔记23

Docker Swarm架构&#xff1a; Swarm中以集群&#xff08;Cluster&#xff09;为单位进行管理&#xff0c;支持服务层面的操作。 集群是Swarm所管理的对象。 基本概念&#xff1a; 节点&#xff08;Node&#xff09;为Swarm集群中的一个Docker Engine实例。其中管理节点&#…

线程池问题处理

拒绝策略 AbortPolicy&#xff1a;默认的拒绝策略&#xff0c;直接抛出RejectedExecutionException异常。 CallerRunsPolicy&#xff1a;将任务退回给调用者执行。 场景 等线程池里的任务执行完通过future.get的方式获取线程池里的线程执行结果&#xff0c;然后合并到主流程…

自动化平台总结(httprunner+djangorestframework+python3+Mysql+Vue)【基础结构构思】

目录 一、前言 二、简介 三、整体结构 &#x1f381;更多干货 完整版文档下载方式&#xff1a; 一、前言 把一个以前自己搭建的自动化测试平台进行了一下重构升级&#xff0c;记录一下过程中的一些问题和总结。 二、简介 搭建的平台语言使用的是Python3.6&#xff0c;未来…

Oracle中没有show tables;如何用指令来显示表名,Excel关于VLOOKUP函数的使用。

一、问题&#xff1a;Oracle中没有show tables;如何用指令来显示表名。 解决方案&#xff1a; owner NAPSDEV更换为owner CNAPSIIDB。NAPSDEV是用户名&#xff0c;CNAPSIIDB是数据库名。在这里&#xff0c;我想让它显示的是我在Navicat中的CNAPSIIDB数据库下的所有表的名称。所…

Python - Django框架 - 简单运行

pycharm创建django项目 确保安装了Python 安装django pip install Django 创建django项目 django-admin startproject django_study 切换到django目录并启动 cd django_study python manage.py runserver 开发服务器将在默认的localhost:8000上运行&#xff0c;可以在浏览器中访…

vue-cute-timeline插件使用

效果 &#xff08;内容覆盖的有些丑&#xff0c;别在意哈&#xff0c;重点是时间线的展示&#xff09;element也有类似的时间线&#xff0c;但是不能使用类似这样的图片 所以就采用了vue-cute-timeline插件 使用方法&#xff08;可自行百度&#xff09; 安装&#xff1a;npm i…

服务器防止漏洞扫描解决方案

1、定期更新操作系统与应用程序 为了修复可能存在的漏洞和安全问题&#xff0c;建议定期对服务器的操作系统与应用程序进行更新。特别是对于那些常常成为黑客攻击目标的应用程序&#xff0c;比如WordPress等&#xff0c;更新是不可或缺的。通过更新&#xff0c;不仅可以增强服…

管理执行系统-亿发MES智能制造系统赋能制造企业信息化,实现工业现代化

在制造技术领域&#xff0c;质量控制信息集成建设需要健全的管理体系&#xff0c;加强全过程管理。虽然管理执行系统 (MES) 背后的理论思维已经取得了重大进展&#xff0c;但在软件应用集成和分析能力方面仍有改进的空间。本文将探讨MES系统如何赋能制造企业信息化&#xff0c;…