最近在寻找快速部署xen虚拟机方法,觉得官方推荐的xen-tools工具集不错,不过发现在介绍时一般用该工具部署Para-Vritralization(半虚拟化)模式的虚拟机,暂且不论部署什么模式的xen虚拟机 ,下面简单介绍一下xen-tools工具。
在debian6上安装xen-tools工具:apt-get install xen-tools
工具包中包含以下工具:
/usr/bin/xen-create-image
/usr/bin/xen-create-nfs
/usr/bin/xen-delete-image
/usr/bin/xen-list-images
/usr/bin/xen-update-image
在自动化管理xen虚拟机时都会用到以上几个命令,在创建虚拟机时主要使用xen-create-image命令,它主要调用以下几个命令:
/usr/bin/xt-customize-image 创建镜像安装虚拟机
/usr/bin/xt-install-image 手机hook脚本,对虚拟机进行配置
/usr/bin/xt-create-xen-config 创建配置文件
xen-tools主要使用到的的目录如下:
/etc/xen-tools 包含主配置文件,分区配置文件,规则配置文件等。
/var/log/xen-tools 包含每个vm创建过程中的日志。
/usr/lib/xen-tools 包含一些hook脚本,在vm安装过程中对vm进行定制。
/etc/xen-tools/xen-tools.conf 这是一个用脚本生成虚拟机实例的全局配置文件,包含在xen-tools包中,在该配置文件中定义的任何值都可以用外部命令重复定义,下面简单的介绍一下xen-tools.conf文件的配置:
#设置用来存储虚拟机本地镜像的目录,默认是注释状态,新的虚拟机实例会存储在该目录下以虚拟机hostname命名的子目录下。
# dir = /home/xen
#如果你不想用loopback images,则可以设置使用LVM卷组代替,
lvm = vm-xen
# Installation method.
#虚拟机实例安装方法,有四种安装方法
# install-method = [ debootstrap | rinse | rpmstrap | copy | tar ]
install-method = debootstrap
#如果使用copy或者tar方法安装虚拟机实例,则需要指定从那个源头copy文件或者获取tar文件。
# install-source = /path/to/copy
# install-source = /some/path/img.tar
#安装命令定义,可以自己定义copy、tar、debootstrap等安装方法的定义,
# install-method = copy:
# copy-cmd = /bin/cp -a $src/* $dest
# install-method = debootstrap:
# debootstrap-cmd = /usr/sbin/debootstrap
# install-method = tar:
# tar-cmd = /bin/tar --numeric-owner -xvf $src
# 虚拟机磁盘大小
size = 30Gb
# 虚拟机内存大小
memory = 1024Mb
# 虚拟机swap大小
swap = 2048Mb
# 如果不想使用swap,使用以下配置
# noswap = 1
# 设置磁盘上的文件系统类型
fs = ext4
# 虚拟机的默认安装版本,会和宿主机一致
dist = `xt-guess-suite-and-mirror --suite`
# Specify sparse vs. full disk images.
image = sparse
# 网络设置
#如果希望给虚拟机实例设置静态IP则可以把一下内容取消注释
gateway = 10.1.6.254
netmask = 255.255.255.0
broadcast = 10.1.6.255
#配置虚拟机实例使用dhcp
dhcp = 1
#给虚拟机实例设置默认的hostname,默认是不设置的,并且Dom0's /etc/resolv.conf会被拷贝到虚拟机实例上面
nameserver = xen-vmserver
#给host的vif设置桥接名称
# bridge = xendmz
# Misc options
#在使用debootstrap安装方法时,如果希望取消掉安装时下载的deb包,则可以去掉注释
# cache = no
#默认的缓存目录是/var/cache/apt/archives/,如果它不存在则设置为/var/cache/xen-tools/archives/
# cachedir = /var/cache/xen-tools/archives/
#如果你不想给虚拟机实例手动设置root密码,则注释掉以下内容
# genpass = 0
#设置密码的长度
# genpass_len = 8
#设置密码的加密方式,可以有md5, sha256 and sha512三种方式
# hash_method = sha256
#在安装虚拟机实例时如果希望交互的设置root密码可以设置以下选项
passwd = 1
#把宿主机上的所有非系统帐号copy到虚拟机实例上
# accounts = 1
#设置虚拟机实例默认使用的kernel和ramdisk,因为使用的是XEN的内核,所以uname -r 出来的是xen东西。
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
#设置虚拟机实例的架构体系,值适用于debootstrap, rinse, or rpmstrap安装,在64位的机器上很有用
# arch = [i386|amd64]
#在使用debootstrap安装时设置默认的mirror
mirror = http://mirrors.163.com/debian
# Filesystem options for the different filesystems we support.
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
reiserfs_options = defaults
btrfs_options = defaults
#在创建虚拟机完毕后直接启动
boot = 1
#如果是在lenny或者之后的OS上安装XEN,需要确保使用hvc0作为虚拟机的serial device,使用xvdX代替sdX作为虚拟机的serial devices
#default
serial_device = hvc0
# serial_device = tty1
#default
disk_device = xvda
# disk_device = sda
#设置xen配置文件的输出目录和配置文件的后缀,配置文件名默认是$hostname.cfg
output = /etc/xen
extension = .cfg
#是否把dom0的/etc/hosts追加到虚拟机实例中
# 默认不建立dom0的/etc/hosts
# nohosts = 0
# 默认不拷贝dom0的/etc/hosts到虚拟机实例
# copyhosts = 0
注:在使用xen-create-image命令时CLI的选项都可以覆盖xen-tools.conf里面的配置。