云计算和OpenStack(OP NO.1)
云计算和OpenStack(OP NO.1)
1.1 云计算☁️
1.1.1 云计算的概念🚀️
云计算其实就是一种分布式技术的体现,在处理任务的过程中将任务划分成很多子任务分发到整合的资源池中进行寻找,通过资源池找到计算并分析处理任务。云计算管理的资源主要包括中央处理器、存储设备、网络设备等,通过对这些资源的统计和调度,达到资源的合理分配,实现资源的管理和释放。
云计算的三种服务类型:
软件即服务(Software as a Service :SaaS)
SaaS的含义类似于“按需软件”
通过SaaS模式,用户可以在互联网上选择各种各样的软件服务,完全根据自己的需求选择想要的软件,用户就不用再购买硬件和软件去搭建一个自己想要的应用软件系统。比如商城收银系统、办公OA系统、即时通讯系统和人力资源系统等等。
这些软件系统都由SaaS服务商提供,而且后续软件维护都不需要用户自己管理,用户只需要根据需求付费选择购买应用软件系统。
平台即服务(Platform as a Service :PaaS):
PaaS服务模式就是将一些特定的开发平台和运行平台作为服务提供给用户,用户只需要通过互联网就可以在平台上进行应用开发或者运行测试。用户通过SaaS这种商业模式不需要在考虑底层的硬件设施、操作系统软件和开发环境等问题,无论是开发软件、运行测试、部署发布都可以在SaaS平台上一站式完成。
基础设施即服务(Infrastructure as a Service :IaaS)
通过IaaS这种商业模式用户有了更多的选择,不需要考虑底层的硬件设施,只需要通过互联网访问IaaS云服务商购买所需的云资源即可。例如云服务器、云硬盘、对象存储、云数据库和容器等等资源服务。通过这种模式用户能够享受到更多的选择权利,根据业务需求改变自己的云资源策略。
云计算的三种部署类型
公有云:用户不需要购买搭建云服务器的基础硬件设施,这些基础费用都是公有云运营商来承担的,不需要管理系统搭建运维,用户只需要在公有云运营商这里购买所需要的云资源即可,投入成本低,外部用户的所有数据都是存储在公有云上。因此,用户数据的安全性没有私有云高。
私有云:企业或者个人用户需要自己购买搭建云平台所需要的硬件软件,搭建云台之后自己开发所需业务的云应用和后续平台运维都要自己完成,所有的设备和数据都是属于私有云管理人员拥有。因此,私有云可以在内部保障云平台业务的安全性。但相较于公有云这种模式短期需要投入的成本要多一点。
混合云:根据外部用户的需求不同而创建,为了分担管理和运维职责带来的风险和成本,外部用户希望数据安全的存储在本地又想使用公有云带来的计算服务。外部用户可以根据自己能够承担的风险比例来选择私有资源和公有资源所占的比例。
1.1.2 云计算的特点
云计算平台一般都具备以下特点:
按需服务:用户自我定义所需要的计算资源规模,由云环境自动化提供, 而不需要通每一个服务提供商之间进行人工化交互。
资源池:云计算平台将分散的硬件资源进行整合并虚拟化以保证资源的充分利用,例如中央处理器、硬盘、内存、网卡等等设备都整合在资源池中。这些资源将根据需求使用或者释放时通过云平台统一从资源池中调度。
弹性可扩展:由于资源池的可用资源总量是根据底层基础设施来确定的,也就是说当一个云平台搭建完成后他的资源池总量是固定的。当一个需求突然要使用大量工作负载,就可以通过弹性调度一些闲置的资源进行扩展,并且业务不受任何影响。
检测服务:实时对整个平台的资源进行检测,随时查看资源的占用率和性能状况,以保证资源的健康状况和充分利用。
1.2 私有云🌥️
1.2.1 私有云的概念
私有云是为单个客户构建的云计算平台,服务提供者和使用者通常在同一企业或开发团队中。这种特性使得私有云能够更好地控制数据资源的安全性和服务稳定性,从而满足企业、开发团队以及个人的实际需求。
1.2.2 私有云的特点
-
信息安全。 与公共云和混合云相比,私有云平台往往是在内部防火墙设备保护后构建的,因此外部要获取私有云的数据信息,就必须突破防火墙的封锁,而且防火墙又是内部自有的,只要防火墙维护得当,想从外部击溃云平台是比较困难的。
-
优质服务。 私有云通常为企业自身构建,管理者能及时发现问题并采用针对性的解决方案,提高数据安全性和上云的业务的高可用性从而保证优质的服务体验。
-
提高资源利用率。 公司内部冗余的硬件资源较多,实际开发环境中大部分时间无法充分利用这些资源的。搭建私有云可以将这些持续浪费的硬件资源整合在一起,确保每次使用的资源都在业务需求内,不会多也不会少。利用这些硬件设备搭建私有云即节约了部分成本又提高了资源使用率。
1.3 公有云☁️
1.3.1 公有云的概念
公有云是由第三方云服务提供商通过互联网向公众开放的计算平台,用户可按需付费使用计算、存储、网络等资源,而无需自行购买和维护硬件设备。典型的公有云服务商包括阿里云、腾讯云、AWS、Azure 等。
1.3.2 公有云的特点
-
低成本与免运维。用户无需前期投入大量资金购买服务器、存储等硬件,也无需承担设备运维、电力、机房等成本,只需按实际使用量付费。云服务商负责底层基础设施的维护和升级,用户可专注于自身业务。
-
极高的弹性伸缩。公有云拥有庞大的资源池,理论上可提供近乎无限的扩展能力。当业务流量突增时,用户可秒级获取更多计算资源;流量回落后,可快速释放资源,避免浪费。这种弹性远超一般私有云所能达到的规模。
-
全球部署与高可用。主流公有云服务商在全球多个区域建有数据中心,用户可一键将业务部署到不同地理位置,实现异地容灾和就近访问。公有云通常提供多可用区、负载均衡、自动恢复等机制,保证服务的高可用性(可达 99.9% 以上)。
-
按需付费与自助服务。用户通过控制台或 API 即可自助开通、调整、释放资源,计费粒度精确到小时甚至秒级。无需提前采购或签订长期合同,特别适合业务量波动大、初创企业或短期项目。
-
安全合规有保障。虽然公有云的数据不在企业内部防火墙后,但顶级云服务商投入巨资通过了多种安全认证(如 ISO 27001、等保三级、GDPR 等),并提供虚拟私有云、加密、防火墙、DDoS 防护等安全产品。对于大多数企业而言,公有云的安全水平远高于自建机房。
1.4 混合云🌤️
1.4.1 混合云的概念
混合云是同时结合了私有云和公有云的一种计算环境。通过专用网络或 VPN 将企业自建的私有云(或传统数据中心)与公有云连通,使数据和应用程序能够在两者之间自由迁移。企业可将核心敏感数据留在私有云,而将弹性计算、海量存储等任务交给公有云。
1.4.2 混合云的特点
-
安全与弹性兼顾。混合云继承了私有云的高安全性:关键业务、机密数据运行在内部的私有云或本地数据中心,受企业防火墙保护。同时,当业务峰值来临时,可自动“爆发”到公有云上,利用公有云的无限资源完成计算,峰值过后再释放,既保证了核心数据安全,又获得了弹性扩展能力。
-
成本优化。企业不必为应对偶发性高峰而采购大量冗余硬件(这些硬件在平时闲置造成浪费)。混合云模式下,只需维持平均负载所需的私有云规模,高峰时临时租用公有云资源,按使用量付费,大幅降低总拥有成本(TCO)。
-
合规与数据主权。许多行业(如金融、政务、医疗)要求数据必须存储在本地或特定地域。混合云允许将合规性要求高的数据留在私有云中,同时利用公有云运行分析、AI 训练等非敏感业务,满足监管要求。
-
灵活的资源调度。通过统一的云管理平台,可以实现私有云与公有云之间的网络互通、应用迁移和统一监控。例如,开发测试环境可部署在公有云上快速搭建,生产环境则放在私有云中保证稳定;或者将私有云作为日常运行环境,公有云作为灾备中心,实现“云上备份”。
-
避免供应商锁定。采用混合云架构时,企业可以同时使用多个公有云服务商,或保留部分自建能力,不将所有业务绑定在单一云平台上,从而获得更强的议价能力和技术自主权。
1.5 OpenStack概述

OpenStack是一个开源的云平台软件,为公有云和私有云的建设和基础设施管理提供解决办法。OpenStack采用模块化设计,主要包括计算服务(Nova)、存储服务(Swift)和镜像服务(Glance)三个模块。以上模块可以结合在一起使用,相互配合组建成为一个比较完善的基础设施服务云平台;也能根据需求分别使用这些模块各自提供相应的虚拟机、云存储和镜像服务。这些模块版本多插件充足开源社区贡献者群体庞大,对开发者的二次开发非常友好。OpenStack已经被 ICT行业广泛运用与云计算平台开发过程。
OpenStack 的十个核心模块
一、计算模块(Nova)
Nova 是 OpenStack 最核心的计算组件,负责管理大规模虚拟机实例的调度与运行。它支持多种虚拟化技术,如 KVM、VMware、Xen、Hyper-V 等,并通过消息队列与各个子服务(nova-api、nova-scheduler、nova-compute、nova-conductor 等)协同工作。用户通过 REST API 发送请求后,nova-scheduler 根据资源可用性、亲和性规则、主机聚合等策略选择合适的计算节点,nova-compute 再调用底层的虚拟化驱动执行操作。Nova 还支持弹性伸缩、迁移(冷迁移与热迁移)、疏散(evacuate)等功能,保证云平台的高可用性。在实际生产环境中,Nova 通常与 Neutron(网络)、Cinder(块存储)和 Glance(镜像)紧密集成,实现完整的虚拟机生命周期管理。
二、网络模块(Neutron)
Neutron 提供网络即服务(Network as a Service)能力,支持创建和管理虚拟网络、子网、路由器、防火墙、负载均衡器、VPN 等资源。它采用插件架构,支持多种后端技术,如 Linux Bridge、Open vSwitch(OVS)、SR-IOV 以及商业 SDN 方案。Neutron 为每个租户提供隔离的网络环境(通过 VLAN、VXLAN、GRE 等隧道技术),并支持浮动 IP、安全组(基于 iptables 的端口级防火墙)和 QoS 限速。与 Nova 配合时,Neutron 负责在虚拟机创建时分配端口和 IP 地址,并配置相应的网络策略。常见的网络模式包括 Provider Network(直接使用物理网络)和 Self-Service Network(租户自行创建子网和路由器)。在生产环境中,通常需要部署 Neutron 的 L3 Agent、DHCP Agent、Metadata Agent 等,并结合分布式路由(DVR)提高南北向流量的性能。
三、Swift 对象存储模块
Swift 是一个完全分布式的、最终一致性的对象存储系统,适合存储静态数据,如图片、备份、日志、虚拟机镜像等。它通过环(Ring)机制维护数据的物理位置映射,利用一致性哈希算法实现数据的自动分区和负载均衡。Swift 采用三副本或更多副本策略(可配置副本数),保证数据的高持久性(11个9以上)和容错能力。其无中心节点的架构避免了单点故障,扩展性极强,只需增加存储节点即可线性提升容量。Swift 的访问接口兼容 AWS S3 API(通过中间件支持),提供基于令牌的鉴权和临时 URL 功能。在 OpenStack 中,Glance 可以使用 Swift 作为镜像存储后端,用户也可以直接通过 swift 命令行或 SDK 上传/下载对象。需要注意的是,Swift 不适用于频繁更新的数据(如数据库文件),因为它最终一致性意味着修改后短时间内可能读取到旧版本。
四、Glance 镜像模块
Glance 负责管理虚拟机镜像的元数据(如名称、格式、大小、磁盘和容器格式、最小内存/磁盘需求等),并支持将镜像文件存储在后端存储中,包括本地文件系统、Swift、Ceph、AWS S3、HTTP 远程存储等。Glance 的核心组件包括 glance-api(接收镜像请求)、glance-registry(存储镜像元数据,通常与数据库交互)以及多种存储驱动。支持的镜像格式有 raw、qcow2、vmdk、vhd、iso 等,并且可以转换格式。Glance 还提供快照功能:可将运行中的虚拟机实例转换为镜像,用于快速复制或备份。镜像的访问权限分为公共、租户私有、共享和受保护几种类型,方便团队协作。在性能优化上,可以启用镜像缓存(cache)来加速重复下载,或配置镜像预取。对于大规模部署,建议将 Glance 的后端存储与 Nova 的计算节点使用相同的分布式存储(如 Ceph)实现克隆加速。
五、keystone 身份认证模块
Keystone 为 OpenStack 提供认证(Authentication)、授权(Authorization)和服务目录(Service Catalog)功能。它管理用户(User)、租户/项目(Project)、角色(Role)、组(Group)、信任(Trust)以及服务端点(Endpoint)。当用户通过用户名/密码或令牌(Token)认证后,Keystone 返回一个临时的 scoped token(支持 UUID、PKI、Fernet 等多种格式),后续对其他模块的 API 调用需携带该 token。Keystone 支持多后端认证驱动,如 SQL、LDAP、Active Directory,并可集成外部身份源(如 OAuth2、OpenID Connect)。服务目录记录了各个 OpenStack 服务(如 compute、image、network)的公共、内部和管理 URL,客户端通过服务发现自动获取地址。授权方面,基于角色的访问控制(RBAC)允许管理员精细控制用户对资源的操作权限。Keystone 还提供域(Domain)的概念,实现多租户、多项目的层次化管理,适合大型云服务商或企业组织。安全建议包括使用 Fernet 令牌(无状态、不存数据库)、启用 TLS 加密、定期轮换凭证。
六、Cinder 块存储模块
Cinder 提供持久化的块存储设备,类似 AWS EBS 或物理服务器的硬盘。用户通过 Cinder 创建卷(Volume),然后将卷挂载到 Nova 虚拟机上,作为额外磁盘使用。卷支持多种后端存储驱动,包括 LVM、Ceph RBD、NFS、EMC、NetApp、SolidFire 等。Cinder 的核心组件有 cinder-api(接收请求)、cinder-scheduler(选择存储节点)、cinder-volume(管理卷的生命周期)以及备份服务 cinder-backup(可将卷备份到 Swift 或 NFS)。Cinder 支持卷的快照(Snapshot)和从快照创建新卷,也支持卷的扩展(在线扩容,需文件系统配合)。当虚拟机被删除时,卷的数据仍然保留,可以重新挂载到其他虚拟机,实现数据持久化。Cinder 还提供卷迁移(migration)功能,可在存储节点间移动卷而不中断服务(需要后端支持)。在云环境中,Cinder 通常结合文件系统(如 xfs、ext4)和分区工具使用,用户需要自行格式化并挂载卷。对于高性能场景,可以配置多路径(multipath)提高 I/O 吞吐和容错。
七、Horizon UI 模块
Horizon 是一个基于 Django 框架开发的可扩展 Web 仪表板,管理员和租户可以通过图形化界面管理云资源。它提供项目总览、实例管理、卷管理、镜像管理、网络拓扑、安全组规则设置、密钥对管理等功能。Horizon 通过调用各个 OpenStack 服务的 REST API 实现后端交互,支持多语言和自定义主题。对于开发者,Horizon 允许添加自定义面板(panel)和仪表板(dashboard),并提供了大量的可复用的 Python 类库。在生产环境中,建议使用 Apache + mod_wsgi 部署 Horizon,并启用 HTTPS 防止凭证泄露。Horizon 的常见优化包括配置静态文件缓存(CDN)、启用会话超时、集成 SSO(通过 OpenID Connect 或 SAML)。虽然 Horizon 适合日常管理和监控,但对于自动化操作或大规模运维,通常建议结合 OpenStack 命令行工具(CLI)或 Terraform 等基础设施即代码工具。
八、Ceilometer 监测模块
Ceilometer 是 OpenStack 的遥测组件,负责收集、聚合和存储云平台中各种资源的计量数据,如 CPU 使用时长、内存占用、磁盘 I/O、网络流量等。它与 Gnocchi(时间序列数据库)和 Aodh(告警服务)共同构成 Telemetry 项目。Ceilometer 通过三个核心代理工作:计算代理(运行在每个计算节点,轮询 libvirt 或 hypervisor 获取虚拟机数据)、中央代理(收集非计算资源,如镜像、卷、网络)和通知代理(监听消息队列中的事件)。采集到的数据可以存储到数据库(如 MongoDB、MySQL)或通过发布者(publisher)推送到 Gnocchi、Kafka、Prometheus 等外部系统。Ceilometer 支持多种采样周期(默认每 10 秒一次),并提供 API 查询历史数据。在计费场景中,Ceilometer 的数据可对接计费系统,实现按量付费;在监控场景中,可以结合 Aodh 设置告警阈值(如 CPU 持续 90% 超过 5 分钟),触发通知或执行自动化动作(如增加虚拟机规格)。由于 Ceilometer 的性能瓶颈,大规模部署建议启用 Gnocchi 并调整采集粒度。
九、Heat 部署编排模块
Heat 是一个基于模板的编排引擎,允许用户以声明式的方式定义云资源及其依赖关系,实现基础设施即代码(IaC)。用户编写 YAML 或 JSON 格式的模板(称为 HOT,Heat Orchestration Template),描述虚拟机、网络、卷、安全组、浮动 IP、用户甚至软件配置等资源,Heat 会自动创建、更新或删除整个堆栈(stack)。Heat 的核心组件包括 heat-api(接收请求)、heat-engine(解析模板并协调资源)和 heat-cfntools(兼容 AWS CloudFormation)。通过资源间的依赖关系,Heat 确保创建顺序正确(例如先建网络再建虚拟机)。Heat 支持嵌套堆栈、资源组(批量创建相似资源)、以及钩子(hooks)实现滚动更新或手动确认。它还集成软件配置工具(如 cloud-init、Ansible、Puppet),可以在虚拟机启动后自动安装软件。在生产中,Heat 模板可用于部署复杂应用(如 WordPress、Hadoop 集群),并通过版本控制管理基础设施变更。注意:Heat 本身不解决配置漂移问题,需结合外部工具进行持续修正。
十、Trove 模块
Trove 是 OpenStack 中的数据库即服务(DBaaS)组件,使用户可以通过简单的 API 请求快速创建、配置、备份和恢复数据库实例,而无需手动安装数据库软件。Trove 支持多种数据库引擎,包括 MySQL、PostgreSQL、MongoDB、Redis、Cassandra、Couchbase 等。其架构分为 trove-api(接收请求)、trove-taskmanager(执行长时间任务,如备份恢复、集群构建)和 trove-conductor(收集实例状态)。Trove 通过集成 Nova 和 Cinder 来创建虚拟机作为数据库实例的运行环境,并将数据存储在 Cinder 卷上,实现持久化。Trove 提供自动化备份(可设置策略,备份到 Swift)、增量备份、时间点恢复、复制集群(主从)、参数组管理、扩容(垂直扩容 CPU/内存,或水平扩容分片)等功能。用户可以通过命令行或 GUI 管理数据库,并支持数据库的 root 访问权限(默认不开放)。Trove 还提供数据库监控指标(连接数、查询延迟等)集成到 Ceilometer。适用于开发测试环境、临时数据分析、SaaS 应用的后端数据库,但不建议在生产中使用 Trove 管理超大型关键业务数据库,因为其运维成熟度不如云厂商的托管数据库服务(如 RDS)。
OpenStack系统的各个组件之间的概念架构如图1.1所示。

1.6 Ceph简介
Ceph是一种开源的分布式存储系统,分布式存储的优点是高可靠性、高性能和可扩展性,同时Ceph提供了文件存储、块存储和对象存储三种存储服务。高可靠性意味着数据不会随意丢失;高性能意味着数据读写速度快;可扩展性意味着存储系统可以通过添加节点进行线性扩展,以提高性能和容量。图1.2显示了OpenStack和Ceph结合架构:
