上云无忧 > 文档中心 > 百度智能云Elasticsearch - 基于BOS的冷热数据分离
Elasticsearch
百度智能云Elasticsearch - 基于BOS的冷热数据分离

文档简介:
百度智能云Elasticsearch(以下简称为ES)使用不同的存储介质来存储数据,达到冷热数据分离的目的: 对于读写性能要求比较高的“热数据”,使用SSD云磁盘存储,保障了高效的查询性能。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

百度智能云Elasticsearch(以下简称为ES)使用不同的存储介质来存储数据,达到冷热数据分离的目的:

  • 对于读写性能要求比较高的“热数据”,使用SSD云磁盘存储,保障了高效的查询性能。
  • 对于存储量需求比较大但对查询性能要求较低的“冷数据”,使用价格更低廉的百度对象存储(BOS)存储数据,大幅度降低存储成本。

    注意:目前冷热数据分离功能仅支持功能发布后新创建的7.4.2版本的实例。无法使用冷热数据分离功能的集群请提交工单,BES团队会协助升级集群,升级方式参见ES版本升级。

实现原理

优势

  • 冷热数据分离:热数据使用SSD云磁盘存储,保证性能,冷数据使用价格低廉的BOS存储,更经济的满足用户的需求。
  • 高性价比:使用BOS作为共享存储,扩大了ES单节点的存储容量,用户可以使用较少的ES节点存储大量的数据,大幅度降低存储成本。

适用场景

  • 历史日志分析场景:历史数据量大,查询频率相对低,使用冷热数据分离可以大幅降低存储成本。

使用方法

最开始使用基于BOS冷热分离架构时,首先创建BOS Bucket的并配置,然后将BOS相关信息配置到ES中。最后就可以在ES中创建冷热数据分离Index,在业务需要时 手动 或通过管控平台 定时调度功能 进行索引置冷,将Index迁移到BOS。

创建BOS Bucket

冷热数据分离使用BOS来做冷数据的共享存储,因此在使用冷热数据分离架构前,需要先新建BOS Bucket。

用户可以通过 Console 控制台创建BOS Bucket:

  1. 登录 对象存储 BOS 管理控制台
  2. 在控制台左侧的导航栏中找到并点击 + 按钮(“新建 Bucket”按钮),在弹出框中按照提示创建Bucket。
  3. 新建Bucket配置项说明:
  • 默认存储类型:选择“标准存储
  • CDN官方加速关闭

其他配置项用户可根据业务需求选择。创建Bucket详细方式参见:创建Bucket

Bucket生命周期配置

使用BOS创建Bucket后,强烈建议配置Bucket生命周期。

  1. 登录 对象存储 BOS 管理控制台。
  2. 在左侧Bucket列表中,选择需要设置权限的 Bucket,点击 Bucket 名称进入 Bucket 管理目录。
  3. 在上方导航栏选择 配置管理 标签。
  4. 在 配置管理 页面中选择 基础配置,在 生命周期配置 区域点击 新增配置 ,对该Bucket的生命周期进行配置。默认情况下该功能不开启。

  1. 配置规则:
  • 不可启用删除Object规则,避免冷数据被删除
  • 启用删除Part规则,保存天数设为1天,防止未上传完整的数据块占用存储空间,造成多余存储费用

配置BOS信息到BES

通过如下API可以设置BOS存储信息:

PUT /_cluster/settings
{
  "persistent": {
    "bpack.remote_storage.bos.access_key": "xxxxxxxx",
    "bpack.remote_storage.bos.secret_key": "xxxxxxxx",
    "bpack.remote_storage.bos.bucket": "es_remote_bucket",
    "bpack.remote_storage.bos.endpoint": "bj.bcebos.com",
    "bpack.remote_storage.bos.base_path": "es_shared_data"
  }
}

参数说明:

参数 含义
bpack.remote_storage.bos.access_key 访问BOS需要的access key, 可以在百度智能云的控制台上获得。
bpack.remote_storage.bos.secret_key 访问BOS需要的secret access key,可以在百度智能云的控制台上获得。
bpack.remote_storage.bos.bucket BOS上建立的bucket的名称,需要提前创建。
bpack.remote_storage.bos.endpoint BOS的访问地址,一般情况下每个地区有不同的地址,您可以参考BOS的使用文档来获得每个地域的地址。
bpack.remote_storage.bos.base_path 百度智能云Elasticsearch存放数据的目录。

创建冷热数据分离Index

在创建Index时,需要特别指定index.store.type为bosfs,这样百度智能云Elasticsearch才会使用冷热分离的架构来管理Index。

PUT /{index_name}
{
  "settings": {
    "index.store.type": "bosfs"
  }
}

在以上操作结束后,用户可以和访问普通Index一样来对冷热数据分离的Index进行写入、查询数据。

对已存在的Index启用冷热数据分离架构

对于之前已经建好的索引,也可以使用基于bos的冷热分离功能。

前提条件:完成BOS Bucket创建和配置,已经将BOS信息配置到BES。

操作说明:

首先关闭索引:

POST /{index_name}/_close

然后将store.type设置为bosfs :

put /{index_name}/_settings
{
    "index.store.type": "bosfs"
}

再重新打开索引:

POST /{index_name}/_open

在以上操作结束后,就将此Index设置成了冷热数据分离的Index。

冷数据迁移的触发条件

冷热数据分离的Index中的数据在满足以下2种情况之一时,会触发数据迁移到BOS。

手动触发迁移

当这个Index中的数据不再写入,并且读取频率比较低的时候,用户可以把Index设置为Cold状态,手动触发数据迁移。设置方式如下:

POST /_bpack/migrate/{index_name}/cold

注意:Cold状态的Index为只读状态,不能再写入数据。已经置为Cold状态的Index,不可以再改为普通状态。

定时调度触发迁移

用户可以使用定时调度-索引置冷来触发迁移,在定时置冷任务执行后,Index会置为Cold,并触发数据迁移,效果与上文手动触发迁移一致。

建议用户使用手动触发迁移或定时调度触发迁移来进行索引置冷。

本地缓存淘汰策略

当本地磁盘使用率超过了缓存最大磁盘限制,本地数据会被删除。缓存最大磁盘限制默认为75%,用户可以通过修改设置项bpack.bosfs.cache.disk.limit来修改缓存最大磁盘限制,修改方式如下:

PUT /_cluster/settings
{
    "persistent": {
        "bpack.bosfs.cache.disk.limit" : "50%"
    }
}
or
PUT /_cluster/settings
{
    "persistent": {
        "bpack.bosfs.cache.disk.limit" : "0.5"
    }
}

常见问题

  • Q:已经置为bosfs的Index还能改为其他的存储类型(如hybridfs、niofs等)吗?

    A:如果改为其他存储类型,由于数据存储目录不同,数据将失效。所以不可以改变为其他存储类型。

  • Q:对于已经存在的Index可以启用基于BOS的冷热分离结构吗?

    A:可以,操作方式如上文《对已存在的Index启用冷热数据分离架构》章节。

  • Q:已经置为Cold状态的Index还能改回普通状态吗?

    A:不可以。且Cold状态的Index是只读状态,不能再写入数据了。

  • Q:没有设置BOS信息,或BOS信息有误,可以创建bosfs的Index吗?

    A:可以创建成功,但Index不可用。更正BOS信息后,需要重新创建索引。

相似文档
  • 使用百度智能云Elasticsearch前,需要优先结合业务需求和所存数据,评估集群所需的资源容量,包括磁盘容量、单机规格、shard大小和数量等。评估方式如下:
  • 前提条件: 已创建百度智能云账号。创建账号参考百度云账号注册流程。 功能入口: 进入百度智能云首页。 在搜索框中输入”Elasticsearch“,点击进入百度智能云 Elasticsearch 产品首页。
  • Elasticsearch集群搭建好之后,用户可以通过Kibana访问集群,也可以通过curl命令访问集群,然后进行数据的导入或查询。在使用Elasticsearch服务前,用户需要注意以下几点:
  • 前提条件: 开通百度智能云Elasticsearch服务(参考创建集群)且可访问Elasticsearch集群(参考访问Elasticsearch服务)后,可以通过附赠的kibana节点访问Elasticsearch集群,然后可以创建索引、导入数据和搜索数据。
  • 1、登录百度智能云并选择Elasticsearch服务 如果您还没有百度智能云的账号,请首先通过这个地址进行注册 http://bce.baidu.com/index.html 然后选择Elasticsearch服务。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部