OpenSearch的快照还原

2024-08-28 03:28
文章标签 快照 还原 opensearch

本文主要是介绍OpenSearch的快照还原,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本次测试选择把索引快照备份到Amazon S3,所以需要使用S3 repository plugin,这个插件添加了对使用 Amazon S3 作为快照/恢复存储库的支持。

OpenSearch集群自带了这个插件,所以无需额外安装。

由于需要和Amazon Web Services打交道,所以我们需要设置IAM凭证,这个插件可以从EC2 IAM instance profile,ECS task role 以及EKS的Service account读取相应的凭证。

对于托管的Amazon OpenSearch来说,我们无法在托管的EC2上绑定我们的凭证,所以需要新建一个OpenSearchSnapshotRole,然后通过当前的用户把这个角色传递给服务,也就是我们说的IAM:PassRole。

创建OpenSearchSnapshotRole,策略如下:

{"Version": "2012-10-17","Statement": [{"Action": ["s3:ListBucket"],"Effect": "Allow","Resource": ["arn:aws:s3:::bucket-name"]},{"Action": ["s3:GetObject","s3:PutObject","s3:DeleteObject"],"Effect": "Allow","Resource": ["arn:aws:s3:::bucket-name/*"]}]
}

信任关系如下:

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "es.amazonaws.com"},"Action": "sts:AssumeRole"}]
}

然后在我们的IAM user上加上PassRole的权限,这样我们就可以把OpenSearchSnapshotRole传递给OpenSearch集群。

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": "iam:PassRole","Resource": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole"}]
}

注册存储库

在源集群执行注册

PUT /_snapshot/snapshot-repo-name
{"type": "s3","settings": {"bucket": "<bucket-name>","base_path": "<bucket-prefix>",}}

在目标集群同样执行这个语句,为了防止覆盖源集群存储库的数据,将 “readonly”: true 添加到"settings" PUT 请求中,这样就只有一个集群具有对存储库的写入权限。

PUT /_snapshot/snapshot-repo-name
{"type": "s3","settings": {"bucket": "<bucket-name>","base_path": "<bucket-prefix>","readonly": true,}}

对于OpenSearch来说,还需要执行passrole,所以还需要添加role_arn这个字段,由于IAM:PassRole需要对HTTP 请求做signV4日签名,所以这部常常使用Postman来完成。把角色传递过去之后,接下来的快照还原操作就可以在OpenSearch Dashboard中进行操作了。

在这里插入图片描述

需要注意的是,需要在auth这里输入AccessKey,SecretKey,AWS Region,Service Name(es)来做SignV4的签名。
在这里插入图片描述

请求体如下:

{"type": "s3","settings": {"bucket": "<bucket-name>","base_path": "<bucket-prefix>","readonly": true,"role_arn": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole"}
}

  • 查看所有注册的存储库
    • GET _snapshot:这个命令返回所有已注册的快照存储库列表及其基本信息。
GET _snapshot
{"es_repository": {"type": "s3","settings": {"bucket": "your-s3-bucket-name","region": "your-s3-bucket-region"}}
}
  • 查看特定存储库的详细信息
    GET _snapshot/es_repository:这个命令返回名为es_repository的存储库的详细配置信息,包括存储桶名称、区域和其他设置。
GET _snapshot/es_repository
{"es_repository": {"type": "s3","settings": {"bucket": "your-s3-bucket-name","region": "your-s3-bucket-region","access_key": "your-access-key","secret_key": "your-secret-key"}}
}
  • 查看特定存储库中的快照
    GET _cat/snapshots/es_repository?v:这个命令返回es_repository存储库中的所有快照及其详细信息,包括快照ID、状态、开始时间、结束时间、持续时间、包含的索引数量、成功和失败的分片数量等。
GET _cat/snapshots/es_repository?v
id                     status start_epoch start_time end_epoch end_time duration indices successful_shards failed_shards total_shards
snapshot_1             SUCCESS 1628884800 08:00:00   1628888400 09:00:00 1h       3       10                0             10
snapshot_2             SUCCESS 1628971200 08:00:00   1628974800 09:00:00 1h       3       10                0             10

创建索引快照

# PUT _snapshot/my_repository/<my_snapshot_{now/d}>
PUT _snapshot/my_repository/my_snapshot
{"indices": "my-index,logs-my_app-default",
}

根据快照的大小不同,完成快照可能需要一些时间。默认情况下,create snapshot API 只会异步启动快照过程,该过程在后台运行。要更改为同步调用,可以将 wait_for_completion 查询参数设置为 true

PUT _snapshot/my_repository/my_snapshot?wait_for_completion=true

另外还可以使用 clone snapshot API 克隆现有的快照。要监控当前正在运行的快照,可以使用带有 _current 请求路径参数的 get snapshot API。

GET _snapshot/my_repository/_current

如果要获取参与当前运行快照的每个分片的完整详细信息,可以使用 get snapshot status API。

GET _snapshot/_status

成功创建快照之后,就可以在S3上看到备份的数据块文件,这个是正确的快照层级结构:
在这里插入图片描述

恢复索引快照

POST _snapshot/my_repository/my_snapshot_2099.05.06/_restore
{"indices": "my-index,logs-my_app-default",
}

这篇关于OpenSearch的快照还原的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113590

相关文章

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

通用内存快照裁剪压缩库Tailor介绍及源码分析(一)

背景 我们知道内存快照是治理 OOM 问题及其他类型的内存问题的重要数据源,内存快照中保存了进程虚拟机的完整的堆内存数据,很多时候也是调查其他类型异常的重要参考。但是dump出来的堆转储文件.hprof往往很大,以 LargeHeap 应用为例,其 OOM 时的内存快照大小通常在512M左右,要有效的存储和获取都是一个问题。 线下拿到hprof文件相对容易,也可以预防OOM,但覆盖的场景十分有

轻量级异步屏障快照(ABS)算法解析

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 在很久之前,笔者曾简单介绍了Chandy-Lamport分布式快照算法。而Flink的检查点过程正是依赖于Chandy-Lamport算法的“本地化”版本——异步屏障快照(asynchronous barrier snapshotting, ABS)算法。该算法由五位大佬(其中也包含Dat

备份还原 本地所有的Docker 镜像并且在另一台机器上还原

备份命令 并且显示进度 backup_docker_images.sh sudo yum install jq chmod +x backup_docker_images.sh sudo ./backup_docker_images.sh #!/bin/bash# 指定备份目录backup_dir="/app/dockerImageBackup/Images"# 创建备份目录,如果不

Linux shell编程学习笔记77:tar命令——快照 备份(下)

0 前言 在 Linux shell编程学习笔记76:tar命令——快照 & 备份(上)-CSDN博客https://blog.csdn.net/Purpleendurer/article/details/141862585?spm=1001.2014.3001.5501 中我们研究了 tar命令 的功能、格式、选项说明。 现在我们来实践一下。 1 应用实例 1.1 创建演示

数据库系统 第37节 数据库快照

数据库快照是一种用于数据保护和恢复的技术,它可以创建数据库在某一特定时间点的完整副本,而不需要停止数据库服务。这种技术对于数据备份、灾难恢复、报告生成和分析等场景非常有用。数据库快照通常可以分为两种类型:行级快照和页级快照。 行级快照: 行级快照在数据库中为每一行数据维护一个版本历史记录。这意味着,当数据被修改时,旧版本的数据不会被立即删除,而是保留在数据库中,直到快照不再需要。这种快照方式允

WordPress 手动还原到旧版本与新版

WordPress 手动还原到旧版本与新版 WordPress后台一般都可以直接一键升级,但是也存在一些情况导致无法自动升级,比如说权限不足,还有就是一些文件的权限不一样,当然我们可以设置0777权限,但是不够安全。简单说一下 wordpress 手动还原到旧版本 和 WordPress 手动更新到最新版的方法,其实,操作都是一样的,可以说是手动更新到任意版本。

mongodb 数据库操作--备份 还原 导出 导入

mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport。 一,mongodump备份数据库 1,常用命令格 1 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果

游戏应用|空地模型实景融合,还原《黑神话:悟空》游戏场景

古色斑驳,巍峨险峻,是历史的低语,诉说着千百年的沧桑与辉煌;飞檐翘角,雕梁画栋,凝聚着时代的文明与智慧。在数字化浪潮下,我们利用实景三维技术,翻开了中华古建筑这本伟大的史诗。 PART01 三维重建数字化 实景融合开创作业新思路 本次项目应国内某游戏公司邀请,由乘风创新团队主导开展。 传统的游戏场景制作受限于建模技术,往往还原效果不佳,缺少立体与真实感;同时需耗费大量的时间与人力成本。

刚复制的vm workstation 虚机机,在别人机器上启动时报H:\centos-6.0-710\CentOS 64 位.vmdk”或它所依赖的某个快照磁盘 ” 原因: 未能锁定文件”

打不开磁盘“H:\centos-6.0-710\CentOS 64 位.vmdk”或它所依赖的某个快照磁盘 ” 原因: 未能锁定文件”      这主要是非正常关虚拟机造成的,具体原因如下:虚拟机为了防止有多虚拟机共用一个虚拟磁盘(就是后 缀为.vmdk那个文件)造成数据的丢失和性能的削弱,每次启动虚拟机时会给每个虚拟磁盘加一个磁盘锁(也就是后缀为.lck的那个文件夹)对虚拟磁盘文件 进行锁定保