1. 卷影副本索引

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shadow-replicas.html

译文链接 : 卷影副本索引

贡献者 : 飞师傅

此功能是实验性功能,可能在未来的版本中完全更改或删除。

如果你想要使用共享文件系统,可以使用卷影副设置来选择索引数据在磁盘上保存的位置,以及 Elasticsearch 如何在一个索引的所有分片上重复操作。

为了充分利用 index.data_pathindex.shadow_replicas 设置,你需要允许 Elasticsearch 对多个实例使用同一个数据目录,方法是在 elasticsearch.yml 文件中设置 node.add_lock_id_to_custom_path 为 false。

node.add_lock_id_to_custom_path: false

你还需要向安全管理器指定自定义索引的位置,以便可以应用正确的权限。你可以通过 elasticsearch.yml 文件中的 path.shared_data 进行设置。

path.shared_data: /opt/data

这表示着 Elasticsearch 可以读写 path.shared_data 设置的目录中的任意文件。

然后,你可以使用自定义数据路径创建索引,也就是每个节点都使用这个路径获取数据。

因为卷影副本不会在副本分片上索引文档,所以如果没有在包含副本的节点上处理最新的集群状态,副本已知的映射可能会在索引已知的映射之后。因此,强烈建议使用卷影副本时使用预定义映射。

curl -XPUT 'localhost:9200/my_index' -d '
{
    "index" : {
        "number_of_shards" : 1,
        "number_of_replicas" : 4,
        "data_path": "/opt/data/my_index",
        "shadow_replicas": true
    }
}'

在上面的例子中,"/opt/data/my_index"路径是一个共享文件系统,它必须让 Elasticsearch 集群每个节点都可以访问。你还必须确保 Elasticsearch 进程拥有读写 index.data_path 目录的权限。

data_path 不必包含索引名,在上述例子中,使用了"my_index",但也可以就用"/opt/data/"。

使用 index.shadow_replicas 为"true"的设置创建的索引,不会将文档操作复制到任何副本分片上,它只会持续刷新。一旦分段在卷影副本所在的文件系统上可以用(在一次 Elasticsearch "Flush" 之后),可以使用常规刷新(由 index.refresh_interval 管理)让新数据可搜索。

注意 由于文档只在主分片上有索引,如果只在副本分片上执行上述命令,实时的GET请求可能无法返回文档,因此如果没有设置偏好标识,GET API请求会自动设置 ?preference=_primary 标识。

为了确保以足够快的方式同步数据,你可能需要将索引刷新的阀值调整为所需的值。因为一次 flush 操作需要 fsync 分段文件到磁盘上,所以它会对其他所有的副本节点可见。 因为增加 flush 次数会影响索引性能,所以用户应该测试适合他们的 flush 阀值水平。

Elasticsearch 集群仍然会检测主分片的丢失,并且在丢失的情况下将副本分片转换为主分片。因为每个卷影副本都没有维护IndexWriter,所以这种转换需要稍长的时间。

以下是可以使用设置更新API变更的设置列表:

1.index.data_path(string)

用于设置存放索引数据的路径。请注意,默认情况下Elasticsearch会将节点信息附加到路径,以确保在同一台机器上的多个Elasticsearch实例不共享数据目录。

2.index.shadow_replicas

表示此索引是否使用卷影副本。默认为 false

  1. index.shared_filesystem

    表示此索引是否使用共享文件系统。如果index.shadow_replicas设置为true,则默认为true,否则为false

4.index.shared_filesystem.recover_on_any_node

表示是否应允许索引的主分片在群集中的任何节点上恢复。如果找到保存分片副本的节点,则恢复首选该节点。默认为false。

Copyright © Kilvn 2021. all right reserved,powered by Gitbook最后更新时间: 2021-06-08 20:22:42

results matching ""

    No results matching ""