墨小柒的博客

请多多指教 Q:376655517欢迎交流

elasticsearch索引备份与迁移 sshfs建立共享文件

备份es数据的步骤:
1. 集群。多节点时需要挂载一个共享目录建立一个共享目录,这个共享目录要求集群中的所有节点都能感知到。如何创建共享仓目录后面补充。
2. 在每个节点的$ELASTICSEARCH_HOME/config/elasticsearch.yml中添加path.repo: /home/elk/es_backup 配置,并重启节点,其中/home/elk/es_backup 目录为每个节点的仓库目录,最好chmod 777 /home/elk/es_backup,以保证elasticsearch有权限写入数据
3. 为每个节点创建仓库,仓库位置为 /home/elk/es_backup
4. 添加索引快照(snapshot)
5. 查看备份状态。


1.创建共享目录
何为共享仓库,其实就是集群中各个节点都能感知到并将数据写入到该仓库的文件。一般一个节点部署在一个服务器上。在哪里,怎样创建一个文件让各个节点都能往里面写数据呢?
使用sshfs在ES集群中每个节点的相同位置挂载一个共享目录。
1.在每个节点上安装sshfs
(1) ubuntu上安装

apt-get install sshfs
(2)fedore上安装
yum install fuse-sshfs
(3) CentOS安装 (yum安装)
yum install -y epel-release         #默认源无该工具,需要先安装epel源码 安装sshfs
yum -y install fuse-sshfs           #安装sshfs

这里介绍的是在线yum安装,如果需要离线安装
请参考

2.选定一个节点的一个目录作为共享目录

mkdir /home/elk/backup
chmod -R 777 backup #为了让es启动用户有权写入共享目录

3.在每个节点的相同位置创建目录,并挂载共享目录

mkdir /home/elk/es_backup
chmod -R 777 es_backup
sshfs root@192.168.*.*:/home/elk/backup /home/elk/es_backup -o allow_other

其中参数-o allow_other 解决了不同节点往共享仓库中写数据的权限问题
如果使用-o参数,需要增加一个配置文件:/etc/fuse.conf,添加一行记录,

vim /etc/fuse.conf
user_allow_other

4.测试运行es的用户是否有对共享目录的写的权限

sudo -u username touch /home/elk/backup/test

5.如果要删除共享目录需要卸载挂载目录

fusermount -u filename

如果出现device is busy类似的提示的话
使用umount -fl filename继续卸载
卸载共享目录后才可对文件进行删除
如果挂载的时候


2.修改elasticsearch.yml文件

vim elasticsearch.yml
#添加path.repo配置共享仓库的位置
path.repo: /home/elk/es_backup
#保存后重启节点

3.创建了共享目录后在共享目录下为集群创建共享仓库

// 创建仓库
PUT _snapshot/my_backup 
{
    "type": "fs", 
    "settings": {
        "location": "/home/elk/es_backup",
        "compress": true
    }
}

4.备份索引数据

// 针对具体的index创建快照备份,其中snapshot_name 是快照的名字。
PUT _snapshot/my_backup/snapshot_name
{
    "indices": "index1, index2"
}

5.查看备份状态

GET _snapshot/my_backup/snapshot_name/_status

6.在不同的集群之间迁移数据

  1. 重复步骤1.2.3
  2. 将源集群的备份内容(/home/elk/backup里的所有文件),复制到迁移目标的集群仓库目录里
  3. 使用RESTful API进行备份的恢复,如果索引已经存在目标的集群,需要先关闭索引,恢复数据后在开启
POST /index_name/_close
POST _snapshot/my_backup/snapshot_name/_restore
POST /index_name/_open
GET _snapshot/my_backup/snapshot_name/_status       #查看恢复的状态
阅读更多
个人分类: elasticsearch
上一篇x-pack6.0破解(仅用于个人测试,请支持正版) 配置SSL/TSL以及ca证书生成
下一篇搭建本地yum离线安装SSHFS
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭