elasticsearch:在多个磁盘卷上分配索引

时间:2017-06-17 20:05:04

标签: elasticsearch

我有一个非常大的索引(大约100Gb),所以我不得不通过添加另一个卷来扩展我的数字海洋调查中的磁盘空间(我只在一个节点上运行所有内容)。我告诉elasticsearch它现在必须考虑两个磁盘位置

RefreshList = ReactiveCommand.CreateFromTask(async _ =>
            {
                return await Task.Run(() => _clientsService.GetClientsList());
            }
        );
弹性搜索似乎注意到了这一点,因为它将一些内容写入了新位置

/usr/share/elasticsearch/bin/elasticsearch -Epath.data=/var/lib/elasticsearch,/mnt/volume-sfo2-01/es_data

这与我在/ var / lib / elasticsearch / data中找到的内容相同,除了最低级别的实际索引信息。

阅读elasticsearch纪录片我得到的印象是elasticsearch正在两个磁盘位置上安排新索引,但不会在两个位置之间拆分碎片。因此,我使用5个分片初始化索引,以便它可以在卷之间分割数据。

自从日志文件显示

以来,调查似乎确实检测到了两条数据路径
/mnt/volume-sfo2-01/es_data# cd nodes/
/mnt/volume-sfo2-01/es_data/nodes# ls
0
/mnt/volume-sfo2-01/es_data/nodes# cd 0/
/mnt/volume-sfo2-01/es_data/nodes/0# ls
indices  node.lock  _state
/mnt/volume-sfo2-01/es_data/nodes/0# cd indices
/mnt/volume-sfo2-01/es_data/nodes/0/indices# ls
DixLGLrJRXm1gSYcFzkzzw  nmZbce8wTayJC2s_eMC0-g  Qd-9ZnFIRoSM2z7AohKm-w  Sm_tyYTJTty0ImvDamFaQw
/mnt/volume-sfo2-01/es_data/nodes/0/indices# cd DixLGLrJRXm1gSYcFzkzzw/
/mnt/volume-sfo2-01/es_data/nodes/0/indices/DixLGLrJRXm1gSYcFzkzzw# ls
_state

然而,当我索引新索引时,不断使用原始磁盘上的所有磁盘空间并最终耗尽磁盘空间并出现错误

[2017-06-17T19:16:57,079][INFO ][o.e.e.NodeEnvironment    ] [WU6cQ-o] using [2] data paths, mounts [[/ (/dev/vda1), /mnt/volume-sfo2-01 (/dev/sda)]], net usable_space [29.6gb], net total_space [98.1gb], spins? [possibly], types [ext4]

它永远不会将其中一个分片移动到第二个卷?我想念什么吗?我可以手动指导磁盘空间使用吗?

以下是elasticsearch版本的详细信息:

raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info)
elasticsearch.exceptions.TransportError: TransportError(500, u'index_failed_engine_exception', u'Index failed for [pubmed_paper#25949809]')

这里是默认路径文件结构,其中ekasticsearch存储所有信息(而不是与第二条路径共享)

# curl -XGET 'localhost:9200'
{
  "name" : "WU6cQ-o",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "hKc147QfQqCefLliStLNtw",
  "version" : {
    "number" : "5.1.1",
    "build_hash" : "5395e21",
    "build_date" : "2016-12-06T12:36:15.409Z",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
  },
  "tagline" : "You Know, for Search"
}

一个问题可能是我是否可以将其中一个碎片移到另一个位置?

1 个答案:

答案 0 :(得分:0)

您可以做的是,为您的系统添加1TB大小的硬盘驱动器。将100GB的数据复制到新硬盘&更新您的数据目录位置以指向新的硬盘驱动器,不提供这两个路径,否则它将尝试将数据写入旧路径