利用地址池分配ip地址
我们在创建虚拟机实例时可以设置gateway和netmask,还有一个有用的捷径是在设置ip时采用动态ip地址,可以设置--ip=auto选项,在创建虚拟机时会从/etc/xen-tools/ips.txt中获取ip地址,例如设置一个192.168.1.00-192.168.1.200的地址池:
for i in $(seq 100 200) ; do echo 192.168.1.$i >> /etc/xen-tools/ips.txt ; done
现在我们创建虚拟机实例使用--ip=auto就会自动获得ip
xen-create-image --ip=auto --hostname=blah
在获取到地址池的ip后,相应的ip会被标记为使用状态,假如所有的ip都被占用则系统会创建失败。
分区及文件系统定制
默认的虚拟机在创建时会创建两个LVM卷,一个是根系统,一个是swap分区,如果你想指定一个自定义的分区规划,只要在 /etc/xen-tools/partitions.d/目录下自定义你的分区规划,参照sample-server模版文件,编写好模版后用--partition选项指定文件即可。
设置xen配置文件
在一个虚拟机实例被创建后,相应的配置文件会在/etc/xen目录下生成,可以使用--output选项重新指定, 配置文件是由/etc/xen-tools/xm.tmpl文件自动生成的
本地镜像实例
xen-create-image --size=2Gb --swap=128Mb --dhcp --dist=stable \
--dir=/home/xen --hostname=vm01.my.flat
xen-create-image --size=2Gb --swap=128Mb \
--ip=192.168.1.200 \
--netmask=255.255.255.0
--gateway=192.168.1.1 \
--nameserver=192.168.1.1 \
--dir=/home/xen --hostname=vm02.my.flat
当在配置文件中设置loopback images的保存路径后,会在如下路径保存相关虚拟机实例镜像
$dir/domains/vm01.my.flat/
$dir/domains/vm01.my.flat/disk.img
$dir/domains/vm01.my.flat/swap.img
$dir/domains/vm02.my.flat/
$dir/domains/vm02.my.flat/disk.img
$dir/domains/vm02.my.flat/swap.img
lvm实例
xen-create-image --size=2Gb --swap=128Mb --dhcp \
--lvm=myvolumegroup --hostname=vm01.my.flat
在myvolumegroup卷组中会创建如下两个文件:
vm01.my.flat-swap
vm01.my.flat-disk
虚拟机快速安装
xen-create-image --size=2Gb --swap=128Mb --dhcp \
--lvm=myvolumegroup --hostname=vm01.my.flat \
--install-method=tar --install-source=/path/to/tar.file.tar
xen-create-image --size=2Gb --swap=128Mb --dhcp \
--lvm=myvolumegroup --hostname=vm01.my.flat \
--install-method=copy --install-source=/path/to/copy/from
因为tar和copy文件都是在本地的,所以安装起来相当快。
skel目录的应用
任何在/etc/xen-tools/skel目录下的文件都会被拷贝进虚拟机实例中,这个目录的规则和/etc/skel目录类似
一个典型的应用就是给每个新建的虚拟机实例拷贝公钥文件。
mkdir -p /etc/xen-tools/skel/root/.ssh
chmod -R 700 /etc/xen-tools/skel/root
cp /root/.ssh/id_rsa.pub /etc/xen-tools/skel/root/.ssh/authorized_keys2
chmod 644 /etc/xen-tools/skel/root/.ssh/authorized_keys2