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

Linux:KVM虚拟化

本章操作基于centos7系统


简介

KVM是Kernel Virtual Machine的简写,目前Redhat只支持在64位的Rhel5.4以上的系统运行KVM,同时硬件需要支持VT技术。KVM的前身是QEMU,在2008年被redhat公司收购并获得了一项hypervisor技术,不过redhat的KVM被认为将成为未来linux hypervisor的主流,准确的来说KVM不仅仅是linux内核的一个模块。管理和创建完成的KVM虚拟机,需要更多的辅助工具。接下来部署KVM虚拟化环境。

公司部分的linux服务器利用率不是很高,为了充分利用这些linux服务器,可以部署KVM ,在物理机上运行多个业务系统,比如在运行Nginx服务器上部署KVM,然后在虚拟机上运行Tomcat


需要环境&配置

1) 需要图形化桌面环境

2)内存:2048M或以上

3)处理器:核心数 2或以上

4)如果是虚拟机需要开启虚拟化引擎:首选模式:intel VT-x 或 AMD-V 

5)硬盘:100G以上


 基础环境准备

打开虚拟机的虚拟化

 勾选上虚拟化lnetl tv-x……即可

如果你没有桌面环境可以使用两个命令,如果有,跳过下面两条命令即可

yum -y groupinstall  gnome-desktop  
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

 安装KVM

yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 qemu-img.x86_64 python-virtinst.noarch bridge-utils.x86_64 libvirt virt-manager

qemu-kvm.x86_64             //kvm模块

qemu-kvm-tools.x86_64   //kvm调试工具,可不安装

python-virtinst.noarch      //python组件,记录创建vm时的xml文件

qemu-img.x86_64          //qemu组件,创建磁盘,启动虚拟机等

bridge-utils.x86_64       //网络支持工具

libvirt    //虚拟机管理工具

virt-manager      //图形界面管理虚拟机

安装完以后  reboot  重启服务器

 重启以后查看是否开启了虚拟化

如果你是intel的cpu就使用

cat /proc/cpuinfo | grep vmx

开启成功

如果你是AMD的cpu那么就用 

cat /proc/cpuinfo | grep smv

检查KVM模块是否安装

lsmod | grep kvm


KVM网络配置

宿主服务器安装了KVM,首先要设定网络,在libvirt中运行KVM网络有两种方法NAT和Bridge,默认是NAT。

nat地址转换就是虚拟机用物理机的网卡上网

桥接就是把虚拟机和真机放到一个局域网

下面我这里是桥接模式的配置

 我这里的主机网卡名为ens33

vim /etc/sysconfig/network-scripts/ifcfg-ens33写入DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE="br0"

桥接到br0

vim /etc/sysconfig/network-scripts/ifcfg-br0写入DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.254.111
NETMASK=255.255.255.0
systemctl restart network

现在就可以了


KVM图形化创建虚拟机

先去/下创建两个文件一个用于放iso镜像,一个用于放虚拟机

mkdir -p /kvm/iso /kvm/xuniji

iso用于放镜像,xuniji用于放虚拟机文件

让后我们把要创建虚拟机的镜像放如/kvm/iso中,我这里还用centos镜像演示

iso镜像放进去以后去开启软件 

图形化找到kvm软件

 或者在命令行中使用命令行打开

virt-manager 

现在我们要在软件里把刚刚创建好的文件选择上

 双击打开

点击储存,再点左下角➕

 名字随便写,我这个先加虚拟机存放目录,所以我这个名字就叫虚拟机了,让后前进

点击浏览,让后找到/kvm/xuniji

 点击打开

现在虚拟机存放目录就好了,再去添加iso文件,和这个一样

 

 

 

这样两个文件就添加好了,现在,放虚拟机,选择镜像就去这两个文件夹就行了,如果你的服务器硬件资源足够大的化,可以创建大量的虚拟机

 现在就可以去创建虚拟机了

 

 

 

这里选择你要的虚拟机配置,配置完了再前进

 

先去配置虚拟机硬盘大小,让后点管理

 

 调整配置

 

在结束前可以再去配置一下硬件啥的,如果没有要配置的了,那么直接就开始安装,就直接进入系统安装了

 安装centos等系统我这里就不演式了,因为今天主要讲的是kvm

到这里我们的虚拟机就可以正常安装上了,除了Linux,Windows,类unix等等基本都是这样安装,也很向Windows上的VMware等软件 


克隆,快照等操作

当我们需要进行克隆时需要让虚拟机为关闭的状态

或者 

 

 

这样就克隆好了 

 

点击快照

创建快照 

恢复快照 

网络接口配置

 


命令行操作kvm

virsh -h

查看帮助

virsh list --all

查看当前虚拟机状态的列表

两个虚拟机都为运行状态

 virsh shutdown 虚拟机名称

关闭指定的虚拟机

 virsh shutdown centos7

 

virsh start 虚拟机名称

开启虚拟机 

virsh start centos7

 

 virsh destroy 虚拟机名称

关闭虚拟机(和shutdown 一个效果)

 virsh create /etc/libvirt/qemu/虚拟机配置文件.xml

 通过配置文件开启虚拟机

virsh create /etc/libvirt/qemu/centos7.xml 

virsh suspend  虚拟机名称

挂起虚拟机

virsh resume  虚拟机名称

恢复挂起虚拟机

virsh autostart  虚拟机名称

 和宿主机一起开启,也就是当真机开机的时候虚拟机也会一起打开

备份虚拟机文件

virsh dumpxml 虚拟机名称   > /etc/libvirt/qemu/虚拟机名称.xml

 导出虚拟机配置

virsh shutdown 虚拟机名称

关闭虚拟机

 virsh undefine 虚拟机名称

删除虚拟机 

cd /etc/libvirt/qemu 

前往虚拟机主配置文件

mv 刚刚备份的虚拟机文件.xml   一开始的虚拟机文件名.xml

 恢复备份文件

 virsh define 虚拟机文件名.xml

通过备份的配置文件重新定义虚拟机 

virsh list --all 

虚拟机快照
kvm虚拟机使用镜像功能,磁盘格式必须为qcow2.

【创建快照】
virsh snapshot-create 虚拟机名

【查看快照版本信息】
 virsh snapshot-current 虚拟机名

【查看快照信息】
virsh snapshot-list 虚拟机名

【恢复快照到指定】

virsh snapshot-revert 虚拟机名 快照编号


 virsh snapshot-revert test01 1282572463

virsh snapshot-current 虚拟机名
【删除快照】
virsh snapshot-delete 虚拟机名  快照编号

 

相关文章:

Linux:KVM虚拟化

本章操作基于centos7系统 简介 KVM是Kernel Virtual Machine的简写,目前Redhat只支持在64位的Rhel5.4以上的系统运行KVM,同时硬件需要支持VT技术。KVM的前身是QEMU,在2008年被redhat公司收购并获得了一项hypervisor技术,不过redh…...

HTML标签,列表,表格相关

HTML标签的分类 HTML标签可以分为以下几类: 标题标签:用于定义网页的标题,分为h1、h2、h3、h4、h5和h6。 段落标签:用于定义文本的段落,常用的有p标签。 链接标签:用于定义链接,常用的有a标签…...

【音视频】Linux | FFmpeg源码搭建

Linux | FFmpeg源码搭建 时间:2023-06-21 文章目录 `Linux` | `FFmpeg`源码搭建@[toc]1.参考2.获取源码2-1.建立工作目录2-2.获取`AAC`2-3.获取`X264`2-4.获取`X265`2-5.获取`FFmpeg`3.编译/安装3-1.编译`AAC`3-1-1.解压源码3-1-2.编译3-1-3.安装3-2.编译`X264`3-2-1.解压源码…...

Ansible中常用模块

1.ansible实现管理的方式 Ad-Hoc //利用ansible命令直接完成管理,主要用于临时命令使用场景 playbook //ansible脚本,主要用于大型项目场景,需要前期的规划 2.Ad-Hoc执行方式中如何获得帮助 ansible-doc …...

2000-2021年上市公司产融结合度量数据

2000-2021年上市公司产融结合度量数据 1、时间:2000-2021年 2、指标:股票代码、年份、是否持有银行股份、持有银行股份比例、是否持有其他金融机构股份、产融结合 3、来源:上市公司年报 4、范围:上市公司 5、样本量&#xff…...

2023最新最全Web自动化测试面试题

1、Selenium 中 hidden 或者是 display none 的元素是否可以定位到? 不可以。可以写 JavaScript 将标签中的 hidden 先改为 0,再进行定位元素。 2、Selenium 中如何保证操作元素的成功率?也就是说如何保证我点击的元素一 定是可以点击的&am…...

List的add(int index,E element)陷阱,不得不防

项目场景: 项目中有两个List列表,一个是List1用来存储一个标识,后续会根据这个标识去重。 一个List2是用来返回对象的,其中对象里也有一个属性List3。现需要将重复的标识数据追加到List3 我想到的两个方案: 尽量不动…...

如何使用drawio画流程图以及导入导出

画一个基本的流程图 你可以在线使用drawio, 或者drawon创建很多不同类型的图表。 如何使用编辑器,让我们以一个最基本的流程图开始。 流程图,就是让你可视化的描述一个过程或者系统。 图形和很少部分的文字表达就可以让读者很快的理解他们需要什么。 创…...

腾讯云轻量服务器“镜像类型”以及“镜像”选择方法

腾讯云轻量应用服务器镜像类型分为应用镜像、系统镜像、Docker基础镜像、自定义镜像和共享镜像,腾讯云百科txybk.com来详细说下不同镜像类型说明和详细介绍: 轻量应用服务器镜像类型说明 腾讯云轻量应用服务器 应用镜像:独有的应用镜像除了包…...

docker-compose 简单部署Flask + Redis + Nginx环境搭建网站

主博客目录:《从零开始学习搭建量化平台笔记》 主项目计划需要搭建一个 Flask Redis Nginx环境 来制作一个可视化的网站,为了避免搭完就忘,因此就有了这个博客。 任务:搭建一个内网通信且只有由Nginx代理发放的网页端显示环境。…...

debian和ubuntu

Debian和Ubuntu是两种流行的Linux发行版,它们之间有密切的关系,但也存在一些重要的区别。 关系: Ubuntu是基于Debian创建的。这意味着Ubuntu使用与Debian相同的APT包管理系统,并共享来自Debian库中的大量包和库。 区别&#xf…...

恒驰服务 | 华为云数据使能专家服务offering之数仓建设

恒驰大数据服务主要针对客户在进行智能数据迁移的过程中,存在业务停机、数据丢失、迁移周期紧张、运维成本高等问题,通过为客户提供迁移调研、方案设计、迁移实施、迁移验收等服务内容,支撑客户实现快速稳定上云,有效降低时间成本…...

AI与Prompt:解锁软件开发团队的魔法咒语,在复杂任务上生成正确率更高的代码

AI与Prompt:解锁软件开发团队的魔法咒语 写在最前面论文:基于ChatGPT的自协作代码生成将团队协作理论应用于代码生成的研究自协作框架原理1、DOL任务分配2、共享黑板协作3、Instance实例化 案例说明简单任务:基本操作,生成的结果1…...

深度学习02-数据集格式转换

背景: 通常搜集完数据图片后,我们会用labelimg进行图片标注,比较高版本的labelimg支持的标注格式有三种,PascalVOC、YOLO、CreateML,标注的时候可以根据自己的算法模型数据集需求选择相应的格式,当然&…...

【c++|opencv】一、基础操作---1.图像读取

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 有关c操作opencv记录 1. 正文 1.1 图像读取、显示、保存 // 读取、显示、保存图像#include <opencv2/opencv.hpp> #include <iostream>us…...

【2023.10.30练习】C语言-循环右移字符

计算机能力挑战初赛2020.19题 题目描述&#xff1a; 现要对一个由字符a-z和A-Z组成的字符串进行解密&#xff0c;已知加密规则是&#xff1a; 字符串中所有字符分别在大写或小写的字母表中被循环左移5位(fGh-->aBc)&#xff0c; 输入&#xff1a;一个加密过的字符串&#…...

C++ 自引用指针this(整理)

使用例子&#xff1a; #include <iostream> #include <Windows.h> using namespace std; class A { public:A(int x1){x x1;}void disp(){cout<<"this"<<this<<" when x"<<this->x<<endl;} private:int x;…...

pyzed.sl 突然 ImportError: DLL load failed while importing sl: 找不到指定的程序。 的解决

问题描述 >>> import pyzed.sl Traceback (most recent call last):File "<stdin>", line 1, in <module> ImportError: DLL load failed while importing sl: 找不到指定的程序。解决 1 按网上说的&#xff0c;将bin文件夹下所有dll复制到py…...

STM32 Cube配置RS485 Modbus

STM32CUBUMX配置RS485 modbus STM32&#xff08;从机&#xff09;亲测可用 STM32开发&#xff08;六&#xff09;STM32F103 通信 —— RS485 Modbus通信编程详解...

global,nonlocal

1.global 在局部&#xff0c;引入全局变量&#xff0c;使得局部变量可以修改全局变量 a 10 # a为全局变量def func():global a #把外面的全局变量引入到局部a 20 #创建局部变量&#xff0c;修改全局变量func() print(a) #20 2.nonlocal 在局部&#xff0c;引入外层的…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...

Go爬虫开发学习记录

Go爬虫开发学习记录 基础篇&#xff1a;使用net/http库 Go的标准库net/http提供了完善的HTTP客户端功能&#xff0c;是构建爬虫的基石&#xff1a; package mainimport ("fmt""io""net/http" )func fetchPage(url string) string {// 创建自定…...

【Linux应用】Linux系统日志上报服务,以及thttpd的配置、发送函数

【Linux应用】Linux系统日志上报服务&#xff0c;以及thttpd的配置、发送函数 文章目录 thttpd服务安装thttpd配置thttpd服务thttpd函数日志效果和文件附录&#xff1a;开发板快速上手&#xff1a;镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互&#xff08;RADX…...