文档库 最新最全的文档下载
当前位置:文档库 › Xen基本原理

Xen基本原理

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虚拟机必须采用完全虚拟化技术。

1.3 基本组件

Xen包含三大部分:

Xen Hypervisor:直接运行于硬件之上是Xen客户操作系统与硬件资源之间的访问接口(如:)。通过将客户操作系统与硬件进行分类,Xen管理系统可以允许客户操

作系统安全,独立的运行在相同硬件环境之上。

Domain 0:运行在Xen管理程序之上,具有直接访问硬件和管理其他客户操作系统的特权的客户操作系统。

DomainU:运行在Xen管理程序之上的普通客户操作系统或业务操作系统,不能直接访问硬件资源(如:内存,硬盘等),但可以独立并行的存在多个。

Xen组件结构图

1.3.1 Xen Hypervisor

Xen Hypervisor是直接运行在硬件与所有操作系统之间的基本软件层。它负责为运行在硬件设备上的不同种类的虚拟机(不同操作系统)进行CPU调度和内存分配。Xen Hypervisor 对虚拟机来说不单单是硬件的抽象接口,同时也控制虚拟机的执行,让他们之间共享通用的处理环境。

Xen Hypervisor不负责处理诸如网络、外部存储设备、视频或其他通用的I/O处理。

1.3.2 Domain 0

Domain 0 是经过修改的Linux内核,是运行在Xen Hypervisor之上独一无二的虚拟机,拥有访问物理I/O资源的特权,并且可以与其他运行在Xen Hypervisor之上的其他虚拟机进行交互。所有的Xen虚拟环境都需要先运行Domain 0,然后才能运行其他的虚拟客户机。

Domain 0 在Xen中担任管理员的角色,它负责管理其他虚拟客户机。

在Domain 0中包含两个驱动程序,用于支持其他客户虚拟机对于网络和硬盘的访问请求。这两个驱动分别是Network Backend Driver和Block Backend Driver。

Network Backend Driver直接与本地的网络硬件进行通信,用于处理来自Domain U客户机的所有关于网络的虚拟机请求。根据Domain U发出的请求Block Backend Driver直接与本地的存储设备进行通信然后,将数据读写到存储设备上。

Domain 0虚拟机

1.3.3 Domain U

Domain U客户虚拟机没有直接访问物理硬件的权限。所有在Xen Hypervisor上运行的半虚拟化客户虚拟机(简称:Domain U PV Guests)都是被修改过的基于Linux的操作系统、Solaris、FreeBSD和其他基于UNIX的操作系统。所有完全虚拟化客户虚拟机(简称:Domain U HVM Guests)则是标准的Windows和其他任何一种未被修改过的操作系统。

无论是半虚拟化Domain U还是完全虚拟化Domain U,作为客户虚拟机系统,Domain U 在Xen Hypervisor上运行并行的存在多个,他们之间相互独立,每个Domain U都拥有自己所能操作的虚拟资源(如:内存,磁盘等)。而且允许单独一个Domain U进行重启和关机操作而不影响其他Domain U。

Xen虚拟化示意图

2Xen基本体系架构及运行原理

2.1.1 Xen体系架构

Xen 的VMM ( Xen Hyperviso ) 位于操作系统和硬件之间,负责为上层运行的操作系统内核提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机(称为域Domain)之间的相互隔离。Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其他的域,并提供虚拟的资源服务,该特权域称为Domain 0,而其余的域则称为Domain U。

Xen向Domain提供了一个抽象层,其中包含了管理和虚拟硬件的API。Domain 0内部包含了真实的设备驱动(原生设备驱动),可直接访问物理硬件,负责与Xen 提供的管理API 交互,并通过用户模式下的管理工具来管理Xen 的虚拟机环境。

Xen2.0之后,引入了分离设备驱动模式。该模式在每个用户域中建立前端(front end)设备,在特权域(Dom0)中建立后端(back end)设备。所有的用户域操作系统像使用普通设备一样向前端设备发送请求,而前端设备通过IO请求描述符(IO descripror ring)和设备通道(device channel)将这些请求以及用户域的身份信息发送到处于特权域中的后端设备。这种体系将控制信息传递和数据传递分开处理。

在Xen体系结构设计中,后端设别运行的特权域被赋予一个特有的名字---隔离设备域(Isolation Device Domain, IDD),而在实际设计中,IDD 就处在Dom0中。所有的真实硬件访问都由特权域的后端设备调用本地设备驱动(native device drive)发起。前端设备的设计十分简单,只需要完成数据的转发操作,由于它们不是真实的设备驱动程序,所以也不用进行请求调度操作。而运行在IDD中的后端设备,可以利用Linux的现有设备驱动来完成硬件访问,需要增加的只是IO请求的桥接功能---能完成任务的分发和回送。

Xen 的体系架构

2.1.2 不同虚拟技术的运行机制

半虚拟化技术:

采用半虚拟化技术的虚拟机操作系统能够识别到自己是运行在Xen Hypervisor而非直接运行于硬件之上,并且也可以识别到在相同的机器上运行的其他虚拟机系统。而且运行的操作系统都需要进行相应的修改。

半虚拟化客户机(Domain U PV Guests)包含两个用于操作网络和磁盘的驱动程序,PV Network Driver 和PV Block Driver。

PV Network Driver负责为Domain U提供网络访问功能。PV Block Driver负责为Domain U提供磁盘操作功能。

半虚拟化客户机

完全虚拟化技术:

完全虚拟化客户机(Domain U HVM Guests)运行的是标准版本的操作系统,因此其操作系统中不存在半虚拟化驱动程序(PV Driver),但是在每个完全虚拟化客户机都会在Domain 0中存在一个特殊的精灵程序,称作:Qemu-DM,Qemu-DM帮助完全虚拟化客户机(Domain U HVM Guest)获取网络和磁盘的访问操作。

完全虚拟化客户机必须和在普通硬件环境下一样进行初始化,所以需要在其中加入一个特殊的软件Xen virtual firmware,来模拟操作系统启动时所需要的BIOS。

完全虚拟化客户机

2.1.3 Domain 管理和控制

开源社区中将一系列的Linux精灵程序分类为“管理”和“控制”两大类。这些服务支撑着整个虚拟环境的管理和控制操作,并且存在于Domain 0虚拟机中。

下面将对直接服务进行详细的描述。

注:为了清晰的描述Xen的运行流程,画图时将精灵程序放在Domain 0外部来描述,但事实上所有精灵程序都存在于Domain 0 之中。

2.1.

3.1 Xend

Xend精灵线程是一个Python应用程序,它作为Xen环境的系统管理员。它利用Libxenctrl类库向Xen Hypervisor发出请求。

所有Xend处理的请求都是由XM工具使用XML RPC接口发送过来的。

Xend运行示意图

2.1.

3.2 Xm

用于将用户输入通过XML RPC接口传递到Xend中的命令行工具。

2.1.

3.3 Xenstored

Xenstored精灵程序用于维护注册信息,这些信息包括内存和在连接Domain 0和所有其他Domain U之间的事件通道。Domain 0虚拟机利用这些注册信息来与系统中其他虚拟机建立设备通道,即帮助Domain U虚拟机访问硬件资源。

2.1.

3.4 Libxenctrl

Libxenctrl是C程序类库,用于让Xend具有通过Domain 0与Xen Hypervisor进行交互的能力。在Domain 0中存在一个特殊的驱动程序称作privcmd,它将请求发送给Hypervisor。

Libxenctrl示意图如下

2.1.

3.5 Qemu-DM

在Xen环境下,每个完全虚拟化虚拟机都需要拥有自己的Qemu精灵程序。Qemu-DM 处理在Xen环境下完全虚拟化客户机所能允许执行的所有关于网络和磁盘请求和操作。Qemu程序必须存在于Hypervisor之外同时又需要访问网络和I/O,所以Qemu-DM必须存在于Domain 0 中(参见前面章节对Domain 0 的描述)。

未来版本的Xen中,一种新的工具Stub-DM将会提供一系列对所有完全虚拟化客户机都可用的服务,以此来替代需要在每个虚拟机上都生成一个Qemu的逻辑。

2.1.

3.6 Xen Virtual Firmware

Xen Virtual Firmware是被嵌入到所有完全虚拟化客户机中的虚拟的BIOS系统,来确保所有客户操作系统在正常启动操作中接收到标准的启动指令集并提供标准的软件兼容环境。

2.1.4 半虚拟化环境下Domain 0与Domain U通信

根据前几章节所述,Xen Hypervisor不负责处理网络和磁盘请求,因此半虚拟化客户机(Domain U PV)必须通过Domain 0 与Xen Hypervisor进行通信,从而完成网络和磁盘的操作请求。下面以半虚拟化客户机(Domain U PV)执行向本地磁盘写入数据为例描述Domain 0与Domain U PV的交互过程。

半虚拟化客户机(Domain U PV)的PV Block Driver接收到要向本地磁盘写入数据的请求,然后通过Xen Hypervisor将与Domain 0共享的本地内存中的数据写入到本地磁盘中。在Domain 0 和半虚拟化Domain U之间存在事件通道,这个通道允许它们之间通过存在于Xen Hypervisor内的异步中断来进行通信。Domain 0将会接收到一个来自于Xen Hypervisor 的系统中断,并触发Domain 0中的Block Backend驱动程序去访问本地系统内容,并从与半虚拟化客户机的共享内存中读取适合的数据块。从共享内存中读取的数据随后被写入到本地磁盘的指定位置中。

Domain U PV执行磁盘操作实例

上图中所显示的事件通道是直接连接Domain 0 和Domain U PV是为了清晰和简单的描述系统是如何运行的。但事实上,事件通道(Event Channel)运行于Xen Hypervisor中,并在Xenstored中注册特定的系统中断,以此来让Domain 0 和Domain U PV能够通过本地内存快速的共享信息。

Domain 0与Domain U PV启动交互图

2.1.5 Xen PCI中继

Xen PCI中继是Xen设计的新特性,用于提升整体性能和减轻Domain 0的负载。Xen PCI 中继运行Domain U客户机直接访问硬件资源而不像原来那样需要通过Domain 0来访问。下图中展示这个新特性的工作流程。

PCI工作流程示例

PCI作为Xen的新特性,目前还没有完全进行应用。

3Xen的网络架构

3.1 Xen支持三种网络工作模式

1.Bridge 安装虚拟机时默认使用Bridge模式

2.Route

3.NA T

各工作模式下虚拟机启动流程:

Bridge模式

Xend启动时流程:

1)创建虚拟网桥xenbr0。

2)停止物理网卡eth0。

3)物理网卡eth0 的MAC 地址和IP 地址被复制到虚拟网卡veth0。

4)物理网卡eth0 重命名为peth0。

5)Veth0 重命名为eth0。

6)Peth0 的MAC 地址更改(FE:FF:FF:FF:FF:FF ),ARP 功能关闭。

7)连接peth0、vif0.0 到网桥xenbr0

8)启动peth0、vif0.0、xenbr0

Domain U 启动时的流程:

1)vif.0 连接到xenbr0

2)启动vif.0

Route 模式

Xend启动时的流程:

1)开启Domain 0的IP Forward。

Domain U启动时的流程:

1)创建vif.0 ,dom U eth0的IP地址被拷贝到vif

2)启动vif.0。

3)为domU的配置文件中指向虚拟接口vif.0分配的IP地址增加静态路由。 NAT模式

NAT 模式会使用虚拟局域网virbr0

3.2 Xen Domain U Guests 发送数据包处理流程

Xen Domain U Guests发送数据包处理流程

3.3 Xen中虚拟网卡与物理网卡之间的关系

安装了Xen的Linux机器,在Dom 0中能看到以下几类网卡(网络接口设备):(X ,Y都为数字)

pethY

ethY

xenbrY

virbrY

vifX.Y(X为DomaiID,Y表示该虚拟网卡是该Domain的第几块虚拟网卡)

vethY (一般在Xend启动完成以后就不存在了)

这些网络接口设备之间的关系

4Xen运行所需条件

4.1 硬件支持

目前运行在x86架构的机器上,需要p6或更新的处理器(比如pentium pro, celeron, pentium ii, pentium iii, pentium iv, xeon, amd athlon, amd duron)。支持多处理器,并且支持超线程(smt)。另外对ia64和power架构的开发也在进行中。32位Xen支持最大4gb内存。可是Xen3.0 为intel处理器物理指令集(pae)提供支持,这样就能使x86/32架构的机器支持到64gb的物理内存。Xen3.0也能支持x86/64平台支持,比如intel em64t 和amd opteron 能支持1tb的物理内存以上。

4.2 软件支持

操作系统:

半虚拟化客户虚拟机PV支持运行在Linux 2.6.26版本内核之上。

Domain 0支持运行在Linux 2.6.37版本内核之上。

Domain0中的网络驱动支持运行在Linux 2.6.39版本内核之上。

Domain0中磁盘驱动运行在Linux 3.0.0版本内核之上。

Linux3.0.0版本内核可以在Xen中可以作为domU, dom0 和PV。

Fedora 和Ubuntu操作系统在2010年以后的版本,将会在内核中加入对Xen的支持。

详细信息参见官网发布:https://www.wendangku.net/doc/2d16048984.html,/wiki/Xen_Kernel_Feature_Matrix

软件包:

gcc

glib-devel

libgomp

glibc-headers

ncurses-devel

openssl-devel

zlib-devel

xorg-X11-proto-devel

python-devel

tetex-latex

xen-devel

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.wendangku.net/doc/2d16048984.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.wendangku.net/doc/2d16048984.html, https://www.wendangku.net/doc/2d16048984.html,/article/CTX130418XenServer 6.0 Release Notes https://www.wendangku.net/doc/2d16048984.html,/article/CTX131214Hotfix XS60E001 - For XenServer 6.0 https://www.wendangku.net/doc/2d16048984.html,/article/CTX130421XenServer 6.0 Installation Guide https://www.wendangku.net/doc/2d16048984.html,/article/CTX131400Hotfix XS60E002 - For XenServer 6.0 https://www.wendangku.net/doc/2d16048984.html,/article/CTX130420XenServer 6.0 Administrator's Guide https://www.wendangku.net/doc/2d16048984.html,/article/CTX130924 Designing XS 6.0 Network Configurations https://www.wendangku.net/doc/2d16048984.html,/article/CTX130422XenServer 6.0 Virtual Machine Installation Guide https://www.wendangku.net/doc/2d16048984.html,/article/CTX130423XenServer 6.0 vSwitch Controller User Guide https://www.wendangku.net/doc/2d16048984.html,/article/CTX130437XenServer 6.0 Web Self Service Administrator's Guide https://www.wendangku.net/doc/2d16048984.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.wendangku.net/doc/2d16048984.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.wendangku.net/doc/2d16048984.html,mands。 下面按字母排序列出一些Citrix common command:

相关文档