添加新的path.data时出现ElasticSearch问题

时间:2015-10-26 11:46:39

标签: elasticsearch diskspace lvm

我正在运行两个节点集群Elasticsearch,1个主节点+ 1个节点。一切都在顺利进行,所有指数都是绿色,正常运行(虽然现在没有复制品)。

我目前的弹性搜索配置是:

number = int(input("Enter a number: "))   
data = set()
while len(data) != number:
    inp = raw_input("Enter a word: ")
    data.add(inp)

但是我想添加一个额外的路径(LVM卷)来扩展Elasticsearch的磁盘大小。我确实关闭了ES数据节点,然后我更改了elasticsearch.yml conf文件,如下所示:

path.data = /path/to/data

我重新启动了数据节点。群集立即变为红色,所有分片都未分配。我还检查了全局禁用分配设置及其:

path.data = ["/path/to/data", "/path/to/newdata"]

我再次关闭节点,删除第二条路径,重新启动群集,一切都再次变为绿色。请注意,ElasticSearch正确检测到新的数据路径,实际上磁盘空间是增加的。

如何向ES数据节点添加第二条路径以增加磁盘空间并让ElasticSearch正确识别它?

非常感谢您的帮助!

****添加****

Elasticsearch build 1.7.3

_nodes / stats(BEFORE)

routing.allocation.disable_allocation: false

_nodes / stats(AFTER)

     "fs": {
        "timestamp": 1445875849977,
        "total": {
           "total_in_bytes": 50647003136,
           "free_in_bytes": 39121285120,
           "available_in_bytes": 36850778112,
           "disk_reads": 6555,
           "disk_writes": 3959,
           "disk_io_op": 10514,
           "disk_read_size_in_bytes": 117785600,
           "disk_write_size_in_bytes": 34197504,
           "disk_io_size_in_bytes": 151983104,
           "disk_queue": "0",
           "disk_service_time": "0"
        },
        "data": [
           {
              "path": "/data/cluster-name/nodes/0",
              "mount": "/",
              "dev": "/dev/sda1",
              "type": "ext4",
              "total_in_bytes": 50647003136,
              "free_in_bytes": 39121285120,
              "available_in_bytes": 36850778112,
              "disk_reads": 6555,
              "disk_writes": 3959,
              "disk_io_op": 10514,
              "disk_read_size_in_bytes": 117785600,
              "disk_write_size_in_bytes": 34197504,
              "disk_io_size_in_bytes": 151983104,
              "disk_queue": "0",
              "disk_service_time": "0"
           }
        ]
     },

1 个答案:

答案 0 :(得分:0)

这是因为当你向Elasticsearch添加一个数据路径时,你并没有告诉它使用所有它就像它希望你告诉它将数据条带化到所有这些路径。因此,不要将其视为可以使用的新池,而是将其视为Raid-0。

如果您的群集复制为1或更多,并且关闭了一个节点以添加新路径,则群集将丢弃该节点的所有数据,并重新创建条带化到两个路径的所有数据。