阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

OpenStack网络配置设计

192次阅读
没有评论

共计 3834 个字符,预计需要花费 10 分钟才能阅读完成。

OpenStack 提供了丰富的网络配置环境,本文介绍设计云系统是对于网络部分需求的考虑和设计。

如果这次是首次在你的组织中部署云系统,在阅读完本章节后请和你的网络运维团队进行沟通,以便了解现有网络状况。云系统使用的网络同普通系统所使用的网络部署方式不同,且有可能在部署时对于网络的连接性和网络策略造成影响。

比如:组成云系统的服务器和云上运行的虚拟机实例所需要用的 IP 地址资源就需要事先进行妥善规划和准备;云系统网络中所涉及到的代理,防火墙也需要进行相应的研究。

网络管理

网络有效管理通常是一个重要的考虑项目(常见的如:分散的交换机和网络接口)。通过将系统管理和监控产生流量和实际云系统用户流量进行分流的网络管理方式可以减少对于用户使用的影响。

对于 OpenStack 内部组件则建议使用私有网络进行通讯,如:消息队列,OpenStack 计算节点。VLAN 非常适合于这种私有网络的场景。

公共访问选项

对于云系统中虚拟机实例有两种的 IP 地址分配策略:固定 IP 和动态 IP。固定 IP 策略是在虚拟机实例启动时分配并绑定一个固定 IP 地址,而动态 IP 策略则可能在用户的不同操作时 IP 地址发生变更。这两种 IP 策略按照需求同时可用于共有和私有网络。

OpenStack 必须使用固定 IP 地址,而动态 IP 地址则不是必须的。常见的 2 种动态 IP 的应用场景是:对于公网 IP 地址有限的私有云环境,可提供外网对于私有云的访问;或对于公有云用户可以有一个静态 IP 来访问云资源,而在云系统中实际对应的实例已迁移或升级。

固定 IP 地址可以是私有云中的内网 IP,也可以是公有云中的公网 IP。当虚拟机实例终止后,对应的固定 IP 地址就被系统回收。需要注意的是刚开始使用云系统的用户可能会对固定 IP 地址的消失产生困惑。

IP 地址规划

OpenStack 环境可能会需要很多子网,且每个子网间运行不同的服务。IP 地址规划可以对于网络分隔和扩展提供更好的帮助。控制类服务同时需要公网和私网 IP 地址,可参见之前提到的虚拟机公网配置的选项。

IP 地址规划可以分解成以下部分:

  1. 子网路由:子网数据包通过专用路由或 nova-network 服务进行通讯
  2. 控制服务的公开接口:swift-proxy, nova-api, glance-api 和 horizon 的公用访问,可以指向单台服务器也可在负载均衡之后。
  3. 对象存储集群内部通讯:在对象 / 账号 / 容器的服务之间的通讯和代理服务的内部接口使用的私有网络上的通讯。
  4. 计算和存储通讯:临时存储和对象存储对于计算节点来说是外部服务,需要网络进行连接通讯。
  5. 外部远程管理:如果专用的外部远程控制器用于管理服务器,通常采用分隔的网络。
  6. 内部远程管理:通常计算或存储节点需要额外的网络接口(如 1G 接口)用于系统管理或监控工具访问服务器。
  7. 未来扩展的预留空间:添加新的面向公开的控制服务,或是更多的虚拟机实例的 IP 需要在你的计划中。

比如:在私有 IP 段 172.22.42.0/24 and 172.22.87.0/26 上部署了 OpenStack 的计算和对象存储服务,可按照如下方式进行配置:

172.22.42.0/24 172.22.42.1 – 172.22.42.3 – 子网路由 172.22.42.4 – 172.22.42.20 – 预留 172.22.42.21 – 172.22.42.104 – 计算节点远程控制器 172.22.42.105 – 172.22.42.188 – 计算节点管理接口 172.22.42.189 – 172.22.42.208 – Swift proxy 远程控制器 172.22.42.209 – 172.22.42.228 – Swift proxy 管理接口 172.22.42.229 – 172.22.42.252 – Swift storage servers 远程控制器 172.22.42.253 – 172.22.42.254 – 预留 172.22.87.0/26: 172.22.87.1 – 172.22.87.3 – 子网路由 172.22.87.4 – 172.22.87.24 – Swift proxy server 内部接口 172.22.87.25 – 172.22.87.63 – Swift object server 内部接口

也可以使用公网 IP 地址实现类似方式,建议使用较大范围段的 IP 地址。需要注意的是有些 Openstack 网络配置下,虚拟机实例的公网 IP 地址是分配给了 nova-compute 主机。

网络拓扑

OpenStack 提供了几种网络管理方式,每种各自有自己的优缺点。选择不同的网络管理管理方式会影响到你网络拓扑,所以需要谨慎选择合适方式。方式 Flat 优点:及其简单,不需要 DHCP 广播 缺点:需要在虚拟机实例中进行文件注入,仅限于有限的 Linux 发行版,配置困难,不推荐 FlatDHCP 优点:配置相对简单,标准网络协议,可用于任意操作系统 缺点:需要有自己的 DHCP 广播域 VlanManager 优点:每个租户可以隔离在自己的 VLAn 中 缺点:配置较复杂,需要有自己的 DHCP 广播域,需要需要许多 VLAN 配置传输端口,有 VLAN 数量限制,交换机需要支持 802.1q VLAN tagging FlatDHCP Multi-host 优点:网络故障可按照虚拟机进行隔离 缺点:配置复杂 HA 优点:running on the hypervisor affected.(不知道什么意思?主机上运行,可迁移?),DHCP 通讯可以隔离在单个主机,网络流量可以分布到不同的计算节点上 缺点:默认计算节点需要分配公网 IP 地址,在线扩展时在网络部分需要特别小心的修改配置

VLANs

VLAN 的配置可以从简单到复杂。使用 VLAN 可以使每个项目有有自己的子网且网络广播可以同其他的项目分隔开。为了让 OpenStack 更好的使用 VLAN,需要将 VLAN 进行划分(每个项目一个 VLAN)且每个计算节点连接的交换机端口都需要绑定到 VLAN 的传输端口(trunck port)。

比如:你的云预计需要支持最多 100 个项目,选择一个当前网络架构中没有使用的 VLAN 范围(如:VLAN 200 – 299),然后配置 OpenStack 使用该 VLAN 范围且交换机端口允许该范围的 VLAN 进行通讯。

多个网络接口

OpenStack 可以支持将多个网络接口分配给一个虚拟机实例。虽然这是一个不常用的高级特性,但通过简单配置就可支持。需要注意的是第二个网络接口使用整个子网或 VLAN,对于可支持的项目数会减少。

多主机和单主机网络

nova-network 服务可以运行在多主机或单主机模式下。多主机网络模式就是每个计算节点上都运行一份 nova-network 服务,该服务就作为相同节点上虚拟机实例连接 Internet 的网关。同时,计算节点也为本机的虚拟机实例提供了动态 IP 和安全组 (Security Groups)。单主机网络模式是使用集中的服务器,如:云控制器,独立运行 nova-network 服务。所有计算节点都将虚拟机实例的网络通讯转发到云控制器,云控制器负责连接到 Internet。云中的所有计算节点上所有的虚拟机实例使用的动态 IP 和安全组(Security Groups) 都是由云控制器支持。

这两种模式各有优缺点。单主机网络模式有单点故障的缺点,当云控制器发生故障,所有虚拟机实例都无法进行网络通讯。而多主机网络模式则没有这个问题,但多主机模式下需要每个计算节点都有一个公网 IP 用于连接 Internet。当没有足够的公网 IP 地址时,则无法使用多主机网络模式。

网络服务

OpenStack 和其他网络应用一样会应用很多标准服务,比如:DNS 和 NTP

NTP

时间同步是确保 OpenStack 各个组件能正常工作的一个关键因素。虚拟机实例中的调度,对象存储中的对象复制和日志中的时间戳匹配都必须要有正确的时间。

所有运行 OpenStack 组件的服务器都需要能访问适合的 NTP 服务。你可以通过在本地搭建一个 NTP 服务或者是使用公用的 NTP 服务。通过访问 http://www.pool.ntp.org/ 可以获得可用的公用 NTP 服务。

DNS

除了在安装 nova-network 服务器上有运行 dnsmasq 之外,OpenStack 目前并不提供 DNS 服务。你可以考虑提供一个动态 DNS 服务用于虚拟机实例更新 DNS 记录指向新的 IP 地址,也可以提供正向或逆向的 DNS 同虚拟机实例 IP 地址的映射,如:vm-203-0-113-123.example.com。

相关阅读

在 Ubuntu 12.10 上安装部署 Openstack http://www.linuxidc.com/Linux/2013-08/88184.htm

Ubuntu 12.04 OpenStack Swift 单节点部署手册 http://www.linuxidc.com/Linux/2013-08/88182.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 http://www.linuxidc.com/Linux/2012-08/68101.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 - 上篇 http://www.linuxidc.com/Linux/2012-06/61963.htm

MySQL 服务器的 HA 集群之 Corosync+DRBD+Pacemaker 实现 - 下篇 http://www.linuxidc.com/Linux/2012-06/61964.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3834字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中