仅源存储库

编辑

您可以使用仅源存储库来创建最小的、仅包含源数据的快照,与常规快照相比,最多可减少 50% 的磁盘空间占用。

与其他存储库类型不同,仅源存储库不直接存储快照。它将存储委托给另一个已注册的快照存储库。

当您使用仅源存储库创建快照时,Elasticsearch 会在委托的存储库中创建仅包含源数据的快照。此快照仅包含存储的字段和元数据。它不包含索引或文档值结构,并且在恢复后不能立即进行搜索。要搜索恢复后的数据,您必须首先将其重新索引到新的数据流或索引中。

仅当启用 _source 字段且未应用源筛选时,才支持仅源快照。因此,采用合成源的索引无法恢复。当您恢复仅源快照时

  • 恢复后的索引是只读的,只能用于 match_all 搜索或滚动请求,以支持重新索引。
  • 不支持除 match_all_get 请求之外的查询。
  • 恢复后的索引的映射为空,但原始映射可从类型顶级的 meta 元素中获得。
  • 诸如文档计数、已删除文档计数和存储大小等信息对于此类索引不可用,因为这些索引不包含用于检索此信息的相关数据结构。因此,此类信息不会在诸如 cat indices API 之类的 API 中显示。

在注册仅源存储库之前,请使用 Kibana 或 创建快照存储库 API 来注册另一种类型的快照存储库以供存储。然后注册仅源存储库,并在请求中指定委托的存储库。

resp = client.snapshot.create_repository(
    name="my_src_only_repository",
    repository={
        "type": "source",
        "settings": {
            "delegate_type": "fs",
            "location": "my_backup_repository"
        }
    },
)
print(resp)
response = client.snapshot.create_repository(
  repository: 'my_src_only_repository',
  body: {
    type: 'source',
    settings: {
      delegate_type: 'fs',
      location: 'my_backup_repository'
    }
  }
)
puts response
const response = await client.snapshot.createRepository({
  name: "my_src_only_repository",
  repository: {
    type: "source",
    settings: {
      delegate_type: "fs",
      location: "my_backup_repository",
    },
  },
});
console.log(response);
PUT _snapshot/my_src_only_repository
{
  "type": "source",
  "settings": {
    "delegate_type": "fs",
    "location": "my_backup_repository"
  }
}

存储库设置

编辑
chunk_size
(可选,字节值)快照中文件的最大大小。在快照中,大于此值的文件将被分解为小于或等于此大小的块。默认为 null(无限制的文件大小)。
compress
(可选,布尔值)如果为 true,则快照中会压缩元数据文件(例如索引映射和设置)。数据文件不会被压缩。默认为 true
delegate_type

(可选,字符串)委托存储库类型。有关有效值,请参阅 type 参数

source 存储库可以为其委托的存储库类型使用 settings 属性。请参阅 仅源存储库

max_number_of_snapshots
(可选,整数)存储库可以包含的最大快照数。默认为 Integer.MAX_VALUE,即 2^31-12147483647
max_restore_bytes_per_sec
(可选,字节值)每个节点的最大快照恢复速率。默认为无限制。请注意,恢复也会通过 恢复设置进行限制。
max_snapshot_bytes_per_sec
(可选,字节值)每个节点的最大快照创建速率。默认为每秒 40mb。请注意,如果设置了托管服务的恢复设置,则默认为无限制,并且速率还会通过恢复设置进行限制。
readonly

(可选,布尔值)如果为 true,则存储库为只读。群集可以从存储库检索和恢复快照,但不能写入存储库或在其中创建快照。

只有具有写入权限的群集才能在存储库中创建快照。连接到存储库的所有其他群集应将 readonly 参数设置为 true

如果为 false,则群集可以写入存储库并在其中创建快照。默认为 false

如果使用多个群集注册相同的快照存储库,则应只有一个群集对存储库具有写入权限。多个群集同时写入存储库有损坏存储库内容的风险。