Elasticsearch集群快照备份

本文详细介绍了如何在Elasticsearch7.10.2集群环境中配置共享文件系统,安装nfs、rpcbind服务,创建仓库,创建快照,并进行索引恢复的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elasticsearch集群快照备份:

  1. 创建共享文件
  2. 修改配置文件后重启
  3. 创建仓库
  4. 创建快照

环境:

Elasticsearch版本;7.10.2

安装路径:/data/elasticsearch-7.10.2/

启动Elasticsearch服务的用户: es

  • 一、配置并创建共享文件

  1. 在Elasticsearch集群的所有节点服务器上安装 nfs、rpcbind服务

查看nfs、rpcbind服务是否存在,执行:

rpm -qa | grep nfs

rpm -qa | grep rpcbind

如果存在就直接启动,不存在则下载安装。

通过yum安装nfs、rpcbind,执行

yum install nfs-utils rpcbind

等待安装完成启动,执行:

systemctl start nfs

systemctl start rpcbind

设置nfs、rpcbind服务开机自启动执行:

systemctl enable nfs

systemctl enable rpcbind

  1. 创建共享文件并授权

选择一台服务器(192.168.10.100)创建共享文件目录并修改所有者及用户组,执行:

mkdir /data/backup  #文件名称,路径自己定义

chown es.es /data/backup

将共享文件授权,执行:vim /etc/exports

/data/backup *(rw,sync,no_root_squash,no_subtree_check)

exports中更多配置信息如下:

ro                  只读访问 

rw                  读写访问sync 所有数据在请求时写入共享 

async nfs           在写入数据前可以响应请求 

secure nfs          通过1024以下的安全TCP/IP端口发送 

insecure nfs        通过1024以上的端口发送 

wdelay              如果多个用户要写入nfs目录,则归组写入(默认) 

no_wdelay     如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。

hide                在nfs共享目录中不共享其子目录 

no_hide             共享nfs目录的子目录 

subtree_check       如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认) 

no_subtree_check    和上面相对,不检查父目录权限 

all_squash          共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 

no_all_squash       保留共享文件的UID和GID(默认) 

root_squash         root用户的所有请求映射成如anonymous用户一样的权限(默认) 

no_root_squas       root用户具有根目录的完全管理访问权限 

anonuid=xxx         指定nfs服务器/etc/passwd文件中匿名用户的UID 

anongid=xxx         指定nfs服务器/etc/passwd文件中匿名用户的GID

刷新配置使其立即生效,执行:exportfs -a

  1. 挂载至其他节点服务求的目录中

在其他节点的服务器中创建目录,执行:

mkdir /data/backup #这个目录用户可以自定义

查看在192.168.10.100可以挂载的共享目录,执行:

showmount -e 192.168.10.100

将192.168.10.100的共享目录挂载中本机新创建的 /data/backup目录,执行:

mount -t nfs 192.168.10.100:/data/backup /data/backup

测试,在192.168.10.100的/data/backup目录中创建测试文件如:test.txt es_back.txt。然后再其他服务器的/backup(共享目录挂载在本机的目录)查看是否存在。存在即表示共享目录创建完成。

  • 二、修改配置文件后创建仓库

  1. 修改配置文件并重启

需要在所有节点上的elasticsearch配置文件中添加:path.repo内容(仓库的存放位置)执行:

vim /data/elasticsearch7.10.2/config/elasticsearch.yml的最后一行

path.repo: /data/backup

保存退出后,重启elasticsearch集群

  1. 创建仓库

等待所有节点重启完成之后,准备创建对应的仓库,在服务器中执行:

curl -XPUT -u 用户名 -H "Content-Type:application/json"  http://192.168.10.100:9200/_snapshot/仓库名称 -d '{"type": "fs","settings": {"location": "仓库存放位置(目录不存在会自动创建)"}}'

查看创建的仓库,执行:

curl -XGET -u 用户名 http://192.168.10.100:9200/_snapshot

  1. 创建快照

对集群所有索引进行快照创建,执行:

curl -XPUT -u 用户名 -H “conent-Type:application/json” http://192.168.10.100:9200/_snapshot/仓库名称/快照名称?wait_for_completion=true -d ‘{“indices”: “*”}’

对指定集群进行快照创建,执行:

curl -XPUT -u 用户名 -H “conent-Type:application/json” http://192.168.10.100:9200/_snapshot/仓库名称/快照名称?wait_for_completion=true -d ‘{“indices”: “指定的索引名称”}’

查看快照执行状态,执行:

curl -XPUT -u 用户名 http://192.168.10.100:9200/_snapshot/仓库名称/快照名称/_status

  • 三、索引恢复

按照前面的步骤在另一个集群创建共享目录,已经相同名字的索引后,将192.168.10.100这个集群中的快照文件/data/backup/xxxx(仓库存放位置)中的文件拷贝至需要恢复数据的集群中。然后需要恢复数据的集群中执行:

curl -XPOST -u 用户名 http://192.168.10.100:9200/_snapshot/仓库名称/快照名称/_restore

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值