首页 > 其他分享 >Ceph RGW ElasticSearch同步模块介绍

Ceph RGW ElasticSearch同步模块介绍

时间:2023-03-01 10:46:07浏览次数:48  
标签:存储 自定义 RGW Ceph 索引 meta ElasticSearch 数据

ElasticSearch同步模块

注意:截至 2020 年 5 月 31 日,仅支持 Elasticsearch 6 及更低版本。不支持 ElasticSearch 7。

此同步模块将其他区域的元数据写入 ElasticSearch。截至 luminous,这是我们目前存储在 ElasticSearch 中的数据字段的 json。

{
     "_index" : "rgw-gold-ee5863d6",
     "_type" : "object",
     "_id" : "34137443-8592-48d9-8ca7-160255d52ade.34137.1:object1:null",
     "_score" : 1.0,
     "_source" : {
       "bucket" : "testbucket123",
       "name" : "object1",
       "instance" : "null",
       "versioned_epoch" : 0,
       "owner" : {
         "id" : "user1",
         "display_name" : "user1"
       },
       "permissions" : [
         "user1"
       ],
       "meta" : {
         "size" : 712354,
         "mtime" : "2017-05-04T12:54:16.462Z",
         "etag" : "7ac66c0f148de9519b8bd264312c4d64"
       }
     }
   }

弹性搜索层类型可配置项

  • endpoint

指定要访问的 Elasticsearch 服务器端点。

  • num_shards(整数)

Elasticsearch 在数据同步初始化时将配置的分片数量。请注意,这在初始化后无法更改。此处的任何更改都需要重新构建 Elasticsearch 索引并重新初始化数据同步过程。

  • num_replicas(整数)

Elasticsearch 在数据同步初始化时将配置的副本数。

  • explicit_custom_meta(true|false)

指定是否为所有用户自定义元数据编制索引,或者用户是否需要配置(在存储桶级别)应为哪些自定义元数据条目编制索引。默认情况下这是false。

  • index_buckets_list(逗号分隔的字符串列表)

如果为空,则将为所有存储桶编制索引。否则,将仅对此处指定的存储桶编制索引。可以提供存储桶前缀(例如 foo*)或存储桶后缀(例如 *bar)。

  • approved_owners_list(逗号分隔的字符串列表)

如果为空,则将为所有所有者的存储桶编制索引(受其他限制的约束),否则,将仅对指定所有者拥有的存储桶编制索引。还可以提供后缀和前缀。

  • override_index_path(字符串)

如果不为空,此字符串将用作 Elasticsearch 索引路径。否则,将在同步初始化时确定并生成索引路径。

最终用户元数据查询

从新版本Luminous开始。

由于 ElasticSearch 集群现在存储对象元数据,因此 ElasticSearch 端点不向公众公开,只有集群管理员才能访问,这一点很重要。为了向最终用户本身公开元数据查询,这会带来一个问题,因为我们希望用户只查询他们的元数据,而不是任何其他用户的元数据,这将要求 ElasticSearch 集群以类似于 RGW 的方式对用户进行身份验证,这会带来问题。

从元数据主区域中的Luminous  RGW 开始,现在可以为最终用户请求提供服务。这允许不公开 elasticsearch 端点,并且还解决了身份验证和授权问题,因为 RGW 本身可以对最终用户请求进行身份验证。为此,RGW 在存储桶 API 中引入了一个新查询,可以为弹性搜索请求提供服务。所有这些请求都必须发送到元数据主区域。

语法

获取弹性搜索查询

GET /{bucket}?query={query-expr}

请求参数:

  • max-keys:要返回的最大条目数
  • marker:分页标记

表达式 := [(]<arg> <op> <value> [)][<and|or> ...]

OP 是以下之一:<、<=、==、>=、>

例如:

GET /?query=name==foo

将返回用户具有读取权限的所有索引键,并命名为“foo”。

输出将是 XML 中的键列表,类似于 S3 列表存储桶响应。

配置自定义元数据字段

定义应为哪些自定义元数据条目编制索引(在指定的存储桶下),以及这些键的类型。如果配置了显式自定义元数据索引,则需要这样做,以便 rgw 将为指定的自定义元数据值编制索引。否则,在索引元数据键的类型不是字符串的情况下,则需要它。

POST /{bucket}?mdsearch
x-amz-meta-search: <key [; type]> [, ...]

多个元数据字段必须以逗号分隔,可以为带有 ; 的字段强制使用类型。当前允许的类型是字符串(默认)、整数和日期。

例如,如果要将自定义对象元数据 x-amz-meta-year 索引为 int,将 x-amz-meta-date 作为类型日期,将 x-amz-meta-title 作为字符串,您可以这样做:

POST /mybooks?mdsearch
x-amz-meta-search: x-amz-meta-year;int, x-amz-meta-release-date;date, x-amz-meta-title;string

删除自定义元数据配置

删除自定义元数据存储桶配置。

DELETE /<bucket>?mdsearch

获取自定义元数据配置

检索自定义元数据存储桶配置。

GET /<bucket>?mdsearch

 

标签:存储,自定义,RGW,Ceph,索引,meta,ElasticSearch,数据
From: https://www.cnblogs.com/varden/p/17166985.html

相关文章

  • Python elasticsearch 使用心得
    一、配置python==3.6/3.8#更高版本的elasticsearch会出现doc_type被统一成_doc导致旧版语句报错的情况pipinstallelasticsearch==7.8.0二、连接esfromelastics......
  • Cephadm部署rgw ingress和nfs ingress(Pacific版本)
    rgwingress自动生成的配置keepalived的配置文件:/etc/keepalived/keepalived.conf#Thisfileisgeneratedbycephadm.vrrp_scriptcheck_backend{script"/u......
  • windows 安装 Elasticsearch
    一.官网下载安装包Elasticsearch高版本内置jdk,无需使用系统安装的java,本文以8.3.3版本为例,无需修改配置文件1.下载安装包https://www.elastic.co/cn/downloads/elastics......
  • Elasticsearch:一篇学会Elasticsearch(7.x)
    前言常见的数据类型一般为3种:结构化数据、非结构化数据、半结构化数据。结构化数据,通常会放在关系型数据库,如Mysql,Oracle等非结构化数据,如文档、音频、视频等,是二维结......
  • ElasticSearch 8.2.0版本访问9200端口,返回Empty reply from server
    Docker安装ElasticSearch8.2.0版本后,使用curl访问127.0.0.1:9200端口,返回Emptyreplyfromserver  出现问题的情况可能如下:1、ElasticSearch未启动、或是内存不足......
  • 查询并删除Elasticsearch库中指定字段重复的数据
    比如我要查询Elasticsearch库中字段为:id的有没有重复数据,可以用下面的方法,先查询出来,再执行删除。$from=0;$size=0;$url='http://127.0.0.1/aaaaaa/_search';$d......
  • elk elasticsearch的简单介绍和操作
    目录elasticsearch的简单介绍和操作集群节点master节点data节点客户端节点部落节点集群的配置属性集群恢复设置属性设置不要对集群做以下操作集群的分片和副本重新创建一个......
  • Elasticsearch 操作更新数据后,没有立即生效
    问题描述:SpringBoot 项目使用 RestHighLevelClien操作ES修改数据成功,之后前端调用查询接口发现数据并未更新,待1S左右再次刷新发现ES数据成功更新。从现象来看是ES操作......
  • 深入理解Elasticsearch的分布式架构
    第一部分:什么是Elasticsearch的分布式架构Elasticsearch是一种基于Lucene的分布式搜索引擎,可以进行全文搜索和分析。它采用分布式架构,允许在多个节点上进行水平扩展,以处理大......
  • Elasticsearch插件开发指南:如何扩展Elasticsearch的功能
    1.概述Elasticsearch是一个基于Lucene的分布式搜索引擎,它提供了许多内置的功能和API,例如全文搜索、聚合、地理位置搜索等。但是,在某些情况下,内置的功能可能无法满足我们的......