虚拟化KVM

2023-11-05

什么是虚拟化

在计算机技术中,虚拟化是一种资源管理技术,是将计算机的各种实体资源(CPU,内存,磁盘空间,网络适配器等)予以抽象,转换后呈现出来并可供分割,组合为一个或多个计算机配置环境,并重新分割,重新组合,已达到最大化合理利用物理资源的目的

虚拟化优势

虚拟化可以提高IT敏捷性,灵活性和可扩展性,同时大幅节约成本。更高的工作负载移动性,更高的性能和资源可用性,自动化运维这些都是虚拟化的优势,虚拟化技术可以使it部门更加轻松的进行管理以及降低拥有成本和运维成本,其优势很多;例如可以实现:
1资源超分,如物理内存128G可以给虚拟机分配200G内存
2.降低资金成本和运维成本
3.最大限度减少和消除停机
4.提高IT部门的工作效率,效益,敏捷性和响应能力
5.加快应用和资源的调配速度
6.提高业务连续性和灾难恢复能力
7.简化数据中心管理
8.减少端口冲突

虚拟机是什么

虚拟计算机称为“虚拟机”(VM,Virtual Machine),它是一种严密隔离且内含操作系统和应用的软件容器。每个虚拟机都是完全独立的。通过将多台虚拟机放置在一台物理计算机上,可仅在一台物理服务器或“主机”上运行多个操作系统和应用,名为“hypervisor”的精简软件层可将虚拟机与主机分离开来,并根据需要为每个虚拟机动态分配计算资源。

接下来我们了解一下KVM技术

KVM是开源软件,可运行多个未修改的linux和windows映像的虚拟机

kvm架构
kvm是基于虚拟花扩展的X86硬件开源的linux原生的全虚拟化解决方案,虚拟机被实现为常规的linux进程,由标准linux调度程序进行调度;虚拟机的每个虚拟CPU被实现为一个常规的linux进程。这使得kvm能够使用linux内核已有功能

但是。kvm本身不能执行任何硬件模拟,需要客户空间程序用过/dev/kvm接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的I/O,并向他的视频显示映射回宿主的显示屏。目前这个应用程序是QEMU
接下来我们介绍一下kvm的功能

1支持CPU和memory超分
2.支持半虚拟化I/O
3.支持热插拔
4.支持对称多处理
5.支持实时迁移
6.支持PCI设备直接分配和单根I/O虚拟化
7.支持内核同页合并
8.支持NUMA

kvm的局限性

CPU overcommit:过载使用,性能下降
时间记录难以精确,依赖于时间同步机制,如NTP
VM量特别大时,MAC地址存在冲突的可能性
实时迁移:共享存储,CPU架构,版本等
性能局限性

如何实现基于kvm的虚拟化安装

我是在vmware上使用虚拟机作为宿主机实现安装虚拟机

因为kvm需要宿主机CPU支持虚拟化功能,因为要在虚拟机配置界面的处理器选项中开启虚拟化功能

在这里插入图片描述

#接下来需要安装相关包文件,其中libvirt必须安装,它是使用最多的KVM虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机,libvirt是KVM通用的访问API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、virtualBox等虚拟化方案。
[root@localhost ~]# yum -y install qemu-kvm libvirt   virt-manager virt-install virt-viewer
[root@localhost ~]# systemctl start --now libvirtd
[root@localhost ~]# ss -ntlu
Netid       State      Recv-Q        Send-Q          Local Address:Port         Peer Address:Port     
udp         UNCONN     0             0               192.168.122.1:53                0.0.0.0:*       
udp         UNCONN     0             0               127.0.0.53%lo:53                0.0.0.0:*       
udp         UNCONN     0             0              0.0.0.0%virbr0:67                0.0.0.0:*       
udp         UNCONN     0             0                     0.0.0.0:111               0.0.0.0:*       
udp         UNCONN     0             0                     0.0.0.0:5355              0.0.0.0:*       
udp         UNCONN     0             0                        [::]:111                  [::]:*       
udp         UNCONN     0             0                        [::]:5355                 [::]:*       
tcp         LISTEN     0             128                   0.0.0.0:111               0.0.0.0:*       
tcp         LISTEN     0             32              192.168.122.1:53                0.0.0.0:*       
tcp         LISTEN     0             128                   0.0.0.0:22                0.0.0.0:*       
tcp         LISTEN     0             128                   0.0.0.0:5355              0.0.0.0:*       
tcp         LISTEN     0             128                      [::]:111                  [::]:*       
tcp         LISTEN     0             128                      [::]:22                   [::]:*       
tcp         LISTEN     0             128                      [::]:5355                 [::]:*    
#生成新的虚拟网卡
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:15:e4:3d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe15:e43d/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:96:cd:5c brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:96:cd:5c brd ff:ff:ff:ff:ff:ff
#virbr0为网桥设备  virbr0-nic为生成的虚拟网卡,充当虚拟机的nat网卡   
#将需要安装系统的iso文件上传到宿主机即10.0.0.8主机
[root@localhost ~]# mkdir /data/isos
[root@localhost ~]# ls /data/isos/
CentOS-7-x86_64-Minimal-2003.iso    cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso
CentOS-8.2.2004-x86_64-minimal.iso

#打开Windows中的xmanager-Passive
[root@localhost ~]# export DISPLAY=10.0.0.1:0.0
[root@localhost ~]# virt-manager
[root@localhost ~]# MESA-LOADER: failed to open swrast (search paths /usr/lib64/dri)
libGL error: failed to load driver: swrast
#弹出图形化窗口,接下来我们就可以进行手动安装虚拟机了,过程略

也可以通过命令行工具实现安装

#virt-install属于交互式命令,可以批量式创建管理虚拟机
#qemu-img create 一定要确认对应路径下没有此文件,如果存在将覆盖原文件
[root@localhost ~]# virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 --cdrom=/data/isos/CentOS-7-x86_64-Minimal-2003.iso --disk path=/var/lib/libvirt/images/centos7.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-variant=centos7.0

Starting install...
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.
#使用光盘启动之后使用图形化工具virt-manager手动安装
[root@localhost ~]# export DISPLAY=10.0.0.1:0.0
[root@localhost ~]# virt-manager 
[root@localhost ~]# MESA-LOADER: failed to open swrast (search paths /usr/lib64/dri)
libGL error: failed to load driver: swrast
#安装过程略
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚拟化KVM 的相关文章

  • kvm虚拟机利用virsh查看ip

    1 virsh dumpxml win7 grep mac 查看win7虚拟机mac 2 arp a 显示mac与ip对应关系 示例 xff1a root 64 localhost virsh dumpxml ubuntu yusen gr
  • 服务器配置虚拟kvm功能,服务器 配置虚拟kvm功能

    服务器 配置虚拟kvm功能 内容精选 换一换 使用外部镜像文件创建私有镜像时 xff0c 以上相关步骤操作需要在虚拟机内部完成 xff0c 强烈建议您在原平台的虚拟机实施修改后 xff0c 再导出镜像 使用Windows外部镜像文件创建私有
  • kvm的快照功能 (二、基于libvirt的快照)

    实例二 利用libvirt使用快照 virsh snapshot create domain name 一 创建虚机快照 名字自动生成 可在开机 关机 suspend等各种状态下做 virsh snapshot create test Do
  • ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

    设备直通是一种虚拟化资源分配方式 通过将物理设备直通给虚拟机环境 达到虚拟机可以直接访问物理设备的目的 直通功能对设备的要求不高 不需要设备支持PF VF 目前市面上的显卡 网卡一般都支持直通 典型场景比如有两块显卡 一块主机用 另一块虚拟
  • 23 KVM管理虚拟机-使用VNC密码登录虚拟机

    文章目录 23 KVM管理虚拟机 使用VNC密码登录虚拟机 23 1 概述 23 2 前提条件 23 3 操作步骤 23 KVM管理虚拟机 使用VNC密码登录虚拟机 本章介绍使用VNC密码登录虚拟机的方法 23 1 概述 当虚拟机操作系统安
  • 如何在 Ubuntu 18.04 上安装 Kvm

    KVM 基于内核的虚拟机 是内置于 Linux 内核中的开源虚拟化技术 它允许您运行多个基于 Linux 或 Windows 的隔离来宾虚拟机 每个来宾都有自己的操作系统和专用虚拟硬件 例如 CPU 内存 网络接口和存储 本指南介绍如何在
  • 关于对cpu的理解和kvm虚拟机到物理cpu的绑定

    这段时间一直在想 云计算除了虚拟化之外 还应该有其它的东西 那就是优化 因为我们虚拟出来资源之后怎么用 怎么划分 是并行也好 是租给用户使用也好 都要实现资源调度和使用的最优化 嗯 这是这段时间关于云计算的想法 下面分享一下最近两天做的一些
  • Proxmox VE(PVE) 进行网卡直通

    文章目录 我的设备 介绍 添加CPU支持 开启iommu 查询网卡信息 Intel CPU AMD CPU 新增所需模块 添加PCI设备 命令模式添加 web页面模式添加 验证IOMMU有效 IOMMU中断重映射 查看中断重映射 启用中断重
  • 虚拟化KVM

    什么是虚拟化 在计算机技术中 虚拟化是一种资源管理技术 是将计算机的各种实体资源 CPU 内存 磁盘空间 网络适配器等 予以抽象 转换后呈现出来并可供分割 组合为一个或多个计算机配置环境 并重新分割 重新组合 已达到最大化合理利用物理资源的
  • 33 KVM管理设备-配置虚拟机PCIe控制器

    文章目录 33 KVM管理设备 配置虚拟机PCIe控制器 33 1 概述 33 2 配置PCIe Root PCIe Root Port和PCIe PCI Bridge 33 2 1 简化配置方法 33 2 1完整配制方法 33 KVM管理
  • 使用VMware完成KVM虚拟化实验并运行Centos

    本次实验在VMware中的Ubuntu18内安装KVM并运行centos 首先 在VMware下开启虚拟化 更新软件索引 apt get update 安装依赖 apt get install qemu kvm qemu virt mana
  • KVM和QEMU

    原文地址 KVM和QEMU 作者 embeddedlwp 目录 1 硬件虚拟化技术背景 2 KVM的内部实现概述 2 1 KVM的抽象对象 2 2 KVM的vcpu 2 3 KVM的IO虚拟化 2 3 1 IO的虚拟化 2 3 2 Virt
  • kvm-ovirt-vdsm安装记录

    小技巧 1 fedaro 19自动查找最快yum源 yum install yum fastestmirror 2 libvirt启动sasl添加用户 saslpasswd2 c a libvirt admin 3 查看kvm模块 lsmo
  • KVM源代码分析1:基本工作原理

    http www oenhan com kvm src 1 13年的时候准备挖 KVM源代码分析 的坑 陆陆续续2年过去了 坑也没有填上 当时是因为对KVM了解的肤浅 真正的理解必然要深入到代码级别 所谓 摈弃皮毛 看到血肉 看到真相 当时
  • 是否可以在 Azure 上运行 KVM

    Azure Fabric 似乎运行在 Hyper V 的定制版本上 是否可以在 Azure 上运行 KVM 虚拟化实例 使用嵌套虚拟化 我有一个基于 Debian 的自定义 VHD 比如说 根据本文档https learn microsof
  • KVM/桥接器:没有到主机的路由

    我已经在 Fedora 17 上使用 KVM 设置了虚拟机 并为 KVM 配置了桥接网络 主机和虚拟机均采用手动IP配置 主机IP为192 168 0 2 虚拟机IP为192 168 0 10 从虚拟机我可以毫无问题地连接到主机 但从主机我
  • 当 KVM-QEMU 打开时,Intel-PT 不记录任何数据包

    我尝试在主机上使用 Intel PT 同时在客户机上运行通用软件程序 所以我期望主机中运行的 Intel PT 将记录所有相关数据包 如 PIP FUP TSC 等 以及所有基于 VM 的数据包 如 VMCS 我使用以下命令 perf kv
  • Android Studio:/dev/kvm 设备权限被拒绝

    当我尝试在模拟器上运行 Android 应用程序时 出现以下错误 dev kvm 权限被拒绝 我检查了权限并将当前登录的用户添加到 kvm 组中 怎么了 正如评论中提到的 从乌班图18 04 and Linux 薄荷塔拉你需要先sudo a
  • update-alternatives:错误:arptables 的替代 /usr/sbin/arptables-legacy 未注册;不设置

    我在 Buster 主机上有 Debian 10 Buster KVM 来宾计算机 尝试切换到旧版iptables在以下虚拟机上Debian 维基 https wiki debian org iptables update alternat
  • qemu kvm:如何获取性能监控中断?

    我在操作系统内核中编写了一些函数 以便在指令计数器溢出时发出性能监控中断 PMI 它在我的机器 Intel core i5 上运行良好 但是当我使用 qemu 在 qemu 上运行它时 qemu system x86 64 enable k

随机推荐

  • DCDC降压电路学习记录

    一 输出建立过程分析 BUCK电路的基本原理就不说了 首先来分析一个BUCK电路它到输出电压稳定这个过程是如何建立起来的 假设输入电压15V输出电压5V 达到稳态时的电流为3A 它的基本电路如图所示 当输入端上电 控制电路就工作起来 MOS
  • C++ auto关键字

    文章目录 C 98 auto C 11 auto auto的用法 注意事项 C 98 auto 早在C 98标准中就存在了auto关键字 那时的auto用于声明变量为自动变量 自动变量意为拥有自动的生命期 这是多余的 因为就算不使用auto
  • Qt 实现关闭窗口触发事件

    目录 Qt 实现关闭窗口触发事件 QT中窗口关闭自动销毁 参考 Qt保存MainWindow的窗口布局 并在再次打开时显示 https blog csdn net qq 39417283 article details 114024286
  • GitHub中公私钥的配置

    一 生成新 SSH 密钥 1 打开 git 的命令行窗口 即 Git Bash 2 粘贴下面的文本 替换为你的 GitHub 电子邮件地址 GitHub 中生成新的 SSH 密钥 ssh keygen t ed25519 C your em
  • ActiveMQ发布-订阅消息模式

    ActiveMQ发布 订阅消息模式 一 订阅杂志 二 发布 订阅消息模式 一 订阅杂志 我们很多人都订过杂志 其过程很简单 只要告诉邮局我们所要订的杂志名 投递的地址 付了钱就OK 出版社定期会将出版的杂志交给邮局 邮局会根据订阅的列表 将
  • 面试官:说说 git 发生冲突的场景?如何解决?​

    一 是什么 一般情况下 出现冲突的场景有如下 多个分支代码合并到一个分支时 多个分支向同一个远端分支推送 具体情况就是 多个分支修改了同一个文件 任何地方 或者多个分支修改了同一个文件的名称 如果两个分支中分别修改了不同文件中的部分 是不会
  • vue3 elementui el-table滚动到指定位置

    vue3 elementui el table滚动到指定位置 nextTick gt setTimeout gt let dom document querySelector el drawer body reTable value scr
  • 安卓移动应用开发之从零开始写程序5

    实验5 多界面程序的创建 案例1 QQ登陆界面的跳转 实现最终效果图如下 当我们点击登陆按钮 界面跳转到登陆成功界面 账号密码的判断暂时不写 并显示我们输入的账号和密码 如图 当我们点击返回按钮则返回初始界面 实验知识点 1 基本控件和布局
  • unity-Fatal Error GC-GetThreadContext Failed

    这几次在使用unity5 3打windows包后 运行x exe不久总是会弹出 fatal error GC GetThreadContext Failed 的错误 到网上查了 各种说法都有 我干脆换了unity5 6版本 但是问题依然存在
  • java.lang.NumberFormatException: Invalid int: “0 “

    关于 今天在接手前人模块开发的时候 测试一个数据列表点击跳转详细页面的时候奔溃了 控制台 主要出现的错误提示是这句 java lang NumberFormatException Invalid int 0 问题原因转换了特殊字符 空格 等
  • 常用的python 命令

    安装依赖的命令 venv虚拟环境 下载依赖包 创建虚拟环境 python m venv lt 虚拟环境名称 gt python m venv venv 创建名为venv的虚拟环境 激活虚拟环境 source venv bin activat
  • IPO向上,大模型向下:中国企服寻找新「出口」

    2023年 资本市场给企服行业带来的动荡 无疑是一次洗牌机会 只有当SaaS企业深耕产业侧 才能找到实现标准化的解法 才能在一波又一波的浪潮下抓住机遇 作者 思杭 编辑 皮爷 出品 产业家 2023上半年 企服行业在二级市场表现得尤为热闹
  • Mac latex vscode配置外部PDF阅读器并配置对应跳转

    1 下载并安装Skim 下载链接 https sourceforge net projects skim app 2 配置skim touch displayfile txt open displayfile txt 在文本中写入 bin
  • Unity Animation从UAS获取动画资产到编制状态机控制简单的人物动画

    Animation 动画 0 前言 这个笔记用于讨论在Unity中开发游戏时使用动画的相关知识 这个笔记最终期望能够达到 在Unity的Demo中展现一个人物 其能够进行类似挥拳 开门的具体动作 我将这个任务进一步的划分 第一阶段 获得动画
  • 环形内存circular_buffer

    boost中支持环形内存 该内存在一些地方还是蛮实用的 简单看下具体使用及部分源码 使用和源码相对来说都还是比较简单 易于理解的 与STL接口基本一致 void CCircularBufferTest TestCircularBuffer
  • 双向链表和循环双向链表的基本操作

    双向链表和循环双向链表的基本操作 include
  • Libevent库的介绍与应用

    Libevent库 Libevent概述 Libevent使用模型 Libevent库使用示例 Libevent事件类型和框架结构 使用Libevent完成tcp服务端 Libevent概述 Libevent是开源社区的一款高性能的I O框
  • VS远程连接调试Linux程序 ,vs找不到Linux头文件的解决办法

    使用VS编写Linux程序 可以将VS连接到Linux上 却出现了VS IDE中找不到 include
  • 小程序逆向工程:这个开源的小程序逆向工具真不错,2023年亲测成功

    前言 安全部门的大哥又双叒叕报了一个小程序的高危漏洞 他使用逆向工程破解了加密信心 用抓包修改了请求参数 又是头疼的一天 想成为一名微信小程序的开发者 前端思路的学习和安全意识是非常有必要的 故务必掌握小程序反编译技能 这里用到了2个工具
  • 虚拟化KVM

    什么是虚拟化 在计算机技术中 虚拟化是一种资源管理技术 是将计算机的各种实体资源 CPU 内存 磁盘空间 网络适配器等 予以抽象 转换后呈现出来并可供分割 组合为一个或多个计算机配置环境 并重新分割 重新组合 已达到最大化合理利用物理资源的