instance 网卡是如何被拉起来的?- 每天5分钟玩转 OpenStack(172)
instance 的网卡是如何被配置并拉起的?这是理解和用好 cloud-init 非常关键的一步。我们先讨论一个最简单基础的场景:镜像中没有安装 cloud-init。
此时 instance 启动时网卡能不能被拉起来完全 靠运气!是的,就是运气。
因为这种情况下网卡的配置是死的,完全依赖于镜像中 /etc/network/interfaces 原有的配置。比如原镜像中的配置是:
auto eth0
iface eth0 inet dhcp
instance 只有满足下面所有条件网卡才能被拉起来:
正好只有一块网卡
正好网卡就叫 eth0
正好 subnet 开了 DHCP
只要出现下面任意一种情况就会失败:
还有其他网卡,比如 eth1,或者
网卡不叫 eth0 ,比如 ens3,或者
没有 DHCP
不同 instance 的网络配置差别很大,在 image 中写死的方法几乎是无效的,只能依靠 cloud-init 动态写入,接下来我们详细分析 cloud-init 的解决方案。
dhcp
先考虑 subnet 有 DHCP 服务的情况。
我们使用的镜像是 ubuntu 的 cloud image,已经预装的 cloud-init,下载地址为 http://cloud-images.ubuntu.com/ ,国内镜像http://mirrors.ustc.edu.cn/ubuntu-cloud-images/
部署成功后,登录 instance,ip a
显示网卡 ens3
已经正确配置。
下面分析这个 IP 是怎样配置上去的。
上一节我们讨论到,cloud-init 是在 local 阶段完成网络配置的,cloud-init 的执行过程被详细记录在 /var/log/cloud-init.log 中,让我们找找相关操作。
这里可以看到,cloud-init 会做如下工作:
① 扫描出 instance 中的所有网卡(这里是 ens3)
② 获取该网卡的配置信息。 因为没有 config drive,无法得知网卡的详细配置信息,只能采用默认的 fallback 配置,即 dhcp 配置。
③ 将配置信息写入 /etc/network/interfaces.d/50-cloud-init.cfg,内容为:
这样网卡就以 dhcp 模式拉起来,正好与 subnet 的 dhcp 服务对接上,IP、网关等信息就配上去了。
几点说明:
instance 上的每一块网卡都会被 cloud-init 扫描出来。
如果没有 config drive 将采用 fallback 配置,将扫描出来的第一块 (只有这一块)网卡配置成 dhcp 模式。请注意:这是 cloud-init 默认行为,跟这块网卡对应的 subnet 是否开启了 DHCP 没有任何关系。
cloud-init 会根据 instance 操作系统类型生成网卡配置文件。例如操作系统是 centos 的话则会将配置写到 /etc/sysconfig/network-scripts 目录下。
现在请大家思考一个问题:如果 subnet 没有开 DHCP,会是怎样一个情况?下节将分析这个问题。
instance 网卡是如何被拉起来的?- 每天5分钟玩转 OpenStack(172)的更多相关文章
- 为 instance 配置静态 IP - 每天5分钟玩转 OpenStack(157)
这是 OpenStack 实施经验分享系列的第 7 篇. 传统运维中为服务器配置静态 IP 是再常见不过的了.但在 OpenStack 环境下只能指定 network,IP 都是 Neutron 从 ...
- 将 instance 部署到 OVS Local Network - 每天5分钟玩转 OpenStack(130)
上一节创建了 OVS 本地网络 first_local_net,今天我们会部署一个 instance 到该网络并分析网络结构.launch 一个 instance,选择 first_local_net ...
- 将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)
上一节 first_local_net 已经就绪,下面创建 instance 并将其连接到该网络. 将 instance 连接到 first_local_net launch 一个 instance, ...
- Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)
本节通过日志文件详细分析 instance start 操作. 下面是 start instance 的流程图 向 nova-api 发送请求 nova-api 发送消息 nova-compute 执 ...
- 部署 instance 到 OVS flat network - 每天5分钟玩转 OpenStack(135)
上一节创建了 OVS flat network,今天我们部署 instance 并验证 flat 网络的连通性. launch 新的 instance "cirros-vm1",网 ...
- 部署 instance 到 OVS vlan100 - 每天5分钟玩转 OpenStack(138)
上一节创建了 OVS vlan network vlan100,今天部署 instance 到该网络.launch 新的 instance “cirros-vm1”,网络选择 vlan100. cir ...
- 创建 OVS vlan101 并部署 instance - 每天5分钟玩转 OpenStack(139)
前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron ...
- 动态添加删除网卡 - 每天5分钟玩转 OpenStack(156)
这是 OpenStack 实施经验分享系列的第 6 篇. 在项目实施过程中,经常会有添加删除网卡的需求.比如一个运行数据库的 instance,初始只有一个网卡,数据库服务和备份共用这块网卡,后来为提 ...
- 再部署一个 instance 和 Local Network - 每天5分钟玩转 OpenStack(131)
上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 ...
随机推荐
- [JAVA] - Java OutOfMemoryError分类
Java OutOfMemoryError一般常遇到的分为两类,分别提示: "Java heap space" 和 "PermGen space",前面的是指j ...
- [MongoDB] - Window7下安装及BSON基本介绍
MongoDB是一种NOSQL(Not Only SQL)类型的文档型数据库.NoSQL数据库与传统的关系型数据库相比,它具有操作简单.完全免费.源码公开.随时下载等特点,并可以用于各种商业目的.Mo ...
- 2017-3-2 C#基础 结构体
1. 结构体:用户自定义类型定义位置:定义在Main函数的外面,类的里面 定义格式:struct 自定义名字{ public 数据类型 名字; public 数据类型 名字; ... ...} 声明实 ...
- 点击Robot Framework的桌面快捷图标后,没有反应(没有打开应用程序)
http://www.cnblogs.com/zhengyihan1216/p/6397478.html 这篇文章中介绍了如何安装Robot Framework以及如何在桌面上创建快捷方式. 但是有 ...
- linux 之程序管理
一个程序的父进程可以用PPID来判断 命令ps -l 可以用来观察程序相关的输出信息 被关闭的程序又产生:crontab或者父进程产生的 我们将常驻在系统中的程序称为:服务(daemon) ...
- 用smarty模板做的登录
用smarty模板做的登录和之前我们用php做的登录区别不大 首先要新建一个php文件 一般php文件,要放在这个文件里 它对应的html文件,要放在这个目录里 下面先来做php文件 要先引入入口文件 ...
- mybatis基础,mybatis配置文件核心组件typeHandler元素
无论是从预处理语句中设置一个值,还是从结果集里取出一个值,都会用类型处理器将获取的值以合适的方式转换成 Java 类型 可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型 实现 o ...
- Objective-C日记-Bounds和Frame
今天在学习有关UIView时,关于Bounds和Frame的问题困扰多时,今日研究了一翻,有所收获,遂记之. 一.问题来源 网上有关bounds和frames的比较的文章主要就是一篇:http://b ...
- 需要接入的SDK包,一定要用最新版,否则后果很严重
ios8更新后,原来的静态库不支持.导致一个bug连续测试好多天都没结果.
- 机器学习基石 1 The Learning Problem
机器学习基石 1 The Learning Problem Introduction 什么是机器学习 机器学习是计算机通过数据和计算获得一定技巧的过程. 为什么需要机器学习 1 人无法获取数据或者数据 ...