Xen 安装 DomU(Ubuntu、CentOS)

Dom0 为 CentOS-5.6-x86_64,下面分两种主流的发行版本,分别为 Ubuntu 和 CentOS。

DomU 为 ubuntu

# mkdir /opt/xen/ubuntu-template
# cd /opt/xen/ubuntu-template
# wget http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/netboot/xen/initrd.gz
# wget http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/current/images/netboot/xen/vmlinuz
# dd if=/dev/zero of=ubuntu-10.04-x86_64.img bs=1M count=10240
# cat ubuntu.cfg

Continue reading

Xen DomU 的内存

xen 配置文件中默认会有两个关于内存的条目:

maxmem = 2048
memory = 1024

下面的表示 DomU 启动之后分得的内存,这里就是 1G;xen 具有动态扩展内存的机制,因此,上面的 maxmem 则表示该 DomU 最大可以使用 hypervisor 分配的内存,这里就是就是 2G。使用下面的命令来在线扩展内存:

# xen mem-set <domain> 2048
他会将当前的 DomU 的内存增大到 2G。

参考:

http://lists.xensource.com/archives/html/xen-users/2007-05/msg00382.html

Xen DomU 双网卡设置及编号

xen 默认给 DomU 只提供一个网卡,现在要求双网卡,也就是需要再添加一个网桥 xenbr1,原先默认的为 xenbr0。

# cat /etc/xen/scripts/my-network-script
#!/bin/bash
dir=$(dirname “$0″)
“$dir/network-bridge” “[email protected]” vifnum=0  bridge=xenbr0 netdev=eth0
“$dir/network-bridge” “[email protected]” vifnum=1  bridge=xenbr1 netdev=eth1

上面这个脚本要做的事就是再添加一个网桥 xenbr1,接下来修改为可执行权限:

# chmod +x /etc/xen/scripts/my-network-script

修改 xend 配置文件 xend-config.sxp,并重启 xend:

# sed -i 's+(network-script network-bridge)+(network-script my-network-script)+' /etc/xen/xend-config.sxp
# /etc/init.d/xend restart
Continue reading

Xen 中关于 32G 内存的两个问题

一台 48G 物理内存的服务器,上面做了 xen 虚拟化,重启之后不论是 free 还是 top 发现都只有 32G 的内存。

# free -m
total       used       free     shared    buffers     cached
Mem:         32768        961      31806          0         13        122
-/+ buffers/cache:        824      31943
Swap:         8095          0       8095

但是使用 xm info 查看得出的确实理想的结果:

# xm info

total_memory           : 49139
free_memory            : 15425

# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0    32768     4 r—–     30.3
Continue reading

IP 被占用

Xen 启动后进入 DomU 后会出现下面的错误:

Error, some other host already uses address

经实践,并不是 ip 被占用。使用下面的这个方式可以解决问题,原理不明。

注释 /etc/sysconfig/network-scripts/ifup-eth 中下面的这段

if ! arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${IPADDR} ; then
echo $”Error, some other host already uses address ${IPADDR}.”
exit 1
fi

网上有人说注释 /sbin/ifup 中的段,但是在 CentOS-5.6-x86_64 中并没有找到。

unable to retrieve xxxxx

使用 virt-install –prompt 安装 xen 时,提示出现:  

What is the install URL?

需要输入安装的镜像文件地址,使用 python -m SimpleHTTPServer 80 做一个简单的 web server,起先是将 .iso 文件扔在当前的目录下,安装到一半出现 unable to retrieve:xxxxxx。google 发现需要将镜像解压,于是:

# mount -o loop CentOS.iso .

再安装,出现同样的问题,后来在 @wcmilan 大神的提醒下,需要将 iso 文件做一个 yum 源。如果网速较好,可以直接填写类似如下的 URL:

http://mirrors.163.com/centos/5/os/x86_64/
Continue reading