
KVM
wozaiyizhideng
这个作者很懒,什么都没留下…
展开
-
KVM network vlan
[root@localhost ~]# [root@localhost ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.2.5.181 netmask 255.255.255.0 broadcast 10.2.5.255 inet6 fe80::5054:ff:fe98:e17e prefixlen 64 scope...原创 2021-07-28 10:45:30 · 592 阅读 · 0 评论 -
kvm ovs test setting
Avocado ovs(openvswitch) 测试:物理机的一些配置编辑此区域1. 安装包apt install openvswitch-switch编辑此区域2.加载 openvswitch 模块lsmod | grep openvswicthmodprobe openvswitchovs-vsctl show编辑此区域3. 创建 ovs bridge,并设置为 NAT 模式ovs-vsctl add-br virbr0ifconfig virbr0 192...原创 2021-07-28 10:34:40 · 433 阅读 · 0 评论 -
kvm zero-copy
[root@localhost ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.2.5.181 netmask 255.255.255.0 broadcast 10.2.5.255 inet6 fe80::5054:ff:fe98:e17e prefixlen 64 scopeid 0x20<link> ...原创 2021-07-28 10:27:30 · 590 阅读 · 0 评论 -
KVM网络配置(六)—— 内核态的 vhost-net 后端
内核态的 vhost-net 后端前面提到的 virtio 在 host 中的后端处理程序(backend)一般是由用户空间的 QEMU 提供的,然而,如果对于网路 I/O 请求的后端处理能够在内核空间完成,则效率会更高,能提高网络吞吐量和减少网络延迟。vhost-net 内核驱动模块,将 virtio-net 的后端处理任务放到内核空间中执行,从而提高效率。网卡多队列当虚拟机中的 virtio-net 网卡只有一个队列时,该网卡的中断只能集中由一个 CPU 来处理;当开启网卡多队列时,在 ...原创 2021-06-28 19:31:49 · 964 阅读 · 0 评论 -
KVM 半虚拟化驱动 —— virtio
基本原理:使用QEMU模拟I/O的情况下,当客户机中的设备驱动程序(device driver)发起I/O操作请求之时,KVM模块中的I/O操作捕获代码会拦截这次I/O请求,然后经过处理后将本次I/O请求的信息存放到I/O共享页,并通知用户控件的QEMU程序。QEMU模拟程序获得I/O操作的具体信息之后,交由硬件模拟代码来模拟出本次的I/O操作,完成之后,将结果放回到I/O共享页,并通知KVM模块中的I/O操作捕获代码。最后,由KVM模块中的捕获代码读取I/O共享页中的操作结果,并把结果返回到客户...原创 2021-06-28 19:16:43 · 432 阅读 · 0 评论 -
KVM网络配置(五)—— QEMU 内部的用户模式网络
简介在启动虚拟机时,如果没有任何“-net”参数,QEMU 默认使用的是“-net nic -net user”的参数,QEMU 提供一种用户模式(user-mode)的网络模拟。使用该模式的网络的虚拟机可以连接物理机以及外部网络。用户模式网络完全由 QEMU 自身实现,不依赖于其他的工具(如 bridge-utils、iptables等)。QEMU模拟实现整个TCP/IP协议栈,并且使用此协议栈提供一个虚拟的NAT网络。优缺点简单、独立性好、无需 root 权限、虚拟机网络隔离网络性能差原创 2021-05-21 12:11:19 · 2617 阅读 · 0 评论 -
KVM网络配置(四)—— 使用Libvirt NAT 网络
简介libvirt是提供了一个方便的方式来管理虚拟机和其他虚拟化功能的软件的集合,如存储和网络接口管理。这些软件包括一个API库,一个守护进程(libvirtd),和一个命令行实用程序(virsh)。libvirt的首要目标是能够管理多个不同的虚拟化供应商/虚拟机管理程序提供一个单一的方式。例如,命令“virsh列表等等都可以用于任何支持现有的虚拟机管理程序列表(KVM、Xen、VMware ESX,等)不需要学习管理程序特定的工具!安装[root@localhost ~]...原创 2021-05-20 20:55:56 · 1242 阅读 · 0 评论 -
KVM网络配置(三)—— 使用网桥NAT模式
NAT原创 2021-05-20 20:39:03 · 1373 阅读 · 0 评论 -
KVM网络配置(二)—— 桥接(bridge)模式
简介在 QEMU/KVM 的网络使用中,桥接模式可以让虚拟机需物理机共享一个物理网络设备连接外部网络,虚拟机有自己独立的 IP 地址,可以访问外部网络,外部网络也可以访问虚拟机。优缺点:使用桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话,那桥接模式就不太适用了桥接模式网络配置步骤1. 安装 bridge-utils 软件包,它提供 brctl 工具来配置网桥yum install bridge-utils2. 加载 tun 和 bridge...原创 2021-05-18 20:48:15 · 14428 阅读 · 23 评论 -
KVM网络配置(一)—— qemu命令行网络相关参数详解
QEMU 支持的网卡类型QEMU 提供了对一系列主流和兼容性良好的网卡的模型,通过 “-net nic,model=?” 参数可以查询到当前的 QEMU 工具实现了哪些网卡的模拟。如下:[root@localhost ~]# /usr/libexec/qemu-kvm --versionQEMU emulator version 2.12.0 (qemu-kvm-ev-2.12.0-44.1.el7_8.1)Copyright (c) 2003-2017 Fabrice Bellar...原创 2021-05-18 20:46:36 · 3608 阅读 · 1 评论 -
KVM内存管理(九)—— hotplug
简介内存的热插拔分为两个步骤:物理内存热插拔和逻辑内存热插拔。物理内存热插拔: 对物理的内存条插拔的支持。逻辑内存热插拔: 物理内存作为内核内存管理系统可以使用的资源,被动态地加入或踢出地支持。内存的热插拔地过程: 物理内存热插入 -> 逻辑内存热添加 -> 逻辑内存热删除 -> 物理内存热拔出物理内存热插拔的支持,主要依赖于ACPI地功能。逻辑内存热插拔的支持,需要内核支持,kernel的启动参数添加 movable_nodeQEMU/KVM 内存热插拔QEMU/原创 2021-04-26 20:57:04 · 708 阅读 · 0 评论 -
KVM内存管理(八)—— NUMA
简介NUMA(Non-Uniform Memory Access,非统一内存访问架构)是相对于 UMA(Uniform Memory Access)而言的。早年的计算机架构都是 UMA,如图。所有的 CPU 处理单元(Processor)均匀地通过共享地总线访问内存,所有 CPU 访问所有内存单元地速度是一样的。在多处理器的情况下,多个任务会被分派到各个处理器上并发执行,它们竞争内存资源的情况会非常频繁,从而引起效率的下降。所以,随着多处理器架构的普及,处理器数量的增长,NUMA架构兴起,.原创 2021-04-20 21:02:13 · 976 阅读 · 0 评论 -
KVM内存管理(七)—— 内存页/大页/透明大页 Stream 数据对比
内存页,关闭透明大页[root@localhost stream]# ./stream.1core.40M.20x.gcc-------------------------------------------------------------STREAM version $Revision: 5.10 $-------------------------------------------------------------This system uses 8 bytes per...原创 2021-04-20 15:27:01 · 651 阅读 · 0 评论 -
KVM内存管理(六)—— transparent hugepage
[root@localhost ~]# cat /proc/4800/smaps | grep -e "AnonHugePages"AnonHugePages: 6144 kB AnonHugePages: 2048 kB AnonHugePages: 2048 kB AnonHugePages: 4096 kBAnonHugePages: 1335296 kB[root@localhost ~]# [root@localhost...原创 2021-04-20 15:15:42 · 745 阅读 · 0 评论 -
KVM内存管理(五)—— hugepage
[root@localhost stream]# [root@localhost stream]# free -h total used free shared buff/cache availableMem: 7.8G 411M 6.4G 48M 1.0G 7.1GSwap: 7.9G ...原创 2021-04-19 16:49:11 · 1214 阅读 · 0 评论 -
KVM内存管理(四)—— balloon
[root@localhost ~]# telnet localhost 3333Trying ::1...Connected to localhost.Escape character is '^]'.QEMU 2.12.0 monitor - type 'help' for more information(qemu) (qemu) info balloonballoon: actual=2048(qemu) balloon 1024(qemu) info b...转载 2021-04-15 17:43:43 · 1810 阅读 · 0 评论 -
KVM内存管理(三)—— KSM操作实践
简介:cow:copy on write,也就是写时复制。这是一种内存共享技术,在linux中当使用fork 函数创建一个进程时,子进程和父进程共享全部的内存,当这片共享的内存区域被进程试图修改的时候,内核会分配一块新的内存区域,并将被试图修改的共享内存区域复制到新的内存区域上,然后再让进程去修改内存区域。ksm:kernel SamePage Merging。 ksm让内核扫描正在运行中的所有程序,并比较它们的内存,如果发现它们的内存页有相同的,那么就把它们相同的内存页合并为一个内...原创 2021-04-14 10:35:56 · 2472 阅读 · 0 评论 -
KVM内存管理(一)—— 设置基本参数
内存(Memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。内存的运行也决定计算机整体运行快慢的程度。内存设置基本参数通过qemu命令行启动虚拟机时设置内存大小的参数如下:-m [size=]me.原创 2021-04-10 16:15:21 · 1202 阅读 · 0 评论 -
KVM内存管理(二)—— KSM简介
转载:https://blog.51cto.com/linzb/1883395简介:cow:copy on write,也就是写时复制。这是一种内存共享技术,在linux中当使用fork 函数创建一个进程时,子进程和父进程共享全部的内存,当这片共享的内存区域被进程试图修改的时候,内核会分配一块新的内存区域,并将被试图修改的共享内存区域复制到新的内存区域上,然后再让进程去修改内存区域。ksm:kernel SamePage Merging。 ksm让内核扫描正在运行中的所有程...原创 2021-04-10 16:22:35 · 2676 阅读 · 0 评论