无法在Elasticsearch中注册快照库

我使用Elasticsearch 1.4和Ubuntu 12.04.3 LTS.Trying为本地elasticsearch创build一个快照。 我参考这个网站

这个网站的步骤在Windows Elasticsearch上运行良好。 如果我在Ubuntu Elasticsearch上注册存储库。 它在消息下面发射。

这个查询我运行的

curl -XPUT http://xx.xx.xx.xx:9200/_snapshot/es_snap -d '{ "type": "fs", "settings": { "location": "/mount/backups/my_backup" } }' 

我得到了这个回应。

 { "error":"RepositoryException[[es_snap] failed to create repository]; nested: CreationException[Guice creation errors:\n\n1) Error injecting constructor, org.elasticsearch.common.blobstore.BlobStoreException: Failed to create directory at [ D:/data/es_snapshot_bkup/es_snapshot_repo]\n at org.elasticsearch.repositories.fs.FsRepository.<init>(Unknown Source)\n while locating org.elasticsearch.repositories.fs.FsRepository\n while locating org.elasticsearch.repositories.Repository\n\n1 error ]; nested: BlobStoreException[Failed to create directory at [/mount/backups/my_backup]]; ", "status":500 } 

  1. 首先创建一个备份文件夹(一般来说文件夹创建用户主文件夹)

     mkdir ~/backup 
  2. 为该文件夹授予权限

     chmod 777 ~/backup 
  3. 创建一个仓库(仓库代表你的路径)

     curl -XPUT http://xx.xx.xx.xx:9200/_snapshot/es_snap -d '{"type":"fs","settings":{"location":"home/user/backup" ,"compress":true}}' 
  4. 快照

     curl -XPUT "http://xx.xx.xx.xx:9200/_snapshot/en_snap/snapshot_1" -d '{"indices":["index1","index2","index3"],"ignore_unavailable":true, "include_global_state": false,}' 
  5. 恢复

     curl -XPOST "http://xx.xx.xx.xx:9200/_snapshot/es_snap/snapshot_1/_restore" -d '{"indices":["index1","index2"],"ignore_unavailable":true, "include_global_state": false}' 

得到了同样的错误,我必须确保相同的路径是可写的所有节点(作为相同的用户)。 我直接在其中一个节点上挂载目录,并使用nfs挂载其他目录。 要排除perms的故障,编辑/ etc / passwd并将弹性搜索的登录shell从/ sbin / nolgin更改为/ bin / bash,然后运行“su – elasticsearch”。 然后尝试将文件写入目录。 你必须在所有节点上这样做。

你的查询看起来不错。 但是,您是否具有在“/ mount / backups / my_backup”中创建回购的相应权限。 尝试你的curl命令作为sudo用户。 这是值得一试!

为什么我认为它的权限问题是因为您的错误日志中的以下内容。 嵌套:BlobStoreException [无法在[/ mount / backups / my_backup]]上创建目录; ”, “状态”:500}