1.2. Storage


第 1.2.1 节 “OpenStack Block Storage (cinder)”

第 1.2.2 节 “OpenStack Object Storage (swift)”

第 1.2.3 节 “OpenStack 数据库即服务(trove)”

1.2.1. OpenStack Block Storage (cinder)

OpenStack Block Storage 为虚拟硬盘提供持久的块存储管理。块存储允许用户创建和删除块设备,并管理向服务器附加块设备。

设备的实际附加和分离是通过与计算服务的集成来处理的。您可以使用地区和区域来处理分布式块存储主机。

您可以在性能敏感的场景中使用块存储,如数据库存储或可扩展文件系统。您还可以将其用作可访问原始块存储的服务器。另外,您可以获取卷快照来恢复数据或创建新块存储卷。快照依赖于驱动程序支持。

OpenStack Block Storage 的优点包括:

  • 创建、列出和删除卷和快照。
  • 将卷附加和分离到正在运行的虚拟机.

虽然主要的块存储服务(如卷、调度程序、API)可以共存到生产环境中,但它比部署卷服务的多个实例以及多个 API 和调度程序服务实例来管理它们更为常见。

表 1.3. 块存储组件
组件描述

openstack-cinder-api

响应请求并将其放置在消息队列中。收到请求时,API 服务会验证是否满足身份要求,并将请求转换为包含所需块存储操作的消息。然后,消息会被发送到消息代理,供其他块存储服务处理。

openstack-cinder-backup

将块存储卷备份到外部存储库。默认情况下,OpenStack 使用对象存储服务存储备份。您还可以使用 Ceph 或 NFS 后端作为备份的存储存储库。

openstack-cinder-scheduler

将任务分配到队列,并确定调配卷服务器。调度程序服务从消息队列读取请求,并确定哪个块存储主机执行请求的操作。然后,调度程序与所选主机上的 openstack-cinder-volume 服务通信,以处理请求。

openstack-cinder-volume

指定虚拟机的存储。卷服务管理与块存储设备的交互。当请求到达调度程序时,卷服务可以创建、修改或删除卷。卷服务包括几个与块存储设备(如 NFS、Red Hat Storage 或 Dell EqualLogic)交互的驱动程序。

cinder

用于访问块存储 API 的命令行客户端。

下图显示了块存储 API、调度程序、卷服务和其他 OpenStack 组件之间的关系。

Block storage architecture diagram

1.2.2. OpenStack Object Storage (swift)

对象存储为大量数据提供 HTTP 可访问的存储系统,包括视频、镜像、电子邮件消息、文件或虚拟机镜像等静态实体。对象作为二进制文件存储在底层文件系统中,以及存储在各个文件的扩展属性中的元数据。

对象存储分布式架构通过基于软件的数据复制,支持水平扩展以及故障转移冗余。由于该服务支持异步和最终一致性复制,因此您可以在多个数据中心部署中使用它。

OpenStack Object Storage 的优点包括:

  • 存储副本在停机时维护对象的状态。建议至少有三个副本。
  • 存储区域托管副本。zones 确保给定对象的每个副本都可以单独存储。区域可能代表单独的磁盘驱动器、阵列、服务器、服务器机架,甚至整个数据中心。
  • 存储区域可以根据位置对区域进行分组。地区可以包括通常位于同一地理位置的服务器或服务器场。区域为每个对象存储服务安装有一个单独的 API 端点,允许离散地分离服务。

对象存储使用 ring .gz 文件,该文件充当数据库和配置文件。这些文件包含所有存储设备的详细信息,以及存储实体到各个文件的物理位置的映射。因此,您可以使用 ring 文件来确定特定数据的位置。每个对象、帐户和容器服务器都有唯一的 ring 文件。

对象存储服务依赖于其他 OpenStack 服务和组件来执行操作。例如,需要 Identity Service (keystone)、rsync 守护进程和负载均衡器。

表 1.4. 对象存储组件
组件描述

openstack-swift-account

使用帐户数据库处理容器列表。

openstack-swift-container

使用容器数据库处理特定容器中包含的对象列表。

openstack-swift-object

存储、检索和删除对象。

openstack-swift-proxy

公开公共 API,提供身份验证和路由请求。对象通过代理服务器流传输给用户,无需假脱机。

swift

用于访问对象存储 API 的命令行客户端。

表 1.5. 对象存储内务务组件
housekeeping组件描述

Auditing

  • openstack-swift-account-auditor
  • openstack-swift-container-auditor
  • openstack-swift-object-auditor

验证对象存储帐户、容器和对象的完整性,有助于防止数据崩溃。

复制

  • openstack-swift-account-replicator
  • openstack-swift-container-replicator
  • openstack-swift-object-replicator

确保 Object Storage 集群中一致且可用的复制,包括垃圾回收。

更新

  • openstack-swift-account-updater
  • openstack-swift-container-updater
  • openstack-swift-object-updater

标识并重试失败的更新。

下图显示了对象存储用于与其他 OpenStack 服务、数据库和代理交互的主要接口。

Object Storage architecture diagram illustrating the relationship between Object Storage and other OpenStack components.

1.2.3. OpenStack 数据库即服务(trove)

警告

DEPRECATION NOTICE :从 Red Hat OpenStack Platform 10 开始,OpenStack Trove 服务将不再包含在 Red Hat OpenStack Platform 发行版本中。我们与信任的合作伙伴合作为我们的客户提供生产就绪的 DBaaS 服务。请联系您的销售客户经理,了解有关此选项的更多信息。

注意

这个功能在此发行版本中 作为技术预览提供,因此不受红帽完全支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

OpenStack 数据库即服务允许用户选择、配置和操作各种相关和非关系数据库,并开箱即用处理更复杂的数据库管理任务。

OpenStack Database-as-a-Service 优点包括:

  • 用户和数据库管理员可以在云中调配和管理多个数据库实例。
  • 高性能资源隔离,同时自动执行复杂的管理任务,如部署、配置、修补、备份、恢复和监控。
表 1.6. Trove 组件
组件描述

openstack-trove-api

支持 JSON 和 XML 来调配和管理数据库即服务实例的 RESTful API。

openstack-trove-conductor

在主机上运行,以接收来自带有更新主机上信息的客户机实例的信息。请求可以包含实例的状态或备份的当前状态。

使用 openstack-trove-conductor 时,虚拟机实例不需要直接连接到主机数据库。服务通过消息总线侦听 RPC 消息,并执行所请求的操作。

openstack-trove-guestagent

在客户机实例上运行,以直接管理和对主机数据库执行操作。openstack-trove-guestagent 通过消息总线侦听 RPC 消息,并执行所请求的操作。

openstack-trove-taskmanager

负责调配实例、管理实例生命周期和数据库实例操作等任务。

Trove

用于访问 Database-as-a-Service API 的命令行客户端。

下图显示了 Database-as-a-Service 和其他 OpenStack 服务之间的关系。

OpenStack Trove Arch 389740 0216 JCS

重要
  • 虽然 OpenStack Database-as-a-Service 默认 OpenStack 频道可用,但您必须手动安装和配置组件。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.