2015-04-29 29 views
0

我想测试S3的备份/恢复功能。 我做了什么:在亚马逊卡桑德拉DSE,从S3超时恢复

  1. 安装DSE +的OpsCenter
  2. 计划所有keyspaces的每小时备份(60 MB总大小)。早上有10个备份。
  3. 终止实例并创建新实例
  4. 尝试获取我的数据。没有运气。 OpsCenter中无法连接到我的S3存储 enter image description here

需要现在> 10分钟......

我该怎么办错了吗?

UPD:

终于得到了回应: enter image description here

+0

貌似OpsCenter中的问题。当我尝试从空篮子恢复备份时,它立即报告没有备份... – Sergey

+0

您的IAM策略是否授予opscenter用户足够的权利? [Here](http://stackoverflow.com/questions/29131437/iam-policy-for-opscenter-backup-to-s3-user)是我正在使用的策略,但我还没有尝试过还原。 – LHWizard

+0

是的,我使用该策略进行备份并无法恢复。我已在OpsCenter中启用调试。 OpsCenter在5-7分钟内从S3获得响应(请参阅opscenterd.log),但OpsCenter UI较早发生错误,并且不会处理延迟响应。 – Sergey

回答

1

我认为,这可能是OPSC-5915(对不起,没有公共的bug跟踪系统),它被固定在即将到来的5.2.0版本。

总结是,API调用仍将按预期工作,但UI不会正确地将目标信息推送到API端点。

您可以确认这是您遇到正是如此错误:

1) goto /etc/opscenter/clusters/<cluster_name>.conf (or similar location depending on if you've done a tarball install/etc) 
2) Find the destination ID that matches your bucket, it'll look something like b699738d9bd8409c82e664b543f24030 
3) Confirm the clustername in your opsc URLs, it'll look something like localhost:8888/my_cluster 
4) Manually hit the API to retrieve your backup list 
curl localhost:8888/<clustername>/backups?amount=6\&last_seen=\&list_all=1\&destination=<destination ID> 
It'll look like this 
curl localhost:8888/dse/backups?amount=6\&last_seen=\&list_all=1\&destination=b699738d9bd8409c82e664b543f24030 
5) You should get back a json, confirm that your backup is listed 
{"opscenter_adhoc_2014-12-17-20-22-57-UTC": {"keyspaces": {"OpsCenter":... 

如果你看到JSON备份,然后OPSC看到你的备份,这确实是OPSC-5915,所以这是至少证实。

如果这是你的情况,我们可以通过手动点击恢复API来解决它(这肯定会涉及更多一点)。

http://docs.datastax.com/en/opscenter/5.1/api/docs/backups.html#backups

它会看起来有点像这样:

BACKUP='opscenter_4a269167-96c1-40c7-84b7-b070c6bcd0cd_2012-06-07-18-00-00-UTC' 
    curl -X POST 
     http://192.168.1.1:8888/Test_Cluster/backups/restore/$BACKUP 
     -d '{ 
      "destination": "fe85800f3f4043a88fbe76fc45b22b19", 
      "keyspaces": { 
      "Keyspace1": { 
       "column-families: ["users", "dates"], 
       "truncate": true 
      }, 
      "OpsCenter": { 
       "truncate": false 
      } 
      }, 
     }' 
+0

谢谢,我们决定做同样的事情,然后回到API。 – Sergey