1、集群备份方案:
集群备份,可以通过快照进行备份,将集群外的一台服务器作为文件共享系统(NFS)服务端,在这个文件共享服务端上挂在一个大硬盘,然后在大硬盘中创建es备份、es临时备份等备份文件夹,然后将这些文件夹进行共享,在集群中所有数据节点上进行挂在对应文件夹到共同指定路径下,然后配置对应数据节点上es的备份路径,创建备份仓库,然后将备份的快照保存在备份仓库中,就可以实现集群es数据备份。
2、NFS服务端配置:
注意:以下操作是在NFS(网络文件共享系统)的服务器上操作。
(1)检查安装NFS服务:
检查NFS服务是否安装:
rpm -qa|grep nfs
rpm -qa|grep rpcbind
如果没有安装,执行命令在线安装:
yum install nfs-utils rpcbind
(2)设置NFS服务开机自启:
A、centos6开机自启:
chkconfig nfs on
chkconfig rpcbind on
B、Centos7开机自启:
systemctl enable rpcbind.service
systemctl enable nfs-server.service
(3)启动NFS服务:
A、centos6启动服务:
service rpcbind start
service nfs start
B、Centos7启动服务:
systemctl start rpcbind.service
systemctl start nfs-server.service
(4)创建共享目录:
mkdir -p /data_backup/elastic/backup_es
(5)修改共享目录授权配置:
编辑文件/etc/exports:
# 添加下面语句
/data_backup/elastic/backup_es *(rw,sync,no_root_squash,no_subtree_check)
更多配置信息如下:
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
(6)刷新配置立即生效:
exportfs -a
3、NFS客户端配置:
注意:以下操作是在NFS(网络文件共享系统)的客户端上操作,也就是在es集群中所有数据节点上都要进行同样操作。
(1)检查安装NFS服务:
检查NFS服务是否安装:
rpm -qa|grep nfs
rpm -qa|grep rpcbind
如果没有安装,执行命令在线安装:
yum install nfs-utils rpcbind
(2)设置NFS服务开机自启:
A、centos6开机自启:
chkconfig nfs on
chkconfig rpcbind on
B、Centos7开机自启:
systemctl enable rpcbind.service
systemctl enable nfs-server.service
(3)启动NFS服务:
A、centos6启动服务:
service rpcbind start
service nfs start
B、Centos7启动服务:
systemctl start rpcbind.service
systemctl start nfs-server.service
(4)创建文件目录:
创建备份文件目录,也就是es中配置的path.repo值对应的路径:
例如:mkdir -p /data/elastic/data_backup
(5)修改文件目录拥有者:
将创建的备份文件夹的所有者授权给es启动用户:
chown -R elastic.elastic /data/elastic/data_backup
(6)查看可挂在的目录:
查看NFS服务端IP地址中可挂在的目录:
showmount -e 192.168.99.164
(7)挂载目录:
mount -t nfs 192.168.99.164:/data/elastic/bak/backup_es /data/elastic/data_backup
将192.168.99.164中的/data/elastic/bak/backup_es共享文件夹挂在到当前服务器的/data/elastic/data_backup文件夹下。
(8)设置开机自动挂载:
编辑文件/etc/fstab文件:
添加下行:
192.168.99.164:/data/elastic/bak/backup_es /data/elastic/data_backup nfs defaults 0 0
(9)修改es配置备份路径:
修改当前es节点中elasticsearch.yml中path.repo的值为当前服务器中创建的备份路径
(10)重新启动es集群:
当集群中所有数据节点都按照NFS客户端中的操作1-9操作完毕后,逐个启动集群中每一个es节点。
(11)集群es创建备份仓库:
通过es-head连接到集群节点中任何一个节点,然后执行dsl命令创建备份仓库。
(12)集群es创建快照备份:
通过es-head连接到集群节点中任何一个节点,然后执行dsl命令创建指定索引的快照备份。
4、集群es增加备份路径:
如果根据需求,需要增加集群es的备份路径,那么就按照NFS服务端、NFS客户端进行操作即可,因为是增加集群es备份路径,那么有的操作可能就不需要重新操作了,比如:NFS服务安装、开机自启等操作,因此按照操作逐条对照,只需要完成新增加集群es备份路径的相关操作即可。