如何使用快照进行elasticsearch迁移,使用共享文件夹方式

概要:

Elasticsearch也提供了备份集群中索引数据的策略——snapshot API.它会备份整个集群的当前状态和数据,并保存到集群中各个节点共享的仓库中。这个备份的进程是增量备份的,在第一次备份的基础上进行的第二次备份只备份新变化的数据。

创建elasticsearch快照分为3步,

  1. 多节点的集群需要在每个节点的相同位置挂载同一个共享文件夹。每个节点都必须对能够访问共享文件夹且有rw权限。
  2. 为每个节点的elasticsearch.yml文件中添加path.repo。 path.repo: /mnt/es_backup 并重启节点。
  3. 创建集群的快照仓库。
  4. 创建快照
  5. 恢复index

创建共享文件夹。

使用nfs共享文件夹。

注意:
1、共享文件夹必须修改权限,chmod 777 ,

2、client用户访问id,在server中有,且对共享文件夹有rw权限。

在server端安装nfs, 修改/etc/exports文件。

/data/ES_snapshot 10.9.125.210/16(rw,sync,all_squash) 10.19.48.3/16(rw,sync,all_squash) 10.19.72.218/16(rw,sync,all_squash) 

3、在每个节点添加path.repo 并重启节点。

4、为集群创建快照仓库

curl -XPUT http://localhost:9200/_snapshot/my_backup -d ‘{"type": "fs", "settings": {"location": "/mnt/es", "compress": true}}‘

put /_snapshot/my_backup
{
  "type": "fs",
  "settings": {
    "location": "/mnt/ES_backup",
    "compress": true,
    "max_snapshot_bytes_per_sec": "50mb",
    "max_restore_bytes_per_sec": "50mb"
  }
}

4、为集群中index创建快照

PUT /_snapshot/my_backup/logstash-2017-01-07?pretty
{
  "indices": "logstash-iis-2017-01-07,logstash-httperr-2017-01-07",
  "ignore_unavailable": true,
  "include_global_state": false
}

上面的代码会将所有正在运行的索引,备份到my_backup仓库下一个叫snapshot_1的快照中。上面的api会立刻返回,然后备份工作在后台运行。如果你想api同步执行,可以加wait_for_completion标志:

PUT http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true 

5、查看快照

get _snapshot/my_backup/logstash-2017-01-07

{
  "snapshots": [
    {
      "snapshot": "logstash-2017-01-07",
      "uuid": "0XM7X-HcR4u9Ou7-Gjzj5w",
      "version_id": 5000299,
      "version": "5.0.2",
      "indices": [
        "logstash-iis-2017-01-07",
        "logstash-httperr-2017-01-07"
      ],
      "state": "SUCCESS",
      "start_time": "2017-01-09T09:04:03.983Z",
      "start_time_in_millis": 1483952643983,
      "end_time": "2017-01-09T09:05:37.524Z",
      "end_time_in_millis": 1483952737524,
      "duration_in_millis": 93541,
      "failures": [],
      "shards": {
        "total": 10,
        "failed": 0,
        "successful": 10
      }
    }
  ]
}

如果要查看所有索引的信息,使用如下api:

GET http://127.0.0.1:9200/_snapshot/my_backup/_all 

另外还有个一api可以看到更加详细的信息:

GET http://127.0.0.1:9200/_snapshot/my_backup/snapshot_3/_status 

6、快照恢复

post /_snapshot/my_backup/logstash-2017-01-07/_restore

此api额外参数,

POST http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1/_restore
{
    "indices": "index_1",
    "rename_pattern": "index_(.+)",
    "rename_replacement": "restored_index_$1"
} 

参数indices 设置只恢复index_1索引,参数rename_pattern 和rename_replacement 用来正则匹配要恢复的索引,并且重命名。和备份一样,api会立刻返回值,然后在后台执行恢复,使用wait_for_completion 标记强制同步执行。

另外可以使用下面两个api查看状态:

GET http://127.0.0.1:9200/_recovery/restored_index_3
GET http://127.0.0.1:9200/_recovery/

如果要取消恢复过程(不管是已经恢复完,还是正在恢复),直接删除索引即可:

DELETE http://127.0.0.1:9200/restored_index_3 

原文地址:http://blog.51cto.com/10639817/2089750

时间: 2024-11-09 10:18:18

如何使用快照进行elasticsearch迁移,使用共享文件夹方式的相关文章

如何设置vagrant的共享文件夹方式为sshfs

默认的vagrant虚拟机里的共享文件夹速度是很慢的,比如在一个有很多代码的项目中生成tags:ctags -Rf .tags时,或者用ag来找某一个字符串:ag hello_world时,就会很慢.改为nfs速度会提升些,但绝没有sshfs的方式快. 使用sshfs共享的话,有两种方法,一种是最简单最快的,就是安装vagrant的sshfs插件:http://github.com/fabiokr/vagrant-sshfs 不过,我试这方法时因为网速原因,安装不了,所以就自己摸索出第二种比较麻

【转】VMware设置共享文件夹之后Ubuntu中看不到怎么办?

一.共享文件夹设置好了,但是在虚拟机中的Ubuntu系统下却看不到,怎么办? 一种可能的原因是系统没有自动挂载,解决办法: 1.安装:               sudo apt-get install open-vm-dkms 2.挂载:               sudo mount -t vmhgfs .host:/ /mnt/hgfs 二.VMware 中的 Ubuntu 虚拟机看不到共享文件夹怎么办? 如果你在 Ubuntu 虚拟机的文件系统 /mnt/hgfs 中看不到原先的共享

共享文件夹

工作任务描述 HT公司临时配置了一台独立的服务器Filesvr,公司的员工想从自己的计算机访问服务器上的一个共享文件夹share.并实现以下功能: 实验任务和目标: 1. 创建"工单二"中的用户和用户组(信息.销售和财务用户组只建立两个用户即可): 2. 在C盘建立名称为"share"的共享文件夹,并在该文件夹内建立以组名为名称的文件夹,每个文件夹中建立以自己名字为名称的文件夹: 3. 保证每个部门的员工在另一台计算机中只能远程访问到自己文件夹的内容,例如信息部卖卖

Win10怎么共享文件夹和文件

方法1 1.在文件资源管理器中选择自己一个想共享的文件夹,文件夹上点击鼠标右键->共享->特定用户: 2.从下拉列表中选择文件夹要共享给哪些人(那些人有权限查看这个共享文件夹): 3.共享之后,然后通过给出的地址访问共享文件夹,\\机器名\共享文件夹. 方法2 1.选择一个想共享的文件夹,点击现金网右键,从菜单中点击"属性": 2.在共享选项卡中点击"共享"图标. 关闭/停止共享 1.在共享过的文件夹点击右键,然后选择共享->停止共享. 注意事项

vagrant故障记--升级虚拟机linux内核导致无法挂载共享文件夹

i'm new to use vagrant,今天升级了下vbox里的ubuntu12.04内核,结果vagrant reload后出现报错. Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in t

【转】【教程】实现Virtualbox中的XP虚拟机和主机Win7之间的共享文件夹

原文网址:http://www.crifan.com/add_share_folder_for_virtualbox_guest_xp_and_host_win7/ 已经实现了在主机Win7下,在Virtualbox中安装了XP虚拟机. 现在需要将Win7中一个文件共享到XP虚拟机中. 所以需要去折腾Virtualbox和主机之间的共享. 1.先关闭运行中的XP虚拟机. 2.然后去新建一个共享文件夹: 然后确保当前主机Win7中,存在一个用于共享的文件夹,此处是新建了一个share_to_xp文

vmware 共享文件夹 win7 centos6

1. 安装 vmware-tools 1). 右击虚拟机 -- 安装vmware-tools 2). 挂载 mnt /dev/cdrom /mnt 3). cp /mnt/VMwareTools-9.6.1-1378637.tar.gz  /mnt && tar xvf VMwareTools-9.6.1-1378637.tar.gz ;cd vmware-tools-distrib/;./vmware-install.pl --default 4). 重启 2. 共享文件夹 1) 右击虚

DzzOffice共享文件夹、共享目录设置

dzzoffice中共享目录的设置,是通过机构部门建立的. 首先打开机构用户管理.建立需要的机构和部门.这里机构和部门可以理解为共享目录的名称.也可以根据自己需要起名,并不一定是机构和部门的名字. 而用户对共享的目录的使用规则是,用户只能查看自己所在部门位置的共享目录.也就是说,用户在哪个部门里面,就可以看到哪个部门的共享目录.他不在的部门,就看不到,也不能使用. 管理员规则 dzzoffice里分 系统管理员.机构管理员.部门管理员. 系统管理员并不能够看到所有机构.部门的共享目录. 机构管理

解决局域网共享文件夹要求输入用户名密码访问的问题

今天河北魅力网络在办公室局域网共享文件夹让同事进行访问发现无法直接访问,还要求输入密码才能查看我的文件,当我在同事电脑上输入我的用户名密码的时候输入进去确实可以访问.输入密码访问必经很麻烦,我们要去掉密码访问,方法如下,保证可以用,不能用请联系河北魅力网络,将为你解决. 1.运行打开组策略 gpedit.msc 2.定位到拒绝从网络访问计算机 3.双击打开删除里面的guest账户 4.定位到安全选项----网络访问此项 把经典改成仅来宾 现在就可以顺利访问不需要密码了,大家有什么问题也可以咨询魅