Archlinux上使用Xen

Archlinux上使用Xen
Archlinux上使用Xen

Archlinux上安装和使用Xen

其实网上有很多安装Xen的教程,从老版本到新版本,有关xen、dom0、domu等安装都有。大多数发行版都提供了简便的安装方法,一般在官方Wiki或者Documentation 都可以找到,例如Fedora/Debian/Gentoo/Ubuntu等等,地址可以上网找,在此就不提供了。因为本文是基于Archlinux发现版安装Xen,因此可能不大一样,但是殊途同归,大致的过程是一样的,在这我先例举下本文要做的事情:

1. 安装Xen 4 hypervisor和tools。

2. 安装Dom0。

3. 安装Domu,包括全虚拟化(full-virtualization)及类虚拟化(para-virtualization) 两

种方式安装。

当然在这过程中,肯定需要安装一些必须的依赖包,如果是属于编译安装一类的包,例如gcc、binutils等,就不说了,但是如果是其它必须的包,在安装的过程中会提及。

在具体介绍安装方法之前,首先从宏观来介绍下Xen的整个安装过程。我们知道,Xen是基于混合模型的,混合模型的特征是VMM(hypervisor)位于最底层(硬件之上),拥有所有的物理资源,但是与直接的hypervisor模型不一样的是,VMM会主动让出大部分I/O的控制权,将它们交由一个运行在特权虚拟机中的特权操作系统来控制(Xen中的dom0)。

Xen的结构如下图所示:

图1 Xen虚拟化模型

你可以简单地把Xen Hypervisor+Dom0想像成一个整体,共同提供一个完整的虚拟化环境,然后在此基础上安装Domu,即非特权级虚拟机。还有一个使用混合模型的虚拟化案例,即Windows Server 2008,其中Hyper-V作为hypervisor运行在最底层,而win server 2008作为特权级操作系统运行在Hyper-V之上。

以上都是题外话,只是想说明一下Xen的基础架构,以及为什么要以本文开头所列的安装顺序进行安装。相比与Vmware workstation及Virtualbox的安装方式,Xen的安装(包括1、2、3)相对比较复杂, 因为Xen本身并没有提供像Virtualbox等图形化的安装界面(可以使用第三方的图形安装工具,在本文也会介绍),而且Virtualbox采用的是宿主模型,它作为一个模块或者应用软件运行在操作系统之上。

但是,Xen的安装只要理解了,顺序搞清楚了,也就不会显得那么麻烦了。

准备工作:你有一台装有Archlinux的电脑(Linux环境),有网络连接(可以下载包),有浏览器(遇到问题网上搜索)。

一、安装Xen Hypervisor 及 Tools

标题可能给人误解以为是要安装两个东西,其实只是安装一个包,这个包不仅提供了Xen hypervisor,同时也提供了相应的管理工具。

首先安装必须的开发编译环境

pacman -S gcc make patch python2

然后开始安装Xen 4.1.0,在Archlinux官方软件仓库中并没有提供Xen的包,但是可以在AUR上下载到,要安装AUR上的软件,需要使用yaourt安装工具(关于如何使用yaourt请自行参考官方Wiki):

yaourtxen

然后选择Xen 4.1.0确定安装,yaourt会自动从网上下载Xen的源码并编译安装。安装好之后,你会发现在/boot目录下面有一个xen.gz,这个是xen的核心,同时你也可以发现有一些xen的管理命令,例如xm、xend,但是这些在当前系统下面都没用的,因为未进入xen的虚拟环境(xen hypervisor+dom0)。

如果安装或者编译的过程中出现问题,请将问题放到Google中搜索,找到解决方法。

我在编译的过程中遇到了一个问题,在这和大家分享下:

问题1:编译过程中xxxx变量unused_but_set_variable错误。

造成这个问题的原因是我所安装的gcc默认开启了-Werror=unused_but_set_variable 选项,这个选项的结果就是把编译过程中的警告也当作错误处理,最直接的解决方法是设置gcc关闭这个选项。当时没有去找怎么关闭,而是采用了downgrading gcc的方法,因为我的电脑上打开了testing仓库,因此安装了gcc测试版本 4.6.0。所以方法是在/etc/pacman.conf中关闭testing仓库,然后执行以下命令:

Pacman –Sygcc

到此为止,Xen hypervisor就安装完成了。

二、安装Dom0

Dom0是一个拥有特权的客户操作系统,在Xen hypervisor启动之后会首先引导Dom0启动。Dom0拥有一些直接访问物理意资源的特权,与此同时,它也同样承担一些责任,比如在Dom0上运行一些管理工具对Xen Hypervisor以及其它非特权级虚拟机进行管理。

Dom0通常是一个Linux操作系统,也可以是NetBSD或者OpenSolaris。但是Dom0必须包含一个支持Xen Dom0功能的内核。本文只介绍Linux作为Dom 0的安装。因此Dom0是一个类虚拟化的VM。

一般网上比较旧的教程安装Linux Dom 0,都是先下载标准的Linux内核源代码包,然后再下载Xen的补丁,并打上。但是按照Xen官方Wiki上的说法,在Linux 2.6.23版本之后,内核已经默认提供了类虚拟化的功能:

https://www.360docs.net/doc/9112501314.html,/xenwiki/XenParavirtOps

paravirt_ops是Linux提供的一组功能,它允许Linux内核以类虚拟化的方式运行在Hypervisor之上。目前该功能运行VMWare的VMI、Rusty的lguest以及Xen。

该功能允许你编译一个内核映像,它即可以同普通的内核一样直接运行在硬件之上(或者以hvm模式运行在Xen上),同时也可以运行在类虚拟化的环境之上,更进一步地打上补丁之后可以作为Xen Dom0。

总结一下:

1. Dom0是一个拥有特权的客户操作系统。

2. Dom0一般是Linux内核,而且是支持类虚拟化和Xen Dom0的内核。

3. Linux 2.6.23版本之后,提供了paravirt_ops,已经提供了类虚拟化的功能。

4. 在3的基础上打上补丁之后,就可以作为Xen Dom0的Linux内核。

5. 支持Xen Dom0 的Linux内核依然是一个Linux内核。

在介绍了以上内容之后,下面就开始安装Xen Dom0。

1.下载Linux Dom 0内核源代码

从网上下载加入了Xen Dom 0支持的内核源代码:

git clone git://https://www.360docs.net/doc/9112501314.html,/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen

cd linux-2.6-xen

git reset --hard

git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x

git pull

但是,使用git下载可能会速度很慢,可以直接通过http下载,下载地址为:

https://www.360docs.net/doc/9112501314.html,/?p=linux/kernel/git/jeremy/xen.git;a=snapshot;h=xen/stable-

2.6.32.x;sf=tgz

2.编译内核

进入linux-2.6-xen目录开始配置内核选项。首先拷贝Archlinux系统上已有的内核配置文件到当前目录下,重命名成.config:

zcat /proc/config.gz > .config

makeoldconfig

在出现的提示中,如果不了解就直接回车,使用默认的选项设置。接着,开始配置Xen Dom0相关的内核选项:

makemenuconfig

确保选中以下选项:(具体参考[2])

CONFIG_X86_IO_APIC

CONFIG_ACPI

CONFIG_XEN_DEV_EVTCHN

CONFIG_XENFS

CONFIG_XEN_SYS_HYPERVISOR CONFIG_XEN_GNTDEV

CONFIG_ACPI_PROCFS=y

CONFIG_XEN=y

CONFIG_XEN_MAX_DOMAIN_MEMORY=32 CONFIG_XEN_SAVE_RESTORE=y CONFIG_XEN_DOM0=y

CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_PCI_XEN=y

CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_NETXEN_NIC=m

CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_KBDDEV_FRONTEND=m CONFIG_HVC_XEN=y

CONFIG_XEN_FBDEV_FRONTEND=m CONFIG_XEN_BALLOON=y

CONFIG_XEN_SCRUB_PAGES=y

CONFIG_XEN_DEV_EVTCHN=y

CONFIG_XEN_BACKEND=y

CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_XEN_NETDEV_BACKEND=y CONFIG_XEN_PCIDEV_BACKEND=y CONFIG_XEN_PCIDEV_BACKEND_VPCI=y CONFIG_XENFS=y

CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_XENBUS_FRONTEND=m CONFIG_XEN_PCIDEV_FRONTEND=y

注意1,如果编译32位的内核版本,首先需要在内核中启动PAE支持,因为目前Xen只支持32位的PAE内核。(Processor type and features -> High Memory Support -> 64GB)

注意2,在1的基础上,确保CONFIG_HIGHPTE=N。

配置完成后,就是常规的编译内核步骤了:

makebzImage

make modules

makemodules_install

cp -a .config /boot/config-version

cp -a System.map /boot/System.map-version

cp -a arch/x86/boot/bzImage /boot/vmlinuz-version

mkinitcpio –k version –g /boot/initrd-version.img

其中version为你当前所编译的内核版本。最后在grub中添加启动项(grub2的设置在此不提):

titleArchlinuxXen Dom0

root (hd0,2)

kernel /xen-4.0.gz dom0_mem=1024M

module /boot/vmlinuz-2.6.32.37 root=/dev/sda3 ronomodeset

module /boot/initrd-2.6.32.37.img

以上设置请根据实际情况修改硬盘分区及文件名。注意在内核映像后面添加nomodeset选项,禁用KMS,目前Xen对KMS支持不大好。

至此,Dom 0就安装完成了,你可以重启进入Dom0。

3. 显卡问题

如果是n卡或者a卡,确保在内核映像后面添加nomodeset参数。

如果是intel的显卡,请安装vesa驱动,并同样在内核映像后面添加nomodeset或者i915.modeset=0参数。

pacman –s xf86-video-vesa

然后重启到grub界面,选择Dom0内核,按e,在内核映像后面添加single参数,按

b启动进入文本模式,然后以root权限执行以下命令生成Xorg.conf:

X –configure

cpXorg.conf.new /etc/X11/Xorg.conf

reboot

4. 进入Dom0

执行几个命令验证下已经进入了Xen Dom0,首先启动必须的服务:

/etc/rc.d/xencommons start

/etc/rc.d/xend start

然后使用xm list看看当前运行的domain虚拟机,目前应该只包括Domain 0:

Name ID Mem VCPUs State Time(s)

Domain-0 0 1863 2 r----- 295.2

然后执行以下命令验证当前电脑支持intelvt-x技术:

xm info | grep –I virt_caps

如果执行结果如下,则说明支持,否则请上网搜索确认你的CPU是否支持,或者BIOS中是否启用:

virt_caps : hvm

三、安装DomU

相比Dom0的安装,DomU的安装方式就非常多了,有全虚拟化和类虚拟化两种技术,有命令行安装和图形界面安装两种安装方式,当然DomU可以采用的操作系统也多种多样,包括Fedora、Debian、Ubuntu、Centos、Archlinux、Windows等等。本文档将会能一一介绍不同的安装方法。

1. virrt-manager

相信大家在Windows或者Linux下都是安装过VMWare或者Virtualbox的,virt-manager提供的图形化安装方式就和它们差不多。

Virtual Machine Manageg,简称为virt-manager,是RedHat公司共享的一个开源虚

拟化管理软件。它不仅提供了当前运行的虚拟机的概况,同时也包括它们当前的性能及资源利用率等统计。该工具还包含图形化的安装向导,可以通过这种方式更加方便地安装与配置虚拟机,如虚拟机资源的分配和虚拟硬件的设置。内嵌的VNC viewer客户端提供了对客户虚拟机的图形化终端的支持。

virt-manager是用Python编写的GUI程序,底层通过libvirt库对各类Hypervisor进行交互管理.通过这种方式virt-manager的开发可以完全独立于不同的hypervisor。目前支持Xen,KVM及QEMU。

接下来开始安装virt-manager,首先需要安装libvirt及一些需要的包:

pacman -S libvirturlgrabberqemu-kvmdnsmasq bridge-utils

然后安装virt-manager/virt-install/virtviewer,virt-manager前面已经说过了,virt-install其实是命令行的virt-manager,而virtviewer就是VNC viewer。

pacman -S virtviewervirtinstvirt-manager

但是要注意的是默认的Archlinux仓库中libvirt包没有在编译的时候加入对Xen的支持,即它在配置过程中使用了”--without-xen”的选项,因此需要自己重新编译过。推荐使用abs抓下libvirt的打包文件,自行打包安装:

abs community/libvirt

cd /var/abs/community/libvirt

vim PKGBUID #把—without-xen去掉

makepkg&&pacman -U libvirt-0.9.0-2-i686.pkg.tar.xz

安装好后不要急着打开virt-manager, 首先需要修改/etc/xen/xend-config.sxp, 去掉下面几行的注释:

(xend-http-server yes)

(xend-unix-server yes)

(xend-unix-path /var/lib/xend/xend-socket)

(xend-port 8000)

(network-script network-bridge)

然后启动一些服务:

sudo /etc/rc.d/xencommons start

sudo /etc/rc.d/xend start

sudo /etc/rc.d/libvirtd start

最后使用virsh命令确认Xen环境配置正确,如下代表配置成功:

/etc/xen$ sudovirsh version

Compiled against library: libvir 0.9.0

Using library: libvir 0.9.0

Using API: Xen 3.0.1

Running hypervisor: Xen 4.1.0

然后在命令行中输入virt-manager开始安装虚拟机,在工具栏选择新建按钮就进入了安装向导,之后的过程就很简单了,和VBox差不多。其中完全虚拟化可以选择从本地ISO映像或者光驱启动安装,这是最简单的了,因此就不多说了。

这里主要说下类虚拟化的安装方式,类虚拟化的安装方式和全虚拟化不,只能通过网络的方式安装。

(尚未成功)

2.使用XM命令

(1)全虚拟化

安装任务:以全虚拟化的方式安装Archlinux,安装ISO为archlinux-2010.05-core-dual.iso。

安装步骤如下:

a. 创建虚拟硬盘

在这里使用dd命令创建虚拟硬盘,使用seek选项创建稀疏文件:

dd if=/dev/zero of=archlinux.imgbs=1M seek=20480 count=1

注:稀疏文件与VBox的动态增长大小的虚拟硬盘类似。以通过du命令查看实际的大小:

du -h archlinux.img

1.0M archlinux.img

b. 创建虚拟机安装的配置文件(与下面的虚拟机启动的配置文件有区别)

可以在xen自带的全虚拟机配置文件例子的基础上按自己的需要做修改,在这些配置文件中有相关选项的注释:

cp /etc/xen/xmexample.hvmarch.hvm

确保有以下内容:

# -*- mode: python; -*-

kernel = "/usr/lib/xen/boot/hvmloader" # 全虚拟化特有的loader

builder='hvm' # 全虚拟化要选择”hvm”

memory = 1024 # 内存,以M为单位

name = "arch" # 虚拟机名称

vcpus=8 # 虚拟CPU个数

cpus="1-7" # 使用实际CPU的范围

vif = [ 'type=ioemu, bridge=xenbr0' ] # 虚拟网卡设置

disk = [ # 硬盘设置

'file:/sdc1/drs_ltt/archlinux.img,hda,w', # 虚拟硬盘路径

#'file:/sdc1/drs_ltt/archlinux.iso,hdc:cdrom,r' # ISO映像路径

]

device_model = '/usr/lib64/xen/bin/qemu-dm'

boot="dca" # 启动顺序,以d(光盘)/c(硬盘)/a(软盘)

vnc=1

serial='pty'

vncunused=1

vncpasswd=''

注:红色的地方请按实际情况修改

c. 安装ArchlinuxDomU

安装的使用需要用vncviewer连接到所创建的虚拟机,因此系统上必须有vncviewer 的软件:

pacman -S tightvnc

使用xm create命令创建虚拟机:(小技巧,使用命令缩写xmcr)

xm create arch.hvm

通过xm list查看虚拟机列表:

xm list

Name ID MemVCPUs State Time(s)

Domain-0 0 1720 2 r----- 2342.5

arch-01 7 256 1 ------ 0.5

表明虚拟机创建成功,ID为7,接下来通过xmvncviewer命令连接到虚拟机开始系统安装:

xmvncviewer 7

关于系统安装过程在此就不多加赘述了,同普通的系统安装一样。安装好之后,需要做一些配置,以方便以后的虚拟机访问。在此之前,先讲下在dom0上连接全虚拟化虚拟机的三种方法:第一种是之前用到的xmvncviewer,需要在图形环境下使用;第二种是通过xm console命令,需要在虚拟机中配置好串口ttyS0;第三种是通过ssh命令,需要在虚拟机中配置ssh服务。

配置console:

1)修改/etc/inittab

# Serial Virtual Console for KVM and others VMs

s0:2345:respawn:/sbin/agetty -8 9600 ttyS0 linux # 去掉这行的注释

2)修改/boot/grub/menu.lst

在启动项目的kernel尾端添加console=ttyS0

配置ssh服务:

1)安装openssh

pacman–S openssh

2)开机自启动sshd服务

在rc.conf的最后一行dameons中添加@sshd:

DAEMONS=(syslog-ng network @sshd !netfs !crond)

3)配置sshd

在/etc/hosts.allow中添加一行: sshd: ALL

修改/etc/ssh/sshd_config文件,去掉以下两行的注释:

Port 22

Protocol 2

配置好之后, 关闭虚拟机:

xm shut 7

d. 创建虚拟机启动的配置文件

在虚拟机安装的配置文件基础上修改(只列出需要修改的部分,其余一样):

disk = [ 'file:/your/path/archlinux.img,hda,w' ]

# boot="dca"

e. 启动虚拟机

xmcr –c arch.hvm # -c选项表示以串口的形式启动

要从串口连接方式中退出,按ctrl+],然后试试ssh连接是否可用。

sshroot@ip_address_of_domu

(2)类虚拟化

安装任务:以类虚拟化的方式启动Arch DomU

因为之前已经以全虚拟化的方式安装好Arch,在这些就通过一些技巧将HVM的虚拟机转换成PV形式的虚拟机。

a. 启动之前创建的虚拟机:

xmcrarch.hvm # 假设虚拟机ID为8,IP为10.214.16.11

b. 安装类虚拟机的Linux内核

yaourt kernel26-xen

并在/boot/grub/menu.lst中添加相应的启动项:

# (0) Arch Linux (PV DomU)

title Arch Linux (PV DomU)

root (hd0,0)

kernel /boot/vmlinuz26-xen root=/dev/sda1 ro

initrd /boot/kernel26-xen.img

然后将/boot目录下面的kernel26-xe.img和vmlinuz26-xen两个文件拷贝到dom0中。

scproot@10.214.16.11:/boot/*xen* ./ # 在dom0中执行

c. 修改配置文件

touch /etc/rc.xen /etc/fstab.hvm /etc/fstab.pv

rc.xen的内容如下:

#/bin/bash

/bin/mount -n -o remount,rw /

uname -r | grep "xen"&>/dev/null

if [ $? -eq0 ]; then

cp /etc/fstab.pv /etc/fstab

#sed -i "s/^#\s*h0/h0/" /etc/inittab

#sed -i "s/^#\?\s*s0/# s0/" /etc/inittab

else

cp /etc/fstab.hvm /etc/fstab

3sed -i "s/^#\s*s0/s0/" /etc/inittab

#sed -i "s/^#\?\s*h0/# h0/" /etc/inittab

fi

/bin/findmnt / --options ro&>/dev/null || /bin/mount -n -o remount,ro /

/etc/fstab.hvm的内容如下:

/dev/sda1 / ext4 defaults 0 1

/dev/sda5 swap swap defaults 0 0

/etc/fstab.pv的内容如下:

/dev/xvda1 / ext4 defaults 0 1

/dev/xvda5 swap swap defaults 0 0

d. 修改arch的启动脚本./etc/rc.sysinit和/etc/rc.multi

在/etc/rc.sysiniit开头下面的内容之后添加:

. /etc/rc.conf

. /etc/rc.d/functions

. /etc/rc.xen # 所添加的行

注释掉下面这一行:

#/sbin/bootlogd -p /run/bootlogd.pid

修改/etc/rc.multi,注释掉以下几行:

#/bin/touch /var/log/boot

#kill `/bin/cat /run/bootlogd.pid`

#/bin/rm /run/bootlogd.pid

e. 修改/etc/inittab文件

去掉下面这行的注释:

h0:2345:respawn:/sbin/agetty -8 38400 hvc0 linux

f. 关闭虚拟机

xm des 8

g. 创建PV类型的虚拟机启动的配置文件

内容如下:

kernel = "vmlinuz26-xen"

ramdisk = "kernel26-xen.img"

memory = 1024

name = "pvarch"

#bootloader="/usr/bin/pygrub"

vcpus = 8

vif = [ 'mac=00:16:36:64:5e:ef, bridge=xenbr0' ]

disk = [ 'file:/sdc1/drs_ltt/archlinux.img,xvda,w' ]

root = "/dev/xvda1 ro"

console = "hvc0"

或者以pygrub的方式启动

#kernel = "vmlinuz26-xen"

#ramdisk = "kernel26-xen.img"

memory = 1024

name = "pvarch"

bootloader="/usr/bin/pygrub"

vcpus = 8

vif = [ 'mac=00:16:36:64:5e:ef, bridge=xenbr0' ]

disk = [ 'file:/sdc1/drs_ltt/archlinux.img,xvda,w' ]

root = "/dev/xvda1 ro"

console = "hvc0"

h. 启动PV虚拟机

xmcr –c pvarch.cfg

关于ubuntu 11.05 natty的domu安装(PV形式),请参考:

http://www.mmacleod.ca/blog/2011/05/ubuntu-natty-narwhal-and-xen/

四、参考资料

1. Xen - Archlinuxwiki https://https://www.360docs.net/doc/9112501314.html,/index.php/Xen

2. PV_OPS https://www.360docs.net/doc/9112501314.html,/xenwiki/XenParavirtOps

3. Redhat Enterprise Linux 6 Xen

4.0 tutorial

https://www.360docs.net/doc/9112501314.html,/xenwiki/RHEL6Xen4Tutorial

4. Ubuntu 安装xen (中文)

https://www.360docs.net/doc/9112501314.html,/space.php?uid=25573859&do=blog&id=186783

5. Set up Ubuntu 10.04 Server PV DomU at Xen 4.0 Dom0 (pvops 2.

6.32.12 kernel) Dom0 on top of Ubuntu 10.04 Server

https://www.360docs.net/doc/9112501314.html,/2010/04/24/set-up-ubuntu-10-04-server-pv-domu-at-xen-4-0-dom0-pvops-2-6-32-10-kernel-dom0-on-top-of-ubuntu-10-04-server/

6. Installation XEN 4.0 from source

https://www.360docs.net/doc/9112501314.html,/2010/07/installation-xen-40-from-source.html

7. libvirthttps://https://www.360docs.net/doc/9112501314.html,/index.php/Libvirt

8. Gentoo Linux Documentation -- Configuring Gentoo with Xen

https://www.360docs.net/doc/9112501314.html,/doc/en/xen-guide.xml

9. https://www.360docs.net/doc/9112501314.html,/archives/html/xen-users/2010-08/msg00602.html

10. https://www.360docs.net/doc/9112501314.html,/blog/239820779/722987239

11. https://www.360docs.net/doc/9112501314.html,/blog/239820779/728390096

12. http://www.mmacleod.ca/blog/2011/05/ubuntu-natty-narwhal-and-xen/

五、附录

1. 根据MAC地址改变domU的IP地址

背景:在局域网内批量创建虚拟机,IP地址如果一台一台修改,非常麻烦,如果能够自动地改变domu IP地址,就非常方便了。

规则:根据虚拟机启动配置文件中指定的MAC地址生成IP:

vif = [ 'mac=00:16:0a:d6:10:0b, bridge=xenbr0' ]

即00:16:0a:d6:10:0b, MAC地址一共6个字段,这里使用后四个字段与IP地址对应,即IP地址为10.214.16.11 (转换成十进制)。

以下在虚拟机domU (archlinux) 中执行

获取MAC地址的C代码 (getmacaddr.c):

#include

#include

#include

#include

#include

#include

#include

#include

int main(void)

{

intsfd;

unsigned char *u;

structifreqifr;

structsockaddr_in *sin = (structsockaddr_in *) &ifr.ifr_addr;

memset(&ifr, 0, sizeofifr);

if (0 > (sfd = socket(AF_INET, SOCK_STREAM, 0))) {

perror("socket()");

exit(EXIT_FAILURE);

}

strcpy(ifr.ifr_name, "eth0");

sin->sin_family = AF_INET;

if (0 >ioctl(sfd, SIOCGIFHWADDR, &ifr)) {

return EXIT_FAILURE;

}

u = (unsigned char *) &ifr.ifr_addr.sa_data;

if (u[0] + u[1] + u[2] + u[3] + u[4] + u[5]) {

printf("%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x\n", u[0], u[1], u[2], u[3], u[4], u[5]);

}

return EXIT_SUCCESS;

}

编译生成getmacaddr:

gccgetmacaddr.c –o getmacaddr

chmod +x getmacaddr

cpgetmacaddr /usr/bin/

创建启动脚本rc.xen,内容如下:

#/bin/bash

# Configure Network

MAC=$(/usr/bin/getmacaddr)

for i in $(echo $MAC | cut -d":" -f3- | tr ":" " "); do

if [ -z "$IP" ]; then

IP="$((16#$i))"

else

IP="$IP.$((16#$i))"

fi

done

sed -i -r "s/eth0\s+([0-9]+\.){3}[0-9]+/eth0 $IP/" /etc/rc.conf

修改/etc/rc.multi启动脚本,在开头添加

. /etc/rc.xen

重启虚拟机,改变MAC值,虚拟机的IP与会随之改变。

2. 批量创建虚拟机

参考:

https://www.360docs.net/doc/9112501314.html,/%B0%B5%D4%C2%C1%F7%B9%E2/blog/item/8a0992b5589d2d668 bd4b29e.html/cmtid/995e9c2bc57e5894033bf6ab

引用背景:在服务器上,经常需要启动数十个甚至上百个虚拟机,按照我们现有的方式可以安装一个虚拟机,然后复制相应的份数。在全虚拟化情况下,每个虚拟机至少需要4G 以上空间,为了支持里面的应用,一般要分配10G左右,这样10个虚拟机就需要100G 空间。事实上在目前为止里面还没有执行任何程序,这些空间都是分配,实际并不一定都要使用。是否能够实现用多少分配多少呢?分析下可以发现,每个虚拟机里面的内核都是一样的,大部分时候我们都不需要去修改里面的内核,是否能够共用内核?Copy-On-Write模式为我们提供了很好的解决方式,通过创建一个基础镜像(base image),里面把

各个虚拟机都需要的环境都搭建好,然后基于这个镜像建立起一个个增量镜像,每个增量镜像对应一个虚拟机,虚拟机对镜像中所有的改变都记录在增量镜像里面,基础镜像始终保持不变。这样我们建立10个虚拟机,需要的空间为:10G+10*52K(增量镜像的起始大小可能偏差)=10G,一下节省了近90G的空间。

解决方法+结合1中的自动配置IP地址

代码(create_vm_auto.py)(暂时只支持全虚拟化)

#!/usr/bin/python

importos

import sys

importgetopt

# Default setting

ostype = "hvm"

path = "/sdc1/drs_ltt/qcow-img"

mem = 1024

start = 2

end = -1

size = -1

quiet = False

def usage():

print '''\nusage:

-s\t\tStart number, from 2 to 254, default 2.

-e\t\tEnd number, from 2 to 254, default the same as start number.

-m\t\tSpecifyvm memory in M, default 256.

-t\t\tSpecifyvm type (hvm or pv), default hvm.

-p\t\tSpecifyvm image base directory.

-i\t\tSpecifyvm image size, like 40M, 1G etc. default the same size as base img.

-h\t\tShow this usage.'''

def str2(s):

s = str(s)

ifs.startswith("0x"):

returns.replace("x", "")[-2:]

else:

return ("0" + s)[-2:]

defcreate_cfg(start, end, path, mem, ostype):

template_hvm_cfg='''\

# -*- mode: python; -*-

kernel = "/usr/lib/xen/boot/hvmloader"

builder='hvm'

memory = %(mem)d

name = "arch%(vmid)s"

vcpus=8

cpus="1-7"

vif = [ "mac=00:16:0a:d6:10:%(hex_vmid)s, bridge=xenbr0" ]

disk = [ "tap:qcow2:%(path)s/%(ostype)sarch%(vmid)s.qcow2,hda,w" ] device_model = "/usr/lib64/xen/bin/qemu-dm"

vnc=1

vncunused=1

vncpasswd=""

serial="pty"'''

template_pv_cfg='''\

kernel = "%(path)s/vmlinuz26-xen"

ramdisk = "%(path)s/kernel26-xen.img"

memory = %(mem)d

name = "pvarch%(vmid)s"

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

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