openstack在创建实例的时候,可以对实例进行文件注入,注入的内容为:
key ssh公钥
network 网络参数,目前仅支持debian/ ubuntu 的 /etc/network/interfaces格式。其余的系统,请使用 dhcp
admin_password 注入超级用户 root 的密码
metadata 注入元数据meta.js
具体可以参见:nova/virt/disk/api.py
注入的时候,有几种方式,包括loop, guestfs, nbd, mount等,其中 mount 不安全。缺省使用:
img_handlers=”loop,nbd,guestfs”
对于qcow2 格式的镜像,必须需要使用guestfs或 nbd配合 qemu-nbd注入。但是 guestfs 的速度较慢。遗憾的是 CentOS/RedHat 6.2 中,内核没有编译nbd模块, qemu也没有编译 qemu-nbd程序。
解决办法:
1、手工编译 nbd 和 qemu-nbd
http://www.cyberciti.biz/faq/rhel5-installing-kernel-source-code/
http://jamyy.dyndns.org/blog/2012/02/3582.html
2、向RedHat递交bug 报告