10.3. 启用基于日志的存储桶复制


在创建存储桶复制策略时,您可以使用日志以便更快地复制最新的数据,而基于扫描的默认复制则可用于复制其余数据。

重要

此功能需要在 AWS 或 Azure 上设置存储桶日志。有关设置 AWS 日志的更多信息,请参阅启用 Amazon S3 服务器访问日志。AWS 日志存储桶需要在与源 NamespaceStore AWS 存储桶相同的区域中创建。

注意

此功能只在由 NamespaceStore 支持的存储桶中被支持。BackingStores 支持的存储桶无法使用基于日志的复制。

您可以使用 Amazon Web Service (AWS)云环境的事件日志来优化复制。在创建命名空间存储桶的过程中,您可以使用 Web 控制台为新的命名空间存储桶启用基于日志的存储桶复制。

先决条件

流程

  1. 在 OpenShift Web 控制台中,导航到 Storage Object Storage Object Bucket Claims
  2. 单击 Create ObjectBucketClaim
  3. 输入 ObjectBucketName 的名称并选择 StorageClass 和 BucketClass。
  4. 选中 Enable replication 复选框以启用复制。
  5. Replication policy 部分中,选中 Optimize replication using event logs 复选框。
  6. 输入包含 Event log Bucket 下的日志的存储桶名称。

    如果日志没有存储在存储桶的根目录中,提供没有 s3://的完整路径。

  7. 输入前缀来仅复制其名称以给定前缀开头的对象。

您可以为使用命令行界面创建的现有存储桶启用基于日志的存储桶复制,或者应用 YAML,而不是通过 AWS S3 命令创建的存储桶。

流程

  • 编辑存储桶 OBC 的 YAML,以启用基于日志的存储桶复制。在 spec 下添加以下内容:

    replicationPolicy: '{"rules":[{"rule_id":"<RULE ID>", "destination_bucket":"<DEST>", "filter": {"prefix": "<PREFIX>"}}], "log_replication_info": {"logs_location": {"logs_bucket": "<LOGS_BUCKET>"}}}'
    Copy to Clipboard Toggle word wrap
注意

您还可以在创建 OBC 前将其添加到 OBC 的 YAML 中。

rule_id
指定您选择的 ID 来标识规则
destination_bucket
指定对象复制到的目标 MCG 存储桶的名称
(optional) {"filter": {"prefix": <>}}
指定可设置前缀字符串来过滤复制的对象
log_replication_info
指定包含与基于日志的复制优化相关的数据的对象。{"logs_location": {"logs_bucket": <>}} 设置为 AWS S3 服务器访问日志的位置。

先决条件

  • 请参阅 Microsoft Azure 文档,并确保您在 Microsoft Azure 门户中完成了以下任务:

    1. 确保已创建了一个新应用程序,并记下名称、应用程序(客户端)ID 和目录(租户)ID。

      如需更多信息,请参阅 注册应用程序

    2. 确保创建了新的客户端 secret,并且应用程序 secret 已记录下。
    3. 确保创建了一个新的 Log Analytics 工作区,其名称和工作区 ID 已记录下来。

      如需更多信息,请参阅 创建日志分析工作区

    4. 确保在 Access control 下分配 Reader 角色,并且已选择了在上一步中注册的应用程序的名称。

      如需更多信息,请参阅使用 Azure 门户分配 Azure 角色

    5. 确保创建了一个新存储帐户,并记下 Access key。
    6. 在创建的存储帐户的 Monitoring 部分中,选择 blob 和 in diagnose settings 屏幕,仅选择 StorageWrite and StorageDelete,并在目标详情中添加您之前创建的 Log Analytics 工作区。确保在所创建的存储帐户 Monitoring 部分中选择了 blob。另外,确保只选择 StorageWriteStorageDelete,目标详情中会添加您之前创建的 Log Analytics 工作区。

      如需更多信息,请参阅 Azure Monitor 中的 diagnostics 设置

    7. 确保为对象源和目标目的地创建两个新容器。
  • 管理员对 OpenShift Web 控制台的访问权限。

流程

  1. 使用 namespacestores 使用的凭证创建 secret。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <namespacestore-secret-name>
    type: Opaque
    data:
        TenantID: <AZURE TENANT ID ENCODED IN BASE64>
        ApplicationID: <AZURE APPLICATIOM ID ENCODED IN BASE64>
        ApplicationSecret: <AZURE APPLICATION SECRET ENCODED IN BASE64>
        LogsAnalyticsWorkspaceID: <AZURE LOG ANALYTICS WORKSPACE ID ENCODED IN BASE64>
        AccountName: <AZURE ACCOUNT NAME ENCODED IN BASE64>
        AccountKey: <AZURE ACCOUNT KEY ENCODED IN BASE64>
    Copy to Clipboard Toggle word wrap
  2. 创建由 Azure 中创建的容器支持的 NamespaceStore

    如需更多信息 ,请参阅使用 OpenShift Container Platform 用户界面添加命名空间存储桶

  3. 创建一个新的 Namespace-Bucketclass 和 OBC,它使用它。
  4. 查看目标 OBC 的 YAML 或列出所有 S3 存储桶,如 - s3 ls,以检查对象存储桶名称。
  5. 通过在 YAML .spec 下添加以下内容,使用以下模板在源 OBC 上应用 Azure 复制策略:

    replicationPolicy:'{"rules":[ {"rule_id":"ID goes here", "sync_deletions": "<true or false>"", "destination_bucket":object bucket name"}
     ], "log_replication_info":{"endpoint_type":"AZURE"}}'
    Copy to Clipboard Toggle word wrap
    sync_deletion
    指定布尔值 truefalse
    destination_bucket
    确保使用对象存储桶的名称,而不是声明。可以使用 s3 ls 命令检索名称,或者通过在 OBC 的 YAML 中查找值来检索。

验证步骤

  1. 将对象写入源存储桶。
  2. 等待 MCG 复制它们。
  3. 从源存储桶中删除对象。
  4. 验证对象是否已从目标存储桶中删除。

10.3.4. 启用基于日志的存储桶复制删除

先决条件

  • 管理员对 OpenShift Web 控制台的访问权限。
  • 为所需存储桶配置的 AWS Server Access Logging。

流程

  1. 在 OpenShift Web 控制台中,导航到 Storage Object Storage Object Bucket Claims
  2. Create new Object bucket claim
  3. (可选)在 Replication rules 部分中,为每个规则单独选择 Sync deletion 复选框。
  4. 输入包含 Event log Bucket 下的日志的存储桶名称。

    如果日志没有存储在存储桶的根目录中,提供没有 s3://的完整路径。

  5. 输入前缀来仅复制其名称以给定前缀开头的对象。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat