kvm虚拟化技术

2023-11-05

前言

kvm是一种虚拟化技术

使用

概念

kvm是linux内核的模块,它需要CPU支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V,内存的相关技术如Intel的EPT和AMD的RVI,是底层虚拟化内核模块。

  • 检查cpu是否支持虚拟化
]# grep vmx /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb invpcid_single ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm arat pln pts md_clear spec_ctrl intel_stibp flush_l1d
... ...

如果有vmx信息输出,就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机

  • 确保BIOS里开启虚拟化功能,即查看是否加载KVM模块
]# lsmod | grep kvm
kvm_intel             188688  0 
kvm                   636969  1 kvm_intel
irqbypass              13503  1 kvm

如果没有加载,运行以下命令:

]# modprobe kvm
]# modprobe kvm-intel

内核模块导出了一个名为/dev/kvm的设备,这个设备将虚拟机的的地址空间独立于内核或者任何应用程序的地址空间

]# ll /dev/kvm
crw-rw-rw-. 1 root kvm 10, 232 10月 10 14:36 /dev/kvm
  • 配置kvm的网桥模式-桥接网络
yum -y install bridge-utils
systemctl restart network
cd /etc/sysconfig/network-scripts/

编辑br0网桥模式

]# cat ifcfg-br0
TYPE="Bridge"						# 改为Bridge
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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="72671f68-e070-4d26-963d-8b65fbc88fb3"	# 此行注释
DEVICE="br0"																# 改为br0
ONBOOT="yes"
]# cat ifcfg-enp3s0 
TYPE="Ethernet"
BRIDGE="br0"															# 添加此行内容
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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="enp3s0"
UUID="72671f68-e070-4d26-963d-8b65fbc88fb3"
DEVICE="enp3s0"
ONBOOT="yes"

重启网卡服务

systemctl restart network

查看网卡

]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.bcee7be0923b	no		enp3s0
							vnet0
							vnet1
							vnet2
virbr0		8000.52540011750e	yes		virbr0-nic
安装kvm虚拟化服务器平台必备软件
  • 1.qemu-kvm:
    为kvm提供底层仿真支持

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

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

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

  • 注:
    1.QEMU是一个虚拟化的仿真工具,通过ioctl与内核kvm的交互完成对硬件的虚拟化支持
    2.Libvirt是一个虚拟化管理的接口和工具,提供用户端程序virsh,virt-install,virt-manager,virt-view与用户交互

kvm虚拟化平台安装
yum -y install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-manager
systemctl start libvirtd
systemctl enable libvirtd
kvm安装虚拟化服务平台可选软件
  • 1.virt-install:
    系统安装工具
  • 2.virt-manager:
    图形管理工具
  • 3.virt-v2v:
    虚拟机迁移工具
  • 4.virt-p2v:
    物理机迁移工具
kvm虚拟机的组成
  • 1.内核虚拟化模块(KVM)
  • 2.系统设备仿真(QEMU)
  • 3.虚拟机管理程序(LIBVIRT)
  • 4.虚拟机配置声明文件,一个XML文件,位置/etc/libvirt/qemu/
  • 5.虚拟机的硬盘,一个磁盘镜像文件,位置/var/lib/libvirt/images/
kvm管理各虚拟机的命令接口工具virsh
  • 格式
    virsh 控制指令 [虚拟机名称] [参数]

进入virsh模式:直接在终端输入virsh即可进入virsh交互模式,如下

[root@localhost ~]# virsh 
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # 
virsh工具的使用
  • 1.查看KVM节点(服务器)信息:
    virsh nodeinfo
[root@localhost ~]# virsh nodeinfo
CPU model:           x86_64
CPU(s):              4
CPU frequency:       3699 MHz
CPU socket(s):       1
Core(s) per socket:  2
Thread(s) per core:  2
NUMA cell(s):        1
Memory size:         16300764 KiB
  • 2.列出虚拟机:
    virsh list [–all]
[root@localhost ~]# virsh list
 Id    Name                           State
----------------------------------------------------

[root@localhost ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
  • 3.列出虚拟网络:
    virsh net-list [–all]
[root@localhost ~]# virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

[root@localhost ~]# virsh net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes
  • 4.查看指定虚拟机的信息:
    virsh dominfo 虚拟机名称

  • 5.运行|重启|关闭指定的虚拟机:
    virsh start|reboot|shutdown 虚拟机名称

  • 6.强制关闭指定的虚拟机:
    virsh destroy 虚拟机名称

  • 7.将指定的虚拟机设为开机自动运行:
    virsh autostart 虚拟机名称

  • 8.将指定的虚拟机设为开机不自动运行:
    virsh autostart --disable 虚拟机名称

  • 9.连接虚拟机:
    virsh console 虚拟机名称
    退出:ctrl+]

  • 10.管理虚拟交换机
    virsh net-edit 虚拟路由名

  • 11.连接本地:
    virsh connect qemu:///system(直接输入virsh即可,默认)

  • 12.连接远程:
    virsh connect qemu+ssh://user@ip.xx.xx.xx:port/system
    eg:virsh -c qemu+ssh://172.40.61.123/system
    使用virt-manager工具连接远程需要先使用ssh免密码登陆,如没有则需要安装python或ssh相关模块

常用镜像盘类型

虚拟机的磁盘镜像文件格式

  • 1.RAW:
    I/O效率高,占用空间大
  • 2.QCOW:
    KVM默认,I/O效率极高,占用空间小,支持压缩、后端盘复用、快照
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kvm虚拟化技术 的相关文章

随机推荐

  • nodejs全栈开发学习笔记

    为什么学nodejs 因为听说学会了nodejs可以做全栈开发 哈哈 我也是一个有野心的程序员 其实并没有 nodejs学了好几次 也放弃了好几次 主要原因就是感觉莫名其妙 自学 跟前端开发联系不上 光是环境搭建 Windows系统 就卡死
  • opencv中的transpose和flip

    cv flip 的第三个参数 大于0表示沿y轴翻转 等于0表示沿x轴翻转 小于0表示 x和y同时翻转
  • vc文件操作,内存映射

    vc文件操作 内存映射 各种关于文件的操作在程序设计中是十分常见 如果能对其各种操作都了如指掌 就可以根据实际情况找到最佳的解决方案 从而在较短的时间内编写出高效的代码 因而熟练的掌握文件操作是十分重要的 本文将对Visual C 中有关文
  • 浅谈Vue项目优化心得

    1 打包优化 提取组件的 CSS 到单独到文件 屏蔽 sourceMap 开启 gzip 压缩 公共库使用cdn外链 打包vender时不打包vue vuex vue router axios等 换用国内的 bootcdn unpkg 直接
  • 计算方法(三)矩阵分解1-正交分解(QR分解)

    为什么80 的码农都做不了架构师 gt gt gt 正交分解 矩阵的正交分解又称为QR分解 是将矩阵分解为一个正交矩阵Q和一个上三角矩阵的乘积的形式 任意实数方阵A 都能被分解为 这里的Q为正交单位阵 即 R是一个上三角矩阵 这种分解被称为
  • 手写Mybatis:第20章-Mybatis 框架源码10种设计模式分析

    文章目录 一 类型 创建型模式 1 1 工厂模式 1 2 单例模式 1 3 建造者模式 二 类型 结构型模式 2 1 适配器模式 2 2 代理模式 2 3 组合模式 2 4 装饰器模式 三 类型 行为型模式 3 1 模板模式 3 2 策略模
  • Unity接入TopOn聚合广告平台SDK【聚合了穿山甲,优量汇(腾讯广告),快手,Mintegral,sigmob等各大广告平台SDK】

    TopOn聚合穿山甲 优量汇 快手 Mintegral各大广告SDK教程 接了好几家SDK 都有亿点点蛋疼 直到遇到了TopOn TopOn的文档和SDK相当齐全 包括Android IOS Unity Cocos2dx CocosCrea
  • 数据库动态加载省市区信息,实现三级联动

    本文转载自 http my oschina net zhengweishan blog 402483 摘要 动态的从数据库加载全国省市区 后台使用的是SpringMvc 前台使用的是bootstrap页面展示 demo源码下载地址 http
  • Qt安装包+安装配置说明 (强烈推荐,小白专用)

    链接 https pan baidu com s 1zrhLUP sjWgCQdrFacDQCQ 提取码 uie5内附赠详细安装说明 可以 信我获取
  • es7合并数组相关 报错Uncaught (in promise) TypeError: Invalid attempt to spread non-iterable instance...

    方法一 let o1 a 1 b 2 c 3 let o2 o1 d 4 o2 a 1 b 2 c 3 d 4 let arr1 0 1 2 let arr2 arr1 3 arr2 0 1 2 3 方法二 let o1 a 1 b 2 c
  • 科普:java与C++的区别

    Java与C 是两种广泛使用的编程语言 它们在某些方面存在不同之处 本文将详细介绍Java与C 的区别 一 C 与Java的历史 C 语言是由Bjarne Stroustrup在20世纪80年代初期开发的一种面向对象编程语言 它是C语言的扩
  • 服务器CPU占用率高,如何排查?

    1 定位进程 登录服务器 执行top命令 查看CPU占用情况 top 2 定位线程 如果进程23456占用率高 top Hp23456 进行定位线程 3 定位代码 通过top命令 我们目前已经定位到导致CPU使用率较高的具体线程 比如线程4
  • 电脑如何进入bios模式_电脑BIOS是什么?到底有什么用?如何进入电脑BIOS

    BIOS是英文 Basic Input Output System 的缩略语 直译过来后中文名称就是 基本输入输出系统 其实 它是一组固化到计算机内主板上一个ROM芯片上的程序 它保存着计算机最重要的基本输入输出的程序 系统设置信息 开机后
  • Python3 + Pymysql + mysql 连接方法

    准备材料 1 host地址 127 0 0 1 2 端口号 3306 3 用户名 root 4 密码 5 数据库名 information persons 6 python3 的pymysql库 正式开始 查询 1 首先导入pymysql包
  • C99和C89

    这是c0conut同学的一份作业 也可以理解为总结 为了保留这份作业 写了博客 我尽量使自己写得简单好懂有趣 C99与C89的亲子关系 就如DOM结构一般 C99与C89之间也充满温情 老父亲C89顾名思义出生于89年 也被称为ANSI C
  • validator 重写方法报错

    javax validation ConstraintDeclarationException HV000151 A method overriding another method must not redefine the parame
  • windows常用命令大全

    作者介绍 作者 小刘在C站 每天分享课堂笔记 一起努力 共赴美好人生 夕阳下 是最美的 绽放 目录 运行框命令 cmd中 Windows运行中 快捷键 运行框命令 shutdown s t 后家秒数 计划关机任务 migwiz Window
  • x-oss-process_OSS中的同理心-重要

    x oss process 我不花很多时间在开放源码项目的整个工作日 和许多晚上 上 我对OSS的使用形成了一种或两种意见 特别是在为项目做贡献时 作为一个使用Github之类的工具的社区 我们已经走了很长一段路 这使得在野外发布OSS项目
  • 什么是区块链?

    什么是区块链 今天给大家讲解我们区块链的第一课 我们要学习区块链 首先我们必须得了解什么是区块链 只有理解了区块链的概念 我们才能入门区块链 接下来 我会从浅入深的带着大家去理解区块链的含义 首先 我们从字面上来理解 区块链 包含着两层含义
  • kvm虚拟化技术

    前言 kvm是一种虚拟化技术 使用 概念 kvm是linux内核的模块 它需要CPU支持 采用硬件辅助虚拟化技术Intel VT AMD V 内存的相关技术如Intel的EPT和AMD的RVI 是底层虚拟化内核模块 检查cpu是否支持虚拟化