Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1284914
  • 博文数量: 161
  • 博客积分: 10192
  • 博客等级: 上将
  • 技术积分: 2165
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 17:09
文章分类

全部博文(161)

文章存档

2012年(2)

2011年(13)

2010年(137)

2009年(5)

2008年(4)

我的朋友

分类: LINUX

2010-07-21 12:40:13

Centos5 XEN 半虚拟机安装
-----------------------200712
环境:
母系 统:centos5
子系统:centos5
注意:测试安装了centos4.3 debian3.1  openbsd4.1等子系统,都无法安装,提示RUL错误,即安装路径错误,实际上是正确的.GOOGLE后知道XEN支持的子系统有限,好像只能是包 含XEN内核的.待研.

1)安装CENTOS5母系统(选上XEN包),重启,默认即用XEN内核启动。
   这里xen Dom0只是管理其他DomX,限制Dom0的内存512M,否则它贪婪。

    #vi /etc/grub.conf
    default=0
    timeout=2
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.18-164.11.1.el5xen)
        root (hd0,0) kernel /xen.gz-2.6.9-164.11.1.el5 dom0_mem=512M module /vmlinuz-2.6.9-164.11.1.el5xen ro root=LABEL=/ module /initrd-2.6.9-164.11.1.el5xen.img
2)建虚拟机步骤:(这里是CLI,也可在XWINDOW下图形操作)

   A:选XEN内核选项启动CENTOS5母系统到XWINDOWS下.
   B:启动母系统的HTTPD服务(说明:我的CPU不支持VT,只能建立半虚拟机;半虚拟机只能通过网络途径安装;不支持光盘或ISO。)
      #mount /dev/cdrom /mnt/cdrom
      修改HTTPD.CONF里"DocumentRoot /var/www/html"为"DocumentRoot /mnt/cdrom".(即HTTP://母系统IP 是网络安装路径)

      注意:如果用NFS服务来装,则编辑/etc/exports并启动NFSD和PORTMAP服务。
           #vi /etc/exports
              /mnt/cdrom *(ro)

      在安装指定盘目录时写:nfs:ip:/mnt/cdrom

   C:建立磁盘文件(这里是完全分配硬盘)
     #dd if=/dev/zero of=/var/xen/images/centos.img bs=1M count=4096
   D:建立虚拟机:
     系统名字:system1
     虚拟化方式:半虚拟
     安装路径:http://母系统IP
     存储空间:选centos.img (也可以选择磁盘分区)
     内存:最大300M (注意不要太大,太大会失败;视实际内存来定)
           开始100M
     VCPUS:1
   E:按"结束"按钮.
5)XEN自动启动子系统的安装程序,安装即可.
6)安装到最后,需要重启.
7) 重启后在XEN的管理器里找不到新安装的虚拟机.
   #xm create system1
   启动system1虚拟机后,系统自动显示虚拟机终端窗口.也可以把该命令写入"/etc/rc.d/rc.local"里让系统自动运行.
8) 子系统管理:类似其他主机管理,远程登陆管理即可.

   XEN默认的DomX配置文件全放在/etc/xen下。拷贝到DomX磁盘目录下,归类,使其配置文件和数据盘全在一起。
9)快速建立其他DomX

   拷贝建立好的DomX(包含配置文件和数据盘)到新的目录,修改配置文件和数据盘文件名字即可启动。

name = "guest-linux-00" #名字
uuid = "58a929a0-1c6f-2452-5f1f-a0667b6a8241" #UUID为系统中的存储设备提供唯一的标识字符串.用系统命令uuidgen得到。
maxmem = 256
memory = 256
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
extra='independent_wallclock=1' #使DomX的ROOT可以设置时区时间
disk = [ "tap:aio:/data/guest-os-all/guest-linux-00/guest-linux-00,xvda,w" ] #数据盘路径
vif = [ "mac=00:16:36:19:d8:39,bridge=virbr0,script=vif-bridge" ] #网卡MAC,自己改,或用下面python脚本得到。

-------------分割线-------------

#!/usr/bin/python
# generates a MAC address for Xen domU
# 
#
import random
mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] s = [] for item in mac: s.append(str("%02x" % item)) print ':'.join(s)







网友评论

网友: 本站网友



问题:

在WINXP+VM里测试上面设置的,成功.

后来拷贝其VM文件到另外一个WINXP的VM下,启动,母系统OK.子系统无法启动.提示:Error: destroyDevice() takes exactly 3 arguments (2 given)



解决:(参考了CENTOS.ORG网站信息)

shutdown all guests.

rmmod loop

echo 'options loop max_loop=255' > /etc/modprobe.d/loop.local

modprobe loop

xend stop

xend start

xm create system1

好了,子系统正常启动.




网友: 本站网友 时间:2010-05-24 16:06:47 IP地址:210.51.21.★



默认情况下 Xen 使用的是 Credit-Based CPU Scheduler,一种基于权重的 CPU 调度算法。简单的说就是给每个虚拟机的 CPU 一个权重,权重多的得到和使用物理 CPU 的时间就会多,如果虚拟机1的 CPU(VCPU 1.0)权重是256,虚拟机2(VCPU 2.0)的权重是512,那么虚拟机2的 VCPU 2.0 得到物理 CPU 的使用时间就是虚拟机1的2倍。



Xen 给每个虚拟机(包括 dom0 和 domU)分配的默认权重都是 256,也就是说 Xen 上运行的所有 guest 操作系统,dom0 和 众多 domU 都是均分和共享 CPU 的,他们能得到 CPU 的时间和机会都是一样的。这看上去对虚拟机用户(domU)来说很公平,但这种大锅饭的方法对 dom0 来说可不合适,dom0 承担着艰巨的任务,要处理来自其他 domU 的 IO 请求,如果都平均享用 CPU 的话就会造成 dom0 常常因得不到足够的 CPU 时间而不能及时处理自己或来自 domU 的 IO,所以在各虚拟机 IO 负载重的情况下我们需要修改 dom0 的权重,以便它能及时处理 IO. IO 这个问题很重要,一旦 IO 处理不及时,所有虚拟机的 IO 都会等待,将会影响所有虚拟机用户。这也是为什么我们不提供 64MB VPS 的一个原因,64MB VPS 用户会明显感到内存不足,系统会大量频繁 swapping,大量 disk IO 请求会影响服务器整体性能和所有其他用户。可以在这篇:64MB 的 VPS 能支持多少访问量?看到 128MB 的 swap 就用了 75MB.



查看当前 dom0 的 CPU 权重:

# xm sched-credit -d Domain-0

{'cap': 0, 'weight': 256}



修改 dom0 的 CPU 权重:

# xm sched-credit -d Domain-0 -w 512

# xm sched-credit -d Domain-0

{'cap': 0, 'weight': 512}







网友: 本站网友 时间:2010-06-02 10:00:31 IP地址:210.51.21.★



     决定 Xen 服务器是否能支持半虚拟化、全虚拟化、32位和64位的关键因素是处理器,即 CPU 的类型。

      Xen 是向前兼容的,64位的 Xen 内核可以兼容运行32位PAE、纯32位的 domainU,但是不能反过来,32位的 Xen 内核不能运行64位的 domainU 等。

       Intel VT(Virtualization Technology)和 AMD SVM(Secure Virtual Machine)是两大处理器生产商为了迎合虚拟化发展的趋势而在自己的处理器里直接增加对虚拟化技术的硬件支持。辨别自己的 CPU 是否支持虚拟技术很简单,只需要检查 cpuinfo 里面是否带有虚拟化标志:

如果使用的是 Intel CPU,那么 flags 里应该有 vms 字样;

如果使用 AMD CPU,那么 flags 里应该可以找到 svm字样.

    注意:如果已经启动到 Xen 系统中, cat /proc/cpuinfo | grep flags 将在默认情况下不会显示 vmx 或 svm 标志位,只有在安装 Xen 前的纯 Linux 内核下才可以看到。还有就是,确定 BIOS 中打开了 Intel VT 或 AMD SVM 虚拟化的支持。

      通常安装完 Xen 后,Xen 就能自动识别出系统支持哪几种虚拟机类型。只需要简单打印出 Xen 虚拟机的兼容名单就可以看出来:

# cat /sys/hypervisor/properties/capabilities

xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

详解如下,表示支持的虚拟类型:

xen-3.0-x86_64    64位 domains

xen-3.0-x86_32p  32位带 PAE 的 domains

hvm-3.0-x86_32  32位全虚拟化 domains

hvm-3.0-x86_32p 32位带 PAE 全虚拟化 domains

hvm-3.0-x86_64  64位全虚拟化 domains





网友: 本站网友 时间:2010-06-17 15:41:51 IP地址:210.51.21.★



    让xen-guest主机可以自己设置日期时间:

    在 Xen 的默认设置下,domainU 的时间总是要自动和 domain0 保持同步,所以想简单的在 domainU 内部用各种时间、日期等命令改变 domainU 的系统时间并不起作用。如何给 domainU 设置单独的时钟而不受 domain0 的影响呢?我们经常接到我们的 Xen VPS 客户的询问是否能把他们的 VPS 时钟改成北京时间,为什么他们改变了时钟和时区却不起作用等问题。如果每个 VPS 用户(domainU)来自不同国家或时区而想在自己的 VPS 里使用自己的区域时间该怎么办?很简单,只需要在自己的 VPS(domainU)里改变一个参数就可以了,Linux/Xen 很灵活,传递参数方式有很多种,可以用下面任意的一种方式来改变这个设置。



直接改变 xen 内核的运行时参数:

# echo 1 > /proc/sys/xen/independent_wallclock

不过上面的方法会在重启 domainU 的时候丢失,可以把上面的命令加到某个自动启动文件中。



或者也可以把改变 xen 内核设置的参数加到 sysctl.conf 文件中,VPSee 更偏向采用这种方法:

# vi /etc/sysctl.conf

xen.independent_wallclock=1

# sysctl -p



第3种方法需要 VPS 服务商的干预,在 domainU 的启动配置文件种加上以下参数:

# vi /etc/xen/vps01

...

extra='independent_wallclock=1'

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