第 5 章 配置 Object Storage 服务 (swift)


Red Hat OpenStack Platform (RHOSP) Object Storage 服务(swift)将其对象或数据存储在容器中。容器与文件系统中的目录类似,但它们无法嵌套。容器为用户提供了一种简单的方式来存储任何种类的非结构化数据。例如,对象可以包含 photos、文本文件或镜像。存储的对象不会被压缩。

5.1. 对象存储环

Object Storage 服务(swift)使用名为 ring 的数据结构,在集群中分发分区空间。此分区空间是对象存储服务中数据持久性引擎的核心。通过 ring,对象存储服务可以快速轻松地在集群间同步每个分区。

Ring 包含有关对象存储分区的信息,以及如何在不同节点和磁盘之间分发分区。当任何对象存储组件与数据交互时,会在环本地执行快速查找,以确定每个对象的可能分区。

对象存储服务有三个环来存储以下类型的数据:

  • 帐户信息
  • 容器,便于在帐户下组织对象
  • 对象副本

5.1.1. 检查集群健康状况

Object Storage 服务(swift)在后台运行许多进程,以确保长期数据的可用性、持久性和持久性。例如:

  • 审核员会持续重新读取数据库和目标文件,并使用 checksum 进行比较,以确保没有静默的位。任何不再与校验和匹配的数据库或目标文件都会被量化,并在该节点上变得不可读。然后复制其中一个副本,使本地副本再次可用。
  • 当您替换磁盘或节点时,对象和文件可能会消失,或者对象被量化。当发生这种情况时,replicators 会将缺少的对象或数据库文件复制到其他节点之一。

对象存储服务包括一个名为 swift-recon 的工具,从所有节点收集数据并检查整个集群的健康状态。

流程

  1. 登录到其中一个 Controller 节点。
  2. 运行以下命令:

    [tripleo-admin@overcloud-controller-2 ~]$ sudo podman exec -it -u swift swift_object_server /usr/bin/swift-recon -arqlT --md5
    
    ======================================================================--> Starting reconnaissance on 3 hosts (object)
    ======================================================================[2018-12-14 14:55:47] Checking async pendings
    [async_pending] - No hosts returned valid data.
    ======================================================================[2018-12-14 14:55:47] Checking on replication
    [replication_failure] low: 0, high: 0, avg: 0.0, total: 0, Failed: 0.0%, no_result: 0, reported: 3
    [replication_success] low: 0, high: 0, avg: 0.0, total: 0, Failed: 0.0%, no_result: 0, reported: 3
    [replication_time] low: 0, high: 0, avg: 0.0, total: 0, Failed: 0.0%, no_result: 0, reported: 3
    [replication_attempted] low: 0, high: 0, avg: 0.0, total: 0, Failed: 0.0%, no_result: 0, reported: 3
    Oldest completion was 2018-12-14 14:55:39 (7 seconds ago) by 172.16.3.186:6000.
    Most recent completion was 2018-12-14 14:55:42 (4 seconds ago) by 172.16.3.174:6000.
    ======================================================================[2018-12-14 14:55:47] Checking load averages
    [5m_load_avg] low: 1, high: 2, avg: 2.1, total: 6, Failed: 0.0%, no_result: 0, reported: 3
    [15m_load_avg] low: 2, high: 2, avg: 2.6, total: 7, Failed: 0.0%, no_result: 0, reported: 3
    [1m_load_avg] low: 0, high: 0, avg: 0.8, total: 2, Failed: 0.0%, no_result: 0, reported: 3
    ======================================================================[2018-12-14 14:55:47] Checking ring md5sums
    3/3 hosts matched, 0 error[s] while checking hosts.
    ======================================================================[2018-12-14 14:55:47] Checking swift.conf md5sum
    3/3 hosts matched, 0 error[s] while checking hosts.
    ======================================================================[2018-12-14 14:55:47] Checking quarantine
    [quarantined_objects] low: 0, high: 0, avg: 0.0, total: 0, Failed: 0.0%, no_result: 0, reported: 3
    [quarantined_accounts] low: 0, high: 0, avg: 0.0, total: 0, Failed: 0.0%, no_result: 0, reported: 3
    [quarantined_containers] low: 0, high: 0, avg: 0.0, total: 0, Failed: 0.0%, no_result: 0, reported: 3
    ======================================================================[2018-12-14 14:55:47] Checking time-sync
    3/3 hosts matched, 0 error[s] while checking hosts.
    ======================================================================
    Copy to Clipboard Toggle word wrap
  3. 可选: 使用- -all 选项返回其他输出。

    这个命令查询环中的所有服务器以获取以下数据:

    • async 待处理:如果集群负载过高,进程无法足够快更新数据库文件,则一些更新异步进行。随着时间的推移,这些数字会缩短。
    • 复制指标:检查复制时间戳;通常发生完整的复制通过,以及几个错误。旧条目(例如,带有 6 个月前的时间戳的条目)表示节点上的复制还没有在最后的六个月内完成。
    • Ring md5sums: 这样可确保所有 ring 文件在所有节点上都一致。
    • swift.conf md5sums :这样可确保所有配置文件在所有节点上都一致。
    • Quarantined 文件:所有节点必须不能或非常少、数量非常高的文件。
    • time-sync :所有节点必须同步。

5.1.2. 增加环分区电源

Ring 电源决定了资源(如帐户、容器或对象)被映射的分区。分区包含在路径中,资源存储在后端文件系统中。因此,更改分区电源需要将资源重新定位到后端文件系统中的新路径中。

在大量填充的集群中,重新定位过程会非常耗时。为避免停机,在集群仍然运行时重新定位资源。您必须在不临时丢失对数据的访问或影响进程性能(如复制和审计)的情况下这样做。如需增加环分区功能的帮助,请联系红帽支持。

5.1.3. 对象存储服务分区电源建议

使用单独的 Red Hat OpenStack Platform (RHOSP) Object Storage 服务(swift)节点时,使用更高的分区电源值。

对象存储服务使用修改 的哈希环 将数据分布到磁盘和节点上。默认有三个环:一个用于帐户,一个用于容器,另一个用于对象。每个环使用一个称为 分区电源 的固定参数。此参数设置可创建的最大分区数。

分区 power 参数非常重要,只能为新容器及其对象更改。因此,务必要 在初始部署 之前设置这个值。

RHOSP director 部署的环境的默认分区节能值为 10。这是较小的部署的一个合理的值,特别是如果您只计划将 Controller 节点上的磁盘用于对象存储服务。

如果使用三个副本,下表可帮助您选择适当的分区功能:

Expand
表 5.1. 根据可用磁盘的数量的适当分区电源值

分区 Power

最大磁盘数

10

~ 35

11

~ 75

12

~ 150

13

~ 250

14

~ 500

重要

设置过高的分区电源值(例如,只有 14 代表 40 个磁盘)对复制时间造成负面影响。

要设置分区电源,请使用以下资源:

parameter_defaults:
  SwiftPartPower: 11
Copy to Clipboard Toggle word wrap
提示

您还可以为新容器配置额外的对象服务器 ring。如果要在最初使用低分区电源的对象存储服务部署中添加更多磁盘,这非常有用。

5.1.4. 自定义环

随着技术的发展和存储容量需求增加,创建自定义环是更新现有 Object Storage 集群的方法。

当您向集群添加新节点时,它们的特征可能与原始节点的不同。如果没有自定义调整,可能会使用新节点的较大的容量。或者,如果权重在环中改变,则数据分布可能会变得不均匀,这会降低安全性。

自动化可能不会与未来的技术趋势保持同步。例如,当前正在使用的一些较旧的 Object Storage 集群源自于 SSD 可用。

环构建器有助于随着集群的发展和技术来管理对象存储。如需创建自定义环的帮助,请联系红帽支持。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat