上一节我们完成了 OVS VxLAN 的配置工作,今天创建 vxlan100_net 并部署 instance. 创建 vxlan100_net 打开菜单 Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "VXLAN". Segmentation ID 即 VNI,设置为 100. 点击 "Create Network",vxlan100…
前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron 自动在 br-int 网桥上创建了 vlan100 dhcp 的接口 "tap1820558c-0a". 现在,网络结构如下: 将 instance 连接到 vlan101 launch 新的 instance "cirros-vm3",网络选择 vlan101. c…
GUI 中有两个地方可以创建 network: 1. Project -> Network -> Networks 这是普通用户在自己的 tenant 中创建 network 的地方. 2. Admin -> Networks 这是 admin 创建 network 的地方. 前面我们已经用第一种方式创建了 "first_local_net",本节将以第二种方式创建 local network "second_local_net". 菜单路径为 A…
本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点 创建虚拟机 按照物理资源需求创建 devstack-controller 和 devstak-compute 虚拟机 安装操作系统 安装 Ubuntu 14.04,并配置 eth0 的 IP devstack-controller  192.168.104.10 devstak-compute    192.168.104.11 下载代码 下载 devstack 代码,并切换到 stable/liberty 分支 apt-…
上一节完成连接外网的配置准备工作,今天就来创建 OVS 外部网络 ext_net. 进入 Admin -> Networks 菜单,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "Flat". Network 填写 "external",与 ml2_conf.ini 中 flat_networks 的参数值保持一致. 勾选 External Network 选择框. 点击…
前面我们讨论了 Neutron 的架构,本节讨论 Neutron 的物理部署方案:不同节点部署不同的 Neutron 服务组件. 方案1:控制节点 + 计算节点 在这个部署方案中,OpenStack 由控制节点和计算节点组成. 控制节点部署的服务包括:neutron server, core plugin 的 agent 和 service plugin 的 agent. 计算节点部署 core plugin 的agent,负责提供二层网络功能. 这里有两点需要说明: 1. core plugi…
今天我们开始学习 OVS 如何实现 Neutron VxLAN,关于 VxLAN 的概念以及 Linux Bridge 实现,大家可以参考前面相关章节. Open vSwitch 支持 VXLAN 和 GRE 这两种 overlay network.因为 OpenStack 对于 VXLAN 与 GRE 配置和实现差别不大,这里只讨论如何实施 VXLAN. 在 ML2 配置中 enable vxlan network 在 /etc/neutron/plugins/ml2/ml2_conf.ini…
上一节创建了 OVS vlan network vlan100,今天部署 instance 到该网络.launch 新的 instance “cirros-vm1”,网络选择 vlan100. cirros-vm1 分配到的 IP 为 172.16.100.3. cirros-vm1 被 schedule 到控制节点,其虚拟网卡也连接到 br-int. 虚拟网卡与 br-int 的连接方式与 local 和 flat 网络没有任何区别,不再赘述. 当前 vlan100 的结构如下: 继续用同样的…
本节我们将创建三节点的 swarm 集群. swarm-manager 是 manager node,swarm-worker1 和 swarm-worker2 是 worker node. 所有节点的 Docker 版本均不低于 v1.12.我们的实验环境 node 的操作系统为 Ubuntu 16.04,当然其他 Linux 也是可以的. 在 swarm-manager 上执行如下命令创建 swarm. docker swarm init --advertise-addr 192.168.5…
本节我们将安装和部署 Helm 客户端和 Tiller 服务器. Helm 客户端 通常,我们将 Helm 客户端安装在能够执行 kubectl 命令的节点上,只需要下面一条命令: curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash 执行 helm version 验证. 目前只能查看到客户端的版本,服务器还没有安装. helm 有很多子命令和参数,为了提高使用命令行的效率,通常建议安装…
最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题目叫做<每天5分钟 玩转 OpenStack>,抱着试试的态度看了几篇,被文章的内容和书写风格吸引了,内容全面,思路清晰,简单易懂,关键是每篇博文的内容很少,绝对是一泡大便的功夫.每周一.周三.周五定时更新,微信也有同步更新.不过大神在博客园cnblogs上的博文没有目录,每次翻阅的时候甚是费劲,…
<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重实践并兼顾理论 主要从实际操作的角度带着大家学习 OpenStack. 为啥要写这个? 简单回答是:因为OpenStack 学习难度大,但如果掌握了价值会很大 先做一个自我介绍吧. 本人网名CloudMan,在 IT 这个行当已经摸爬滚打了十多年,05年之前是搞上层应用开发的,那时候 Java 比较火,所以…
上一节我们创建了 vxlan 100_net,今天将部署 instance 并分析网络的连通性. launch 新的 instance "cirros-vm1",网络选择 vxlan100. cirros-vm1 分配到的 IP 为 172.16.100.3. cirros-vm1 被 schedule 到控制节点,对应的 tap 设备为 tap099caa87-cd,并且连接到 bridge brq1762d312-d4. 当前 vxlan100 的结构如下: 继续用同样的方式 la…
前面我们讨论了 VXLAN 的理论知识,并且在 ML2 中完成了相关配置.今天将通过 Web UI 创建 vxlan100_net 并观察节点网络结构的变化. 打开菜单 Admin -> Networks,点击 "Create Network" 按钮 显示创建页面. Provider Network Type 选择 "VXLAN" Segmentation ID 即 VNI,设置为 100 点击 "Create Network",vxlan…
本节讨论 nova-compute,并详细分析 instance 部署的全过程. 先给大家道个歉:今天这篇文章的篇幅比以往要多一些,本来想分两次发,但考虑到文章的完整和系统性,还是一次发了出来,这次可能要超出 5 分钟了,大家见谅. nova-compute 在计算节点上运行,负责管理节点上的 instance. OpenStack 对 instance 的操作,最后都是交给 nova-compute 来完成的. nova-compute 与 Hypervisor 一起实现 OpenStack…
上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 first_local_net 以同样的方式 launch instance "cirros-vm2",分配的 IP 为 172.16.1.4. cirros-vm2 也被 schedule 到控制节点,ovs-vsctl show 的输出如下: cirros-vm2 对于的 tap 设…
上一节创建了 OVS flat network,今天我们部署 instance 并验证 flat 网络的连通性. launch 新的 instance "cirros-vm1",网络选择 falt_net. cirros-vm1 分配到的 IP 为 172.16.1.3. cirros-vm1 被 schedule 到控制节点,其虚拟网卡也连接到 br-int. 虚拟网卡与 br-int 的连接方式与 local 网络是一样的,不再赘述. 当前 flat_net 的结构如下: 继续用同…
上一节创建了 vxlan100_net 并部署 instance,今天我们来分析底层网络结构. 控制节点 执行 ovs-vsctl show: br-int br-int 连接了如下 port: tap0d4cb13a-7a 是 vxlan100_net 的 DHCP 服务对应的 interface. qvoa2ac3b9a-24 将 cirros-vm1 虚拟网卡连接到 vxlan100_net. br-tun br-tun 上创建了一个特殊的 port "vxlan-a642100b&quo…
上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "Flat". Physical Network 填写 "default",与 ml2_conf.ini 中 flat_networks 参数值保持一致. 点击 "Create Network"…
上一节我们完成了 OVS 的准备工作,本节从最基础的 local network 开始学习.local network 不会与宿主机的任何物理网卡连接,流量只被限制在宿主机内,同时也不关联任何的 VLAN ID. 创建第一个 local network 下面我们通过 Web GUI 创建 local network. 进入菜单 Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. "Provider Network Type…
上一节我们创建了 "flat_net",本节将在此网络中部署 instance 并验证连通性. launch 新的 instance “cirros-vm1”,选择网络 falt_net. cirros-vm1 分配到的 IP 为 172.16.1.103. cirros-vm1 被 schedule 到控制节点,对应的 tap 设备为 tapc1875c7f-cb,并且已经连接到 bridge. 当前 flat_net 的结构如下: 继续用同样的方式 launch instance…
前面我们创建了 vlan100,并部署了 instance,今天将继续创建第二个 vlan network "vlan101". subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron 自动创建了 vlan101 对应的网桥 brq1d7040b8-01,vlan interface eth1.101,以及 dhcp 的 tap 设备 tap5b1a2247-32. eth1.101 和 tap5b1a2247-32 已经连接到 brq1d…
上一节我们在 ML2 配置中 enable 了 vlan network,今天将创建 vlan100 并讨论底层网络变化. 打开菜单 Admin -> Networks,点击 “Create Network” 按钮. 显示创建页面. Provider Network Type 选择 “VLAN”. Physical Network 填写 “default”,必须与 ml2_conf.ini network_vlan_ranges 保持一致. Segmentation ID 即 VLAN ID,设…
上一节我们讨论了 flat network 的原理,今天就来创建 "flat_net" 并分析底层网络的实现. 打开菜单 Admin -> Networks,点击 “Create Network” 按钮. 显示创建页面. Provider Network Type 选择 “Flat”. Physical Network 填写 “default”,与 ml2_conf.ini 中 flat_networks 参数保持一致. 点击 “Create Network”,flat_net…
上一节完成了 OVS vlan network 的配置准备工作,今天我们创建 vlan100.打开菜单 Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "VLAN". Physical Network 填写 "default",与 ml2_conf.ini 中 network_vlan_ranges 参数值保持一致. Segmentatio…
上一节我们介绍了 VXLAN 的基本概念,今天介绍如何在 ML2 中启用 VXLAN. 在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 vxlan network 相关参数. tenant_network_types = vxlan 指定普通用户创建的网络类型为 vxlan. 这里还使用了一个名为 "l2population" mechanism driver,我们放到后面单独介绍. 然后指定 vxlan 的范围. 上面的配置定义了 vxlan v…
这是 OpenStack 实施经验分享系列的第 3 篇. 问题描述 通过上一节部署出来的 Windows instance 有时候会发现操作系统时间总是慢 8 个小时,即使手工调整好时间和时区,下次 instance 重启后又会差 8 个小时. 原因 KVM 对 Linux 和 Windows 虚拟机在系统时间上处理有所不同,Windows 需要额外一些设置. 解决办法一 给 Windows 镜像添加 os_type 属性.glance image-update --property os_ty…
​这是 OpenStack 实施经验分享系列的第 13 篇. instance snapshot 操作可用于备份或者将 instance 保存为新的 image.如果在生产系统中执行 snapshot 操作,必须确保此操作快速且安全.这里有两个关键点: 快速. 为保证数据的一致性,snapshot 时需要 pause instance,操作完后再 resume.在这个过程中 instance 是无法对外服务的,为了减少对业务的影响,我们希望 snapshot 越快越好. 安全. 即数据一致性,s…
前面我们创建了 vlan101,今天继续部署 instance 到该 vlan network, 并讨论 instance 之间的连通性. launch 新的 instance "cirros-vm3",网络选择 vlan101. cirros-vm3 分配到的 IP 为 172.16.101.103. cirros-vm3 被 schedule 到计算节点,对应的 tap 设备为 tapadb5cc6a-7a,并且连接到 bridge. 当前网络结构如下: cirros-vm1 位于…
前面完成了一系列准备工作,本节开始将创建各种 Neutorn 网络,我们首先讨论 local network. local network 的特点是不会与宿主机的任何物理网卡相连,也不关联任何的 VLAN ID. 对于每个 local netwrok,ML2 linux-bridge 会创建一个 bridge,instance 的 tap 设备会连接到 bridge.位于同一个 local network 的 instance 会连接到相同的 bridge,这样 instance 之间就可以通信…