云服务器内容精选

  • 应用场景 通过备份与恢复实现第三方Elasticsearch集群和华为云Elasticsearch集群之间的数据迁移,依赖存储仓库。常用于以下场景: 变更服务提供商:如果企业当前使用的是第三方Elasticsearch服务,但出于成本、性能或其他战略考虑,希望更换服务提供商至华为云。 集群整合:将分散在不同第三方Elasticsearch集群中的数据统一数据迁移到华为云Elasticsearch集群进行集中管理,以实现更高效的数据分析和查询。 跨版本迁移:将低版本的第三方Elasticsearch集群数据迁移到高版本的华为云Elasticsearch集群中。 技术栈统一:当企业已经在华为云上运行其他服务时,为了技术栈的统一和简化管理,可以选择将Elasticsearch集群也迁移至华为云。
  • 操作步骤 登录Elasticsearch所在的第三方友商云,创建一个支持s3协议的共享存储仓库,例如登录阿里云的进入OSS服务创建目录“patent-esbak”, 或者登录腾讯云进入COS服务创建目录“patent-esbak”。 在第三方Elasticsearch集群中创建快照备份仓库,用于存放Elasticsearch快照数据。 例如,在Elasticsearch中创建一个备份仓库“my_backup”,关联到存储仓库OSS。 PUT _snapshot/my_backup { # 存储仓库类型。 "type": "oss", "settings": { # 步骤1中存储仓库的内网访问 域名 。 "endpoint": "http://oss-xxx.example.com", # 存储仓库的用户ID和密码。认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密, 确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ak和sk。 "access_key_id": "ak", "secret_access_key": "sk", # 步骤1创建的存储仓库的bucket名称。 "bucket": "patent-esbak", # 是否打开快照文件的压缩功能。 "compress": false, # 配置此参数可以限制快照数据的分块大小。当上传的快照数据超过这个数值,数据就会被分块上传到存储仓库中。 "chunk_size": "1g", # 仓库的起始位置,默认是根目录。 "base_path": "snapshot/" } } 在第三方Elasticsearch集群中创建快照。 为所有索引创建快照。 例如,创建一个名为“snapshot_1”的快照。 PUT _snapshot/my_backup/snapshot_1?wait_for_completion=true 为指定索引创建快照。 例如,创建一个名为“snapshot_test”的快照,该快照包含索引“patent_analyse”和“patent”。 PUT _snapshot/my_backup/snapshot_test { "indices": "patent_analyse,patent" } 在第三方Elasticsearch集群中查看集群的快照创建进度。 执行如下命令,可以查看所有快照信息。 GET _snapshot/my_backup/_all 执行如下命令,可以查看指定快照“snapshot_1”的信息。 GET _snapshot/my_backup/snapshot_1 通过华为云 对象存储迁移 服务 OMS 将快照数据从存储仓库迁移到 对象存储服务 OBS的“esbak”桶中。 OMS支持多种云服务商数据迁移到对象存储服务OBS中,具体请参见各云服务商迁移教程。 在OMS创建迁移任务时,“元数据迁移方式”一定要选择“保留元数据”,否则数据迁移会有异常。 在 CSS 服务的Elasticsearch集群中创建一个存储仓库关联到OBS,用于恢复第三方Elasticsearch的快照数据。 例如,在集群中创建一个“my_backup_all”的存储仓库,关联上一步OBS桶“esbak”。 PUT _snapshot/my_backup_all/ { "type" : "obs", "settings" : { # OBS的内网访问域名。 "endpoint" : "obs.xxx.example.com", "region" : "xxx", # 访问OBS的用户名和密码。认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险, 建议在配置文件或者环境变量中密文存放, 使用时解密, 确保安全;本示例以ak和sk保存在环境变量中为例, 运行本示例前请先在本地环境中设置环境变量ak和sk。 "access_key": "ak", "secret_key": "sk", # OBS的桶名称,和上一步迁移目标集群的OBS桶名保持一致。 "bucket" : "esbak", "compress" : "false", "chunk_size" : "1g", # 注意“snapshot”后面没有/。 "base_path" : "snapshot", "max_restore_bytes_per_sec": "100mb", "max_snapshot_bytes_per_sec": "100mb" } } 在 CS S服务的Elasticsearch集群中通过快照恢复数据。 查看所有快照信息。 GET _snapshot 通过快照恢复数据。 恢复某一快照中的所有索引。例如恢复名为“snapshot_1”的快照的所有索引数据。 POST _snapshot/my_backup_all/snapshot_1/_restore?wait_for_completion=true 恢复某一快照中的部分索引。例如名为“snapshot_1”的快照中只恢复非“.”开头的索引。 POST _snapshot/my_backup/snapshot_1/_restore {"indices":"*,-.monitoring*,-.security*,-.kibana*","ignore_unavailable":"true"} 恢复某一快照中的指定索引,并重命名。例如在名为“snapshot_1”的快照中,将索引“index_1”恢复为“restored_index_1”,“index_2”恢复为“restored_index_2”。 POST /_snapshot/my_backup/snapshot_1/_restore { # 只恢复索引“index_1”和“index_2”,忽略快照中的其他索引。 "indices": "index_1,index_2" # 查找正在恢复的索引,该索引名称需要与提供的模板匹配。 "rename_pattern": "index_(.+)", # 重命名查找到的索引。 "rename_replacement": "restored_index_$1" } 查看快照恢复结果。 查看所有快照的恢复结果。 GET /_recovery/ 查看指定索引的快照恢复结果。 GET {index_name}/_recovery