关于KVM与XEN 虚拟机性能测试

关于KVM与XEN  虚拟机性能测试
关于KVM与XEN  虚拟机性能测试

关于KVM与XEN 虚拟机性能测试

KVM工作原理:

KVM是一个基于Linux内核的虚拟机,它属于完全虚拟化范畴,从Linux-2.6.20开始被包含在Linux内核中。KVM基于x86硬件虚拟化技术,它的运行要求Intel VT-x或AMD SVM 的支持。

一般认为,虚拟机监控的实现模型有两类:监控模型(Hypervisor)和宿主机模型(Host-based)。由于监控模型需要进行处理器调度,还需要实现各种驱动程序,以支撑运行其上的虚拟机,因此实现难度上一般要大于宿主机模型。KVM的实现采用宿主机模型(Host-based),由于KVM是集成在Linux内核中的,因此可以自然地使用Linux内核提供的内存管理、多处理器支持等功能,易于实现,而且还可以随着Linux内核的发展而发展。另外,目前KVM的所有I/O虚拟化工作是借助Qemu完成的,也显著地降低了实现的工作量。以上可以说是KVM的优势所在。

分析KVM中与Intel VT-x相关的实现,不考虑KVM中与AMD SVM相关的实现,因此有关术语的使用与Intel VT-x保持一致。

VT-x提供了一套称作VMX(Virtual Machine eXtension)的新的工作模式,工作在该模式下的处理器又具有两类操作模式:VMX root operation和VMX non-root operation。通常,虚拟机监控器运行在VMX root operation模式下,即所谓的特权级-1,客户操作系统运行在VMX non-root operation模式下。VMX non-root operation模式仍保留4个特权级,对操作系统来说,VMX non-root operation模式与传统的x86处理器兼容,最大的差别在于当虚拟机执行一些访问全局资源的指令时将导致虚拟机退出操作(VM exit),从而使虚拟机监控器获得控制权,以便对访问全局资源的指令进行模拟。以后,虚拟机监控器可以通过虚拟机进入操作(VM entry)使虚拟机重新获得控制权。

其次,VT-x为系统编程接口状态的切换提供硬件支持。VT-x为每个虚拟机维护至少一个VMCS(Virtual Machine Control Structure)结构,其中保存了虚拟机和虚拟机监控器的系统编程接口状态。当执行VM exit和VM entry操作时,VT-x自动根据VMCS中的内容完成虚拟机和虚拟机监控器间的系统编程接口状态切换。为系统编程接口状态的切换提供硬件支持是必要的,因为x86处理器的系统编程接口相比应用编程接口要复杂的多,且在不停的变

化,如较新的处理器可能增加一些MSR(Model Specific Register),这使得单独依靠软件来实现系统编程接口的保存和恢复工作变得十分复杂。另外,VT-x还提供了一组指令,使得虚拟机监控器通过一条指令就可以完成虚拟机间的切换。

VT-x解决了ring deprivileging方法的一系列问题,从硬件上堵住了所谓的x86平台的虚拟化漏洞。由于操作系统所在的VMX non-root operation模式仍具有4个特权级,使得ring aliasing问题不存在了。同时,由于SYSENTER和SYSEXIT指令所引起的

adverse impact on guest transitions问题也不存在了;由于VT-x在VM exit和VM entry时完成系统编程接口的切换,也就是说虚拟机和虚拟机监控器拥有各自的GDT,也就拥有了各自的地址空间,解决了address space compression问题。同时,虚拟机和虚拟机监控器拥有各自的GDTR/IDTR等寄存器,在虚拟机中访问这些寄存器无需陷入,解决了nonfaulting accessing to privileged state问题,再者,VMCS中保存了虚拟机的段描述符高速缓存,因此在虚拟机切换时不会出现access to hidden state问题;通过对VMCS进行设置,可以使处理器在VMX non-root operation模式时的EFLAGS.IF失效,即该标志位不再对中断屏蔽产生影响,因此操作系统对EFLAGS.IF的频繁操作不会导致频繁的VM exit,解决了interrupt virtualization的问题。

VT-x提供了完备的处理器虚拟化机制,利用VT-x可以在单个硬件平台上虚拟出任意数量的虚拟处理器VCPU。VT-x除了解决了处理器虚拟化的问题之外,还为内存虚拟化和I/O 虚拟化提供了支撑。在内存虚拟化方面,VT-x为影子页表的实现提供了支撑,并且在较新的处理器中还提供了EPT机制,进一步提高了内存虚拟化的效率。在I/O虚拟化方面,通过I/O位图机制可以方便地实现对Programmed I/O的虚拟化,除此之外,VT-x还提供了中断事件退出机制和中断事件注入机制,方便对设备中断进行虚拟化。

kvm是一个独特的管理程序,kvm开发者们发明了一个方法让Linux内核自身变成一个管理程序,通过将KVM作为一个内核模块实现,在虚拟环境下Linux内核集成管理程序将其作为一个可加载的模块可以简化管理和提升性能。这可能是开发者将KVM添加到内核的主要原因。

这种方法有许多优势,通过添加虚拟化功能到一个标准的Linux内核,虚拟环境能从所有正在Linux内核上运行的工作中受益,在这种模式下,每个虚拟机都是一个常规的Linux 进程,通过Linux调度程序进行调度,通常,一个标准的Linux进程都有两个执行模式:内核模式和用户模式。对于应用程序而言用户模式是默认模式,当它需要一些来自内核的服务时就进入内核模式,如往磁盘上写入时。KVM添加了第三个模式:客户模式。

客户模式进程是运行在虚拟机内的,它非常象正常模式(无虚拟实例),有它自己的内核和用户空间变量、在客户模式下可以使用正常的kill和ps命令,因为无虚拟实例,KVM 虚拟机表现为一个正常的进程,能象其他进程一样被杀掉,KVM利用硬件虚拟技术虚拟处理器的形态,虚拟机的内存管理由内核直接处理,目前的版本I/O在用户空间处理,主要通过QEMU完成。一个典型的KVM安装包括以下部件:

一个管理虚拟硬件的设备驱动,这个驱动通过一个字符设备/dev/kvm陈列它的功能一个模拟pc硬件的用户空间部件,目前,这在用户空间处理,它是一个稍微改动过的QEMU进程。

I/O模型直接衍生于QEMU,支持写时复制磁盘映像和其他QEMU特征。

接下来引用厂家的流程图,做充分说明

(https://www.360docs.net/doc/aa12652214.html,/picture/detail/e19975b2d1beca1505adea44697be23f0c52c289?fro m=dialog更多高清大图):

qemu-kvm虚拟设备创建流程图

kvm创建的三个文件描述符

qemu-kvm主要数据结构

原生ksm合并内存页实现流程图

Linux_Kernel_Meory

qemu-kvm相关

qemu-kvm网络虚拟化

qemu-kvm网络数据流走向图

XEN 工作原理

针对Xen 的体系结构进行了简单的描述,我们知道Xen 主要由Xen Hypervisor,Domain0,DomainU 三部分组成。下面通过Domain 0 与Domain U 的通信以及这三部分的交互来探讨一下Xen 的工作原理。

之前我们已经提到过Domain U 分为PV 客户系统和HVM 客户系统两种,我们首先讨论一下PV 客户系统,也就是半虚拟化操作系统工作原理。

首先我们需要知道在Domain 0 中有两个驱动Network Backend Driver 和Block Backend Driver,它们分别用来处理来自Domain U 的网络和本地磁盘请求。由于Xen Hypervisor 不会支持网络和磁盘请求的,因此一个PV(半虚拟化)客户系统必须通过和Xen Hypervisor、Domain 0 通信,从而来实现网络和磁盘请求。由于Xen 文档中已经探讨过PV 客户系统如何将一个数据写到本地硬盘,下面我们就来讨论一下PV 客户系统如何将一个数据发送到网络中去。在这之前我们首先要了解到一点,那就是Domain U PV Guest 中也包括两个驱动“PV Network Driver”和“PV Block Driver”,它们分别也是用来处理发送网络和本地磁盘请求用的,这与Domain 0 中的两个驱动是相对应的。

当一个PV 客户系统的网络设备驱动程序接收到一个发送数据请求的时候,并且通过

Xen Hypervisor 发送数据到本地网络设备(网卡之类的设备)中,这个网络设备是和Domain 0 共享的。在Domain 0 和Domain U 之间存在一个事件通道(event channel),通过该通道二者进行异步的域间中断通信。Domain 0 会接收到一个来自Xen Hypervisor 的中断,触发PV Network Backend Driver 访问上述网络设备,读取来自PV 客户系统的数据,然后将这些数据发送出去。

下图中事件通道表示为连接Domain 0 与Domain U 的一个区域,这是系统工作流的一个简化。事实上事件通道运行在Xen Hypervisor 中,通过Xenstored(Xenstored 维护一个信息档案,包括内存和建立在Domain 0 与Domain U 之间的事件通道。Domain 0 通过改变这个档案来设置和其他虚拟机的设备通道)中的特定中断实现,提供Domain 0 与Domain U 之间的快速共享网络设备。

KVM与XEN在技术方面的比较:

作为开源的虚拟化技术,对比Xen和kvm可以看到,Xen以6个无与伦比的

优势领先:更好的可用资源、平台支持、可管理性、实施、动态迁移和性能基准。

可用资源:Xen的问世要比kvm早4年之久(两者分别是2003年和2007年)。随着Citrix、Novell、Oracle、Sun、Ret Hat和Virtual Iron等公司在市场领域的实施,就比较容易找到精通Xen的IT技术人员,更容易让这些技术人员接受Xen 相关的培训、更容易得到Xen的咨询帮助以及获得Xen证书。企业管理协会(EMA:Enterprise Management Associates)2008年这对虚拟化和管理趋势的研究报告表明,这些关键因素占到那些抱怨缺少必要虚拟化技术资源和技术企业的60%。

平台支持:Xen在新版本中支持更多的主机和客体工作环境,包括泛虚拟化技术、硬件辅助支持以及修改过或未修改过的客体操作系统;对UNIX、Linux和Microsoft Windows的特定支持;包括芯片组,如x86、IA64和AMD、Fujitsu、IBM、Sun等公司的ARM,以及x86/64 CPU商家和Intel嵌入式的支持等。

可管理性:EMA在2009年度针对虚拟系统管理的研究结果表明:对于83%的企业来讲,在选择虚拟化技术过程中,管理是一项非常关键或者重要的因素。在对比Xen和kvm时,就可以看到Xen具有一个更加宽泛的第三方配给、备份、存储管理、P2V、容量规划、性能监控、进程自动化、安全和其它管理规则的社区,比如Citrix、IBM、CA、Novell或者Platespin、Enomaly、Microsoft以及HP等。

实施:无论kvm是“第一类”还是“第二类”,这都是语义上的概念。Xen的运行和管理都是在较低级别的(Ring 0)。甚至对于新虚拟机创建,客体机器并不需要像KVM那样共享内存块、CPU指令或者任何底层的Linux操作系统(虽然偶尔也会越权)。

KVM不支持动态迁移:过去在证明VMware ESX比Microsoft Hyper-V优越的最重要的一个观点也同样适用于Xen和kvm的比较,但是这是一个很大的问题。与KVM不同,Xen支持非中断的动态迁移,可以允许动态工作负载平衡和例行维护而几乎没有任何宕机时间。kvm的固有属性决定了其肯定有宕机时间。

性能:大多数Xen和kvm性能基准的对比都表明Xen具有更好的处理性能(接近于本地处理),只有在磁盘I/O方面略逊于kvm。进一步来讲,独立测试表明随着工作负载的增加kvm的性能逐渐下降。通常情况下,在试图支持四个以上的客体虚拟机时就会崩溃。Xen支持一个客体虚拟机的数量呈线性增长,可以支持30个以上工作负载同时运行。

更加深入广泛的Xen与kvm对比也将会表明Xen在虚拟网络支持、虚拟存储

支持、安全增强、高可用性、容错处理、电源管理、HPC或者实时支持、虚拟CPU 可扩展性、跨平台兼容性。虚拟机可移植性、虚拟应用设备市场以及已经建立起来的云服务社区等诸多方面都要比kvm优越。因此kvm只是在技术上比较与众不同,并且拥有几个不错的应用场景。但是作为企业级的服务器虚拟化技术,和Xen比起来,kvm尚有较大差距。

然后在实战中,由于xen和kvm,都是开源免费的虚拟化软件;

如果是xen或kvm虚拟windows,其中的子系统要支付许可费用。

如果是xen或kvm虚拟linux,那么虚拟化软件本身和其中的子系统无需产生任何费用。

从性能上来讲,虚拟windows,如果都能得到厂商的支持,那么,性能优化可以不用担心。这两款软件全都能达到主系统至少80%以上的性能(磁盘,CPU,网络,内存),如果是虚拟linux,建议首先使用xen,支持linux的半虚拟化,可以直接使用主系统的cpu和磁盘及网络资源,达到较少的虚拟化调度操作,可以达到非常高的性能,但xen操作复杂,维护成本较高。其次我们推荐kvm来虚拟linux,linux本身支持kvm的virtio技术,可以达到少量的虚拟化调度操作,得到较高的系统性能。

这就kvm和xen而言,如果虚拟windows,建议使用XEN,我们可以从厂商那里拿到针对windows优化过的磁盘和网络的驱动程序,可以达到较高的性能(几乎与hyper-v性能持平)。网络管理员、程序运维人员、或者使用基于Linux虚拟化用户经常遇到不同的项目或者程序。所以就需要查看虚拟化管理程序的定量比较结果,根据应用来选择最适合的虚拟机。已在本项测试实验中,我们比较了两个虚拟机管理程序:XEN与KVM。自从2003年公开发行版后,XEN一直是性能比较的主题,主要是因为它接近于实体机的性能和它所使用的半虚拟化技术。KVM 是一个在2007年初首次发布亮相的虚拟化产品。它支持CPU虚拟化,并充分利用现有的linux系统提供了一个集成的内核基础设施的虚拟化管理程序(而不是类似于XEN的独立虚拟机管理程序),KVM自Linux 2.6.20之后集成在Linux的各个主要发行版本中。由于虚拟化产品的增多,随之产生了为比较两个虚拟机之间性能的测试软件。在本文中,我们使用了一款叫做benchvm的开源测试软件,帮助我们做一些压力测试与测试用例。这款软件能帮助我们验证一些测试结果。

本文测试环境都建立在Ubuntu Linux 8.04 AMD64位机器上。Linux内核本版号:2.6.24,XEN虚拟机版本3.2.1.kvm62是直接从Ubuntu安装包里面安装的。硬件机器配置如下:Dell OptiPlex 745 ,英特尔酷睿双核CPU 6600,4G内存,

250GB硬盘,双千兆网卡。我们的测试主要关注以下三方面:整体性能、性能隔离度、可扩展性。最后讨论的测试过程并给出了每一个方面的定量测试结果。

1、整体性能测试

为了测试整体性能,我们运行了CPU密集测试、磁盘读测试、磁盘写测试。通过一个实体的Linux作为基准,来比较XEN与KVM性能。

对于CPU密集测试,XEN的性能接近于Linux,而KVM性能要稍逊于XEN。在内核编译方面XEN只有Linux一半的性能,而KVM仍然稍逊于XEN,但是磁盘读写方面却要好于XEN,我们认为这可能是KVM的磁盘缓存的原因。Phoronix

测试套件很适合内核编译、磁盘读写性能测试。

2、性能隔离度

性能隔离度是衡量虚拟机受到其他极度消耗资源虚拟机的影响。我们使用了隔离度基准测试套件,并在四台机器上部署了SPECweb2009[5],并在其中两台VM上部署了压力测试程序来增加机器的压力,使它们保持一定压力。测量这四台VM上的SPECweb2009的响应速率。使用没有压力的机器的测量数据作为基准数据。

在表2中我们给出了性能隔离度的测试结果。部署了压力测试的VM与正常VM表现出差异性。在表中数值则表示系统的响应速率。DNR表示的意思是“没有返回”(did not return)。一般造成DNR是服务器没有相应或者网络不通。在我们测试环境中可以排除网络不通的因素,所以认为是服务器没有回应的原因。

在下表中XEN表现出了比较好的CPU、磁盘、内存性能隔离度。尤其是磁盘方面表现出了优异的性能。但是在接收网络数据方面XEN隔离度表现一般,性能容易受到其他虚拟机的影响。在数据发送方面隔离度好些。

KVM在所有测试项中都表现出了优异的隔离性。尤其是在数据发送方面更是优秀,但是在数据接收与磁盘测试方面表现稍差。

3、可增容性

一个虚拟化系统的可增容性好坏,是根据虚拟机的数量多少来决定的。并且这些虚拟机没有任何性能损失。在这项测试中我们首先在一台VM中编译apache 的源代码,然后逐渐增加同样任务的VM。在图1中,较少的编译时间并且较多的VM意味着可增容性好。

对于XEN,我们增加虚拟机数量的时候,编译apache的时间VM的数量相比较是呈线性增长的。这表示可增容性能优秀。XEN能够平均分配资源。当我们把虚拟机数量提高到27个的时候仍然有返回响应。这表示XEN的可增容性相当好。

对于KVM,当我们增加虚拟机数量到9的时候。有一台VM系统宕机。当我们增加到13的时候,有4台系统宕机.当我们增加到18的时候,有7台系统宕

机。当增加到21台的时候整个系统宕机,所以从21之后就没有返回数据了。这说明KVM没有很好的增容性。

4、结束语

我们提供了一个关于XEN与KVM整体性能定量的比较结果。两者最大的区别在于可增容性。KVM下面的VM数量增加到9的时候,有许多问题暴露。但是KVM 的隔离性测试要好于XEN。总体性能比较的结果稍微复杂。可以在在实际应用中根据具体的应用的侧重点选择相对应的虚拟机管理系统

综上所述,

在有授权的情况下,虚拟linux,建议使用xen,如考虑到需要降低管理维护和学习成本,建议使用KVM。

在没有授权的情况下,虚拟windows,建议使用kvm。

在没有授权的情况下,虚拟LINUX,建议使用xen。

POC简述:

因为思杰完成对XenSource的收购,所以从服务器虚拟化,到网络虚拟化,再到交付到客

户桌面的桌面虚拟化,思杰完成了一整套产品的生态循环,原厂工程师对项目全程提供7*24的技术支持,而CENTOS免费使用,却没有技术支持。两者的更新,都是随着各自厂家的发布,按照惯例,都是半年发布一次。

这里采用的XENSERVER和CENTOS配置相同CPU,内存,存储,然后分别给其虚拟机分配2vCPU,1.5G内存,15G硬盘空间,并创建两个虚拟机。

1、首先在LINUX上创建一个50G的硬盘空间,命令为WIN7。

2、然后点击创建

3、一路NEXT,与其他虚拟机安装无异。

4、安装完成

5、通过SPICE协议登陆建立好的虚拟桌面

citrix常用命令

XenServer 如何重置XenServer5.6密码? 忘记了Root帐号的密码是一件很烦心的事情,因为我们没法去做某些事情,甚至在没有cache过帐号信息的机器上,就没法管理了。所以我们需要重置(恢复)XenServer5.6的密码,以下介绍的方法支持XenServer5.0以及后续版本。 在恢复前,我们需要进行一些操作; ●如果XenServer在资源池中,最好先迁移VM到其他XenServer服务器,然后 关机;如果只是一台单独的服务器,可以把所有的VM关掉,然后关机; ●需要直接通过控制台操作 重置Root帐号密码: 1.启动XenServer,在看到boot文字提示的时候(也就是XenServer引导前),输入 menu.c32,然后回车;

2.出现启动选项的时候,在5秒内,按TAB选择。(如果默认没有高亮,可以按两下ESC键); 3.然后在现实的启动参数中,在最后的---/boot前面,加上single参数; 4.此时,XenServer将启动到单用户模式,并返回sh3.2#提示符;

5.在该提示符下,输入password命令,然后输入新密码即可。修改成功后将提示: “passwd:all authentication tokens updated successfully”; 6.输入命令重启:shutdown –r –h now; 7.等服务器重启以来,进入XenServer,即可使用新密码登录。 修改时间

date -u --universal 03300813 注意:这个命令修改后的时间为UTC(世界时间),如果需要改为CST(中央时间)需减去时差。 修改dom0的vcpu配置个数 /etc/sysconfig/unplug-vcpus 回到控制台界面 Xsconsole (全是小写)

XenServer 6.0 XE 命令快速参考

Pool appliance-assert-can-be-recovered *appliance-create *appliance-destroy *appliance-list * appliance-param-clear *appliance-param-get *appliance-param-list *appliance-param-set *appliance-recover *appliance-shutdown *appliance-start * Appliance Commands audit-log-get Audit Commands bond-create bond-destroy bond-list bond-param-get bond-param-list bond-set-mode * Bond Commands cd-list CD/DVD Commands console-list console-param-add console-param-clear console-param-get console-param-list console-param-remove console-param-set Console Commands drtask-create *drtask-destroy *drtask-list * drtask-param-get *drtask-param-list * appliance-assert-can-be-recovered *appliance-recover * vm-assert-can-be-recovered *vm-recover * sr-enable-database-replication *sr-disable-database-replication * Disaster Recovery (DR) Commands event-wait Event Commands Virtual GPU (vGPU)vgpu-create *vgpu-destroy *vgpu-list * vgpu-param-add *vgpu-param-clear *vgpu-param-get *vgpu-param-list *vgpu-param-remove *vgpu-param-set *Physical GPU (pGPU)pgpu-list * pgpu-param-add *pgpu-param-clear *pgpu-param-get *pgpu-param-list *pgpu-param-remove *pgpu-param-set * GPU group gpu-group-list * gpu-group-param-add *gpu-group-param-clear *gpu-group-param-get *gpu-group-param-list *gpu-group-param-remove *gpu-group-param-set * GPU Commands * New in XenServer 6.0 (command does not exist in 5.6 SP2) host-all-editions *host-apply-edition host-backup host-bugreport-upload host-call-plugin host-compute-free-memory host-compute-memory-overhead host-cpu-info host-cpu-list host-cpu-param-get host-cpu-param-list host-crashdump-destroy host-crashdump-list host-crashdump-param-get host-crashdump-param-list host-crashdump-upload host-data-source-forget host-data-source-list host-data-source-query host-data-source-record host-disable host-disable-local-storage-caching host-dmesg host-emergency-ha-disable host-emergency-management-reconfigure host-enable host-enable-local-storage-caching host-evacuate host-forget host-get-cpu-features host-get-server-certificate host-get-sm-diagnostics *host-get-system-status host-get-system-status-capabilities host-get-thread-diagnostics *host-get-uncooperative-vms host-get-vms-which-prevent-evacuation host-is-in-emergency-mode host-license-add host-license-view host-list host-logs-download host-management-disable host-management-reconfigure host-param-add host-param-clear host-param-get host-param-list host-param-remove host-param-set host-power-on host-reboot host-reset-cpu-features host-restore host-retrieve-wlb-evacuate-recommendations host-send-debug-keys host-set-cpu-features host-set-hostname-live host-set-power-on-mode host-shutdown host-shutdown-agent host-sm-dp-destroy *host-sync-data host-syslog-reconfigure Host Commands log-get log-get-keys log-reopen log-set-output Log Commands message-create message-destroy message-list message-param-get message-param-list Message Commands network-create network-destroy network-list network-param-add network-param-clear network-param-get network-param-list network-param-remove network-param-set Network Commands patch-apply patch-clean patch-destroy patch-list patch-param-clear patch-param-get patch-param-list patch-pool-apply patch-precheck patch-upload Patch Commands Hosts Storage Networking pbd-create pbd-destroy pbd-list pbd-param-add pbd-param-clear pbd-param-get pbd-param-list pbd-param-remove pbd-param-set pbd-plug pbd-unplug PBD (Physical Block Devices) Commands pif-forget pif-introduce pif-list pif-param-add pif-param-clear pif-param-get pif-param-list pif-param-remove pif-param-set pif-plug pif-reconfigure-ip pif-scan pif-unplug PIF (Phys. Network Interface) Commands pool-certificate-install pool-certificate-list pool-certificate-sync pool-certificate-uninstall pool-crl-install pool-crl-list pool-crl-uninstall pool-deconfigure-wlb pool-designate-new-master pool-disable-external-auth pool-disable-local-storage-caching pool-disable-redo-log pool-dump-database pool-eject pool-emergency-reset-master pool-emergency-transition-to-master pool-enable-external-auth pool-enable-local-storage-caching pool-enable-redo-log pool-ha-compute-hypothetical-max-host-failures-to-tolerate pool-ha-compute-max-host-failures-to-tolerate pool-ha-disable pool-ha-enable pool-initialize-wlb pool-join pool-list pool-param-add pool-param-clear pool-param-get pool-param-list pool-param-remove pool-param-set pool-recover-slaves pool-restore-database pool-retrieve-wlb-configuration pool-retrieve-wlb-diagnostics pool-retrieve-wlb-recommendations pool-retrieve-wlb-report pool-send-test-post pool-send-wlb-configuration pool-sync-database pool-vlan-create Pool Commands sr-create sr-destroy sr-disable-database-replication *sr-enable-database-replication *sr-forget sr-introduce sr-list sr-param-add sr-param-clear sr-param-get sr-param-list sr-param-remove sr-param-set sr-probe sr-scan sr-update SR (Storage Repositories) Commands task-cancel task-list task-param-get task-param-list Task Commands template-export template-list template-param-add template-param-clear template-param-get template-param-list template-param-remove template-param-set template-uninstal Template Commands Virtual Machines update-upload Update Commands user-password-change subject-add subject-list subject-param-clear subject-param-get subject-param-list subject-remove subject-role-add subject-role-remove role-list role-param-get role-param-list session-subject-identifier-list session-subject-identifier-logout session-subject-identifier-logout-all User Commands vbd-create vbd-destroy vbd-eject vbd-insert vbd-list vbd-param-add vbd-param-clear vbd-param-get vbd-param-list vbd-param-remove vbd-param-set vbd-plug vbd-unplug VBD (Virtual Block Devices) Commands vdi-clone vdi-copy vdi-create vdi-destroy vdi-forget vdi-import vdi-introduce vdi-list vdi-param-add vdi-param-clear vdi-param-get vdi-param-list vdi-param-remove vdi-param-set vdi-resize vdi-snapshot vdi-unlock vdi-update VDI (Virtual Disk Images) Commands vif-create vif-destroy vif-list vif-param-add vif-param-clear vif-param-get vif-param-list vif-param-remove vif-param-set vif-plug vif-unplug VIF (Virt. Network Interface) Commands vlan-create vlan-destroy vlan-list vlan-param-get vlan-param-list VLAN Commands vm-assert-can-be-recovered *vm-cd-add vm-cd-eject vm-cd-insert vm-cd-list vm-cd-remove vm-checkpoint vm-clone vm-compute-maximum-memory vm-compute-memory-overhead vm-copy vm-copy-bios-strings vm-crashdump-list vm-data-source-forget vm-data-source-list vm-data-source-query vm-data-source-record vm-destroy vm-disk-add vm-disk-list vm-disk-remove vm-export vm-import vm-install vm-is-bios-customized vm-list vm-memory-dynamic-range-set vm-memory-limits-set vm-memory-shadow-multiplier-set vm-memory-static-range-set vm-memory-target-set vm-migrate vm-param-add vm-param-clear vm-param-get vm-param-list vm-param-remove vm-param-set vm-pause vm-reboot vm-recover * vm-reset-powerstate vm-resume vm-retrieve-wlb-recommendations vm-shutdown vm-snapshot vm-snapshot-with-quiesce vm-start vm-suspend vm-uninstall vm-unpause vm-vcpu-hotplug vm-vif-list VM Commands XenServer 6.0 XE-Command Reference Version: 1.1 ? Bjorn Andersson (www.DiverseTips.se) Corrections and improvements are highly welcome (Send to Twitter: @DiverseTips or DiverseTips@live.se) Newest version of dokument can be found at: https://www.360docs.net/doc/aa12652214.html,/2011/12/poster-xenserver-xe-command-reference.html XenServer?, XenCenter? are registered trademarks of Citrix Systems, Inc. All other trademarks and registered trademarks are property of their respective owners. pool-initialize-wl pool-param-set other-config pool-retrieve-wlb-diagnostics host-retrieve-wlb-evacuate-recommendations vm-retrieve-wlb-recommendations pool-certificate-list pool-certificate-install pool-certificate-sync pool-param-set pool-deconfigure-wlb pool-retrieve-wlb-configuration pool-retrieve-wlb-recommendations pool-retrieve-wlb-report pool-send-wlb-configuration Workload Balancing (WLB) Commands snapshot-clone snapshot-copy snapshot-destroy snapshot-disk-list snapshot-export-to-template snapshot-list snapshot-param-add snapshot-param-clear snapshot-param-get snapshot-param-list snapshot-param-remove snapshot-param-set snapshot-reset-powerstate snapshot-revert snapshot-uninstal Snapshot Commands sm-list sm-param-get sm-param-list Storage Manager (SM) Commands vmpp-create vmpp-destroy vmpp-list vmpp-param-add vmpp-param-clear vmpp-param-get vmpp-param-list vmpp-param-remove vmpp-param-set VM Protection Policy (VMPP) Commands tunnel-create tunnel-destroy tunnel-list tunnel-param-add tunnel-param-clear tunnel-param-get tunnel-param-list tunnel-param-remove tunnel-param-set Tunnel Commands secret-create secret-destroy secret-list secret-param-clear secret-param-get secret-param-list secret-param-set Secrets Commands diagnostic-compact diagnostic-db-log diagnostic-db-stats diagnostic-gc-stats diagnostic-license-status diagnostic-timing-stats diagnostic-vdi-status diagnostic-vm-status Diagnostics Commands Nice-to-have Linux commands (not XE-commands)xe-toolstack-restart Restarts the XAPI-tools df -h Shows the amount of free disk space xsconsole Starts the text based menu console fdisk -l List the disk partitions xentop Lists top Xen processes iostat -d 2 6 Shows Storage trafic stats (6 reports, 2sec a part)top Lists top processes in Dom0 netstat -s Shows networking statistics xen-bugtool --yes Builds a status report when Xapi is down mpstat 2Shows processor statistics in Dom0 (every 2 sec)less /var/log/dmesg Displays Boot Messages from Linux vmstat 2Show virtual memory in Dom0 (every 2 sec)tail /var/log/xensource.log Look at xapi messages as they happen list_domains Lists all VMs that are running (on this server) Some good logfiles (for troubleshooting)/var/log/messages L ogs for the system (the host)/var/log/xensource XenServer only logs (XAPI)/var/log/xha Logs regarding High Availability /var/log/audit K inda what it sounds like... J Audit logs. /etc/xensource-inventory I nfo about the server (version, build, hypvervisor, when the server was installe...)/var/log/dmesg Boot messages from Linux Some good links at https://www.360docs.net/doc/aa12652214.html, https://www.360docs.net/doc/aa12652214.html,/article/CTX130418XenServer 6.0 Release Notes https://www.360docs.net/doc/aa12652214.html,/article/CTX131214Hotfix XS60E001 - For XenServer 6.0 https://www.360docs.net/doc/aa12652214.html,/article/CTX130421XenServer 6.0 Installation Guide https://www.360docs.net/doc/aa12652214.html,/article/CTX131400Hotfix XS60E002 - For XenServer 6.0 https://www.360docs.net/doc/aa12652214.html,/article/CTX130420XenServer 6.0 Administrator's Guide https://www.360docs.net/doc/aa12652214.html,/article/CTX130924 Designing XS 6.0 Network Configurations https://www.360docs.net/doc/aa12652214.html,/article/CTX130422XenServer 6.0 Virtual Machine Installation Guide https://www.360docs.net/doc/aa12652214.html,/article/CTX130423XenServer 6.0 vSwitch Controller User Guide https://www.360docs.net/doc/aa12652214.html,/article/CTX130437XenServer 6.0 Web Self Service Administrator's Guide https://www.360docs.net/doc/aa12652214.html,/article/CTX131047 XenServer 6.0 Configuration Limits

Xen与虚拟化技术

目录 2010-6-21 1.虚拟化发展历史 (2) 1.1硬件虚拟化 (2) 1.2处理器虚拟化 (2) 1.3指令集虚拟化 (2) 2.虚拟化技术的类型 (3) 2.1硬件仿真 (3) 2.2完全虚拟化 (3) 2.3超虚拟化 (3) 2.4操作系统级的虚拟化 (4) 2.5内核虚拟机(Linux KVM) (4) 3.与Linux相关的虚拟化项目 (5) 4.Xen (6) 4.1Xen的体系架构 (6) 4.2Xen Hypervisor,操作系统,应用程序 (8) 4.3Xen的半虚拟化和全虚拟化 (9) 4.4Xen的网络架构 (11) 4.4.1Xen支持三种网络工作模式 (11) 4.4.2Xen Domain U Guests发送数据包处理流程 (12) 4.4.3xen中虚拟网卡与物理网卡之间的关系 (12) 5.Xen的配置和管理 (13) 5.1Xen相关配置文件 (13) 5.2/etc/xen/下的配置文件 (14)

1.虚拟化发展历史 1.1硬件虚拟化 IBM早在20世纪60年代开发System/360?Model67大型机时就开始使用该技术。Model67通过VMM(Virtual Machine Monitor)对所有的硬件接口都进行了虚拟化。在早期计算机中,操作系统被称为supervisor。能够在其他操作系统上运行的操作系统被称为hypervisor(这个术语是在20世纪70年代出现的)。 VMM可以直接在底层硬件上运行,允许运行多个虚拟机(VM)。每个VM都可以运行一个自己私有操作系统的实例——称为CMS(Conversational Monitor System) 1.2处理器虚拟化 虚拟化早期的另外一种用法是P-code(或伪码)机。P-code是一种机器语言,运行于虚拟机而不是实际硬件。它将Pascal程序编译成P-code,然后在一个P-code虚拟机上运行。这就使P-code程序具有了高度的可移植性,而且,只要有可用的P-code虚拟机,P-code 程序就可以运行。Java语言的虚拟机沿用了这种P-code模型。 1.3指令集虚拟化 虚拟化最新的发展称为指令集虚拟化,或者二进制转换。在这种模型中,虚拟指令集被转换成底层硬件的物理指令集,这个过程通常都是动态的。当代码执行时,就会对代码的某个段进行转换。如果出现分支情况,就会导入新代码集并进行转换。这使它与缓存操作非常类似,后者是将指令块从内存移动到本地快速缓存中执行。

Xen基本原理

1Xen概述 1.1 简介 Xen是由剑桥大学计算机实验室开发的一个开源项目。是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,它能够在计算机硬件上并发的运行多个客户操作系统(Guest OS)。目前已经在开源社区中得到了极大的推动。 Xen支持x86、x86-64、安腾( Itanium)、Power PC和ARM多种处理器,因此Xen可以在大量的计算设备上运行,目前Xen支持Linux、NetBSD、FreeBSD、Solaris、Windows和其他常用的操作系统作为客户操作系统在其管理程序上运行。 标准计算机硬件和操作系统 使用Xen进行虚拟化的计算机硬件和操作系统

1.2 Xen虚拟化类型 Xen对虚拟机的虚拟化分为两大类,半虚拟化(Paravirtualization)和完全虚拟化(Hardware Virtual Machine)。 1.2.1 半虚拟化 半虚拟化(Paravirtualization)有些资料称为“超虚拟化”,简称为PV,是Xen主导的虚拟化技术。这种技术允许虚拟机操作系统感知到自己运行在Xen Hypervisor上而不是直接运行在硬件上,同时也可以识别出其他运行在相同环境中的客户虚拟机。 在Xen Hypervisor上运行的半虚拟化的操作系统,为了调用系统管理程序(Xen Hypervisor),要有选择地修改操作系统,然而却不需要修改操作系统上运行的应用程序。由于Xen 需要修改操作系统内核,所以您不能直接让当前的Linux 内核在Xen 系统管理程序中运行,除非它已经移植到了Xen 架构。不过,如果当前系统可以使用新的已经移植到Xen 架构的Linux 内核,那么您就可以不加修改地运行现有的系统。 半虚拟化虚拟机示意图 1.2.2 完全虚拟化 完全虚拟化(Hardware Virtual Machine)又称“硬件虚拟化”,简称HVM,是指运行在虚拟环境上的虚拟机在运行过程中始终感觉自己是直接运行在硬件之上的,并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。 在Xen Hypervisor运行的完全虚拟化虚拟机,所运行的操作系统都是标准的操作系统,即:无需任何修改的操作系统版本。同时也需要提供特殊的硬件设备。 值的注意的是,在Xen上虚拟的Windows虚拟机必须采用完全虚拟化技术。

(完整版)Linux基础命令汇总.

内容: Linux下常用命令 虚拟机Vmware6.0的安装和使用 在Vmware6.0下安装RedHat 9.0 Linux驱动班环境搭建 一、L inux下常用命令 1、Linux命令格式 Linux命令的组成部分:命令字、命令选项、命令参数 2、命令格式举例 3、命令中的其他组成 命令提示符表示命令输入的状态 管理员root用户的提示符“#” [root@localhost ~]# 普通用户提示符“$” [teacher@localhost ~]$ 4、获得命令帮助 (1)help命令 $ help pwd (2)“--help”命令选项 $ touch --help (3)使用man命令阅读手册页 $ man ls (4)使用info命令阅读信息页 $ info ls 5、目录操作命令 (1)列目录 $ls

ls 主要选项参数如下所示: 选项参数含义 -l 一行输出一个文件(单列输出) -a,-all 列出目录中所有文件,包括以“.”开头的文件 实例:$ls -al /home 详细查看/home目录下所有文件及目录(2)显示当前目录名称 $ pwd a)作用 在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用户目前处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,该命令显示整个路径名。此命令显示出当前工作目录的绝对路径。 b)实例 [root@localhost ~]#cd /usr/bin;pwd /usr/bin (3)更改当前目录 a)格式 cd [路径] 其中的路径为要改变的工作目录,可为相对路径或绝对路径。 b)使用实例 [root@localhost ~]# cd /home/yft/ [root@localhost yft]# pwd [root@localhost yft]# /home/yft/ 该实例中变更工作目录为“/home/yft/”,在后面的 pwd(显示当前目录)的结果中可以看出。 (4)建立和删除目录 $ mkdir mydir 建立目录mydir $ rmdir mydir 删除目录mydir 6、路径的标识 (1)相对路径是以“.”或“..”开始的目录路径表示形式 cd ./test 进入当前目录的test目录 ls ../bin 进入上一级目录的子目录bin (2)绝对路径是以“/”开始的路径表示形式 ls / cd /home 7、文件操作命令 (1)建立空文件 $ touch tfile (2)文件查找 按文件名进行查找 $ find . -name “file*”在当前目录查找以file开头的所有文件

虚拟机Xen网络配置及原理

虚拟机Xen网络配置 虚拟化是目前一门炙手可热的技术,它给我们带来的好处在各个层次都有体现,作为一个网络管理者来说,搭建和维护服务器更是我们职责所在!目前的服务器配置可以说是相当高了,单核cpu的时代也已经渐渐离我们远去,在我们使用多核cpu以及大内存服务器的的同时,我们是否想过这些服务器的性能是否完全都使用上了?举个例子来说,假设公司有一台IBM System x3650,它配备Xeon 5450cpu(四核心),二级缓存高达12M,最大支持48gb内存,在这样一台如此强劲的服务器上如果只跑一两个应用的话是否浪费了很多的性能呢? 当然,你完全可以把企业中很多的应用都跑在这一台服务器上,这样做虽然是可以的,但是大家都知道,在单个OS上跑的应用越多,出问题的系数也就越高,往往会因为其中某一个应用的问题而导致整个OS崩溃,再或者某个应用支持的系统平台不同,我们需要多个OS来支持,如此以来是否又要购买服务器来达到我们的需求?如果在虚拟化技术没出现之前,我们只能购买更多的服务器来支持更多的应用,无论在维护还是资金上都是一笔不小的投入,不过此刻的我们非常幸运,在这个虚拟化技术流行的时代,那些曾经不可能实现的问题已经不再是问题了,在此我也非常感谢那些在虚拟化技术上投入心血的人们.我们现在完全可以实现在一台物理机上同时跑多个OS! 很多管理员都用过VMware Workstation或者vpc,我们把它们称作虚拟机软件,我们可以在其上安装和物理机不同的OS,在我们需要测试某些程序或者搭建一些环境的时候经常使用到他们,在虚拟机上跑的OS即便是崩溃了也不会影响我们物理机上的任何应用,那我们是否把他们应用在服务器虚拟化层面呢?在这里我不建议这么去做,因为以上提到的两款虚拟机软件只不过是在物理机OS上运行的一个软件而已,此软件运行后会模拟一台真实计算机的环境,只不过是模拟罢了,模拟出来的东西要和物理机上的内核打交道是要经过很多道关卡的,在通过一层一层二进制转换后才能把I/O操作传送到内核中,从而我们会感觉到它们性能是不怎么强的,而服务器在性能上的要求是非常高. 简单介绍一下,在目前的服务器虚拟化方面使用较多的有Xen,hyper-v,VMware esX server等,hyper-v集成在windows server 2k8 64位版中,必须购买windows 2k8以后才可以使用.VMware esX server是一款相当成熟的虚拟机管理器,也是需要购买后才可使用,而Xen则是开源软件,可以直接下载后在linux上编译即可使用,并且最新的Xen3已经支持硬件虚拟化,可以在不修改内核源码的情况下虚拟OS,当然还有其他更多的可以在google上找

xen的故障与维护

XenServer安全重启xapi的方法 2012-11-29 12:58:07| 分类:虚拟化-XenServer|字号订阅 平常我们很常用到重启xapi命令,在这介绍下xapi: XAPI(或者XenAPI)是XenServer中的一组管理接口的统称,是XenServer 管理的核心,由一系列的toolstack组成。 XAPI主要提供XenCenter以及pool中各主机通信的接口。XenCenter通过XAPI 来读取XenServer的配置、管理、License的管理、数据库的维护等等,同时也包括如存储(SR)、虚机、虚拟网卡、HA等等所有的功能控制。而Pool中的所有XenServer的操作请求也是通过XAPI传递给dom0,同时在池中的所有主机中间通信,例如:Pool中数据库(配置数据库,由XenServer维护的一个小型数据库)会通过XAPI在所有的主机之间同步,以便在Master服务器宕机以后,其他机器能够正确而迅速的取代Master,并维持Pool的功能和服务。 简而言之,XAPI就是个和底层通信的中间层、接口层。 以上可以看到,xapi在整个XenServer的重要性。因为xapi控制着服务器和VPS 的操作等等,所以有些时候VPS无法控制时,我们可以通过重启xapi来解决,但这会有危险性,严重的无法重启xapi,无论什么办法都不行,那么只能重装系统,虽然重装系统不会导致数据丢失,但这个是非常麻烦的事,具体的我就不解释了! 但非常情况下,需要重启xapi,也是可以的(例如,重启VPS卡死等等),但必须达到最重要的条件:服务器必须保持在绝对稳定的情况下 怎么才算绝对稳定呢,嘿嘿,有个办法,要么把其他VPS强制关闭,说起来简单,但这样对客户使用影响很大,所以这个我们就不采用,在不关闭其它VPS 又能重启xapi的办法,有的,首先检查服务器的稳定 命令:top(其实通过这个命令查看就够了),此命令详解请见:linux top命令详解

CitrixXenDesktop及XenServer平台运维方案

Part 1 - Citrix XenServer/XenDesktop配置与维护指南

目录 Part 1 - Citrix XenServer/XenDesktop配置与维护指南 (2) 1 1 安装XenCenter管理程序 (5) 2 2 创建资源池 (8) 3 3 安装及管理虚拟机 (12) 3.1 安装新的虚拟机 (12) 3.2 创建模板虚拟机 (18) 3.3 从模板创建新的虚拟机 (18) 4.4 调整现有虚拟机配置(CPU/内存/磁盘容量等) (23) 3.5 在线迁移 (25) 3.6启用HA功能 (26) 3.7查看服务器硬件基本信息 (28) 3.8查看服务器及虚机硬件使用率 (28) 3.9查看虚机性能报告 (29) 3.10创建快照及从快照中恢复系统 (29) 3.11查看日志 (31) 4 4 物理机到虚拟机的转换 (31) 4.1虚拟桌面平台运维 (32) 4.1.1 虚拟化产品安装、配置、部署功能 (32) 4.1.2 虚拟化产品用户管理功能 (32) 4.1.3 虚拟化实例模板管理功能 (35) 4.1.4 虚拟化实例统一部署功能 (39) 4.1.5 虚拟化实例生命周期管理功能 (41) 4.1.6 物理服务器状态监控功能 (42)

实施环境 XenServer1 Xenserver2 服务器型号IBM 3850 M2 HP 580 G5 CPU 4* E7420 4* E7420 内存64GB 64GB 硬盘RAID 5 RAID 5 HBA 主机名XenServer1 XenServer1 IP 10.128.36.84 10.128.36.85 子网255.255.255.0 255.255.255.0 网关10.128.36.254 10.128.36.254 帐户密码Root/ fcjplp2008 Root/ fcjplp2008 存储共用NetApp 2020/ FC/ 400G可用(已用满)

citrix XenApp 6.5 command SDK 参考手册(2)

XenApp 6.5 server Command (PowerShell) SDK开发手册(2) 翻译人:乖乖兔邮箱:ggt2008@https://www.360docs.net/doc/aa12652214.html, 2012/8/17于东营

1 按主题介绍 本书包含了主要XenApp farm主题对象的描述。关于这些主题对象是按照微软PowerShell控制台帮助文档的风格来编写的。XenApp通常是基于任务的,也有些是基于对象的。这些主题对象是主要XenApp farm管理对象。例如,发布应用、sessions、工作组、服务及load evaluators。 每个主题均包含对讨论对象的简短描述,然后对象的管理则是用描述的相关XenApp命令。通常是对象的创建、读取、更改和删除操作(CRUD)。 1.1 Citrix常用命令(Citrix Common Commands) 主题 Citrix常用cmdlets 描述 Citrix Common Commands 是Citrix独立产品的一组cmdlets,可以被独立使用。 注意:CDF跟踪cmdlets必须运行在32位powershell session上,64位暂时不支持。 详细描述: Citrix Common Commands主要包含CDF跟踪cmdlets。这些cmdlets用来配置跟踪模块、执行citrix模块的实时跟踪和打包跟踪数据。这些数据可发送到Citrix来提供分析。这些cmdlets的名字,在名词部分以Ctx开头。Common Commands包含在单元:https://www.360docs.net/doc/aa12652214.html,mands。 下面按字母排序列出一些Citrix common command:

相关主题
相关文档
最新文档