Link Search Menu Expand Document Documentation Menu

注册或更新快照存储库

1.0 版引入

您可以使用快照 API 注册新的存储库以存储快照,或更新现有存储库的信息。

快照存储库有两种类型

有关创建存储库的说明,请参阅注册存储库

端点

POST /_snapshot/<repository>/ 
PUT /_snapshot/<repository>/

路径参数

参数 数据类型 描述
存储库 字符串 存储库名称

请求参数

请求参数取决于存储库的类型:fss3

通用参数

下表列出了 fss3 存储库均可使用的参数。

请求字段 描述
prefix_mode_verification 启用时,会将随机种子的哈希值添加到前缀以进行存储库验证。对于启用远程存储的集群,您可以将 setting.prefix_mode_verification 设置添加到所提供存储库的节点属性中。此字段适用于新旧存储库。可选。
shard_path_type 控制分片级 blob 的路径结构。支持的值为 FIXEDHASHED_PREFIXHASHED_INFIX。有关每个值的更多信息,请参阅shard_path_type 值/。默认为 FIXED。可选。

shard_path_type 值

shard_path_type 设置中支持以下值

  • FIXED:保持现有分层路径结构,例如 <ROOT>/<BASE_PATH>/indices/<index-id>/0/<SHARD_BLOBS>
  • HASHED_PREFIX:为每个唯一分片 ID 在路径开头添加哈希前缀,例如 <ROOT>/<HASH-OF-INDEX-ID-AND-SHARD-ID>/<BASE_PATH>/indices/<index-id>/0/<SHARD_BLOBS>
  • HASHED_INFIX:为每个唯一分片 ID 在基路径后附加哈希前缀,例如 <ROOT>/<BASE-PATH>/<HASH-OF-INDEX-ID-AND-SHARD-ID>/indices/<index-id>/0/<SHARD_BLOBS>。使用的哈希方法是 FNV_1A_COMPOSITE_1,它使用 FNV1a 哈希函数并生成自定义编码的 64 位哈希值,该值可很好地与大多数远程存储选项配合使用。FNV1a 取最高 6 位创建 URL 安全的 Base64 字符,取接下来的 14 位创建二进制字符串。

fs 存储库

请求字段 描述
location 用于快照的文件系统目录,例如文件服务器或 Samba 共享的挂载目录。必须可由所有节点访问。必填。
chunk_size 在快照操作期间将大文件拆分为块(例如 64mb1gb),这对于云存储提供商很重要,而对于共享文件系统则不那么重要。默认为 null(无限制)。可选。
compress 是否压缩元数据文件。此设置不影响数据文件,数据文件可能已根据您的索引设置进行了压缩。默认为 false。可选。
max_restore_bytes_per_sec 快照恢复的最大速率。默认为每秒 40 MB(40m)。可选。
max_snapshot_bytes_per_sec 快照生成的最大速率。默认为每秒 40 MB(40m)。可选。
remote_store_index_shallow_copy 确定是否将远程存储索引的快照捕获为浅拷贝。默认为 false
shallow_snapshot_v2 确定是否将远程存储索引的快照捕获为浅拷贝 v2。默认为 false
readonly 存储库是否为只读。在从一个集群(注册时"readonly": false)迁移到另一个集群(注册时"readonly": true)时很有用。可选。

s3 存储库

请求字段 描述
base_path 您希望存储快照的存储桶内路径(例如 my/snapshot/directory)。可选。如果未指定,快照将存储在 S3 存储桶根目录中。
bucket S3 存储桶的名称。必填。
buffer_size 超出此阈值后,块(chunk_size 大小)应被拆分为片段(buffer_size 大小)并使用不同的 API 发送到 S3。默认为两个值中较小的一个:100 MB 或 Java 堆的 5%。有效值介于 5mb5gb 之间。我们不建议更改此选项。
canned_acl S3 有多个预设 ACLrepository-s3 插件可以在 S3 中创建对象时将其添加到对象中。默认为 private。可选。
chunk_size 在快照操作期间将文件拆分为块(例如 64mb1gb),这对于云存储提供商很重要,而对于共享文件系统则不那么重要。默认为 1gb。可选。
client 指定客户端设置时(例如 s3.client.default.access_key),您可以使用 default 以外的字符串(例如 s3.client.backup-role.access_key)。如果您使用了备用名称,请更改此值以匹配。默认和推荐值为 default。可选。
compress 是否压缩元数据文件。此设置不影响数据文件,数据文件可能已根据您的索引设置进行了压缩。默认为 false。可选。
disable_chunked_encoding 禁用分块编码以与某些存储服务兼容。默认为 false。可选。
max_restore_bytes_per_sec 快照恢复的最大速率。默认为每秒 40 MB(40m)。可选。
max_snapshot_bytes_per_sec 快照生成的最大速率。默认为每秒 40 MB(40m)。可选。
readonly 存储库是否为只读。在从一个集群(注册时"readonly": false)迁移到另一个集群(注册时"readonly": true)时很有用。可选。
remote_store_index_shallow_copy 确定是否将远程存储索引的快照捕获为浅拷贝。默认为 false
shallow_snapshot_v2 确定是否将远程存储索引的快照捕获为浅拷贝 v2。默认为 false
storage_class 指定快照文件的 S3 存储类别。默认为 standard。请勿使用 glacierdeep_archive 存储类别。可选。
server_side_encryption_type 指定 S3 服务器端加密类型。支持的值包括 AES256SSE-S3)、aws:kmsSSE-KMS)和 bucket_default存储桶默认加密)。默认为 bucket_default
server_side_encryption_kms_key_id 指定当通过设置 aws:kms 加密类型选择 S3 SSE-KMS 时要使用的 AWS 密钥管理服务 (AWS KMS) 密钥。如果 server_side_encryption_type 设置为 aws:kms,则此为必填项。
server_side_encryption_bucket_key_enabled 指定在使用 S3 SSE-KMS 时是否应使用 S3 Bucket Keys。可选。
server_side_encryption_encryption_context 指定在使用 S3 SSE-KMS 时应使用的任何其他加密上下文。此设置值必须格式化为 JSON 对象。可选。
expected_bucket_owner 指定预期的 S3 存储桶所有者的 AWS 账户 ID。此设置可用于验证存储桶所有权。可选。

对于 base_path 参数,在输入 S3 存储桶详细信息时,请勿输入 s3:// 前缀。只需存储桶的名称。

从 OpenSearch 3.1.0 开始,server_side_encryption 设置已移除。S3 将服务器端加密作为所有 S3 存储桶的基本加密级别。由于此功能无法禁用,此值存储库设置无效。有关更多信息,请参阅使用服务器端加密保护数据

示例请求

文件系统

以下示例注册了一个 fs 仓库,使用本地目录 /mnt/snapshots 作为 location

PUT /_snapshot/my-fs-repository
{
  "type": "fs",
  "settings": {
    "location": "/mnt/snapshots"
  }
}

S3

以下请求注册了一个新的 S3 仓库,名为 my-opensearch-repo,位于名为 my-open-search-bucket 的现有存储桶中。默认情况下,所有快照都存储在 my/snapshot/directory

PUT /_snapshot/my-opensearch-repo
{
  "type": "s3",
  "settings": {
    "bucket": "my-open-search-bucket",
    "base_path": "my/snapshot/directory"
  }
}

以下请求注册了一个新的 S3 仓库,名为 my-opensearch-repo,位于名为 my-open-search-bucket 的现有存储桶中。默认情况下,所有快照都存储在 my/snapshot/directory 中。此外,此仓库配置为使用 SSE-KMS,并且预期的存储桶所有者 AWS 账户 ID 为 123456789000

PUT /_snapshot/my-opensearch-repo
{
  "type": "s3",
  "settings": {
    "bucket": "my-open-search-bucket",
    "base_path": "my/snapshot/directory",
    "server_side_encryption_type": "aws:kms",
    "server_side_encryption_kms_key_id": "arn:aws:kms:us-east-1:123456789000:key/kms-key-id",
    "server_side_encryption_encryption_context": "{\"additional-enc-ctx\": \"sample-context\"}",
    "expected_bucket_owner": "123456789000",
  }
}
'

示例响应

成功后,将返回以下 JSON 对象

{
  "acknowledged": true
}

要验证仓库是否已注册,请使用 获取快照仓库 API,将仓库名称作为 repository 路径参数传递。

剩余 350 字符

有问题?

想贡献?