如果 instance 无法通过 metadata service 获取 metadata(无 DHCP 或者 nova-api-metadata 服务),instance 还可以通过 config drive 获得 metadata。

config drive 是一个特殊的文件系统,OpenStack 会将 metadata 写到 config drive,并在 instance 启动时挂载给 instance。如过 instance 安装了 cloud-init,config drive 会被自动 mount 并从中读取 metadata,进而完成后续的初始化工作。

接下来我们将实践 config-drive。

配置

config drive 默认是 disable 的,所以首先得启用。有两种方法启用 config drive:

  1. 启动 instance 时指定 --config-drive true

  2. 在计算节点的 /etc/nova/nova.conf 中配置 force_config_drive = true,这样部署到此计算节点的 instance 都会使用 config drive。我们实验中使用的就是这种方法。

config drive 支持两种格式,iso9660 和 vfat,默认是 iso9660,但这会导致 instance 无法在线迁移,必须设置成config_drive_format=vfat 才能在线迁移,这一点需要注意。

配置完成后,重启 nova-compute 服务。

过程分析

部署一个新的 cirros instance c2,我们先到计算节点的 instances 目录下看看 c1 与 c2 的区别。

c2 的目录下会多一个 disk.config 文件,这就是 config drive。通过virsh edit 可以看到 disk.config 已经挂载到 instance 上了。

打开 c2 的控制台,hostname 已经配置好,说明 metadata 拿到了。

为了确保 metadata 不是从 nova-api-metadata 获取,我已经提前关闭了 DHCP 服务,可以看到当前 c2 是没有 IP 的。

lsblk 查看块设备,iso 设备 sr0 就是 config drive。

mount sr0,查看 config drive 的内容。

meta_data.json 中存放了 ssh public key, hostname 等信息。

instance 可以通过 nova-api-metadata 或者 config drive 这两种途径拿到 metadata,如何使用这些 data 是 cloud-init 要完成的工作,下节我们将开始详细讨论 cloud-init

实践 config drive - 每天5分钟玩转 OpenStack(170)的更多相关文章

  1. FWaaS 实践: 允许 ssh - 每天5分钟玩转 OpenStack(119)

    上一节应用了无规则的虚拟防火墙,不允许任何流量通过. 今天我们会在防火墙中添加一条规则,允许 ssh.最后我们会对安全组和 FWaaS 作个比较. 下面我们添加一条 firewall rule:允许 ...

  2. 实践 Neutron FWaaS - 每天5分钟玩转 OpenStack(118)

    前面我们学习了 FWaaS 的理论知识,今天将通过实验来学习 FWaaS. 在我们的实验环境中,有两个 instance: cirros-vm1(172.16.100.3) 和 cirros-vm2( ...

  3. 动手实践虚拟网络 - 每天5分钟玩转 OpenStack(10)

    本节将演示如何在实验环境中实现下图所示的虚拟网络 配置 Linux Bridge br0 编辑 /etc/network/interfaces,配置 br0. 下面用 vimdiff 展示了对 /et ...

  4. 动手实践 Linux VLAN - 每天5分钟玩转 OpenStack(13)

    本节我们来看如何在实验环境中实施和配置如下 VLAN 网络 配置 VLAN 编辑 /etc/network/interfaces,配置 eth0.10.brvlan10.eth0.20 和 brvla ...

  5. 再次实践 MySQL chart - 每天5分钟玩转 Docker 容器技术(166)

    学习了 chart 结构和模板的知识后,现在重新实践一次 MySQL chart,相信会有更多收获. chart 安装前的准备 作为准备工作,安装之前需要先清楚 chart 的使用方法.这些信息通常记 ...

  6. 实践 Network Policy - 每天5分钟玩转 Docker 容器技术(172)

    为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务. ...

  7. 每天5分钟 玩转OpenStack 目录列表

    最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题 ...

  8. 写在最前面 - 每天5分钟玩转 OpenStack(1)

    <每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重 ...

  9. 用 config drive 配置网络 - 每天5分钟玩转 OpenStack(173)

    上一节最后问了大家一个问题:如果 subnet 没有开 DHCP,会是怎样一个情况? 在其他条件不变的情况下,cloud-init 依然会完成那 3 个步骤,也就是说网卡还是会被配置成 dhcp 模式 ...

随机推荐

  1. NSDictionary 总结 -iOS

    总结:字典分NSDictionary(不可变,只能查询)和NSMutableDictionary(可变.能增删改查)两种,形式是key-value,key是不可重复的,value可以重复 1.初始化字 ...

  2. matlab中axis的使用

    % 提示 disp ('该功能练习axis功能'); %初始化快捷式数组 x=-*pi:pi/:*pi; y=sin(x); plot(x,y); title('sin(x)图形'); grid on ...

  3. DOM解析,取得XML文件里面的信息

    1 创建解析器工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 2 解析器工厂对象创建解析器对象 Do ...

  4. 升级到appcompat v7 21.0.2之后遇到的问题解决方法

    1)一开始是手动直接覆盖文件到对应的lib project下,提示数个style找不到.原因是新旧版本的文件命名和结构不同,所以这个问题只需要把project目录清空,重新复制文件即可解决. 2)发现 ...

  5. python2.7读汉字的时候出现乱码,如何解决

    我使用的是window系统,安装Anaconda,所以用的是. 1.数据形式 2.读进来乱码 3.解决办法 3.1方法1 import pandas as pd #pd.read_csv('c:/us ...

  6. 【转】SQLState详解

    根据 X/Open 和 SQL Access Group SQL CAE 规范 (1992) 所进行的定义,SQLERROR 返回 SQLSTATE 值.SQLSTATE 值是包含五个字符的字符串 . ...

  7. 第十三篇 一个安装、管理windows服务的桌面程序

    在网上看到一个修改程序入口的程序去把windows 服务修改成控制台的程序,然后利用控制台的程序把服务安装和管理,也想起自己原来也写了一个对windows 报务管理的程序,不过是winform的.   ...

  8. Laravel的ORM入门

    源码目录在\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Relations下 关系:一对多(One To Many) 场景:每篇 ...

  9. Unity播放Gif动画

    Unity目前对图形图像的支持还不是很完善,支持的图形文件格式有 PSD, TIFF, JPG, TGA, PNG, GIF, BMP, IFF, PICT等,但却不支持Gif动画.但是经过查阅资料发 ...

  10. ERP中关于审批时速度太慢的SQL优化

    在给客户实施ERP的时候,经常遇到客户的请购单审批时,特别慢,一个阶段要转个40.50秒左右,3个阶段就差不多要3分钟,效率很低. 检查方法如下: 1.数据库跟踪语句,找出执行时间较久的语句,结果如下 ...