【容器技术】OpenStack 概览

OpenStack 概览

一、核心概念与架构

1. 什么是 OpenStack?

  • 定义:一套由多个开源组件(服务)组成的软件集合,用于构建和管理公有云、私有云及混合云。
  • 本质:基础设施即服务(IaaS)平台。
  • 核心理念:通过 API 控制和管理数据中心内大量的计算、存储和网络资源。

2. 总体架构

OpenStack 采用分布式、无共享(Shared-Nothing)架构,所有核心服务通过消息队列(RabbitMQ)和数据库(MySQL/MariaDB)进行通信。用户通过 Dashboard(Horizon)或 CLI/API 与各服务交互。


二、核心组件详解

OpenStack 由多个"代号"项目组成,以下是当前最核心的"八大金刚":

服务名称 代号 功能描述
计算 Nova 核心大脑。负责管理虚拟机(VM)和裸金属服务器的生命周期(创建、启动、停止、删除)。支持多种虚拟化技术(KVM, VMware, Xen)。
镜像服务 Glance 虚拟机模板仓库。负责存储和检索虚拟机磁盘镜像(如 ISO, QCOW2, RAW)。是 Nova 创建实例时的源头。
身份认证 Keystone 统一认证与授权中心。管理所有用户、租户/项目、角色和服务目录。所有组件间的通信都必须经过 Keystone 验证。
网络服务 Neutron 网络抽象层。提供虚拟网络功能:子网、路由器、防火墙(FWaaS)、负载均衡(LBaaS)、VPN等。支持 SDN控制器集成。
块存储 Cinder 持久化虚拟硬盘管理。为虚拟机提供可挂载/卸载的块存储设备(类似 AWS EBS)。支持多种后端存储技术 (LVM, Ceph, NFS)。
对象存储 Swift (可选) RESTful对象存储系统,用于存储非结构化数据 (图片、视频备份等),通过 HTTP API访问 (类似 AWS S3)
仪表盘/UI界面 Dashboard UI界面Horizon给管理员和用户提供一个基于 Web的可视化管理界面调用后台API操作所有资源面板展示使用情况监控告警信息
编排 OrchestrationHeat 基于 YAML/HOT模板自动化部署云应用基础设施一键创建一组关联的资源 (VM网络卷)实现"基础设施即代码"

注:Swift为可选组件,若使用Ceph则通常替代Swift;Horizon是管理工具;Heat是高级编排工具


三、关键工作流程

(1)启动一台虚拟机的基本流程

  1. 用户通过 Horizon/CLI -> Keystone进行身份验证。
  2. 请求到达 Nova-API。
  3. Nova-API查询Keystone确认权限。
  4. 调度器(Nova-Scheduler)根据资源策略选择一台合适的计算节点(Nova-Compute)。
  5. 计算节点从 Glance下载指定的镜像。
  6. 计算节点从 Neutron获取并配置网络接口(分配IP)。
  7. 计算节点从 Cinder挂载额外的数据卷(如果有)。
  8. 虚拟机在 Hypervisor(KVM)上启动。

(2)资源抽象关系

复制代码
项目(Project/Tenant)
├── VM实例 (Instance) -> Nova
│   ├── vCPU / RAM -> Nova-Scheduler调度
│   ├── IP地址 / Port -> Neutron
│   └── Root Disk -> Glance + Cinder (Ephemeral)
├── Volume (数据盘) -> Cinder
├── Image (镜像) -> Glance
└── Network / Subnet / Router -> Neutron

四、常见部署模式与拓扑

  1. [控制节点] :运行 Keystone, Glance, Nova-API/Scheduler, Neutron-Server, Horizon, RabbitMQ, MySQL。
    • 通常高可用部署为3个控制节点集群。
  2. [网络节点] :运行 Neutron-Agent (L3/DHCP/Metadata),负责南北向流量路由及NAT。
    • 现代部署中常与控制节点合并或采用 DVR(分布式虚拟路由)。
  3. [计算节点] :运行 Nova-Compute + Neutron-Agent(L2),运行实际虚拟机。
  4. [存储节点] :运行 Cinder/Swift/Ceph OSD等后端存储进程。

五、关键技术与特性

1 .SDN与Neutron技术栈:

复制代码
*Provider Network:直接映射到物理网卡VLAN简单性能好*
*Self-Service Overlay Network:基于VXLAN/GRE隧道隔离租户流量支持私有子网浮动IP NAT*

2 .Hypervisor支持:

复制代码
*默认首选KVM Linux原生性能最佳*
*也可支持VMware vSphere Hyper-V XenServer*

3. Storage Backend:

复制代码
*本地磁盘(LVM):适合测试环境*
*分布式存储(Ceph):生产环境首选统一提供块对象文件系统接口*
*商业SAN(NetApp Dell EMC):企业级传统方案*

4. Placement Service:

复制代码
较新版本引入的资源调度引擎独立于Scheduler跟踪各节点的资源库存CPU RAM Disk确保高效调度避免超分冲突

六、运维与管理要点

1. CLI工具:

复制代码
`openstack`命令集 `nova-manage` `neutron-debug` `cinder list`

2.日志排查:

复制代码
所有组件日志默认位于 `/var/log/{service}/` eg `/var/log/nova/nova-compute.log`
常见问题定位顺序: Horizon报错->查看API日志->查看Scheduler日志->查看Compute日志

3.数据库操作:

复制代码
修改状态需谨慎 `nova-manage db sync` `mysql -u root -p cinder`

4.安全组 vs ACL:

复制代码
安全组(Security Group)由Neutron实现状态化过滤作用于Port级别; ACL作用于Router端口更多是传统方式.

5.配额管理Quotas:

复制代码
限制项目可使用的资源数(CPU内存卷数量浮动IP数量)

6.迁移方式:

复制代码
冷迁移关机后移动磁盘;热迁移在线迁移需共享存储Ceph或NFS ;Resize调整规格.

7.高可用HA方案:

复制代码
控制面 Pacemaker+Corosync或Kubernetes ;数据面Ceph多副本;网络面DVR+HA Router.

七、优缺点总结

优点缺点

完全开源免费无厂商锁定学习曲线陡峭安装配置复杂灵活性极高可深度定制生态碎片化不同版本兼容性问题社区活跃文档丰富成熟大规模生产环境对运维能力要求高硬件兼容性好支持X86ARM Power架构某些组件性能不如商业产品(AWS Azure)

相关推荐
做咩啊~6 天前
10.openstack创建虚拟机的流程
openstack
360智汇云7 天前
OpenStack Nova 虚拟机网卡挂卸载性能优化实践
性能优化·openstack
eucalyptus-DE9 天前
Nova 计算节点故障排查指南
服务器·openstack
做咩啊~23 天前
7.cinder对接nfs后端存储
openstack
isyangli_blog23 天前
openstack 下载打包整套环境
服务器·网络·openstack
isyangli_blog23 天前
openstack 界面发放一台云主机
openstack
isyangli_blog25 天前
Openstack V 版搭建
openstack
isyangli_blog25 天前
openstack V版 本地源方式搭建
运维·openstack
Yana.nice1 个月前
华为云计算(FusionAccess/FusionCompute/OpenStack)平台
华为云·openstack