OpenStack中如果要使用Config Drive实现元数据的注入,在制作image时一定要安装cloud-init软件,否则无法实现元数据注入。
如何使用Config Drive在这里有介绍:
http://blog.sina.com.cn/s/blog_959491260101m2cx.html
1、config drive的一个应用就是:如果不使用DHCP向instances分配ip时,通过config drive可以传递网络配置(如ip、network、gateway)等。
2、config drive 可以用于任何操作系统。
3、要使用config drive,genisoimage必须在每个compute节点上被安装。
ubuntu系统默认没有安装genisoimage:
有一个bug描述:https://bugs.launchpad.net/cloud-archive/+bug/1165174:
“If you launch an instance using nova with the config drive enabled”
4、使用config drive的两种方式:
① nova boot --config-drive=true --image my-image-name ....
② vi /etc/nova/nova.conf
5、在一个instance里面访问config drive:
如果OS支持通过label访问磁盘,那么在instance里会有一个叫“config-2”的volume label,可以挂载它到instance本地:
mount /dev/disk/by-label/config-2 /mnt/config
如果OS没有使用udev将不会有/dev/disk/by-label目录,blkid可以发现它,并且同样可以被挂载:
# blkid -t LABEL="config-2" -odevice
/dev/vdb
# mount /dev/vdb /mnt/config
6、config drive的格式:
config drive 的默认格式是一个"ISO 9660"的文件系统,可以在nova配置文件中指出:
vi /etc/nova/nova.conf
config_drive_format=iso9660
config drive还有一个格式:VFAT ,这个格式已经是老旧的,现基本已用 ISO 9660 或 configuration volume label代替。
这有一个config drive配置参数表:
7、注入时的问题解决:
如果instance没有启动或者启动很慢,可能是注入时出了问题,在libvirt中设置参数:libvirt_injection_partition=-2 ,可以避免文件注入失败而导致的instance启动失败。
8、config drive需要结合clout-init使用