提问要多花一点心思哦

es的data.path相关问题

Elasticsearch | 作者 chzhty001 | 发布于2018年08月28日 | 阅读数:3533

现在我配置的是一台机器有两块磁盘,但是es只会往最大的那一块盘中写数据,我想知道,这两块磁盘的容量相差多少之后es才会只往打的那一块磁盘写数据。或者相关的源码在哪个地方,希望能指点一下
已邀请:

chzhty001

赞同来自:

emmmmmm,没有人知道吗

yayg2008

赞同来自:

1,两块磁盘挂载的目录都要配到data.path;
2,磁盘选择是shard级别,一旦shard分配,新数据就只会写到这个盘;如果有新的index,shard会分配到另外盘。

chzhty001

赞同来自:

配置都没问题,现在的情况是,如果两块磁盘的大小相差不多的话数据分布是比较均衡的,两块磁盘的shard都会写入数据。但是如果两块磁盘的容量相差比较大的话,只会把数据往容量大的磁盘的shard中写入,所以想知道这两块磁盘容量相差多少才会触发这种情况

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

可以指定多个数据路径,以便跨多个磁盘或位置传播数据,但是来自单个分片的所有文件都将写入同一路径。官网解读:
Multiple data paths may be specified, in order to spread data across multiple disks or locations, but all of the files from a single shard will be written to the same path. This can be configured as follows:Multiple data paths may be specified, in order to spread data across multiple disks or locations, but all of the files from a single shard will be written to the same path. 
This can be configured as follows:
--------------------------------- path.data: /mnt/first,/mnt/second ---------------------------------
Or in an array format:
----------------------------------path.data: ["/mnt/first", "/mnt/second"] -----------------------------
[Tip]To stripe shards across multiple disks, please use a RAID driver instead.
https://www.elastic.co/guide/e ... .html

chzhty001

赞同来自:

看源码找到了,如果一个机器分两块磁盘的话,然后shard分成2份的话,创建shard的时候会先选择磁盘容量大的那个创建id为1的shard,然后把大的那个磁盘的容量减去两块磁盘的总容量*5%作为这块磁盘的剩余容量,然后再和另一块磁盘大小作比较,再选择大的那块磁盘创建id为0的shard

要回复问题请先登录注册