OpenStack
开源的云操作系统
type
status
date
slug
summary
tags
category
icon
password
一、云计算简介
1. 云计算的优势
- 按需自助服务:用户可自主申请资源,无需人工干预。
- 广泛的网络接入:通过网络随时随地访问云服务。
- 弹性伸缩:根据需求自动调整资源规模。
- 资源池化:将底层资源抽象为共享池,隐藏技术细节。
2. 云计算类型
2.1 按服务范围分类
- 公有云:面向公众开放,由云服务商提供。
- 私有云:专用于单一组织,内部或托管部署。
- 混合云:公有云与私有云结合,实现数据与应用互通。
2.2 按服务模式分类
- IAAS(基础设施即服务):提供计算、存储、网络等基础资源。
- PAAS(平台即服务):提供应用开发与运行平台。
- SAAS(软件即服务):提供可直接使用的软件应用。
二、OpenStack 概述
OpenStack 是一个开源的云操作系统,用于构建和管理公有云、私有云及混合云平台。
三、OpenStack 核心组件
1. 组件概览


IAAS(基础设施即服务):Nova:计算服务,负责云服务器整个生命周期管理Glance:镜像服务,负责镜像维护操作Neutron:网络服务,负责为云服务器提供网络连接功能Cinder:块存储服务(卷服务),负责云硬盘整个生命周期管理
- Swift:对象存储服务,提供对象存储
- Keystone:身份认证服务,提供认证、授权
- Heat:编排服务,基于yaml语法
- Ironic:裸机管理服务(裸金属服务)
- Zun:容器服务,提供容器服务
- Horizon:提供Dashboard,webUI
- Dashboard:Web 管理界面
文件系统存储(NAS,nfs/cifs)
块存储(SAN,scsi/iSCSI)
对象存储(OBS) 以平面结构存储,存非结构化文件(图片,音视频,动画)
四、核心组件详解
1. Nova(计算服务)
负责云服务器的生命周期管理(创建、启动、停止、删除等)。

核心进程:
- nova-api:接收并响应客户端请求。
实现了RESTful API功能,是外部访问Nova的唯一途径。接收外部的请求并通过Message Queue将请求发送给其他的服务组件,同时也兼容EC2 API,所以也可以用EC2的管理工具对nova进行日常管理。

- nova-scheduler:选择合适的计算节点运行虚拟机。
- 过滤(filter):过滤出可以创建虚拟机的主机。
- 计算权值(weight):根据权重大小进行分配,默认根据资源可用空间进行权重排序。
决策虚拟机创建在哪个主机(计算节点)上。决策一个虚拟机应该调度到某物理节点,需要分为两个步骤:


- nova-compute:调用 Hypervisor(如 KVM)管理虚拟机。
负责虚拟机的生命周期管理,创建并终止虚拟机实例的工作后台程序hypervisor api

- nova-conductor:协调 nova-compute 与数据库之间的交互,读取云服务器相关元数据信息。
计算节点访问数据的中间件,nova-compute服务和数据库之间的中间件。它消除了对云数据库的直接访问。
- nova-novncproxy:提供 VNC 连接,支持控制台访问。
默认 Hypervisor:KVM
Nova创建虚拟机工作流程
2. Glance(镜像服务)
负责镜像的上传、管理、删除等操作。

核心进程:
- glance-api:接收镜像操作请求。
接收REST API的请求,然后通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作,默认监听端口9292。
- glance-registry:存储和管理镜像的元数据。
用于与MariaDB数据库交互,用于存储或获取镜像的元数据(metadata),默认监听端口9191。
支持的存储后端:
- Swift、S3、文件系统、Cinder Volume、Ceph RBD、Sheepdog、GridFS 等。
glance工作流程

3. Cinder(块存储服务)
为云服务器提供虚拟磁盘(云硬盘)服务。

核心进程:
- cinder-api:接收 API 请求,调用 cinder-volume 执行操作。cinder-api 对接收到的 HTTP API 请求会做如下处理:
- 检查客户端传人的参数是否合法有效 2. 调用 cinder 其他子服务的处理客户端请求 3. 将 cinder 其他子服务返回的结果序列号并返回给客户端
- cinder-scheduler:选择合适的存储节点。
- cinder-volume:调用存储驱动创建/销毁卷。
- cinder-backup:提供卷备份功能,通常与 Swift 配合使用。
使用技术:
- LVM、iSCSI/SCSI 共享块设备
- 支持多种存储驱动(如 FusionStorage、Ceph 等)
Cinder 工作流程
4. Neutron(网络服务)
为云服务器提供网络连接与虚拟网络功能。

核心进程:
- neutron-server:接收网络请求,路由到相应网络插件。
- L2 Agent(接入):负责虚拟交换机层操作(OVS 或 LinuxBridge)。
- L3 Agent(路由):负责路由、NAT、防火墙操作(使用 iptables)。
- DHCP Agent:为虚拟机提供 DHCP 服务(使用
dnsmasq)。
网络虚拟化技术:
- Open vSwitch / Linux Bridge:虚拟交换机
- Linux Bridge是 Linux 内核自带的虚拟交换机(Layer 2 Switch)。
它能在宿主机上创建一个虚拟交换域(Bridge Domain),让多个网络接口(物理或虚拟)像连接在同一个交换机上一样通信。
- VXLAN:在大规模虚拟化环境中,突破 VLAN ID 数量限制(4094 个),实现跨宿主机的二层网络隔离。

- SDN(软件定义网络):控制平面与数据平面分离
- 硬 SDN:专用硬件
- 软 SDN:软件实现
VLAN 是一种在 同一物理网络中 划分 多个逻辑局域网 的技术。通过给以太网帧添加 802.1Q 标签(VLAN ID) 来实现隔离。
- 每个 VLAN ID 范围:1 ~ 4094
- 不同 VLAN 的虚拟机互不通信,除非通过三层(L3)路由连接。
在二层网络中,当交换机(Switch)或虚拟交换机(如 OVS)收到一个 未知目的 MAC 地址(unknown destination MAC) 的帧时,它无法判断该帧应转发到哪个端口,于是:
它会把这个帧广播(flood)到除接收端口以外的所有端口。
这就是 泛洪(Flooding)。
泛洪的目的,是为了让目标主机回应(发送 ARP Reply 或 ICMP Echo Reply),交换机就能学习到该 MAC 地址对应的端口,建立转发表(MAC Address Table)。
5. Swift(对象存储服务)
用于存储镜像文件、备份文件等非结构化数据。
6. Ceilometer(计量服务)
提供资源使用量监控与计费数据收集。
7. Keystone(身份认证服务)
负责用户认证、授权与服务目录管理。
8. Heat(编排服务)
通过模板自动化部署和管理云资源。
9. Dashboard(Web 界面)
提供图形化操作界面,便于用户管理云平台。
五、补充说明
1. Neutron 网络插件
- Neutron 支持多种插件(如 ML2),可根据网络需求灵活选择。
3. Glance 多存储支持
- Glance 支持多种后端存储,建议根据性能和可靠性需求选择合适的存储类型。
六、总结
OpenStack 是一个模块化、可扩展的云操作系统,通过各组件协同工作,提供完整的 IAAS 解决方案。掌握其核心组件的功能与交互流程,是构建和管理 OpenStack 云平台的基础。
Loading...
