1.背景:
最近公司为了适应业务的发展,利用elasticsearch搜索引擎搭建了两个节点。为了防止数据丢失的特殊情况,需要定时做数据备份,而由于elasticsearch为两个节点分别在不同的服务器ip,即需要创建共享文件系统,也就是大家都能访问的一个共享文件夹。
(说明:linux系统使用centos 7)
2.内容:
1)创建共享文件
执行下面的命令
yum -y install epel-release # 安装epel 源码
yum -y install fuse-sshfs # 安装sshfs
在其中一台服务创建共享目录,执行以下命令:
mkdir -p /hhs/backup
chmod -R /hhs
在每个节点的相同位置创建目录,并挂载共享目录
mkdir -p /tmp/backup
chmod -R /tmp
sshfs $user@192.168.1.237:/hhs/backup /tmp/backup -o allow_other #$user为用户,一般为root,回车后还要输入密码
测试是否可以写入共享目录
su es #切换用户,即运行elasticsearch的用户
touch /tmp/backup/test.txt
2)修改elasticsearch.yml文件,添加path.repo: /tmp/backup,即指定刚才创建的节点共享目录,接着重启elasticsearch,执行以下命令:
#创建备份路径
curl -XPUT '192.168.1.237:9200/_snapshot/backup' -H 'Content-Type: application/json' -d '{"type": "fs", "settings": {"location": "/tmp/backup" }}'
#启动备份,并指定备份名称
curl -XPUT '192.168.1.237:9200/_snapshot/backup/ichunt_bak_20171208'
#查看备份名称的状态
curl -XGET '192.168.1.237:9200/_snapshot/backup/ichunt_bak_20171208/_status'
收工