如果 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

本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/1911954

实践 config drive - 每天5分钟玩转 OpenStack(170)相关推荐

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

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

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

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

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

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

  4. 部署 DevStack - 每天5分钟玩转 OpenStack(17)

    http://www.cnblogs.com/CloudMan6/p/5357273.html 部署 DevStack - 每天5分钟玩转 OpenStack(17) 本节按照以下步骤部署 DevSt ...

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

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

  6. LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8)

    http://www.cnblogs.com/CloudMan6/p/5277927.html LVM 类型的 Storage Pool - 每天5分钟玩转 OpenStack(8) LVM 类型的 ...

  7. 如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22)

    http://www.cnblogs.com/CloudMan6/p/5402490.html 如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22) 本节首先讨论 p_ ...

  8. Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)

    Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34) 本节通过日志详细分析 Nova Pause/Resume 操作. 有时需要短时间暂停 instan ...

  9. Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)

    Cinder 组件详解 - 每天5分钟玩转 OpenStack(47) 本节我们将详细讲解 Cinder 的各个子服务. cinder-api cinder-api 是整个 Cinder 组件的门户, ...

最新文章

  1. mysql sql demo
  2. 不到 200 行代码,教你如何用 Keras 搭建生成对抗网络(GAN)
  3. python四大高阶函数求导_4个python常用高阶函数的使用方法
  4. Julia: Flux.jl尝试
  5. qq空间登录参数详细分析及密码加密最新版
  6. Java 计算月份天数
  7. 禁用360浏览器自动填充用户数据
  8. 小米科技面试题-互联网老辛整理
  9. python如何添加标签_如何在python中为t-SNE添加标签(How to add labels to t-SNE in python)...
  10. 我不是刘德华-新地/卢克
  11. qt中文乱码原因分析及解决方案
  12. php仿京东幸运大转盘抽奖,原生js vue 抽奖插件 仿京东大转盘抽京豆(原创)...
  13. ie浏览器地址栏中文参数提交服务器乱码分析
  14. OCR文档识别的工作原理
  15. mechanize 是 pthon 的并且可编程的 浏览器插件,
  16. MPEGl和MPEG2数字视频编码标准
  17. 一起学OCP:oracle-082题库及解析(21-40)
  18. 正弦稳态电路的相关概念
  19. 《算法导论》第19章-斐波那契堆 引入 19.1 斐波那契堆结构
  20. 编程命名规则(网摘整理):帕斯卡命名法,骆驼命名法(小驼峰式大驼峰式),匈牙利命名法

热门文章

  1. centeros 7源码安装mysql_Linux下源码编译安装MySql,centeros7
  2. python versions compatibility_为什么在python中迭代一个字典时必须调用.iteritems()?...
  3. python批量生成,用python批量生成简单的xml文档
  4. pythonurllib微博登录怎么删_Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据...
  5. 【项目实战课】AI零基础,人人免费可学!基于Pytorch的SimpleNet人脸表情识别实战...
  6. 【GAN优化】从动力学视角看GAN是一种什么感觉?
  7. 【模型解读】历数GAN的5大基本结构
  8. 【研究院】低调务实的网易人工智能,你熟悉吗?
  9. 【技术综述】图像与CNN发家简史,集齐深度学习三巨头
  10. 中国碳酸氢钠干粉灭火剂市场产销分析与盈利前景策略报告2022年