OpenSearch 与对象存储集成
功能概述
OpenSearch 支持创建快照将指定索引甚至整个集群的数据存储到某远端仓库,并能从远端仓库存储的快照中恢复数据。
repository-s3 是一款将对象存储桶作为 SnapShot 存储仓库的索引迁移插件。
本章节主要介绍如何通过 repository-s3 管理 OpenSearch 索引冷存储,包括创建冷存储、从冷存储恢复数据、以及查看和删除冷存储仓库和快照。
操作步骤
步骤一:安装 repository-s3 插件
在 OpenSearch 节点上安装 repository-s3 插件,详情可参考安装 repository-s3 插件。
步骤二:准备 Access Key
创建 API 密钥,用于访问对象存储。详情可参考如何创建 API 密钥。
步骤三:准备对象存储桶
创建对象存储桶,详情参考如何创建对象存储桶。
步骤四:存储数据至对象存储
-
登录 Dashboard 管理控制台,详情可参考访问 OpenSearch Dashboard。
-
在 Dev Tools 的 Console 中执行以下命令,创建 Repository。
PUT _snapshot/<repository_name> { "type": "s3", "settings": { "endpoint": "<YourEndpoint>", "access_key": "<YourAccessKey>", "secret_key": "<YourSecretKey>", "bucket": "<bucket_folder>" "region": "<region_ID>" } }参数说明
参数 说明 示例 repository_name
自定义 Repository 名称。
repo-qingstor
endpoint
桶访问域名或者 URL。
s3.pek3a.qingstor.com
access_key
API 访问密钥 ID。
-
secret_key
API 访问密钥密钥串。
-
bucket
对象存储桶名。填写前文创建的对象存储桶。
my_qingstor_bucket
region
桶文件夹所在的 Region ID(区域 ID)。
pek3a
-
执行如下命令创建快照,该快照将会被存放在指定的对象存储 Bucket 中。
-
创建包含集群所有 Index 的 Snapshot。
curl -H "Content-Type: application/json" -XPUT "$OS_IP:9200/_snapshot/repo-qingstor/backup-2021.12.13?wait_for_completion=true" -
创建包含集群指定 Index 的 Snapshot。此处指定 Index 为
index_1,index_2。curl -H "Content-Type: application/json" -XPUT "$OS_IP:9200/_snapshot/repo-qingstor/backup-2021.12.13?wait_for_completion=true" -d' { "indices": "index_1,index_2", "ignore_unavailable": true, "include_global_state": false } '
-
步骤五:从对象存储恢复数据
OpenSearch 支持将对象存储的数据恢复到另一个集群,从而可实现 OpenSearch 集群之间索引导入与导出。
| 注意 |
|---|
|
-
登录 Dashboard 管理控制台,详情可参考访问 OpenSearch Dashboard。
-
在 Dev Tools 的 Console 中执行以下命令,恢复数据。
-
恢复包含集群所有 Index 的 Snapshot。
curl -H "Content-Type: application/json" -XPOST "$OS_IP:9200/_snapshot/repo-qingstor/backup-2021.12.13/_restore" -
恢复包含集群指定 Index 的 Snapshot。此处指定 Index 为
index_1,index_2。curl -H "Content-Type: application/json" -XPOST "$OS_IP:9200/_snapshot/repo-qingstor/backup-2021.12.13/_restore" -d' { "indices": "index_1,index_2", "ignore_unavailable": true, "include_global_state": false, "rename_pattern": "index_(.+)", "rename_replacement": "restored_index_$1" } '
-
附录
用户可参考以下步骤来管理对象存储。
-
登录 Dashboard 管理控制台,详情可参考访问 OpenSearch Dashboard。
-
在 Dev Tools 的 Console 中执行以下命令,查看指定 Repository 信息。
curl "$OS_IP:9200/_snapshot/repo-qingstor" -
执行以下命令行,查看所有满足特定条件的 Repository 信息。
curl "$OS_IP:9200/_snapshot/repo*,*backup*" -
执行以下命令行,查看所有 Repository 信息。
curl "$OS_IP:9200/_snapshot/_all" -
执行以下命令行,删除 Repository。
curl -XDELETE "$OS_IP:9200/_snapshot/repo-qingstor" -
执行以下命令行,查看指定 Repository 中某 Snapshot 信息。
curl "$OS_IP:9200/_snapshot/repo-qingstor/backup-2019.05.13" -
执行以下命令行,查看指定 Repository 中所有 Snapshot 信息。
curl "$OS_IP:9200/_snapshot/repo-qingstor/_all" -
执行以下命令行,删除 Snapshot
curl -XDELETE "$OS_IP:9200/_snapshot/repo-qingstor/backup-2021.12.13"