Melange
- Launchpad 条目: NovaSpec:Melange
- 创建时间: 2011年5月2日
- 起草人: Troy Toman
- 贡献者:
总结
Melange 旨在为 OpenStack 服务提供网络信息服务。最初的重点将是 IP 地址管理 (IPAM) 和地址发现 (DHCP/dnsmasq) 功能。Melange 旨在成为一个独立的具有自身 API 的服务。但是,最初的使用场景是从 Nova 中解耦现有的 IP 管理和 VM 地址发现功能,并支持现有的 Nova 网络功能。
从长远来看,Melange 将演变为与其他的 OpenStack 服务集成,特别是 Quantum 服务(虚拟网络段)、网络容器和负载均衡即服务 (LBaaS)。我们还预计,我们可能会超越基本的 IP 地址管理和 DHCP,以处理其他网络信息,例如网关、路由和 DNS 信息。
发布说明
由于 Melange 最初专注于从 Nova 中解耦 IPAM 和 VM 地址发现功能,我们计划在 Nova 项目和仓库中实现这一点。由于 Melange 将是一个独立的服务和 API,因此这项工作不会对 Nova 产生任何直接影响。但是,这项服务的最终采用取决于以下蓝图中的网络重构工作:
此蓝图是 Melange 服务的总纲。具体的实现细节将在以下依赖蓝图中进一步说明:
原理
IP 地址对于云提供商管理来说是一项重要的资源,提供商需要灵活性来确定如何将地址分配给 VM 和其他与网络相关的服务(例如,负载均衡设备)。现有的 IP 关联机制与 Nova 的网络配置机制紧密耦合,包括提供 NAT 的网络主机,可能不适用于提供商的网络设计。此外,客户可能希望分配自己的地址,例如,使用 RFC 1918 空间或具有连接到远程站点网络的 VPN 的隔离租户网络。因此,IP 地址管理系统的灵活性和功能需要显著改进。
用户故事 / 范围
IPAM 服务
- 最初的基本情况是提供与 Nova 今天提供的服务等效的最低功能
- 应支持网络块细分 - 将大块划分为较小的子网
- VM 地址发现/自动分配 - (应提供至少 dnsmasq 等效功能和插件支持)
- 预计 IPAM 服务的消费者是其他 OpenStack 服务(nova、LBaaS、Layer 2 等)
- 作为通用 IP 地址管理解决方案,目前设想的 Melange 范围之外。
- 支持 IPv4 和 IPv6 块和地址管理
- Melange 必须支持多租户环境
- 公共地址空间
- 私有(重叠)地址空间
- 必须能够将 IP 关联到租户/项目和网络段
- 必须基于现有的 authZ/authN 系统保护数据
- 应存储 IP 地址、默认网关、子网(dhcp 选项:DNS 服务器、NTP 等)
- 启用策略定义
- 块使用方式的分配规则(为特定目的保留某些地址等)
- 从可用块自动分配 IP 的规则
- 需要支持浮动 IP
- IPAM 服务是一个仓库,不是“行动者”(存储信息并回答查询,不会主动推送信息)
前提条件
此蓝图假定 Nova 的 network-refactoring 蓝图将取得进展。我们还假设 Quantum 虚拟网络服务也在与 Melange 同时开发。
设计
我们最初的目标是 Melange 的 3 个核心部分。每个部分将在更具体的蓝图中详细说明
- Melange API
- IP 地址管理
- VM 地址发现服务(即 DHCP/dnsmasq)
实现
我们打算为 Melange 提供一个 API,该 API 将公开所有关键服务。我们将利用 Keystone 框架中正在进行的 Echo 项目,以获得适当的守护进程化和测试框架的初始 API。基础 API 的文档记录在此:https://wiki.openstack.org/MelangeAPIBase。
我们预计为基本的 IP 管理服务和 VM 地址发现服务器提供“插件”功能。对于 OpenStack 部署而言,使用已部署的现有服务应该很简单。
未解决的问题
- 我们需要与 nova-refactoring 和 Quantum 开发工作密切合作,以精确定义预期的流程。我们需要确保现有和未来的功能在新的服务之间清晰且正确地划分。
- 问题:如何处理同一 L2 段上的多个 IP 子网?
- 策略和优先级?
- 问题:静态 IP?
- nova 预留,然后持有?
- 消费者是否可以指定要获取的 IP
讨论
Melange 创建背后的许多背景信息可以在网络服务 Etherpad 讨论中找到。