OpenStack对象存储-Swift、OpenStack编排管理-heat、OpenStack网络管理-neutron

一、OpenStack 对象存储 ------ Swift

1.1 Swift 在 OpenStack 中的作用

  • Swift 不是文件系统,也不是实时的数据存储系统 ,而是对象存储 ,面向永久类型静态数据的长期存储,这些数据可以被检索、调整,必要时进行更新。
  • 最适合存储的数据类型:虚拟机镜像、图片存储、邮件存储、存档备份。
  • 因为没有中心单元或主控节点,Swift 提供了更强的扩展性 与高可用性:通过数据复制(replica)机制在多个存储节点间冗余保存对象,任一节点故障不会导致数据丢失。
  • 在 OpenStack 中,Swift 常作为 Glance 镜像服务的后端存储(讲义中演示了"使用 swift 作为 Glance 后端存储")。

1.2 核心概念

概念 说明
Account(账户) 顶层容器,对应一个 Project / 用户,下含若干 Container
Container(容器) 对象的命名空间集合,用于组织对象(类似"目录",但不可嵌套)
Object(对象) 实际存储的数据单元(数据 + 元数据 + 唯一标识)
Ring 描述"分区(Partition)如何映射到物理磁盘设备"的逻辑映射表,是 Swift 的数据分布核心
Partition(分区) 数据分布的基本单位,对象先 Hash 到分区,再由 Ring 映射到具体设备
Replica(副本) 每个对象/分区的冗余份数,默认 3 副本

1.3 关键架构特点

  • 去中心化:无单点主控,元数据与数据平权分布。
  • 数据分布算法:通过 Hash Ring 将对象定位到 Partition,再由 Ring 定位到 Device。
  • 可扩展:横向增加存储节点即可扩容。
  • 高可靠:依赖副本 + 后台 Region/Rebalance 机制保持数据均衡与自愈。

1.4 Swift 学习小结

  • 记牢 Account / Container / Object 三层结构 与 Ring + Partition + Replica 的数据分布模型。
  • 理解 Swift 适用于"一次写入、多次读取、长期保存"的静态大对象场景。
  • 实验重点是 磁盘挂载 → 权限 → 建 Ring → Rebalance 这条主线。

二、OpenStack 编排管理 ------ Heat

2.1 Heat 的作用

  • Heat 是一种通过 OpenStack 原生 REST API、使用声明性模板格式编排复合云应用程序的服务,并提供与其他 OpenStack 核心项目的紧密集成。
  • Heat 模板以文本文件 形式描述云应用的基础架构,文件可供用户读写,并支持通过版本控制工具进行管理。
  • 用户无需直接接触 Nova、Neutron 等服务,只需把对各种资源的需求写进 Heat 模板,Heat 就会自动调用相关服务接口来创建、配置资源。

2.2 Heat 与其他服务的关系

  • Heat 是位于 Nova、Neutron 等服务之上的一个组件,充当 OpenStack 对外编排接口的角色。
  • 一次"堆栈(Stack)"的创建,可同时拉起虚拟机、网络、子网、安全组、浮动 IP、卷等多种资源,实现基础设施即代码(IaC)。

2.3 Heat 架构与组件

组件 职责
heat-api 提供 REST API 服务,是其他组件与 Heat 交互的入口,接收 API 请求并传送给 heat-engine
heat-api-cfn 提供兼容 AWS CloudFormation 的 API,接收请求并转发给 heat-engine
heat-engine Heat 的核心,负责任务调度、资源生命周期管理,向下调用各 OpenStack 服务实际创建资源

2.4 Heat 模板

  • 默认编写语言:YAML 语法(YAML Ain't Markup Language)。
  • YAML 要点:
    • 使用缩进(一个或多个空格)排版;
    • 序列项 用短划线 - 表示;
    • MAP 中的 key-value 对用冒号 : 表示。
  • 常见 HOT(Heat Orchestration Template)结构分段:heat_template_version、description、parameters、resources、outputs。

2.5 Heat 学习小结

  • 核心理念:声明式 / 基础设施即代码,把一组资源写进一个 YAML 模板,一键编排。
  • 记牢三大组件:heat-api / heat-api-cfn / heat-engine,其中 engine 是真正干活的。
  • 实验重点是理解 parameters → resources → outputs 的模板结构与资源间的 get_resource 引用关系。

三、OpenStack 网络管理 ------ Neutron

3.1 Neutron 的定位

  • Neutron 设计目标:网络即服务(Networking as a Service, NaaS)。
  • 遵循基于 SDN 实现网络虚拟化的原则,充分利用 Linux 系统上的各种网络技术。
  • 核心工作 是对二层物理网络的抽象与虚拟化,为实例提供虚拟网络能力。

3.2 物理网络 vs 虚拟网络

物理 虚拟 说明
Switch vSwitch 物理交换机 / 虚拟交换机
NIC vNIC 物理网卡 / 虚拟网卡
  • vSwitch 常见软件:linuxbridge、ovs(Open vSwitch)、ovn。

3.3 Linux 网卡虚拟化基础(TAP / TUN / VETH)

  • TAP 设备 :模拟二层网络设备,可收发二层网包。
  • TUN 设备 :模拟三层网络设备,可收发三层网包。
  • VETH:虚拟 ethernet 接口,通常**成对(pair)**出现,一端发出的网包被另一端接收,可形成两个网桥之间的通道。

3.4 虚拟交换机:Linux Bridge 与 OVS

  • Linux Bridge :工作于二层的网络设备,功能类似物理交换机;可绑定其他网络设备并虚拟化为端口。

    bash 复制代码
    brctl addbr BRIDGE      # 创建网桥

    更适用于小规模、主机内部间通信场景。

  • Open vSwitch (OVS) :产品级虚拟交换机,更适合大规模、多主机间通信 场景(华为 FusionCompute 的 DVS 即基于 EVS,EVS 基于 OVS)。

    bash 复制代码
    ovs-vsctl add-br BRIDGE   # 创建虚拟交换机

3.5 Neutron 网络类型

类型 说明
local 与其他网络、节点隔离;同一节点同一网络内的实例才能通信,主要用于单机测试
flat 无 VLAN tagging 的网络;同一网络的实例可跨多节点通信
(vlan) 基于 VLAN 标签隔离,是生产环境常用的多租户隔离方式
(vxlan/gre) Overlay 网络,跨节点用隧道封装

Subnet / CIDR 重叠规则 :同一 network 下不同 subnet 的 CIDR 不允许重叠 (看的是 CIDR 而非单个 IP 是否重叠);但不同 network 之间的 subnet,其 CIDR 和 IP 都可以重叠。

3.6 Neutron 组件

组件 职责
Neutron Server 对外提供网络 API,接收请求并调用 Plugin 处理
Plugin 处理 Server 发来的请求,维护 OpenStack 逻辑网络状态,并调用 Agent 处理
Agent 处理 Plugin 的请求,负责在计算/网络节点上落实具体的网络配置(如 OVS/LBFW/DHCP/Metadata Agent)
  • Neutron 的元数据(网络、子网、端口、路由、浮动 IP 等)保存在数据库 neutron 库中(如 networks、subnets、ports、ipallocations、routers 等表)。

3.7 Neutron 学习小结

  • 抓住 "网络即服务 + SDN 抽象二层网络" 这条主线。
  • 记牢三类底层技术:TAP/TUN/VETH、Linux Bridge、OVS/OVN 的分工与适用场景。
  • 记牢 Server / Plugin / Agent 三层组件,以及网络类型 local / flat / vlan / vxlan 的隔离差异。
  • 实验重点是 OVN:外网---内网---路由器---实例 的连通链路及 ovn-nbctl show 观察 logical switch / router / 绑定。

四、三大服务对照速记

维度 Swift(对象存储) Heat(编排管理) Neutron(网络管理)
一句话定位 静态大对象的长期存储 声明式模板编排云应用 网络即服务、二层网络虚拟化
核心结构 Account/Container/Object + Ring parameters/resources/outputs Server/Plugin/Agent
关键组件 Ring/Partition/Replica heat-api / heat-api-cfn / heat-engine ML2 + OVN/OVS,DHCP/LBFW/Metadata Agent
典型场景 镜像、图片、备份归档 一键拉起 VM+网络+安全组 多租户网络、浮动 IP、SNAT
实验主线 挂盘→建 Ring→Rebalance 写 HOT→建堆栈 外网→内网→路由器→实例(OVN)
相关推荐
东鹏特饮3 小时前
本机状态监控页面html
运维·css·html·css3
2501_915921433 小时前
KXBuild CI 实操,Windows/Linux 服务器接入 Jenkins 打包 iOS IPA
服务器·windows·vscode·ios·ci/cd·个人开发·敏捷流程
Gauss松鼠会3 小时前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
一技安身3 小时前
MySQL 8.4.13 LTS 通用二进制包(Linux免安装版)完整教程
linux·mysql·adb
迷途之人不知返3 小时前
【动态库与静态库】-3-静态链接与加载
linux
Gauss松鼠会4 小时前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
超级架构师4 小时前
让 Fortran 模型自己调用 Agent:原生 Fortran 2008 实现深度剖析
人工智能·python·架构·机器人·开源·fortran
谙弆悕博士4 小时前
debian快速换源
linux·运维·windows·debian·下载·换源·网络问题
暴走约伯4 小时前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎