功能简介
天翼云云搜索服务的OpenSearch和Elasticsearch都支持通过天翼云对象存储ZOS实现存算分离功能,这一功能显著提升了数据管理的灵活性和系统的可扩展性。
存算分离是现代分布式系统中一种重要的架构设计,通过将存储和计算资源解耦,使得数据存储和处理能力可以独立扩展,从而优化资源利用率并降低运营成本。
在传统的分布式搜索引擎架构中,存储和计算通常是紧耦合的,数据存储在同一集群的节点上,并由这些节点负责数据的索引和查询处理。然而,随着数据规模的增长和计算需求的变化,存算耦合的架构可能面临扩展性和成本效益方面的挑战。
通过支持对象存储,搜索引擎允许用户将数据存储在外部的对象存储系统天翼云ZOS中。这种架构下,计算节点主要负责数据的索引和查询处理,而数据存储则由对象存储系统来管理。计算节点可以根据需要动态地从对象存储中拉取数据,进行处理后再将结果返回。
应用场景与优势
弹性扩展
存算分离使得存储和计算资源可以独立扩展。用户可以根据数据量和计算需求的变化分别扩展存储容量和计算节点数量,从而实现灵活的资源管理,避免过度配置带来的浪费。
成本优化
对象存储通常具有较低的成本,尤其适合存储大量不常访问的冷数据。通过将数据存储在对象存储中,用户可以显著降低存储成本,同时只需为需要处理的热数据配置计算资源。
高可用性与灾备
对象存储系统通常具有内建的高可用性和多地冗余能力,可以确保数据的持久性和可靠性。即使计算节点发生故障,数据仍然安全地存储在对象存储中,计算资源可以快速恢复并重新处理数据。
灵活的数据管理
存算分离的架构允许用户更灵活地管理数据生命周期。例如,可以将冷数据移至对象存储,并在需要时动态加载到计算节点进行分析。这样,用户能够更好地控制数据的访问模式和存储成本。
技术实现与应用
实现存算分离需要配置搜索引擎与对象存储系统的连接。用户可以通过搜索引擎的 API 和配置文件,指定外部对象存储作为数据的存储位置。计算节点在进行索引或查询操作时,会根据需要从对象存储中拉取数据,这个过程是透明且自动化的。
搜索引擎还提供了工具和接口,使用户能够监控存算分离的运行状态,调整数据加载和处理的策略。无论是对大规模数据集的批处理,还是实时查询场景,搜索引擎的存算分离功能都能够提供高效的解决方案。
操作示例
我们以Elasticsearch为例,点击对应实例的“数据管理-备份管理”,开启备份。根据引导开通ZOS服务,创建存储桶,填写对象存储的AK/SK。具体操作可参考创建快照备份。
开通好备份功能之后,创建测试index:
PUT my_index
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "integer"
}
}
}
}插入数据:
POST my_index/_doc
{
"name": "John Doe",
"age": 30
}
POST my_index/_doc
{
"name": "Jane Doe",
"age": 25
}在备份管理页面,点击手动备份,填写备份名称、存储路径、备份对象等信息。备份对象我们选择索引,填写索引名称“my_index”。点击确认。备份状态变成“已生成”,就成功备份了。
在索引管理页面,删除“my_index”索引。删除成功后,索引管理查询没有“my_index”索引。
数据恢复:
如果需要继续使用“my_index”索引的场景,回到备份管理页面,针对生成的快照点击备份恢复,点击确认,等待恢复完成。
在索引管理页面,看到“my_index”索引又恢复到实例中即可正常使用查询分析等功能。
通过支持对象存储实现存算分离,搜索引擎在数据管理和系统架构方面提供了更大的灵活性和扩展性。无论是在弹性扩展、成本优化,还是在高可用性与灾备、灵活数据管理等场景中,存算分离都能够帮助用户更高效地利用资源,构建健壮且经济高效的分布式搜索和分析系统。