虚拟化平台kvm架构 部署kvm虚拟化平台

news2024/11/14 1:16:45

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

虚拟化平台kvm架构 部署kvm虚拟化平台

KVM虚拟化

  • 一.虚拟化背景
  • 1.了解云计算
  • 2.虚拟化产生背景
  • 3.虚拟化技术实现方式
  • 4.虚拟化的类型
  • (1)全虚拟化
  • (2)半虚拟化
  • (3)直通
  • 5.虚拟化的特性
  • (1)优势
  • (2)劣势
  • 二.KVM简介
  • 1.简介
  • 2.kvm运行时的3种模式
  • (1)客户模式
  • (2)用户模式
  • (3)内核模式
  • 3.KVM原理
  • 4.KVM工作流程
  • 三.KVM虚拟化平台部署
  • 1.虚拟机资源
  • 2.实验环境
  • (1)修改主机名
  • (2)将镜像光盘设为自动/永久挂载
  • (3)环境优化
  • (4)制作本地yum仓库
  • (5)关闭防火墙、核心防护
  • 3.安装KVM
  • (1)安装KVM基本组件
  • (2)设置开启启动界面的显示模式
  • 4.设置KVM网络
  • 5.KVM部署与管理
  • (1)创建KVM存储和镜像数据的目录、上传centos7镜像
  • (2)使用虚拟系统管理器管理虚拟机
  • ① 打开虚拟系统管理器
  • ② 创建存储池
  • ③ 添加存储卷
  • ④ 创建镜像池
  • ⑤ 创建虚拟机

一.虚拟化背景

1.了解云计算

用户可以在任何时间、地点通过网络获取所需要的计算资源、网络资源、存储资源并且按量计费、弹性伸缩、

云计算就是一个大的租赁渠道。

云平台(如阿里云、华为云)使用到的底层技术是openstack,而openstack就是利用了虚拟化技术和物理资源集成的方式将资源划分给不同的用户来使用的。

虚拟化平台kvm架构 部署kvm虚拟化平台_bc

2.虚拟化产生背景

美国环境保护EPA报告中曾经统计过一组统计数据::EPA研究服务器和数据中心得能源效率时发现,实际上服务器只有5%得时间时在工作的,其他时间一直处于休眠状态;

那么通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率

3.虚拟化技术实现方式

(1)在一个操作系统中(win10) 模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务(nginx+tomcat) ,从而实现一台宿主机搭建一个集群(从整体)

(2)通过软件/应用程序的方式,来实现物理硬件的功能
比如ensp软件的形式模拟出硬件设备(二、三层交换机、三层路由器、PC机、防火墙等等)

4.虚拟化的类型

(1)全虚拟化

将物理硬件资源全部通过软件的方式抽象化,最后进行调用
使用的方法:使用hypervisor (VMM) 软件,其原理是在底层硬件和服务器之间建立一个抽象层,而基于核心的虚拟机是面向Linux系统的开源产品hypervisor(VMM)可以捕捉CPU的指令,为指令访问硬件控制器和外设充当中介。

(2)半虚拟化

需要修改操作系统

(3)直通

直接使用物理硬件资源(需要支持,还不完善)

5.虚拟化的特性

(1)优势

集中化管理(远程管理、维护)

提高硬件利用率(物理资源利用率低-例如峰值,虚拟化解决了"空闲"容量)

动态调整机器/资源配置(虚拟化把系统的应用程序和服务硬件分离、提高了灵活性)高可靠(可部署额外的功能和方案,可提高透明负载均衡、迁移、恢复复制等应用环境)

(2)劣势

前期高额费用(初期的硬件支持,对于虚拟化支持)

降低硬件利用率(特定场景-例如极度吃资源的应用不一定适合虚拟化)

更大的错误影响面(本地物理机down机会导致虚拟机均不可用,同
时可能虚拟机中文件全部损坏)实施配置复杂、管理复杂(管理人员运维、排障困难)

一定的限制性(虚拟化技术涉及各种限制,必须与支持/兼容虚拟化的服务器、应用程序及供应商结合使用)

安全性(虚拟化技术自身的安全隐患)

二.KVM简介

1.简介

广义的KVM实际上包含两个部分,一部分是基于Linux内核支持的KVM内核模块,另一部分是经过简化和修改的Qemu

KVM内核模块模拟处理器和内存以支持虚拟机的运行,Qemu主要处理I/O以及为用户提供一个用户空间来进行虚拟机的管理。两者相互结合,相辅相成,构成了一个完整的虚拟化平台

2.kvm运行时的3种模式

(1)客户模式

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

(2)用户模式

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

(3)内核模式

模拟CPU以及内存,实现客户模式的切换,处理从客户模式的退出。

3.KVM原理

(1)Guest:客户机系统,包括CPU (vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),
被KVM置于一种受限制的CPU 模式下运行。

(2)KVM内核模块模拟处理器和内存以支持虚拟机运行

(3)Qemu主要处理 I/O 以及为客户提供一个用户空间 /dev/kvm 工具libvirt 来进行虚拟机管理
ioctl(定义)专用于设备输入输出操作的系统调用
libvirt:KVM管理工具
以上构成一个完整的虚拟化平台

简单理解:
KVM驱动提供处理器、内存的虚拟化,以及客户机 I/O 的拦截(拦截敏感指令),guest的 I/O 被拦截后.交由Qemu处理
Qemu利用接口libkvm调用(ioctl)虚拟机设备接口/dev/kvm来分配资源、管理、维护虚拟机

4.KVM工作流程

(1)用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。KVM驱动为虚拟机创建虚拟CPU和虚拟内存,

(2)然后执行VMLAU :NCH指令进入客户模式,装载Guest OS并运行。Guest OS运行过程中如果发生异常,则暂停Guest OS的运行并保存当前状态同时退出到内核模式来处理这些异常。

(3)内核模式处理这些异常时如果不需要I/o则处理完成后重新进入客户模式。如果需要I/o则进入到用户模式,则由Qemu 来处理I/O, 处理完成后进入内核模式,再进入客户模式

三.KVM虚拟化平台部署

1.虚拟机资源

虚拟机设置–处理器–勾选虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI(V)
添加磁盘并给大的内存

dev目录下会生成一个KVM虚拟设备,相当于虚拟接口,用于加强用户模式下kvm资源的输送和管理虚拟机

虚拟化平台kvm架构 部署kvm虚拟化平台_虚拟化_03

2.实验环境

(1)修改主机名

[root@localhost ~]# hostnamectl set-hostname kvm
[root@localhost ~]# su
[root@kvm ~]#

(2)将镜像光盘设为自动/永久挂载

[root@kvm ~]# mkdir /mount

[root@kvm ~]# vim /etc/fstab

/dev/cdrom /mount iso9660 defaults 0 0

[root@kvm ~]# mount -a
mount: /dev/sr0 写保护,将以只读方式挂载
[root@kvm ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  5.1G   45G   11% /
devtmpfs                devtmpfs  3.8G     0  3.8G    0% /dev
tmpfs                   tmpfs     3.9G     0  3.9G    0% /dev/shm
tmpfs                   tmpfs     3.9G   13M  3.8G    1% /run
tmpfs                   tmpfs     3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs       247G  112M  247G    1% /home
tmpfs                   tmpfs     781M  4.0K  781M    1% /run/user/42
tmpfs                   tmpfs     781M   28K  781M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

(3)环境优化

设置DNS反向解析,设置为NO 可以让客户端ssh连接服务器

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

115 UseDNS no		##取消注释,yes改为no

(4)制作本地yum仓库

[root@kvm yum.repos.d]# cd /etc/yum.repos.d/
[root@kvm yum.repos.d]# mkdir abc
[root@kvm yum.repos.d]# mv CentOS-* abc
[root@kvm yum.repos.d]# ls
[root@kvm yum.repos.d]# abc
[root@kvm yum.repos.d]# vim local.repo

[local]
name=kvm
baseurl=file:///mount		##
gpgcheck=0
enable=1

[root@kvm yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: local
Cleaning up list of fastest mirrors
Other repos take up 1.0 G of disk space (use --verbose for details)

[root@kvm yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local                                                           | 3.6 kB  00:00:00
(1/4): local/group_gz                                           | 166 kB  00:00:00
(2/4): local/filelists_db                                       | 3.2 MB  00:00:00
(3/4): local/primary_db                                         | 3.1 MB  00:00:00
(4/4): local/other_db                                           | 1.3 MB  00:00:00
元数据缓存已建立
[root@kvm yum.repos.d]#

(5)关闭防火墙、核心防护

[root@kvm yum.repos.d]# systemctl stop firewalld.service
[root@kvm yum.repos.d]# systemctl disable firewalld.service
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

3.安装KVM

(1)安装KVM基本组件

[root@kvm yum.repos.d]# yum groupinstall -y "GNOME Desktop"		#安装GNOME桌面环境,若装了图形界面可以不需要安装
[root@kvm yum.repos.d]# yum -y install qemu-kvm					#安装KVM模块
[root@kvm yum.repos.d]# yum -y install qemu-kvm-tools			#安装KVM调试工具,可不安装
[root@kvm yum.repos.d]# yum -y install virt-install				#构建虚拟机的命令行工具
[root@kvm yum.repos.d]# yum -y install qemu-img					#qemu组件,创建磁盘、启动虚拟机等
[root@kvm yum.repos.d]# yum -y install bridge-utils				#网络支持工具
[root@kvm yum.repos.d]# yum -y install libvirt					#虚拟机管理工具
[root@kvm yum.repos.d]# yum -y install virt-manager				#图形界面管理虚拟机

检测查看cpu是否支持虚拟化

[root@kvm yum.repos.d]# cat /proc/cpuinfo | grep vmx

虚拟化平台kvm架构 部署kvm虚拟化平台_kvm_05

查看KVM模块是否安装

[root@kvm yum.repos.d]# lsmod | grep kvm
kvm_intel             183621  0
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm

虚拟化平台kvm架构 部署kvm虚拟化平台_虚拟化_06

(2)设置开启启动界面的显示模式

[root@kvm yum.repos.d]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
[root@kvm yum.repos.d]#

4.设置KVM网络

KVM网络的两种模式:

NAT:默认设置,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络

网桥:这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持(一般有线网卡都支持)

使用bridge网桥模式部署

[root@kvm yum.repos.d]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
UUID=ae9919e1-f754-4a43-9d63-a9c7e2fa74af
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.206.177
#NETMASK=255.255.255.0
#GATEWAY=192.168.206.2
#DNS1=114.114.114.114
BRIDGE=br0

创建编辑桥接网卡

[root@kvm yum.repos.d]# vim /etc/sysconfig/network-scripts/ifcfg-bro

TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6PEERDNS=yes
IPV6PEERROUTES=yes
IPV6_ADDR_GEN_MODE=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.206.111
NETMASK=255.255.255.0
GATEWAY=192.168.206.2

5.KVM部署与管理

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

[root@kvm yum.repos.d]# mkdir -p /data_kvm/iso					#创建KVM存储镜像的目录
[root@kvm yum.repos.d]# mkdir -p /data_kvm/iso/store			#创建存储池的目录

[root@kvm yum.repos.d]# mkdir /abc/
[root@kvm yum.repos.d]# cd /abc/								#上传虚拟机的镜像文件

[root@kvm abc]# ls
CentOS-7-x86_64-DVD-1810-7.6.iso

[root@kvm abc]# ll
总用量 4481024
-rw-r--r--. 1 root root 4588568576 8月  22 03:23 CentOS-7-x86_64-DVD-1810-7.6.iso
[root@kvm abc]#
[root@kvm abc]# cp -p CentOS-7-x86_64-DVD-1810-7.6.iso /data_kvm/iso/
[root@kvm abc]# cd /data_kvm/iso/
[root@kvm iso]# ls
CentOS-7-x86_64-DVD-1810-7.6.iso  store
[root@kvm iso]# ll
总用量 4481024
-rw-r--r--. 1 root root 4588568576 8月  22 03:23 CentOS-7-x86_64-DVD-1810-7.6.iso
drwxr-xr-x. 2 root root          6 8月  22 03:14 store
[root@kvm iso]#

[root@kvm iso]# systemctl restart network

(2)使用虚拟系统管理器管理虚拟机

① 打开虚拟系统管理器

② 创建存储池

双击QEMUKVM

然后选择存储路径

③ 添加存储卷

④ 创建镜像池

⑤ 创建虚拟机

正常选择选项进行虚拟机安装即可

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

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

相关文章

在HarmonyOS中使用RelativeContainer实现相对布局

在应用开发中,布局设计至关重要,尤其是当我们需要处理复杂的界面时,合理的布局设计不仅能够提升界面的美观性,还能够提高应用的性能。在HarmonyOS中,RelativeContainer是一个强大的布局容器,它允许开发者通…

【Qt】 对象树 与 乱码问题

文章目录 1. 对象树在堆上开辟空间 并管理栈上开辟 与 堆上开辟 的区别 2. 乱码问题的解释编码方式的区分出现乱码的原因查看当前文件的编码方式如何处理 文件与 终端 编码方式 不统一 1. 对象树 在堆上开辟空间 并管理 该代码只进行new(在堆上开辟空间) 而没有delete 正常来说…

ES系列二之CentOS7安装ES head插件

CentOS7安装ES head插件 附:Centos7中安装Node出现Cannot find module ‘…/lib/utils/unsupported.js‘问题 删除原本的的npm连接,重新建一个即可。 1、先cd到该node版本中的bin文件夹下,这里装的是12.16.2版本: cd /usr/local/soft/nod…

C语言 之 字符串函数strncpy、ctrncat、strncmp函数的使用

文章目录 strncpy函数的使用strncat函数的使用strncmp函数的使用 strncpy函数的使用 函数原型: char * strncpy ( char * destination, const char * source, size_t num); strncpy与strcpy的区别是,strncpy可以控制需要拷贝的字符数量 1.能够拷贝num个…

为什么使用HTTPS?

HTTPS现在是所有Web活动的首选协议,因为它是用户保护敏感信息的最安全方式。 HTTPS不仅对请求用户信息的网站至关重要。除了用户直接发送的信息外,攻击者还可以从不安全的连接中跟踪行为和身份数据。 HTTP为网站所有者带来的好处除了数据安全之外&…

【Linux网络编程入门】Day5_socket编程基础

socket 编程基础 Linux 下的网络编程:socket 编程; socket是内核向应用层提供的一套网络编程接口,用户基于 socket 接口可开发自己的网络相关应用程序。 ⚫ socket 简介 ⚫ socket 编程 API 介绍 ⚫ socket 编程实战 socket 简介 ​ 套…

微信小程序引入全局环境变量

有时候一套代码要在多个小程序appId下使用,其中又有一些数据(文字)需要做区分.可以使用下面的方法 把要配置的数据以export default 形式导出 在app.js中,引入project.config.0.js文件,将导出的数据放在globalData中 在页面目录中,即可利用getApp()方法使用全局变量 也可以放数…

LM4863 带立体声耳机功能的双 2.2W音频功率放大器芯片IC

一般概述 LM4863是双桥接的音频功率放大器。当电源电压为5V时,在保证总谐波失真、噪声失真之和小于1.0%的情况下,4Ω负载提供2.2W的输出功率或者可向3Ω负载提供2.5W的输出功率。另外,当驱动立体声耳机时,耳机输入端允许放…

微服务:分布式事务

💥 该系列属于【SpringBoot基础】专栏,如您需查看其他SpringBoot相关文章,请您点击左边的连接 目录 一、引言 二、Seata 三、部署TC服务 1. 准备数据库表 2. 准备配置文件 3. Docker部署 四、微服务集成Seata 1. 引入依赖 2. 改造配…

json 库的下载与使用

Json 简介Json下载Json::Value 数据对象类Json 序列化/反序列化的介绍Json 的序列化类低版本高版本 Json 的反序列化类低版本高版本 Json序列化操作Json反序列化操作 简介 json 是一种数据交换格式,采用独立于编程语言的文本格式来存储和表示的数据。 Json下载 使…

波导阵列天线单元 学习笔记3 基于空气填充双模馈网的双圆极化膜片天线阵列

摘要: 此通信提出了一种使用空气填充双模馈网的基于膜片极化器的双圆极化天线阵列。一种1分4的圆腔单层覆盖在膜片极化器上来抑制栅瓣。全公司馈网被一个双模传输线所实现,以此在一组馈网内联合了TEM模式(由HW悬架线激励)和TE10模…

Stable Diffusion赋能“黑神话”——助力悟空走进AI奇幻世界

《黑神话:悟空》是由游戏科学公司制作的以中国神话为背景的动作角色扮演游戏,将于2024年8月20日发售。玩家将扮演一位“天命人”,为了探寻昔日传说的真相,踏上一条充满危险与惊奇的西游之路。 同时,我们还可以借助AI绘…

智能电子班牌源码之终端管理-SAAS本地化及未来之窗行业应用跨平台架构

一智能电子班牌 智能电子班牌为教育行业量身打造,高清显示屏体、可安装各类软件,满足门禁、考勤、信息显示等多种功能。节能防水防误触设计,更适用于校园环境。 二、设备管理 1. 提高效率:管理员无需亲临设备现场,…

Maven-03.idea集成-配置及创建maven项目

一.配置Maven 写在前面:特别注意idea版本与Maven版本以及jdk版本与Maven版本的匹配问题。一定要下载和当前idea版本以及jdk版本匹配的maven版本,否则会出问题。具体匹配结果上网查询!此处采用idea2023.2.3,jdk17,mave…

edge浏览器可以,chrome浏览器看不到接口数据

chrome 谷歌浏览器,可以看到页面,F12的开发者工具看不到返回数据 无法加载响应数据: No data found for resource with given identifier Chrome 将显示 ERR_INTERNET_DISCONNECTED 错误 edge浏览器是正常的。 哈哈哈哈哈哈,这里误点了&a…

C ++初阶:类和对象(上)

目录 🌞0.前言 1. 面向过程和面向对象初步认识 2..类的引入与定义 2.1类的引入 2.2类的定义 3.类的访问限定符及其封装 3.1访问限定符 3.2封装 4.类的作用域 4.1加餐和发现 5.类的实例化 6.类对象大小的计算 6.1.内部的存储方式 6.2结构体对齐规则回顾…

【闪送-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

【办公软件】安全风险 Microsoft 已阻止宏运行,因为此文件的来源不受信任

Excel 2019版本,就出现安全风险 Microsoft 已阻止宏运行 因为此文件的来源不受信任的问题,宏直接就用不了了。 网上的解决方法,文件右键属性->取消安全锁。但存在没有安全锁这个选项。后查询到一个简单的解决方法。 打开Excel表格->文件…

利用MongoDB进行数据治理,防范构建生成式AI应用程序时的潜在安全风险

生成式人工智能(生成式AI)正在蓬勃发展,许多企业和初创公司正在运用AI工具来解决各自的用例问题。随着企业逐渐适应市场上的新技术范式转移,开发者社区和开源模型也在不断发展壮大。 构建智能生成式AI应用程序需要灵活运用数据。…

R语言统计分析——线性模型假设的综合验证与多重共线性

参考资料:R语言实战【第2版】 1、线性模型假设的综合验证 gvlma包中的gvlma()函数,能对线性模型进行综合验真,同时还能做偏斜度、峰度和异方差性的评价。也就是说,它给模型提供了一个单独的综合验证(通过/不通过&…