使用Elasticsearch Clone API后能否删除源索引?
Elasticsearch克隆索引后删除源索引的硬链接相关问题解答
克隆流程如下:
- 首先,创建一个与源索引定义相同的目标索引。
- 然后将源索引的段硬链接到目标索引中。(若文件系统不支持硬链接,则会将所有段复制到新索引中,此过程耗时更长。)
- 最后,恢复目标索引,就像重新打开一个刚关闭的索引一样。
问题解答
当克隆操作采用硬链接方式,且通过Delete API删除源索引时,三个疑问的答案如下:
1. 硬链接的段会被复制到新索引的数据目录吗?
不会。删除源索引时,Elasticsearch只会移除源索引对段文件的硬链接引用,不会触发文件复制。目标索引仍通过自身的硬链接访问原始位置的段文件。
2. 数据会丢失吗?
不会。硬链接的本质是多个引用指向磁盘上的同一实际文件,只有当所有硬链接引用都被删除时,文件才会被真正从磁盘清除。删除源索引只是移除了其中一个引用,目标索引的硬链接依然有效,数据不会丢失。
3. 硬链接的段仅保留在磁盘上的原始位置吗?
是的。硬链接不会复制文件内容,只是在文件系统中新增一个指向原始文件的引用。即便源索引被删除,实际的段文件仍保存在原始磁盘位置,直到目标索引也被删除(此时所有引用消失,文件才会被系统清理)。
内容的提问来源于stack exchange,提问作者m_c
相关产品推荐
相关产品推荐

