Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1425753
  • 博文数量: 77
  • 博客积分: 2104
  • 博客等级: 大尉
  • 技术积分: 2322
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-19 13:21
个人简介

关注于系统高可用、网站架构

文章分类

全部博文(77)

文章存档

2018年(1)

2017年(1)

2015年(4)

2014年(8)

2013年(4)

2012年(12)

2011年(17)

2010年(30)

分类: 系统运维

2010-08-27 14:00:40

1、yum install xen* (安装Xen的基本程序)
2、yum install virt-manager
3、yum install kernel-xen*(安装Xen内核)
 
二、 配置Xen环境
1. vi /boot/grub/grub.conf更改启动内核
    default=1 改为0
  
 
三、 建立虚拟机
上传iso文件
mount -o loop rhel-server-5.6-x86_64-dvd.iso /mnt
cd /mnt
cp -r * /root/z
mount -t nfs 192.168.10.216:/redhat /root/z
使用Python语言建立简单的httpserver(如果用http方式)或nfs方式
以下建一个50G文件
dd if=/dev/zero of=wt.img conv=notrunc bs=1024k count=1 \seek=`expr 1024 \* 50 - 1`
mkfs.ext3 wt.img
fsck.ext3 -f -v wt.img
1、使用virt-install命令来进行字符界面安装虚拟机,
virt-install -n redhat5.6 -r 2048 --vcpus=2 --file=/ytxt/img/wt.img --nographic -p -l nfs:192.168.10.216:/redhat

 -n 后面跟的是虚拟机的名字 -f  后面是映像文件的位置 --nographics 不需要图型支持  -r 2048 分配给虚拟机2048M 的内存空间  -l 后面跟的是安将文件的位置  -p 是半虚拟化

当我们安装完虚拟机以后,系统会自动的创建一个关于虚拟机的配置文件,

/etc/xen下面就有关于虚拟机的配置文件,

2、使用自制的img文件
新的IMG使用LVM分区,因此当你使用物理磁盘做为VM的硬盘介质时,需要将IMG转化成分区,以一个20G大小的sda5分区为例,具体步骤如下

dd if=Centos5.2Base of=/dev/sda5

cat >/etc/xen/auto/Centos5.2 <

name = "BC-1"
memory = 1024
cpus = "2,3"
vcpus = 2
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [  ]
disk = [ "tap:aio:/dev/sda7,xvda,w" ]
vif = [ "","bridge=xenbr0" ]

EOF

进入虚拟机

xm console Centos5.2 -c

新建扩展分区和逻辑分区

fdisk /dev/xvda


然后修改分区为lvm

Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/xvda: 13.3 GB, 13349597184 bytes
255 heads, 63 sectors/track, 1622 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          13      104391   83  Linux
/dev/xvda2              14         652     5132767+  8e  Linux LVM
/dev/xvda4             653        1622     7791525    5  Extended
/dev/xvda5             653        1622     7791493+  8e  Linux LVM

Command (m for help): w
The partition table has been altered!

 

然后输入#partprobe

 

新建扩展分区和逻辑分区

pvcreate /dev/xvda5

vgextend VolGroup00 /dev/xvda5

lvextend -L

lvextend -L +14384 /dev/VolGroup00/LogVol00

ext2online /dev/VolGroup00/LogVol00   (注:centos5用的是resize2fs)

 

到此分区扩展完成,如果空间还不够用,最好的做法是在物理机上新建一个分区,比如sda6,然后加入到启动文件中的disk栏。

参考语法:

disk = [ "tap:aio:/xen/node1,xvda,w",
"phy:/dev/sdb,ioemu:sdb,w",
"phy:/dev/sdc,ioemu:sdc,w",
]

 

远程拷贝分区

dd if=/dev/sda7 |ssh 192.168.3.23 'dd of=/dev/sda7'

但是dd命令拷太慢了,可以把/dev/sda7 mount 起来,用rsync拷文件

 
常见问题处理:
虚拟机安装好后,domU不能联网
可能连到错误的网桥上
[root@localhost scripts]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.feffffffffff       yes             vif6.0
xenbr0          8000.feffffffffff       no              vif6.1
                                                        peth0
                                                        vif0.0
 
查看domu所在ID号(id号和vif号相同)                                                    
[root@localhost scripts]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     6013    16 r-----  10941.3
vm-5                                       6     3999     2 -b----   1051.1
从错误的网桥上删除,0代表第一块网卡
[root@localhost scripts]# brctl delif virbr0 vif6.0
从正确网桥上加入vifx.0
[root@localhost scripts]# brctl addif xenbr0 vif6.0
 
[root@localhost scripts]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.000000000000       yes
xenbr0          8000.feffffffffff       no              vif6.0
                                                        vif6.1
                                                        peth0
                                                        vif0.0
      也可以选择关了服务
chkconfig --level 23456 libvirtd off     
 
 
设置自动启动

当主系统启动时,虚拟机启动,自己有几个 虚拟机设置几个

virsh autostart node1
 
--------------------------------------------------------------------------------
虚拟机也可以使用img方式
以下建一个10G文件
dd if=/dev/zero of=wt.img conv=notrunc bs=1024k count=1 \seek=`expr 1024 \* 10 - 1`
mkfs.ext3 wt.img
fsck.ext3 -f -v wt.img
resize2fs -f -p wt.img
mount -o loop wt.img /media/
将文件拷入
notrunc   不截断输出文件
bs=字节
count=块数目    只复制指定量<块数目>的输入数据
seek=块数目     先略过以 obs 为单位的指定<块数目>的输出数据       

于mac地址

如果不在创建 Xen 虚拟机(domU)的时候指定 MAC 地址的话,Xen 就会随机生成一个 MAC 地址给虚拟机,这样管理员就没办法知道虚拟机的 MAC 地址了,不利于以后带宽的统计和虚拟机的管理,所以最好就在 Xen 虚拟机配置文件中直接指明虚拟机的 MAC 地址,比如:

# vi /etc/xen/vpsuser1 vif = [ "mac=00:16:3e:0c:11:53,ip=172.16.16.200,bridge=xenbr0" ]

IEEE OUI 为 Xen domU 保留了一段 MAC 地址,前3段是 “00-16-3e”,后3段是随机的,其中第1个随机段的第1个 bit 是0(IEEE OUI 给 VMware 保留的前3段地址是 “00-0c-29”,后3段随机)。我们在为用户分配 MAC 地址时候不想有规律的分配(虽然也不会有什么安全问题),所以 VPSee 写了一个简单的 Python 脚本用来随机生成符合 Xen 虚拟机标准的 MAC 地址:

[root@sjyd1 ~]# more mac.py
#!/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)

                         
阅读(2671) | 评论(0) | 转发(0) |
0

上一篇:nginx 日志分析

下一篇:lvs安装

给主人留下些什么吧!~~