我们要升级ES版本时,需要对数据进行备份迁移,下面开始
Elasticsearch备份数据前需要一个存储数据的仓库,支持四种
- 共享文件系统,比如 NAS
- Amazon S3
- HDFS (Hadoop 分布式文件系统)
- Azure Cloud
下载资源(以NAS为例)
[root@centos74-084 /]#cd /opt/nfs
[root@centos74-084 nfs]# yum install nfs-utils --downloadonly --downloaddir=./
[root@centos74-084 nfs]#ls
gssproxy-0.7.0-21.el7.x86_64.rpm libnfsidmap-0.25-19.el7.x86_64.rpm
libsemanage-2.5-14.el7.x86_64.rpm quota-4.01-17.el7.x86_64.rpm
keyutils-1.5.8-3.el7.x86_64.rpm libpath_utils-0.2.1-32.el7.x86_64.rpm
libsepol-2.5-10.el7.x86_64.rpm quota-nls-4.01-17.el7.noarch.rpm
libbasicobjects-0.1.1-32.el7.x86_64.rpm libref_array-0.1.5-32.el7.x86_64.rpm
libtirpc-0.2.4-0.15.el7.x86_64.rpm rpcbind-0.2.0-47.el7.x86_64.rpm
libcollection-0.7.0-32.el7.x86_64.rpm libselinux-2.5-14.1.el7.x86_64.rpm
libverto-libevent-0.2.5-4.el7.x86_64.rpm selinux-policy-3.13.1-229.el7_6.12.noarch.rpm
libevent-2.0.21-4.el7.x86_64.rpm libselinux-python-2.5-14.1.el7.x86_64.rpm
nfs-utils-1.3.0-0.61.el7.x86_64.rpm selinux-policy-targeted-3.13.1-229.el7_6.12.noarch.rpm
libini_config-1.3.1-32.el7.x86_64.rpm libselinux-utils-2.5-14.1.el7.x86_64.rpm
policycoreutils-2.5-29.el7_6.1.x86_64.rpm tcp_wrappers-7.6-77.el7.x86_64.rpm
安装
[root@centos74-084 nfs]#rpm -ivh *.rpm --nodeps --force
准备中... ################################# [100%]
正在升级/安装...
1:libsepol-2.5-10.el7 ################################# [ 4%]
2:libselinux-2.5-14.1.el7 ################################# [ 8%]
3:libsemanage-2.5-14.el7 ################################# [ 13%]
4:libtirpc-0.2.4-0.15.el7 ################################# [ 17%]
5:rpcbind-0.2.0-47.el7 ################################# [ 21%]
6:libref_array-0.1.5-32.el7 ################################# [ 25%]
7:libevent-2.0.21-4.el7 ################################# [ 29%]
8:libcollection-0.7.0-32.el7 ################################# [ 33%]
9:libbasicobjects-0.1.1-32.el7 ################################# [ 38%]
10:libverto-libevent-0.2.5-4.el7 ################################# [ 42%]
11:libselinux-utils-2.5-14.1.el7 ################################# [ 46%]
12:policycoreutils-2.5-29.el7_6.1 ################################# [ 50%]
13:selinux-policy-3.13.1-229.el7_6.1################################# [ 54%]
**Failed to resolve typeattributeset statement at /etc/selinux/targeted/tmp/modules/400/mariadb/cil:1
semodule: Failed!** 这里可能会出现失败,但是不影响
14:tcp_wrappers-7.6-77.el7 ################################# [ 58%]
15:quota-nls-1:4.01-17.el7 ################################# [ 63%]
16:quota-1:4.01-17.el7 ################################# [ 67%]
17:libpath_utils-0.2.1-32.el7 ################################# [ 71%]
18:libini_config-1.3.1-32.el7 ################################# [ 75%]
19:gssproxy-0.7.0-21.el7 ################################# [ 79%]
20:libnfsidmap-0.25-19.el7 ################################# [ 83%]
21:keyutils-1.5.8-3.el7 ################################# [ 88%]
22:nfs-utils-1:1.3.0-0.61.el7 ################################# [ 92%]
23:selinux-policy-targeted-3.13.1-22################################# [ 96%]
24:libselinux-python-2.5-14.1.el7 ################################# [100%]
查看nfs安装后状态
[root@centos74-084 nfs]#systemctl status nfs
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Active: active (exited) since 二 2019-07-16 17:34:52 CST; 4s ago
Process: 2437 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl restart gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 2420 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 2419 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 2420 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
7月 16 17:34:51 centos74-084 systemd[1]: Starting NFS server and services...
7月 16 17:34:52 centos74-084 systemd[1]: Started NFS server and services.
[root@centos74-084 nfs]# vi /etc/exports
/opt/data/ * (rw,sync,no_root_squash,no_all_squash)#指定共享目录后,保存退出
~
~
~
~
重启nfs服务
[root@centos74-084 nfs]#systemctl reload nfs
#显示指定NFS服务器输出目录列表(也称为共享目录列表)
[root@centos74-084 nfs]#showmount -e 127.0.0.1
Export list for 127.0.0.1:
/opt/data *
#挂在文件目录
[root@centos74-084 nfs]#mount.nfs 127.0.0.1:/opt/data/ /opt/mnt/
[root@centos74-084 nfs]#df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 3.6G 14G 21% /
devtmpfs 910M 0 910M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.7M 912M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
#挂在成功
127.0.0.1:/opt/data 17G 3.6G 14G 21% /opt/mnt
- NAS搭建成成功后修改elasticsearch.yml在文件加入path.repo: ["/opt/esdata/"]指定文件共享系统目录后重启
ES集群备份支持API模式,本在使用的非API
3. 打开kibana->Dev Tools
创建仓库
PUT _snapshot/my_backup
{
“type”: “fs”,
“settings”: {
“location”: “/opt/data”
}
}
- 给我们的仓库取一个名字,在本例它叫 my_backup
- 我们指定仓库的类型应该是一个共享文件系统。
- 最后,我们提供一个已挂载的设备作为目的地址。
注意:共享文件系统路径必须确保集群所有节点都可以访问到。
快照所有索引
PUT _snapshot/my_backup/snapshot_1
列出快照信息
GET _snapshot/my_backup/snapshot_1
列出所有快照信息
GET _snapshot/my_backup/_all
获取快照统计信息
GET _snapshot/my_backup/snapshot_1/_status
删除快照
DELETE _snapshot/my_backup/snapshot_1
恢复集群数据就简单多了,一旦你备份过了数据,恢复它就简单了:只要在你希望恢复回集群的快照 ID 后面加上 _restore 即可
恢复快照
POST _snapshot/my_backup/snapshot_1/_restore
还有附加的选项用来重命名索引。这个选项允许你通过模式匹配索引名称,然后通过恢复进程提供一个新名称。如果你想在不替换现有数据的前提下,恢复老数据来验证内容,或者做其他处理,这个选项很有用。让我们从快照里恢复单个索引并提供一个替换的名称:
POST /snapshot/my_backup/snapshot_1/restore
{
“indices”: “index_1”,
“rename_pattern”: "index(.+)",
“rename_replacement”: "restored_index$1"
}
只恢复 index_1 索引,忽略快照中存在的其余索引。
查找所提供的模式能匹配上的正在恢复的索引。
然后把它们重命名成替代的模式。
这个会恢复 index_1 到你及群里,但是重命名成了 restored_index_1 。
取消恢复
要取消一个恢复,你需要删除正在恢复的索引。 因为恢复进程其实就是分片恢复,发送一个 删除索引 API 修改集群状态,就可以停止恢复进程。比如:
DELETE /restored_index_3
如果 restored_index_3 正在恢复中,这个删除命令会停止恢复,同时删除所有已经恢复到集群里的数据。
这个东西用着还是挺爽的!!!