Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1883043
  • 博文数量: 496
  • 博客积分: 12043
  • 博客等级: 上将
  • 技术积分: 4778
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-27 14:26
文章分类

全部博文(496)

文章存档

2014年(8)

2013年(4)

2012年(181)

2011年(303)

2010年(3)

分类: 虚拟化

2011-05-29 11:11:32

1、什么是Xen;

Xen 是一个开放源代码的para-virtualizing虚拟机(VMM),或管理程序,是为x86架构的机器而设计的。Xen 可以在一套物理硬件上安全的执行多个虚拟机;Xen是基于内核的虚拟程序,它和操作平台结合的极为密切,所以它占用的资源最少。

什么是虚拟机呢?可能大家知道VMWARE吧,是的,Xen就是类似这样的程序,比如我们可以在Fedora 上虚拟安装和使用SlackwareDebianGentoo ... ... 等发行版。因为Xen是基于内核的,相对VMWARE 来说,它占用的系统资源也就是VMWARE的百分之几左右。Xen是不是更有优势呢?只有实践了才知道。


1.1 Xen
的特性;

虚拟机的性能更接近真实硬件环境)
在真实物理环境的平台和虚拟平台间自由切换)
在每个客户虚拟机支持到 32个虚拟CPU,通过 VCPU热插拔)
支持PAE指令集的x86/32, x86/64平台
通过Intel 虚拟支持VT的支持来用虚拟原始操作系统(未经修改的)支持(包括Microsoft Windows
优秀的硬件支持.支持几乎所有的Linux设备驱动


1.2 Xen
的应用范围;

服务器整合:在虚拟机范围内,在一台物理主机上安装多个服务器, 用于演示及故障隔绝;
无硬件依赖:允许应用程序和操作系统对新硬件的移值测试;
多操作系统配置:以开发和测试为目的,同时运行多个操作系统;
内核开发:在虚拟机的沙盒中,做内核的测试和调试,无需为了测试而单独架设一***立的机器;
集群运算:和单独的管理每个物理主机相比较,VM级管理更加灵活,在负载均衡方面,更易于控制,和隔离;
为客户操作系统提供硬件技术支持:可以开发新的操作系统, 以得益于现存操作系统的广泛硬件支持,比如Linux


1.3 Xen
的操作系统支持和硬件支持;

请参阅:


2
Xen的一点理论基础;

基于Xen的操作系统,有多个层,最底层和最高特权层是 Xen程序本身。Xen 可以管理多个客户操作系统,每个操作系统都能在一个安全的虚拟机中实现。在Xen的术语中,DomainXen控制,以高效的利用CPU的物理资源。每个客户操作系统可以管理它自身的应用。这种管理包括每个程序在规定时间内的响应到执行,是通过Xen调度到虚拟机中实现。

Xen启动运行后,第一个虚拟的操作系统,就是Xen本身,我们通过xm list,会发现有一个Domain 0的虚拟机。Domain 0 是其它虚拟主机的管理者和控制者,Domain 0 可以构建其它的更多的Domain ,并管理虚拟设备。它还能执行管理任务,比如虚拟机的体眠、唤醒和迁移其它虚拟机。

一个被称为xend的服务器进程通过domain 0来管理系统,Xend 负责管理众多的虚拟主机,并且提供进入这些系统的控制台。命令经一个命令行的工具通过一个HTTP的接口被传送到xend

3Xen的安装;

Xen的当前最新版本是xen-3.0.2,它基于的内核版本是2.6.16的。您可以根据自己的操作系统的情况来选择一种安装方式。

 

3.1 安装Xen的准备工作;

拥有 GRUB引导的Linux做为安装平台,还要编译工具,比如gccbinutils makeautomake等;开发库有zlibpython-dev等;

3.2 Redhat RHEL4U2操作平台上的安装;

[root@localhost ~]# rpm –ivh bridge-utils-1.0.4-4             (系统自带)

[root@localhost ~]# rpm –ivh bridge-utils-devel-1.0.4-4       (系统自带)

[root@localhost ~]# rpm –ivh sysfsutils-1.2.0-1                (已默认安装)

我们这里通过Xen的源码包编译安装

Xen的源码包,你可以到 去下载。文件名带有 xen-3.0.2-src字样的,比如 xen-3.0.2-src.tgz。当我们执行编译命令时,首先编译的是Xen程序本身,然后是编译内核 。在编译内核时,程序会自动判断是否有内核源码,xen-3.0.2支持的内核是2.6.16,如果在xen的解压目录下没有,他就会自动内核的官方站 下载 linux-2.6.16.tar.bz2。然后就是自动解压并为此内核打补丁。然后系统会根据指令要求,然后采用相应的内核配置文件,或配置内核进行编译。

1、解压软件包,查看Xen源码包所带的文件

[root@localhost ~]# tar zxvf xen-3.0.2-src.tgz

[root@localhost ~]# cd xen-3.0.2-2

修改Makefile文件中的一行为:KERNELS ?= linux-2.6-xen0 linux-2.6-xenU

将内核文件linux-2.6.16.tar.bz2拷贝到此文件夹内,也可以让安装程序自动从内核的官方网站下载。

2、编译XEN和内核文件

[root@localhost ~] make linux-2.6-xen0-config CONFIGMODE=menuconfig

[root@localhost ~]# make world
这样就编译出来未经自定义的内核vmlinuz-2.6.16-xen0vmlinuz-2.6.16-xenU

3、安装编译好的文件                    

[root@localhost ~]# make install

4、创建initrd-2.6.16-xen0.img

由于/boot/目录下没有initrd-2.6.16-xen0.img 文件,而XEN装在RHEL4中正常启动需要此文件,因此需用mkinitrd命令创建。若是使用SCSI硬盘安装的,则需要先修改/etc/modprobe.conf,去掉其中包含字符串mpt* ata*的所有行,否则会出现缺少模块的错误。创建文件
[root@localhost ~]# mkinitrd /boot/initrd-2.6.16-xen0.img  2.6.16-xen0

5TLS

如果您使用  XenLinux 2.6 内核,在用它引导前需要禁用掉 Thread Local Storage (TLS)(线程局部存储,当需要TLS, 可以通过恢复其目录重新启用。

[root@localhost ~]# mv /lib/tls /lib/tls.disabled

6、修改grub.conf文件

加入以下行
title Xen 3.0 / XenLinux 2.6
    root (hd0,0)
    kernel /xen-3.0.gz dom0_mem=262144
    module /vmlinuz-2.6-xen0 ro root=/dev/sda2  console=tty0
    module /initrd-2.6.16-xen0.img

由于我系统的/ 分区是sda2硬盘分区所以写 root=/dev/sda2
domain0
启动的内存设为256M(此大小可根据实际情况设置)。

当安装和配置完成,并重新引导系统,就可以在GRUB的启动菜单上选择有支持Xen的启动项来启动系统。用Xen支持的内核启动,看起来有点象Linux常规引导。第一部份输出的是Xen本身的信息,这些信息是关于Xen自身和底层的硬件的信息。最后的输出是来自于XenLinux

当引导完成后,应该可以登录操作系统了。如果不能登录,应该使用普通内核(也就是原来没有Xen的那个内核--译者注)来引导。然后进行一些问题排查。

启动进入系统后,查看系统信息。

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.16-xen0 #1 Fri Sep 15 10:58:37 CST 2006 i686 i686 i386 GNU/Linux

[root@localhost ~]# xend start

[root@localhost ~]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      256     1 r-----   243.5

[root@localhost ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:8D:C6:3C 

          inet addr:172.20.58.222  Bcast:172.20.63.255  Mask:255.255.248.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:28747 errors:0 dropped:0 overruns:0 frame:0

          TX packets:81 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:2557535 (2.4 MiB)  TX bytes:9646 (9.4 KiB)

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:8 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF 

          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:35520 errors:0 dropped:0 overruns:0 frame:0

          TX packets:105 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:3248907 (3.0 MiB)  TX bytes:12555 (12.2 KiB)

          Interrupt:16 Base address:0x1400

vif0.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF 

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:105 errors:0 dropped:0 overruns:0 frame:0

          TX packets:28775 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:13166 (12.8 KiB)  TX bytes:2559572 (2.4 MiB)

xenbr0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF 

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:25987 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:1955051 (1.8 MiB)  TX bytes:0 (0.0 b)

 

4:实例应用:用RedHat (RHEL4U2)+Xen虚拟Fedora 5.0

4.1 Fedora 安装运行于一个物理分区中;

下载Fedora 5.0的基础系统;  请到:

4.12 解压和提取相应文件;

我们把下载下来的Fedora 5 基础系统,存放到/opt/fedora5vm目录中;然后解压;

[root@localhost ~]# mkdir /opt/fedora5vm
[root@localhost ~]# mv fedora.fc5.20060401.img.tgz /opt/fedora5vm
[root@localhost ~]# cd /opt/fedora5vm
[root@localhost fedora5vm]# tar zxvf fedora.fc5.20060401.img.tgz
[root@localhost fedora5vm]# ls
fedora.fc5.20060401.img.tgz fedora.fc5.img fedora.fc5.xen.cfg fedora.swap

4.13 规划硬盘的物理分区并创建文件系统;

Fedora 放在/dev/sda5上,我们可以用mkfs.ext3来格式化/dev/sda5

[root@localhost ~]# /sbin/mkfs.ext3 /dev/sda5

4.14构建Fedora 5 的基础系统;

Fedora Core 5的基础系统的映像文件,也做了解压。会看到 fedora.fc5.img这个映像文件; 我们把这个映像挂载,然后把它的内容复制到我们刚才创始的文件系统的分区中,也就是/dev/sda5.

 

[root@localhost ~]# mkdir /mnt/tmp
[root@localhost ~]# mkdir /mnt/fedora
[root@localhost ~]# mount -o loop /opt/fedora5vm/fedora.fc5.img /mnt/tmp
[root@localhost ~]# mount /dev/sda5 /mnt/fedora

[root@localhost ~]# cp -rp /mnt/tmp/* /mnt/fedora
[root@localhost ~]# umount /mnt/tmp

然后是chroot /mnt/fedora目录中,实际就是操作Fedora 5系统,我们要创建Fedora 5root密码;

 [root@localhost ~]# chroot /mnt/fedora/
root@localhost:/#
root@localhost:/# passwd root
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
root@localhost:/# exit

然后卸载/dev/hda5分区;

[root@localhost ~]# umount /dev/sda5

4.15 创建Fedora 5 引导文件;

我们在解压 fedora.fc5.20060401.img.tgz 时看到一个文件fedora.fc5.xen.cfg ,这个就是Fedora 5的引导文件,人家洋人都为我们写好了。我们只是改一改就能用了;

我们要回到fedora.fc5.xen.cfg的存放目录/opt/fedora5vm中;复制fedora.fc5.xen.cfg名为fc5vm.cfg的文件。然后我们把fc5vm.cfg作为被虚拟的Fedora 5的引导文件;

[root@localhost ~]# cd /opt/fedora5vm
[root@localhost fedora5vm]# cp fedora.fc5.xen.cfg fc5vm.cfg

我们要对fc5vm.cfg做一下修改;

fc5vm.cfg中,我们会看到如下的内容:

kernel = "/boot/vmlinuz-2.6-xenU"
memory = 128
name = "fedora.fc5"
nics = 1
dhcp = "dhcp"
disk=['file:/xen/fedora/fedora.fc5.img,sda1,w','file:/xen/fedora/fedora.swap,sda2,w']
root = "/dev/sda1 ro"

 

kernel行中指定内核时,用 vmlinuz-2.6-xenU

memory是指定内存大小的,我们设置被虚拟的Fedora 5的虚拟内存大小是 128M
name
是定义虚拟操作系统的名字的,可以通过xm list中显示出来,我们也改简单点,改为fc5
nics=1
不变
dhcp
这行,是用来指定获取Fedora 5系统的IP是通过DHCP获取的,不过您也可以指定IP。可以不要这行;

vif = ['mac=aa:00:00:00:00:11'] 用来指定Fedora 5的网卡的物理地址;可以自己定义。
ip = "192.168.1.144"
用来指定虚拟网卡的IP
netmask="255.255.255.0"
用来指定掩码

disk这行是用来定义Fedora所处的物理分区映射点,及物理交换分区及映射点的;因为物理分区是通过phy:来指定的。所以我们得改一改。因为我们已经把Fedora放在了/dev/hda5了。另外交换分区在哪呢?可以通过swapon -s来查看物理交换分区,要在虚拟平台中查看;比如我得到的是/dev/hda8是交换分区。所以disk这行就应该这样写:

disk = ['phy:hda5,sda1,w','phy:hda8,sda2,w']

不过真实物理分区的映射点,比如/dev/hda5映射到了/dev/sda1,交换分区/dev/hda8映射到了/dev/sda2。映射过后,Fedoraroot文件系统就用映射后的/dev/sda1。慢慢理解;物理分区的映射点是可以在Linux系统设备定义的许可范围内进行。自己尝试着换一换映射点。如果Fedoraroot所处的物理分区的映射点改变后,Fedoraroot=的值也得跟着改变。另外还要改Fedora系统中的/etc/fstab文件;

root一行,来指定Fedora的所有的虚拟物理分区(就是映射点)。映射到哪里了呢?Fedora 安装到了/dev/hda5,映射后虚拟到了/dev/sda1。所以Fedora系统引导时就寻找/dev/sda1做为文件系统。

所以root这行可写为:

root = "/dev/sda1 ro"

所以我们可以这样写Fedora 5的引导配置文件;

第一种:如果是用DHCP来获取IP

kernel = "/boot/vmlinuz-2.6-xenU"
memory = 128
name = "fc5"
nics = 1
vif = ['mac=aa:00:00:00:00:11']
dhcp = "dhcp"
disk = ['phy:sda5,sda1,w','phy:sda3,sda2,w']
root = "/dev/sda1 ro"

第二种:如果是指定IP的话:

kernel = "/boot/vmlinuz-2.6-xenU"
memory = 128
name = "fc5"
nics = 1
vif = ['mac=aa:00:00:00:00:11']
disk = ['phy:sda5,sda1,w','phy:sda3,sda2,w']
root = "/dev/sda1 ro"
ip = "172.20.58.133"
netmask="255.255.255.0"

 

先挂载Fedora 5所处的分区:

[root@localhost ~]# mount /dev/sda5 /mnt/fedora/

 然后修改Fedora 5/etc/fstab文件,也就是/mnt/fedora/etc/fstab文件:找到如下两行:

/dev/sda1 / ext3 defaults 1 1
/dev/sda2 none swap sw 0 0

改为:

/dev/sda5 / ext3 defaults 1 1
/dev/sda3 none swap sw 0 0

接着再umount /mnt/fedora

[root@localhost ~]# umount /mnt/fedora

4.16 引导Fedora 5

引导运行Fedora 5.0就好办了,就是用xm 工具来引导;首先要确认你的Fedora 5的配置文件放在哪里。比如我是放在了/opt/fedora5vm中。并且文件名为fc5vm.cfg。所以我就可以这样来引导Fedora 5

[root@localhost ~]#/usr/sbin/xm create -c /opt/fedora5vm/fc5vm.cfg

就进入Fedora的登陆界面

 

4.2 Fedora 安装运行于一个映像文件中;

4.21 解压和提取相应文件;

把下载下来的Fedora 5 基础系统,存放到/opt/fedora5vm目录中;然后解压;

[root@localhost ~]# mkdir /opt/fedora5vm
[root@localhost ~]# mv fedora.fc5.20060401.img.tgz /opt/fedora5vm
[root@localhost ~]# cd /opt/fedora5vm
[root@localhost fedora5vm]# tar zxvf fedora.fc5.20060401.img.tgz
[root@localhost fedora5vm]# ls
fedora.fc5.20060401.img.tgz fedora.fc5.img fedora.fc5.xen.cfg fedora.swap

 

4.22 修改引导运行Fedora的配置文件

fedora.fc5.20060401.img.tgz 解压出来一个fedora.fc5.xen.cfg ,这个就是用来引导Fedora 5的配置文件。把这个文件复制为fc5vm.cfg

[~]#cp /opt/fedora5vm/fedora.fc5.xen.cfg /opt/fedora5vm/fc5vm.cfg

fc5vm.cfg 内容如下:

kernel = "/boot/vmlinuz-2.6-xenU"
memory = 128
name = "fc5"
nics = 1
vif = ['mac=aa:00:00:00:00:11']
dhcp = "dhcp"
disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
root = "/dev/sda1 ro"

disk来定义Fedora 5.0 所用的文件系统,因为我们这次用的是映像文件。所以要用file:来指定,Fedora 5用的交换分区,也是一个映像文件;所以有:

disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']

指定fedora.fc5.img映像文件虚拟映射到/dev/sda1;交换分区文件fedora.swap映射到了/dev/sda2。映射过后,Fedoraroot文件系统就用映射后的/dev/sda1。虚拟映射设备是可以在Linux系统设备定义的许可范围内进行。自己尝试着换一换映射点。如果Fedora的虚拟映射设备变了,我们得改变Fedora中的/etc/fstab

可以这样写Fedora 5的引导配置文件;

第一种:如果是用DHCP来获取IP

kernel = "/boot/vmlinuz-2.6-xenU"
memory = 128
name = "fc5"
nics = 1
vif = ['mac=aa:00:00:00:00:11']
dhcp = "dhcp"
disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
root = "/dev/sda1 ro"

第二种:如果是指定IP的话:

kernel = "/boot/vmlinuz-2.6-xenU"
memory = 128
name = "fc5"
nics = 1
vif = ['mac=aa:00:00:00:00:11']
disk = ['file:/opt/fedora5vm/fedora.fc5.img,sda1,w', 'file:/opt/fedora5vm/fedora.swap,sda2,w']
root = "/dev/sda1 ro"
ip = "192.168.1.144"
netmask="255.255.255.0"

 

就可以这样来引导Fedora 5

[root@localhost ~]#/usr/sbin/xm create -c /opt/fedora5vm/fc5vm.cfg

 

4.3:LVM做虚拟块设备

最有实用价值的解决方案是用LVM卷作为虚拟机的文件系统;

初始化一个分区到LVM卷:

[root@localhost ~]# pvcreate /dev/sdb5 /dev/sdb6

创建一个卷组名'vg'在物理分区上

[root@localhost ~]# vgcreate vg /dev/sdb5 /dev/sdb6

创建一个逻辑卷大小为4G,名字为vxen

[root@localhost ~]# lvcreate -L 4096M -n vxen vg

现在能在/dev/vg/vxen中创建一个文件系统,然后挂载它,并且构建虚拟系统:

[root@localhost ~]# mkfs -t ext3 /dev/vg/vxen

[root@localhost ~]# mkdir /mnt/fedora1

[root@localhost ~]# mount /dev/vg/vxen /mnt/fedoral1

[root@localhost ~]# mount -o loop /opt/fedora5vm/fedora.fc5.img /mnt/tmp

[root@localhost ~]# cp -rp /mnt/tmp/* /mnt/fedoral1/

[root@localhost ~]# chroot /mnt/fedoral1

root@localhost:/# passwd root
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
root@localhost:/# exit

[root@localhost ~]# cp /opt/fedora5vm/fedora.fc5.xen.cfg /opt/fedora5vm/fedora1.cfg

[root@localhost ~]#vi /opt/fedora5vm/fedora1.cfg

改成这样:

kernel = "/boot/vmlinuz-2.6-xenU"

memory = 128

name = "fc6"

nics = 1

vif = ['mac=aa:07:02:00:00:14']

disk = ['phy:/dev/vg/vxen,sda1,w','file:/opt/fedora5vm/fedora.swap,sda2,w']

root = "/dev/sda1 ro"

ip = "172.20.58.135"

netmask="255.255.248.0"

[root@localhost ~]#vi /mnt/fedora1/etc/fstab

改成:

/dev/sda1               /                       ext3    defaults 1 1

/dev/sda2               none                    swap    sw       0 0

[root@localhost ~]#umount /mnt/fedora1

可以这样来引导Fedora 5

[root@localhost ~]#/usr/sbin/xm create -c /opt/fedora5vm/fc5vm1.cfg

 

可以在线扩充LVM容量:

[root@localhost ~]# lvextend -L +1000M /dev/vg/vxen

44 NFS服务器提供的文件系统作为虚拟系统的文件系统

441 配置NFS服务器(172.20.63.92)

#mount –o loop fedora.fc5.img /mnt

#cp –rp /mnt/* /nfsdisk

此步骤基本同上,在此不再详述

编辑/etc/export,末尾加入/nfsdisk 172.20.63.1/24 (rw,sync,no_root_squash)一行

#service nfs restart

4.4.2编辑虚拟系统引导的配置文件(nfs.cfg)

kernel = "/boot/vmlinuz-2.6-xenU"

memory = 32

vif = ['']

name = "nfs.fc5"

nics = 1

ip = "172.20.63.100

netmask = "255.255.248.0"

root = "/dev/nfs"

nfs_server = "172.20.63.92"

nfs_root = "/nfsdisk"

disk = ['file:/opt/fedora5vm/fedora.swap,sdb2,w'
4.4.3
启动虚拟机

#xm create –c /opt/fedora5vm/nfs.cfg

5Xen的配置和管理工具

5.1 Xen的相关文件存放位置;

xen安装后,文件放在什么地方了呢?主要放在以下几个目录;


5.11
内核及xen自身存放于 /boot

安装有xen的操作系统下的/boot目录中,存放xen本身及支持xen的内核文件。比如文件名带有xen0xenU相关的文件;


5.12
内核模块存放于 /lib/modules

内核模块包括虚拟平台支持xen的内核xen0的模块,及支持虚拟操作系统所用的xenU的模块,一般的情况下是在 /lib/modules下有两个xen相关的目录存放。一个是文件夹名带有xen0字样的,另一个是xenU字样的;


5.13 xen
的配置文件及守护程序的存放位置;

一般的情况下,Xen的配置文件存放于/etc/xen目录。比如 xend-config.sxp是用于配置网络的,不过我们不必更改,用其默认的就能完成我们的需要。xmexample1 xmexample2是两个示例性的配置文件。我们在配置引导被虚拟的操作系统时,这两个文件可供参考;

Xen的服务器xendxendomains启动脚本,一般是位于/etc/init.d/目录中,也就是/etc/init.d/xend /etc/init.d/xend负责启动xend服务器,而/etc/init.d/xendomains负责第一个虚拟的系统及其它的Domains,也就是Domain 0

5.14 可执行命令存放于/usr/sbin

[root@localhost ~]# ls /usr/sbin/xen*
/usr/sbin/xen-bugtool /usr/sbin/xenconsoled /usr/sbin/xenmon.py /usr/sbin/xenstored
/usr/sbin/xenbaked /usr/sbin/xend /usr/sbin/xenperf /usr/sbin/xentop
[root@localhost ~]# ls /usr/sbin/xm

 

5.2 Xen服务器的启动;

xend服务器的启动/停止/重启/状态查询,请用下面的命令;

[root@localhost ~]# /etc/init.d/xend start 启动xend,如果 xend没有运行)
[root@localhost ~]# /etc/init.d/xend stop 停止xend,如果xend正在运行)
[root@localhost ~]# /etc/init.d/xend restart 重启正在运行的 xend,如果xend没有运行,则启动
[root@localhost ~]# /etc/init.d/xend status 查看xend状态

启动xendomains 服务器的启动/停止/重启/状态查询,一般的情况下,xend服务器启动了,xendomains也会自动启动。所以这个只是掌握一下就行了;

 

 

5.3 Xen 管理工具xm

xm命令,就是管理Xen的最基本的工具;可以通过xm --help 来获得帮助;

5.31 列出所有正在运行的虚拟操作系统;

[root@localhost fedora5vm]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      256     1 r-----   361.0

fc6                                1      128     1 ------    85.4

列出所有正在运行的虚拟系统(也可以称为虚拟机);我们可以看到,一个名为Domain-0的系统正在运行。Domain-0就是Xen本身,也可以称为虚拟平台内存大小,而Domain-0负责提供其它虚拟操作系统的硬件环境,其它的系统都是基于Domain-0开始的,我们看到他的ID0就应该知道它的权限是至高无尚的。所占用的内存是256M,不过这个是可以指定的。 虚拟的CPU个数是1个,运行状态处于r,也就是run,正在运行中;运行时间是361秒;

还有一个虚拟系统fc6,他的id1,占用内存128M,虚拟CPU个数是1 ... ...

 

5.32 通过配置文件来引导被虚拟的操作系统;

要启动被虚拟的操作系统Fedora Core 5.0 ,我们要写一个启动Fedora的配置文件,比如是fc5vm.cfg。然后就可以通过下面的命令来引导Fedora了;

[root@localhost ~]# /usr/sbin/xm create -c /opt/fedora5vm/fc5vm.cfg

 

5.33 从终端或控制台登录正在运行的虚拟操作系统;

[root@localhost ~]# /usr/sbin/xm console 正在运行的虚拟操作系统的NameID

列如:

[root@localhost ~]# /usr/sbin/xm list
Name     ID   Mem(MiB) VCPUs State Time(s)
Domain-0 0   256        1      r----- 5561.9
fc6       4   128        1      -b---- 0.2
[root@localhost ~]# /usr/sbin/xm console fc6

 

5.34 存储正在运行的虚拟操作系统的状态及唤醒虚拟操作系统;

[root@localhost ~]# /usr/sbin/xm save
[root@localhost ~]# /usr/sbin/xm restore

举例:

[root@localhost fedora5vm]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      256     1 r-----   528.1

fc6                                1      128     1 ------   135.1

[root@localhost fedora5vm]# /usr/sbin/xm save 1 fc5run.save

[root@localhost fedora5vm]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      256     1 r-----   560.5

[root@localhost fedora5vm]# /usr/sbin/xm restore fc5run.save

[root@localhost fedora5vm]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      256     1 r-----   582.1

fc6                                2      128     1 ------     0.2

 

5.35 停止正在运行的虚拟操作系统/激活停止的虚拟操作系统

[root@localhost ~]# /usr/sbin/xm pause
[root@localhost ~]# /usr/sbin/xm unpause

举例:

[root@localhost fedora5vm]# /usr/sbin/xm pause 2

[root@localhost fedora5vm]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      256     1 r-----   587.5

fc6                                2      128     1 --p---     1.7
[root@localhost fedora5vm]# /usr/sbin/xm unpause 2

[root@localhost fedora5vm]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      256     1 r-----   589.7

fc6                                2      128     1 ------     1.9

 

5.36 调整虚拟平台/虚拟操作系统的占用内存

调整正在运行中的虚拟平台(Domain-0)所占内存大小及虚拟操作系统所占用的内存大小;

[root@localhost ~]# /usr/sbin/xm mem-set

举例:

[root@localhost fedora5vm]# /usr/sbin/xm mem-set 0 128

[root@localhost fedora5vm]# xm list

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0      128     1 r-----   598.1

fc6                                2      128     1 -b----     3.0

 

5.37 关闭被虚拟的系统

[root@localhost ~]# /usr/sbin/xm destroy 立即停止虚拟的系统 (重要)[root@localhost ~]# /usr/sbin/xm shutdown 虚拟操作系统的NameDomID

举例:

[root@localhost ~]# /usr/sbin/xm shutdown fc5

[root@localhost ~]# /usr/sbin/xm shutdown 2

[root@localhost ~]# /usr/sbin/xm destroy 2

 

5.38 调整虚拟平台及虚拟操作系统的虚拟CPU个数;

[root@localhost ~]# /usr/sbin/xm vcpu-set

[root@localhost ~]# /usr/sbin/xm vcpu-set 2 4

 

5.39 查看虚拟系统运行的状态;

[root@localhost ~]# xm top

[root@localhost ~]# xentop

阅读(1558) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~