搜档网
当前位置:搜档网 › XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较

XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较

XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较
XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较

XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较:

a.XEN 有简化虚拟模式,不需要设备驱动,能够保证每个虚拟用户系

统相互独立,依赖于 service domains 来完成一些功能;

b.Vmware ESXI 与 XEN 比较类似,包含设备驱动以及管理栈等基本要

素,硬件支持依赖于 VMware 创建的驱动;

c.Hyper-V 是基于 XEN 管理栈的修改;

d.KVM 与 XEN 方式不同,KVM 是以 Linux 内核作为管理工具得。

虚拟机的体系结构

1.XEN 体系结构

图 3. XEN 体系结构图

一个 XEN 虚拟机环境主要由以下几部分组成:

?XEN Hypervisor;

?Domain 0 —— Domain Management and Control(XEN DM&C);

?Domain U Guest(Dom U)

A.PV Guest

B.HVM Guest

下图 4 显示除了各部分之间的关系:

图 4. Xen 三部分组成之间关系图

XEN Hypervisor :

XEN Hypervisor 是介于操作系统和硬件之间的一个软件描述层。它负责在各个虚拟机之间进行 CPU 调度和内存分配。XEN Hypervisor 不仅抽象出虚拟机的硬件,同时还控制着各个虚拟机的执行。XEN Hypervisor 不会处理网络、存储设备、视频以及其他 I/O.

Domain 0:

Domain 0 是一个修改过的 Linux kernel,是唯一运行在 Xen Hypervisor 之上的虚拟机,它拥有访问物理 I/O 资源的权限,同时和系统上运行的其他虚拟机进行交互。Domain 0 需要在其它 Domain 启动之前启动。

Domain U:

运行在 Xen Hypervisor 上的所有半虚拟化(paravirtualized)虚拟机被称为“Domain U PV Guests”,其上运行着被修改过内核的操作系统,如 Linux、Solaris、FreeBSD 等其它 UNIX 操作系统。所有的全虚拟化虚拟机被称为“Domain U HVM Guests”,其上运行着不用修改内核的操作系统,如 Windows 等。

2.Hyper-V 体系结构

图 5. Hyper-V 体系结构图

Hyper-V 是微软提出的一种系统管理程序虚拟化技术,采用微内核的架构,兼

顾了安全性和性能的要求。Hyper-V 底层的 Hypervisor 运行在最高的特权级

别下,微软将其称为 ring -1(而 Intel 则将其称为 root mode),而虚机的OS 内核和驱动运行在 ring 0,应用程序运行在 ring 3 下,这种架构就不需

要采用复杂的 BT(二进制特权指令翻译)技术,可以进一步提高安全性。从架构上讲 Hyper-V 只有“硬件-Hyper-V-虚拟机”三层,本身非常小巧,代码

简单,且不包含任何第三方驱动,所以安全可靠、执行效率高,能充分利用硬

件资源,使虚拟机系统性能更接近真实系统性能。

Hyper-V 支持分区层面的隔离。分区是逻辑隔离单位,受虚拟机监控程序支持,并且操作系统在其中执行。Microsoft 虚拟机监控程序必须至少有一个父 / 根分区,用于运行 64 位版本的 Windows Server 2008 操作系统。虚拟化堆栈在父分区中运行,并且可以直接访问硬件设备。随后,根分区会创建子分区用于

承载来宾操作系统。根分区使用虚拟化调用应用程序编程接口 (API) 来创建子分区。

分区对物理处理器没有访问权限,也不能处理处理器中断。相反,它们具有处

理器的虚拟视图,并运行于每个来宾分区专用的虚拟内存地址区域。虚拟机监

控程序负责处理处理器中断,并将其重定向到相应的分区。Hyper-V 还可以通

过输入输出内存管理单元 (IOMMU) 利用硬件加速来加快各个来宾虚拟地址空间相互之间的地址转换。IOMMU 独立于 CPU 使用的内存管理硬件运行,并用于将物理内存地址重新映射到子分区使用的地址。从系统的结构图,我们可以看出

来 Hyper-V 与 Xen 的架构很相似。

A.Vmware ESXI 体系结构

图 6. Vmware ESXI 体系结构图

由上图我们可以看出来管理工具也是直接嵌入到了 ESXi vmKernel 中,没有再分化出单独的管理工具,这一点与 Xen 是相区别的。

A.KVM 体系结构

图 7. KVM 体系结构图

KVM 是一个独特的管理程序,通过将 KVM 作为一个内核模块实现,在虚拟环境下 Linux 内核集成管理程序将其作为一个可加载的模块可以简化管理和提升性能。在这种模式下,每个虚拟机都是一个常规的 Linux 进程,通过 Linux 调度程序进行调度。

通过以上四种虚拟机的体系结构图,我们可以看出他们在整个系统中的位置,以及相互之间的区别。

回页首

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 之间的快速共

享网络设备,见图 8。

图 8. Domain 0 与 Domain U PV Guest 通信示意图

上面我们已经分析了 PV 客户系统的工作原理,下面我们再简要的介绍一下 HVM 客户系统的工作原理。

由于一个 HVM Guests 虚拟机中没有上面提到得 PV driver,所以 Xen 在Domain 0 中为每一个 HVM Guest 都启动一个守护进程 Qemu-dm 处理来自客户系统的网络和磁盘请求,所以当一个 HVM Guest 有相应的网络和 I/O 请求的时候,它就会直接与 Domain0 中和它相对应的 Qemu-dm 来进行交互,通过Domain 0 最终达到访问网络设备或者磁盘的目的。见下图 9:

图 9. Domain 0 与 Domain U HVM Guest 通信示意图

结束语

通过这一部分的介绍,我们了解了 Xen 目前的发展及现状,另外我们详细的说明了如何在 Fedora13 下安装 Xen,以及 Xen 下一些基本操作,再这之后我们又讨论了一下 Xen 与 VMware ESXi,Hyper-V 以及 KVM 异同点,最后我们通过示例来讲解了一下 Xen 的工作原理。本系列的第二部分我们将阐述如何搭建

Xen 的开发环境、Xen 下开发需要具备的相关技术以及 Xen 下的如何利用XenAPI 做开发,最后通过一个例子来演示。

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 (全是小写)

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指令集虚拟化 虚拟化最新的发展称为指令集虚拟化,或者二进制转换。在这种模型中,虚拟指令集被转换成底层硬件的物理指令集,这个过程通常都是动态的。当代码执行时,就会对代码的某个段进行转换。如果出现分支情况,就会导入新代码集并进行转换。这使它与缓存操作非常类似,后者是将指令块从内存移动到本地快速缓存中执行。

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.sodocs.net/doc/9711444554.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.sodocs.net/doc/9711444554.html, https://www.sodocs.net/doc/9711444554.html,/article/CTX130418XenServer 6.0 Release Notes https://www.sodocs.net/doc/9711444554.html,/article/CTX131214Hotfix XS60E001 - For XenServer 6.0 https://www.sodocs.net/doc/9711444554.html,/article/CTX130421XenServer 6.0 Installation Guide https://www.sodocs.net/doc/9711444554.html,/article/CTX131400Hotfix XS60E002 - For XenServer 6.0 https://www.sodocs.net/doc/9711444554.html,/article/CTX130420XenServer 6.0 Administrator's Guide https://www.sodocs.net/doc/9711444554.html,/article/CTX130924 Designing XS 6.0 Network Configurations https://www.sodocs.net/doc/9711444554.html,/article/CTX130422XenServer 6.0 Virtual Machine Installation Guide https://www.sodocs.net/doc/9711444554.html,/article/CTX130423XenServer 6.0 vSwitch Controller User Guide https://www.sodocs.net/doc/9711444554.html,/article/CTX130437XenServer 6.0 Web Self Service Administrator's Guide https://www.sodocs.net/doc/9711444554.html,/article/CTX131047 XenServer 6.0 Configuration Limits

虚拟机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虚拟化技术

7.5.2 Xen虚拟化技术 本节中将以主流的Xen体系架构为例,说明虚拟化系统的一般技术架构和工作原理。 1.Xen体系结构(Xen Hypervisor) Xen Hypervisor(即Xen的VMM)位于操作系统和硬件之间,负责为上层运行的操作系统内核提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机(称为域)之间的相互隔离。Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其他的域,并提供虚拟的资源服务,该特权域称为 Domain 0,而其余的域则称为Domain U。 Xen的体系架构如图7-25所示。Xen向Domain提供了一个抽象层,其中包含了管理和虚拟硬件的API。Dom0内部包含了真实的设备驱动(原生设备驱动),可直接访问物理硬件,负责与Xen提供的管理API交互,并通过用户模式下的管理工具来管理Xen的虚拟机环境。

Xen向Domain提供了VCPU、虚拟MMU(Memory Management Unit)等基本的 虚拟硬件和基本机制(事件通道),并向Domain提供了虚拟域管理API(控制接口)。对Domain设备的访问,Xen也提供了相应的硬件接口(安全硬件接口), 以保证设备访问得以安全进行。 在Xen体系架构中涉及到的基本概念包括: 控制接口:仅能被Dom0使用,用于帮助Dom0控制和管理其他的Domain。控制 接口提供的具体功能包括Domain的创建、销毁、暂停、恢复及迁移,对其他Domain的CPU调度、内存分配及设备访问等。 安全硬件接口:提供除虚拟CPU、MMU之外的所有硬件虚拟工作,包括DMA/IO、驱动程序、虚拟的PCI地址配置、虚拟硬件中断等。该接口只能被具有原生设备 驱动的Domain使用,而向其他Domain则仅通过设备通道提供虚拟硬件服务。 VCPU:Xen为每个Domain建立了VCPU结构,用以接收Guest OS中传递的指令,其中大部分的指令被VCPU直接提交到物理CPU执行,而对于特权指令则需要经 过确认后交由Xen代为执行。 虚拟MMU:用于帮助Guest OS完成虚拟地址到机器地址的转换。Xen系统中增加了客户物理地址层,因而地址由原来的二层结构变为三层结构。Xen通过虚拟 MMU仍能使用硬件MMU来完成地址转换。 事件通道:是用于Domain和Xen之间、Domain相互之间的一种异步事件通知机制,用于处理Guest OS中的虚拟中断、物理中断以及Domain之间的通信。 设备管理器:位于Dom0和IDD(Independent Device Domain)中,可作为系统BIOS的扩展,用于向所有的设备提供通用的管理接口,并负责在Domain启动时 加载特定的设备驱动、建立管理设备通道、提供硬件设备配置接口并处理设备访问错误。 2.CPU虚拟化 (1)半虚拟化 对CPU指令集不提供硬件支持的情况,Xen只能采取半虚拟化的方案,通过修改Guest OS的内核对有缺陷的指令进行替换。在这种模式下,Xen位于操作系统和硬件之间,为其上运行的Guest OS内核提供虚拟化的硬件环境,因而Xen具有最高

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-VMware-ESXi-Hyper-V和KVM等虚拟化技术的原理解析

Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解 析 XEN 与 VMware ESXi,Hyper-V 以及 KVM 特点比较: XEN 有简化虚拟模式,不需要设备驱动,能够保证每个虚拟用户系统相互独立,依赖于 service domains 来完成一些功能; Vmware ESXI 与 XEN 比较类似,包含设备驱动以及管理栈等基本要素,硬件支持依赖于 VMware 创建的驱动; Hyper-V 是基于 XEN 管理栈的修改; KVM 与XEN 方式不同,KVM 是以Linux 内核作为管理工具得。 虚拟机的体系结构 XEN 体系结构 图 3. XEN 体系结构图 一个XEN 虚拟机环境主要由以下几部分组成: XEN Hypervisor; Domain 0 —— Domain Management and Control(XEN DM&C); Domain U Guest(Dom U) 下图4 显示除了各部分之间的关系: 图 4. Xen 三部分组成之间关系图

XEN Hypervisor : XEN Hypervisor 是介于操作系统和硬件之间的一个软件描述层。它负责在各个虚拟机之间进行CPU 调度和内存分配。XEN Hypervisor 不仅抽象出虚拟机的硬件,同时还控制着各个虚拟机的执行。XEN Hypervisor 不会处理网络、存储设备、视频以及其他I/O. Domain 0: Domain 0 是一个修改过的Linux kernel,是唯一运行在Xen Hypervisor 之上的虚拟机,它拥有访问物理I/O 资源的权限,同时和系统上运行的其他虚拟机进行交互。Domain 0 需要在其它Domain 启动之前启动。 Domain U: 运行在Xen Hypervisor 上的所有半虚拟化(paravirtualized)虚拟机被称为“Domain U PV Guests”,其上运行着被修改过内核的操作系统,如Linux、Solaris、FreeBSD 等其它UNIX 操作系统。所有的全虚拟化虚拟机被称为“Domain U HVM Guests”,其上运行着不用修改内核的操作系统,如Windows 等。 2.Hyper-V 体系结构 图 5. Hyper-V 体系结构图 Hyper-V 是微软提出的一种系统管理程序虚拟化技术,采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V 底层的Hypervisor 运行在最高的特权级别下,微软将其称为ring -1(而Intel 则将其称为root mode),而虚机的OS 内核和驱动运行在ring 0,应用程序运行在ring 3 下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。从架构上讲Hyper-V 只有“硬件-Hyper-V-虚拟机”三层,本身非常小巧,代码简单,且不包含任何第三方驱动,所以安全可靠、执行效率高,能充分利用硬件资源,使虚拟机系统性能更接近真实系统性能。 Hyper-V 支持分区层面的隔离。分区是逻辑隔离单位,受虚拟机监控程序支持,并且操作系统在其中执行。Microsoft 虚拟机监控程序必须至少有一个父/ 根分区,用于运行64 位版本的Windows Server 2008 操作系统。虚拟化堆栈在父分区中运行,并且可以直接访问硬

相关主题