当前位置: 首页 > news >正文

【虚拟化】KVM使用virt-manager部署及管理虚拟机

目录

一、KVM 概述

二、KVM工作原理

三、部署KVM

四、新建虚拟机步骤

4.1 创建存储池并创建存储卷

4.1.1 创建存储池

4.1.2 创建存储卷

4.3 创建ISO存储池

4.4 生成新的虚拟机


一、KVM 概述


KVM 是 Kernel-based Virtual Machine 的缩写,是一种用于虚拟化的开源硬件虚拟化技术。它使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。

KVM 允许虚拟机直接访问物理硬件资源,从而提供出色的性能和稳定性,同时还支持许多常见的操作系统和应用程序。 KVM 使用了 QEMU (Quick Emulator) 作为其默认的虚拟机监控程序。

除此之外,KVM 还支持多种嵌入式和云计算场景,并且得到了广泛的应用。


二、KVM工作原理


KVM 的工作原理是使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。

具体来说,它在 Linux 内核之上构建一个虚拟化层,该虚拟化层允许多个虚拟机共享物理服务器上的计算资源(如 CPU、内存和 0 设备)。在此虚拟化层中,每个虚拟机都被视为单独的计算机,每个虚拟机可以运行不同的操作系统和应用程序。

KVM使用硬件虚拟化技术,即通过 intel VT-x 和 AMD-V 等 CPU 虚拟化指集的支持,将虚拟化性能提升到接近原生性能。

此外,KVM 还使用 QEMU 作为其虚拟机监控程序,QEMU为每个虚拟机提供了一个虚拟化的环境,在该环境中,虚拟机可以访问它需要的资源(如磁盘、网络和其他I/0 设备)。

同时,KVM 利用 Linux 内核的强大功能,如分时调度和内存管理,来确保多个虚拟机之间的隔离性和安全性。

综上所述,KVM 的工作原理是结合硬件虚拟化技术和 Linux 内核的虚拟化模块,创建出一个虚拟化层,将物理服务器划分为多个虚拟机,并为每个虚拟机提供一个虚拟化的环境,从而实现资源共享和隔离。


三、部署KVM


测试服务器

系统版本

IP地址

最低资源配置

CentOS7.6

192.168.2.126

CPU:8核
内存:20G
磁盘:100G

虚拟化软件:WMware ESXi、KVM

7.0版本

  • 宿主操作系统(在哪个操作系统上操作):CentOS 7.6
  • 虚拟化软件:VMWare ESXI7.0、KVM
  • 待安装操作系统(等下虚拟机建好后需要安装的操作系统):CentOS 7.6

基础环境设置

# 关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0# 安装基本工具包。
yum -y install  vim wget net-tools unzip zip gcc gcc-c++ epel-release

检测机器的CPU是否支持KVM。若显示结果由vmx(Intel)或svm(AMD)字样,就说明支持。

安装 KVM 和相关软件包,可以通过以下命令来安装:

yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager

安装包说明:

KVM安装包

含义

qemu-kvm

主要KVM程序包

virt-manager

GUI虚拟机管理工具

libvirt

C语言工具包,提供libvirt服务

qemu-kvm-tools

KVM调试工具

qemu-img

安装qemu组件,使用qemu命令来创建磁盘,启动虚拟机

bridge-utils

创建和管理桥接设备的工具

创建一个网络桥接器

cat > /etc/sysconfig/network-scripts/ifcfg-br0 << EOF
TYPE="Bridge"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0"
UUID="4eaf3908-3128-4e53-84a8-fd13984e4525"
DEVICE="br0"
ONBOOT="yes"
IPADDR="192.168.2.126"
GATEWAY="192.168.2.254"
EOFcat > /etc/sysconfig/network-scripts/ifcfg-ens192 << EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens192"
UUID="4eaf3908-3128-4e53-84a8-fd13984e4525"
DEVICE="ens192"
ONBOOT="yes"
IPADDR="192.168.2.126"
GATEWAY="192.168.2.254"
BRIDGE=br0
EOF	


重启网络

systemctl restart network

进入virt-manager 工具


四、新建虚拟机步骤


4.1 创建存储池并创建存储卷


双击QEMU/KVM

进入如下界面

4.1.1 创建存储池


选择如图存储

点击“+”

存储池命令“kvm”

存储池路径“/images/kvm”

创建完成

4.1.2 创建存储卷


"kvm"存储池下创建存储卷,选择“+”

命名“centos7.6-test”,分配大小30G

4.2 创建ISO存储池


命名镜像存储“ISO”

存储镜像路径“/images/ISO”

镜像上传到/images/iso/

刷新后我们可以在ISO存储池中看到上传的centOS7镜像

4.3 生成新的虚拟机


虚拟机管理器选择创建新的虚拟机

生成新虚拟机选择本地安装介质

选择镜像位置

选择ISO存储池的 centOS-7 镜像

镜像选择完成后,下一步

根据资源大小,选择合适的内存和CPU,下一步

自定义存储

选择kvm存储池中“centos7.6-test”存储卷

选择存储卷后下一步

自定义存储完成后选择完成

弹出界面如下

选择“Boot Options”,自动重启勾选

选择“IDE CDROM 1” 关联镜像

选择镜像路径

选择ISO存储池中 centos-7 镜像

镜像关联完成后,选择完成

选择开始安装

镜像操作系统安装界面

选择语言

配置时区、存储、网络

设置root 密码

安装完成后重启

登录后linux

在虚拟机的宿主机 ping 虚拟机IP:192.168.2.109可以 ping通,因为是桥接的远程通不了。

ping  192.168.2.109

生成的虚拟机IP


KVM 介绍及作用详解_Kvm_脚本之家

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 嵌入式FPGA(现场可编程门阵列)面试题及参考答案
  • 简明 | ResNet特点、残差模块、残差映射理解摘要
  • 【C语言】C语言期末突击/考研--结构体与C++引用
  • 2024华硕迷你主机选购指南:全系列覆盖
  • 深入理解 C 语言中的联合体
  • JavaWeb基础1:HTML/CSS/JS/HTTP
  • 蓝屏事件:网络安全的启示
  • 云原生的候选应用
  • 静态代理与动态代理区别?
  • 记一次Mysql8.0使用GROUP BY查询导致异常问题
  • 供应链安全:黑客攻击 Nimble 包
  • 【LeetCode】133.克隆图
  • C#中常用集合类型
  • 室内宠物空气净化器哪个好?排名靠前室内宠物空气净化器使用感受
  • 详解Xilinx FPGA高速串行收发器GTX/GTP(3)--GTX的时钟架构
  • github指令
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Javascript 原型链
  • JavaWeb(学习笔记二)
  • JS笔记四:作用域、变量(函数)提升
  • leetcode讲解--894. All Possible Full Binary Trees
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PHP面试之三:MySQL数据库
  • Selenium实战教程系列(二)---元素定位
  • Shadow DOM 内部构造及如何构建独立组件
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 爱情 北京女病人
  • 包装类对象
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 回顾2016
  • 机器学习学习笔记一
  • 聊聊flink的BlobWriter
  • 如何实现 font-size 的响应式
  • 入手阿里云新服务器的部署NODE
  • 通过npm或yarn自动生成vue组件
  • AI算硅基生命吗,为什么?
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ## 1.3.Git命令
  • #AngularJS#$sce.trustAsResourceUrl
  • #Lua:Lua调用C++生成的DLL库
  • (0)Nginx 功能特性
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (13)Hive调优——动态分区导致的小文件问题
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (SERIES12)DM性能优化
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (九)One-Wire总线-DS18B20
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)linux 命令大全
  • (转)linux下的时间函数使用
  • (转)编辑寄语:因为爱心,所以美丽
  • .net 4.0发布后不能正常显示图片问题