内容简介:Elasticsearch 可以通过快照命令对索引或者整个集群进行快照和恢复,第一个快照会是一个数据的完整拷贝,但是所有后续的快照只存储已存快照和新数据之间的差异。这意味着后续备份会相当快速,因为它们只传输很小的数据量。快照和恢复模块允许创建单个索引或者整个集群的快照到各种各样的后台仓库,本文主要介绍在共享文件系统上创建快照需要执行以下步骤:
Elasticsearch 可以通过快照命令对索引或者整个集群进行快照和恢复,第一个快照会是一个数据的完整拷贝,但是所有后续的快照只存储已存快照和新数据之间的差异。这意味着后续备份会相当快速,因为它们只传输很小的数据量。
快照和恢复模块允许创建单个索引或者整个集群的快照到各种各样的后台仓库,本文主要介绍 将快照存储到共享文件系统
。
在共享文件系统上创建快照需要执行以下步骤:
- 创建集群的共享目录;
- 修改ES配置,添加对共享目录的设置;
- 创建备份仓库;
- 创建快照;
- 查看快照状态;
- 必要时从快照恢复数据。
2. 通过 NFS 设置共享目录
NFS 文件共享能解决在集群环境下图片、附件等文件共享的问题,这里主要用于创建搜索集群的快照共享文件夹。
2.1 角色分配
主机名 | IP | 角色 |
---|---|---|
zk-master01 | 192.168.1.190 | NFS服务端 |
zk-slaver01 | 192.168.1.224 | NFS客户端 |
zk-slaver02 | 192.168.1.48 | NFS客户端 |
2.2 配置 NFS 服务端
以下操作只在 zk-master01(192.168.1.190)
上执行。
2.2.1 检查安装 NFS 服务
rpm -qa|grep nfs rpm -qa|grep rpcbind 复制代码
如果组件没有安装,请执行下面的命令进行安装:
yum install nfs-utils rpcbind 复制代码
2.2.2 设置开机自动启动
CentOS 6 可以通过下面的命令设置开机启动服务:
chkconfig nfs on chkconfig rpcbind on 复制代码
CentOS 7 可以通过下面命令设置开机自动启动:
systemctl enable rpcbind.service systemctl enable nfs-server.service 复制代码
2.2.3 启动服务
CentOS 6 执行下面命令:
service rpcbind start service nfs start 复制代码
CentOS 7 执行下面命令:
systemctl start rpcbind.service systemctl start nfs-server.service 复制代码
2.2.4 创建共享目录
mkdir /data/elastic/bak/backup_es # 由于备份程序是ES进程进行创建,因此设置目录的拥有者为启动ES程序的用户 chown -R luculent /data/elastic/bak/backup_es 复制代码
2.2.5 修改配置文件
vi /etc/exports # 添加下面语句 /data/elastic/bak/backup_es *(rw,sync,no_root_squash,no_subtree_check) 复制代码
* rw sync no_root_squash
更多配置详情如下所示:
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 复制代码
2.2.6 刷新配置立即生效
# 刷新配置使得修改立刻生效 exportfs -a # 查看可挂载目录 showmount -e 192.168.1.190 复制代码
2.3 配置客户端
以下指令在 zk-slaver01(192.168.1.224)和zk-slaver02(192.168.1.48)
上执行。
请执行 配置服务端的 1-4
步骤;NFS 安装部署完成后,启动 NFS,创建备份文件夹。
2.3.5 挂载目录
# 查看可挂载目录 showmount -e 192.168.1.190 # 挂载 mount -t nfs 192.168.1.190:/data/elastic/bak/backup_es /data/elastic/bak/backup_es 复制代码
2.3.6 设置开机自动挂载
# 查看当前挂载 df -h # 设置开机自动挂载 vi /etc/fstab 192.168.1.190:/data/elastic/bak/backup_es /data/elastic/bak/backup_es nfs defaults 0 0 复制代码
3. 修改 ES 配置
配置完共享目录后,需要修改 ES 配置,并重启 ES 使其生效。
# 在 elasticsearch.yml 中添加下面配置来设置备份仓库路径 path.repo: ["/data/elastic/bak/backup_es"] 复制代码
4. 创建备份仓库
4.1 打开快照管理界面
ES 插件 kopf 提供了图形化的界面来创建管理快照,安装 kopf 插件的集群直接访问: http://es-ip:9200/_plugin/kopf/#!/snapshot
即可进入快照管理界面。
当然也可以通过点击菜单进入界面。
4.2 创建备份仓库
在快照界面左侧的文本框添加备份仓库信息后点击 create
按钮即可完成创建,各个文本框字段的作用:
-
repository name
:仓库名称 -
type
:请务必选择fs
-
location
:请填写共享目录名/data/elastic/bak/backup_es
-
max_restore_bytes_per_sec
:数据恢复时速度限制,默认(40m/s) -
max_snapshot_bytes_per_sec
:创建备份复时速度限制,默认(40m/s) -
chunk_size
:分片大小,默认不限制 -
compress
:是否启用压缩
当然也可以通过 REST 客户端执行下面请求来创建备份仓库。
POST _snapshot/es_bak_20180710 { "type": "fs", "settings": { "location": "/data/elastic/bak/backup_es", "max_restore_bytes_per_sec": "50mb", "max_snapshot_bytes_per_sec": "50mb", "compress": true } } 复制代码
5. 创建快照
5.1 创建快照
在快照界面右侧的 snapshot name
文本框填写快照名称, repository
选择刚才创建的仓库 es_bak_20180710
; ignore_unavailable
勾选 true
; include_global_state
勾选 false
;最后选择需要参与备份的索引(不选择表示全部索引,按住 ctrl
键可以进行多选),点击 create
按钮即可创建快照。
当然也可以通过 REST 客户端执行下面请求来创建快照。
POST _snapshot/es_bak_20180710/ss_2018_07_10 { "indices": "img_face,lk_other", "include_global_state": false, "ignore_unavailable": true } 复制代码
5.2 查看快照
直接在地址栏访问下面的地址即可查看 ss_2018_07_10
快照的信息。
http://es-ip:9200/_snapshot/es_bak_20180710/ss_2018_07_10 复制代码
等待一段时间重新访问,提示创建成功。
6. 从快照恢复
# 全部恢复 POST /_snapshot/my_backup/snapshot_1/_restore # 恢复指定的索引 POST /_snapshot/my_backup/snapshot_1/_restore { "indices": "index_1,index_2", "ignore_unavailable": true, "include_global_state": false, "rename_pattern": "index_(.+)", "rename_replacement": "restored_index_$1", "index_settings": { "index.number_of_replicas": 0 }, "ignore_index_settings": [ "index.refresh_interval" ] } 复制代码
追求高效、有节奏的研发过程; 打造高质量、创新的研发产品。 专注技术、钟情产品!
欢迎扫码关注『朗坤极客驿站』,遇见更优秀的自己。
以上所述就是小编给大家介绍的《Elasticsearch 使用 NFS 进行数据备份》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Python实现定时备份mysql数据库并把备份数据库邮件发送
- Python实现定时备份mysql数据库并把备份数据库邮件发送
- NETGEAR存储数据备份方案评测
- es数据备份和恢复 原 荐
- Zabbix 数据库备份
- Redis数据持久化、数据备份、数据的故障恢复
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。