第 5 章 配置 Object Storage 服务 (swift)
Red Hat OpenStack Platform Object Storage (swift)将其对象存储在容器中。容器与文件系统中的目录类似,尽管它们无法嵌套。容器为用户提供了一种简单的方式来存储任何类型的数据。例如,对象可以包含取消部署、文本文件或镜像。存储的对象没有压缩。
5.1. 对象存储环 复制链接链接已复制到粘贴板!
Object Storage 服务(swift)使用名为环的数据结构来在集群中分发分区空间。此分区空间是对象存储服务中数据持久性引擎的核心。使用环时,对象存储服务可以快速轻松地在集群中同步每个分区。
环环包含有关对象存储分区的信息,以及分区如何在不同的节点和磁盘间分布。当任何对象存储组件与数据交互时,会在环中本地执行快速查找,以确定每个对象的可能分区。
Object Storage 服务有三个环来存储以下数据类型:
- 帐户信息
- 容器,便于在帐户下组织对象
- 对象副本
5.1.1. 检查集群健康状况 复制链接链接已复制到粘贴板!
对象存储服务在后台运行许多进程,以确保长期数据可用性、持久性和持久性。例如:
- 审核员持续重新读取数据库和对象文件,并使用校验和进行比较,以确保没有恶意位。任何不再与其校验和匹配的数据库或对象文件都会被量化,且在该节点上变得不可读取。然后,副本器复制其中一个其他副本,以便本地副本再次可用。
- 当您替换磁盘或节点或节点时,对象和文件可能会消失。发生这种情况时,副本器会将缺少的对象或数据库文件复制到另一个节点。
Object Storage 服务包括一个名为 swift-recon 的工具,用于从所有节点收集数据并检查整个集群运行状况。
流程
- 登录到其中一个 Controller 节点。
运行以下命令:
[root@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. ======================================================================可选:使用
--all选项返回附加输出。此命令查询环中的所有服务器以获取以下数据:
- async pendings :如果集群负载太大,且进程无法快速更新数据库文件,则一些更新会异步进行。这些数字随着时间的推移会减少。
- 复制指标:检查复制时间戳;完整复制传递经常发生,并显示几个错误。例如,一个旧条目(例如,自 6 个月前的时间戳的条目)表示节点上的复制还没有在最后的 6 个月内完成。
- 环形 md5sums :这样可确保所有环文件在所有节点上都一致。
-
Swift.confmd5sums :这样可确保所有配置文件在所有节点上都一致。 - Quarantined 文件:所有节点必须无或非常少。
- Time-sync :所有节点都必须同步。
5.1.2. 增加环分区电源 复制链接链接已复制到粘贴板!
环电决定资源(如帐户、容器或对象)被映射到的分区。该分区包含在资源存储在后端文件系统中的路径中。因此,更改分区电源需要在后端文件系统中将资源重新定位到新路径。
在大量填充的集群中,重新定位过程会耗时。为避免停机,在集群仍然运行时重新定位资源。您必须在不暂时丢失对数据的访问或影响进程性能(如复制和审核)的情况下执行此操作。如需增加环级分区功能的帮助,请联系红帽支持。
5.1.3. 自定义环 复制链接链接已复制到粘贴板!
随着存储容量的增长和需求,创建自定义环是更新现有对象存储集群的方法。
当您向集群添加新节点时,它们的特征可能与原始节点的不同。如果没有自定义调整,可能会消耗新节点的更大的容量。或者,如果环的权重发生变化,数据分布可能会变得不均匀,从而降低安全性。
自动化可能不会与未来技术趋势保持同步。例如,一些旧的 Object Storage 集群现在源自在 SSD 可用之前使用。
环形构建器有助于在集群增长和技术时管理对象存储。有关创建自定义环的帮助,请联系红帽支持。