在 NetBSD 上安装和配置 Xen
2010年11月15日 | 标签: netbsd, xen | 作者:vpsee
到目前为止,VPSee 已经陆续介绍了:在 CentOS 上安装和配置 Xen,在 Ubuntu 上安装和配置 Xen,在 Debian 上安装和配置 Xen,在 OpenSolaris 上安装和配置 Xen,加上这篇 “在 NetBSD 上安装和配置 Xen” 就完整了,这是我们目前所有应用在生产环境的 Xen 系统。有人可能会问为什么要用这么多种系统?管理起来不是更复杂吗?其实没想像的那么复杂,我们实验室应用的虚拟机生产环境和我们销售的 VPS 不同,因为可以不考虑成本,所以采用了昂贵的存储设备,虚拟机都是存储在专门的 iSCSI 存储系统上,Xen 服务器只不过是一个 node 用来连接和启动存储网络上的虚拟机镜像,所以使用什么系统做 node 不是很重要,事实上 NetBSD 是这几个系统里面最容易配置和安装的系统,没有 trouble shooting,没有 work around,安装即成功,非常的赞!以下操作在 NetBSD 5.0.2 上完成。
安装 Xen
在 NetBSD 上使用 pkg_add 来安装软件包,相当于 CentOS/Fedora 的 yum 和 Ubuntu/Debian 的 apt-get,如果在公司或者学校使用代理上网的话需要先配置代理服务器:
# vi .kshrc ... PKG_PATH=http://ftp.us.netbsd.org/pub/pkgsrc/packages/NetBSD/ \ amd64/5.0.2_2010Q3/All export HTTP_PROXY=http://username:[email protected]:3128/ export FTP_PROXY=http://username:[email protected]:3128/
安装 xen hypervisor 和 xen tools:
# pkg_add -v xenkernel33 # pkg_add -v python26 # pkg_add -v xentools33 # pkg_add -v e2fsprogs
在上面的步骤安装 xentools33 的是后屏幕会打印提示需要从 /usr/pkg/share/examples/rc.d/ 拷贝一些配置文件到 /etc/rc.d 以便开机启动后自动运行:
# cd /etc/rc.d # cp /usr/pkg/share/examples/rc.d/xendomains . # cp /usr/pkg/share/examples/rc.d/xend . # cp /usr/pkg/share/examples/rc.d/xenbackendd . # vi /etc/rc.conf ... xend=yes xenbackendd=yes xendomains=yes
确定 xend 需要的 xen 设备存在(没有的话创建一个):
# cd /dev && sh MAKEDEV xen
把上面安装的 Xen Hypervisor (xen.gz) 拷贝到根目录下 /:
# cp /usr/pkg/xen3-kernel/xen.gz /
下载和安装 Xen dom0 kernel:
# cd / # wget http://ftp.us.netbsd.org/pub/NetBSD/NetBSD-5.0.2/amd64/ \ binary/kernel/netbsd-XEN3_DOM0.gz # gunzip netbsd-XEN3_DOM0.gz
配置 NetBSD 开机引导,比 Linux 的 Grub 和 LILO 都简单多了:
# vi /boot.cfg ... menu=NetBSD/XEN:load /netbsd-XEN3_DOM0;multiboot /xen.gz dom0_mem=64M installboot -v -o timeout=5 /dev/rwd0a /usr/mdec/bootxx_ffsv1
配置 bridge:
# vi /etc/ifconfig.bridge0 create !brconfig $int add re0 up
重启系统,选择 NetBSD/Xen 内核登陆,登陆后用 xm 检查 xen 是否正常运行:
# shutdown -r now # xm list Name ID Mem VCPUs State Time(s) Domain-0 0 64 1 r----- 18.5
安装虚拟机
先做个连接,方便以后使用:
# ln -sf /usr/pkg/etc/xen/ xen
在 NetBSD 上没有 xen-create-image, virt-install 等工具,而且没有 lvm,文件系统又不同,所以要创建 Linux 虚拟机(domU)比较麻烦,这里 VPSee 直接从另外一台 Linux Xen 服务器上拷贝一个虚拟机镜像(模版)过来运行,只需要编辑 debian.cfg 配置文件就可以了:
# vi /etc/xen/debian.cfg bootloader = "/usr/pkg/bin/pygrub" memory = 128 name = "debian" vif = [ 'bridge=bridge0' ] disk = ['file:/home/vpsee/debian.img,sda1,w'] root = "/dev/sda1" extra = "fastboot" extra = "xencons=tty1"
启动和查看 debian 虚拟机:
# xm create debian.cfg # xm list Name ID Mem VCPUs State Time(s) Domain-0 0 64 1 r----- 4764.1 debian 10 128 1 ------ 6.6
看到你介绍了这么多种 xen 的平台,有一个比较 newbie 的问题请教一下:是不是 ubuntu 的 host 只能安装 ubuntu 的 guest,debian 的 host 只能安装 debian 的 guest?即使 ubuntu 跟 debian 两者非常接近也不能混用?另外如果不能混用的话,那 64 的 host 能不能上 32 的 guest?
不是,ubuntu host 能装所有 guest,同样的 debian host 也能装任意 guest,甚至 netbsd 也能装任意 guest,xen 和 vmware/virtualbox 一样能任意装不同的操作系统,当然64位 host 也可以装32位或64位 guest.
Hi,
我的服务器有2张网卡,eth0是一个机房的内部网络,eth1连着公网,有几个IP地址,分别是 eth1:1 eth1:2之类的。
现在出现了一个比较大的问题,我不知道如何把公网ip分配给domu。
domU可以启动,但是用 xm console 进去之后,发现 domU 的 eth0 分配的是内网ip,似乎走的是virbr0,而不是xenbr1
(我没有xenbr0只有xenbr1, virbr0是xen分配的内部IP)
不知您能否给我提供一些帮助,谢谢您。
have you ever encounter this problem?
NetBSD-5# xm list
/usr/pkg/lib/python2.6/
xmlrpclib.py:612: DeprecationWarning: The xmllib module is obsolete. Use xml.sax instead.
import xmllib # lazy subclassing (!)
Name ID Mem VCPUs State Time(s)
Domain-0 0 256 1 r—– 193.0
how to get rid of the warning message, although it’s harmless
My dom0 is netbsd-5.1 stable, xen 3.3.2