
KVM
文章平均质量分 71
llwszjj
这个作者很懒,什么都没留下…
展开
-
初识kvm虚拟化
什么是虚拟化虚拟化是资源的逻辑表示,不会受物理限制的约束。运行环境不是在真实的服务器上,而是虚拟的环境中。虚拟化是以某种用户和应用程序都可以容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示的。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。(概念有点类似于云计算,这也就表明了为什转载 2015-03-20 16:30:25 · 3549 阅读 · 0 评论 -
qemu-kvm虚拟机live迁移源代码解读
首先,使用kvm正常打开一个虚拟机:sudo kvm ./xp1.qcow2然后,再使用kvm命令打开同一个虚拟机。使用如下命令:sudo kvm ./xp1.qcow2 -incoming tcp:0.0.0.0:11111读者可能会说,两台虚拟机同时使用同一个image,会造成image数据的丢失,可能会彻底破坏整个虚拟硬盘的数据完整性,从而造成数据丢失,甚至操作系统都转载 2015-04-01 13:27:28 · 2991 阅读 · 0 评论 -
卸载qemu-kvm
由于通过源码安装的qemu没有办法通过系统工具进行卸载,也没有办法通过make uninstall方法卸载,所以只能通过删除文件的方式进行卸载。qemu可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/libexec,配置文件默认放在/usr/local/etc,共享文件默认放在/usr/local/etc/share。要卸载源码编译的qemu,需要到这四个目原创 2015-04-10 14:46:12 · 5219 阅读 · 1 评论 -
一张图带你了解虚拟机在线迁移技术
原创 2015-04-13 19:10:04 · 1285 阅读 · 0 评论 -
单独编译kvm模块
背景:最近在做一个虚拟机安全的项目,使用KVM来支撑虚拟化,涉及到KVM和QEMU的代码修改。由于KVM可以以模块的方式加载到内核中,可以单独编译KVM模块,而不必每次重新编译内核(鉴于编译内核所耗的时间,如果每次改动KVM都要重新编译一次内核,估计等项目做完,头发也等白了)参考:http://blog.chinaunix.net/uid-23390992-id-3300514.html转载 2015-04-08 19:50:05 · 2038 阅读 · 0 评论 -
Libvirt migration
Guest migrationNetwork data transportsHypervisor native transportlibvirt tunnelled transportCommunication control paths/flowsManaged direct migrationManaged peer to peer migrationUnmanag转载 2015-04-17 15:15:01 · 1501 阅读 · 0 评论 -
libvirt 问题解决记录集(更新中)
本篇记录在使用libvirt的时候遇到的一些情况,即解决方法.出现Permission denied123[root@localhost vm]# virsh start centoserror: Failed to start domain centoserror: internal error process exited w转载 2015-05-20 13:21:18 · 2852 阅读 · 0 评论 -
查看virsh管理qemu虚拟机日志信息和libvirtd日志信息
在软件的开发和运行过程中,程序的运行日志log是不能少的。我们可以从log中发现程序的运行状态,以及可能出先的一些error.通常运行日志log上有时间、信息级别(level)、消息输出(message)。通过分析日志,我们可以从中获得程序的运行信息,方便我们的调试、恢复等.在libvirt程序管理VM虚拟机时,也会有日志的记录.既有libvirtd的后台程序的日志,也有vm日志.接下来,转载 2015-05-20 13:23:20 · 10203 阅读 · 0 评论 -
Kvm动态迁移,qemu命令而非virsh
Kvm动态迁移动态迁移的效率和应用场景:虚拟机迁移主要增强了系统的可维护性,其主要目标就是在客户机没有感觉的情况下,将客户机,迁移到另一个物理机器上,从而保证了服务器正常使用。可以从如下几个方面来衡量虚拟机迁移的效率:1)整体迁移时间:从源主机中迁移操作开始到目的主机上客户机服务处于不可用状态的时间,此时源主机上客户机已经暂停服务,目的主机上的客户机还未恢复服务2)原创 2015-05-20 13:19:34 · 1586 阅读 · 0 评论 -
virsh使用qemu+tcp访问远程libvirtd
因为ssh的不能访问 所以使用tcp进行对远程libvirtd进行连接访问,例如virsh -c qemu+tcp://example.com/system修改文件vim /etc/sysconfig/libvirtd,用来启用tcp的端口123LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf转载 2015-05-20 13:23:53 · 920 阅读 · 0 评论 -
kvm官方文档
kvm官方文档http://www.linux-kvm.org/page/HOWTO原创 2015-05-20 13:36:46 · 4527 阅读 · 0 评论 -
qemu-kvm-1.1.0源码中关于迁移的代码分析
这篇文档基于qemu-kvm-1.1.0源码进行分析。首先,源码中的hmp-commands.hx文件中有以下内容:[html] view plaincopy{ .name = "migrate",/* 在monitor命令行中所使用的命令名称 */ .args_ty转载 2015-04-03 16:10:03 · 1337 阅读 · 0 评论 -
virsh命令行管理工具
virsh命令行管理工具 Libvirt有两种控制方式,命令行和图形界面图形界面:通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚拟机,还可以直接控制虚拟机的桌面。 命令行:virsh list转载 2015-03-24 13:01:47 · 978 阅读 · 0 评论 -
KVM 动态迁移问题集锦
本文主要以解决问题的方式介绍KVM(在线)迁移虚拟机的方法,可能内容包含的不是很全面,这些只是我在实验的时候遇到的问题(我操作之前是裸环境,一步一步debug到成功,如果按照下述方法,基本不会出太大差错),当然如果遇到的问题没有被包含可以留言回复或加入QQ群:93146027。。。之前一直以为KVM虚拟机迁移需要共享存储,虚拟机的镜像放到共享存储中,迁移的过程相当于启动一个监听虚拟机,将内转载 2015-03-24 16:56:46 · 1241 阅读 · 0 评论 -
qemu核心-动态翻译器
为了更容易理解动态翻译技术,我们暂时忽略掉qemu的其他模块,如用户交互模块,硬件模拟等模块,而是从数据结构的设计,数据结构之间的操作及其应用等方面来进行详细地分析,重点关注动态翻译器和微操作库(micro-ops library)的原理,至于细节的东西可以放在以后去深入分析。 qemu利用了一种可移植的动态代码翻译器以快速地完成客户代码的仿真。qemu本身并不能识别它主机体系结构的转载 2015-03-20 17:21:27 · 1554 阅读 · 0 评论 -
qemu-dyngen动态翻译技术
由于刚刚接触qemu,所以前面几篇文章仅仅是肤浅的介绍qemu的一些背景知识,今天突然感觉前面说的太没有条理了,而且大部分是读别人的文章,一知半解,没有自己的总结体会,今天感觉稍微有点心得,敬请指教。1. 明确guest和host对于qemu而言,被仿真的平台成为guest或者说target;很明显,运行qemu的平台就称为host。2. 了解qemu动态翻译技术的发展转载 2015-03-20 17:32:24 · 739 阅读 · 0 评论 -
qemu动态翻译续
从QEMU-0.10.0开始,TCG成为QEMU新的翻译引擎,使QEMU不再依赖于GCC3.X版本,并且做到了“真正”的动态翻译(从某种意义上说,旧版本是从编译后的目标文件中复制二进制指令)。TCG的全称为“Tiny Code Generator”,QEMU的作者Fabrice Bellard在TCG的说明文件中写到,TCG起源于一个C编译器后端,后来被简化为QEMU的动态代码生成器(Fabr转载 2015-03-20 17:22:59 · 910 阅读 · 0 评论 -
qemu-TCG动态翻译技术
1. TCG简单介绍 TCG(Tiny Code Generator)最早被用于C编译器的后端。在TCG相关的代码中,target指的是我们通常说的host,这一点需要注意,并不是我们理解的被仿真的平台。2. TCG动态翻译技术的几个概念(1)与dyngen一样,TCG的“function”与qemu的TBs(Translated Block)相对应,即以分支跳转指令结转载 2015-03-20 17:36:35 · 2009 阅读 · 0 评论 -
初识qemu
1 qemu概述qemu是一种快速的多体系结构仿真器,通过动态翻译的技术达到了优异的仿真速度。目前,qemu支持两种操作模式:全系统仿真模式。在这种模式下,qemu完整的仿真目标平台,此时,qemu就相当于一台完整的pc机,例如包括一个或多个处理器以及各种外围设备。这种模式可以用来运行不同的操作系统或调试操作系统的代码。用户态仿真模式。在这种模式下,qemu能够运行不同于主转载 2015-03-20 17:11:47 · 2182 阅读 · 0 评论 -
qemu源码分析之Makefile
通过分析qemu的Makefile可以了解qemu代码的组织方式以及qemu功能模块的划分,一方面,有助于理解qemu源代码设计思路,另一方面,有助于根据需求裁剪qemu代码,生成精简的符合制定要求的qemu。 为了更好的理解qemu的Makefile的设计,对于不熟悉makefile语法规则的同学建议阅读下面两篇文章: 1. 《Makefile常用函数分析》 2.转载 2015-03-20 18:32:14 · 939 阅读 · 0 评论 -
KVM 的预拷贝在线迁移过程
对于 VM 的内存状态的迁移,XEN 和 KVM 都采用了主流的的预拷贝(pre-copy)的策略。迁移开始之后,源主机 VM 仍在运行,目的主机 VM 尚未启动。迁移通过一个循环,将源主机 VM 的内存数据发送至目的主机 VM。循环第一轮发送所有内存页数据,接下来的每一轮循环发送上一轮预拷贝过程中被 VM 写过的脏页内存 dirty pages。直到时机成熟,预拷贝循环结束,进入停机拷贝阶段,源转载 2015-04-02 11:42:19 · 3008 阅读 · 0 评论 -
libvirt(virsh命令介绍)
有了virt-install是安装虚拟机的命令,当然也需要一个管理虚拟机的命令了,那就是virsh。virsh命令使用 virsh [OPTIONS] virsh既有命令行模式,也有交互模式,在命令行直接输入virsh就进入交互模式,virsh 后面跟命令参数,则是命令行模式。下面主要介绍交互式用法。virsh 回车转载 2015-03-24 17:57:16 · 1717 阅读 · 0 评论 -
虚拟机活迁移揭秘
vmware是闭源的,因此无从知道它的活迁移究竟是怎么做的。但是KVM的功能比vmware并不少,也实现了活迁移。Vmware的活迁移应该在原理上和KVM相同吧。 vmware和kvm的虚拟机活迁移,都需要image保存在共享存储上,如SAN,NAS等共享硬件设备,Lustre,MogileFS,Ceph等分布式文件系统上。这样,活迁移只需要迁移内存和虚拟硬件设备寄转载 2015-04-02 14:27:11 · 2305 阅读 · 0 评论 -
使用 Virtual Machine Manager 管理虚拟机
尽管服务器管理在过去问题重重,但虚拟化管理简化了一些问题,却放大了另一些问题。一个服务器上的单一操作系统的时代已成过去,并由多个位于各自的虚拟机 (VM) 容器中的操作系统所取代。此属性(称为虚拟机密度)很有用,因为随着越来越多的虚拟机占用了更少数量的服务器,所需要的服务器硬件更少了。这带来了更少的硬件、更低的功耗,但却增加了管理复杂性。所幸,已有解决方案来减轻服务器虚拟化带来的问题,其中转载 2015-03-24 14:05:57 · 1018 阅读 · 0 评论 -
qemu-kvm中断分析
硬件中断发生(qemu模拟设备)1.硬件产生中断的接口void qemu_set_irq(qemu_irq irq, int level);2.中断过程void qemu_set_irq(qemu_irq irq, int level){ if (!irq) return; irq->handler(irq->opaque, irq转载 2015-07-17 11:43:06 · 3024 阅读 · 0 评论