搜索

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

download PDF

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

重要

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

注意

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

8.3.1. 在 Amazon Web Service 环境中使用 OpenShift Web 控制台为新命名空间存储桶启用基于日志的存储桶复制

您可以使用 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. 输入前缀来仅复制名称以给定前缀开头的对象。

8.3.2. 使用 YAML 为现有命名空间存储桶启用基于日志的存储桶复制

您可以使用命令行界面或应用 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>"}}}'
注意

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

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

8.3.3. 在 Microsoft Azure 中启用基于日志的存储桶复制

先决条件

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

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

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

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

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

    4. 确保在 Access control 和 members 下分配了 Reader 角色,并且提供了您在上一步中注册的应用的名称。

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

    5. 确保创建了新的存储帐户,并且记录 Access 密钥。
    6. 在创建的存储帐户的 Monitoring 部分中,选择一个 blob,在 Diagnostic settings 屏幕中,仅选择 StorageWriteStorageDelete,在目标详情中添加之前创建的 Log Analytics 工作区。确保在所创建存储帐户的 Monitoring 部分的 Diagnostic settings 屏幕中选择了 blob。另外,请确保只选择 StorageWriteStorageDelete,目标详情中会添加之前创建的 Log Analytics 工作区。

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

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

流程

  1. 使用命名空间 存储 要使用的凭证创建一个 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>
  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"}}'
    sync_deletion
    指定布尔值 truefalse
    destination_bucket
    确保使用对象存储桶的名称,而不是声明。可以使用 s3 ls 命令或通过在 OBC 的 YAML 中查找值来检索名称。

验证步骤

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

8.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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.