在当今数据驱动的时代,如何高效地存储和管理海量数据已成为企业面临的一大挑战。为了应对这一需求,TDengine Enterprise 不仅支持使用对象存储(S3),还早已引入了独特的多级存储功能。这一功能不仅能够降低存储成本,还能显著提升数据写入性能,并简化系统维护流程。
多级存储的设计理念是将数据根据热度进行分级管理。热度较高的数据被存储在高速介质上,以便快速访问和处理;而时间久远、热度较低的数据则存放在低成本的存储介质上,从而实现经济性的最大化。这种策略的实施,不仅为企业节省了存储费用,更使得数据的写入和查询变得更加高效。
在江河信息水利物联感知服务平台的升级中,TDengine 多级存储功能就发挥了重要作用。借助这一功能,江河信息将原有的 10 多台 NVME 存储服务器精简为仅 3 台高效云盘与机械硬盘的服务器,这一转变不仅大幅节省了硬件成本开销,更有效降低了运维的工作量,提升了整体资源的利用效率。
本文将深入探讨 TDengine 的多级存储功能,介绍其配置方式、负载均衡策略以及如何实现高效的数据管理。通过对这一功能的全面解析,我们希望帮助更多用户充分利用 TDengine 的优势,优化数据存储策略,提升整体系统性能。

TDengine 多级存储好在哪?
与此同时,提升写入性能也是 TDengine 多级存储功能的一大亮点。每级存储支持多个挂载点,这意味着在进行数据写入时,可以实现更高的并发处理能力。得益于这一设计,WAL(预写日志)可以支持 0 级的多挂载点并行写入,从而极大地提升了写入性能。
在实际应用场景中,我们测得 TDengine 能够支持持续写入每秒超过 3 亿个测点,这对于数据密集型应用尤为重要,确保了系统能够高效处理实时数据。此外,TDengine 在机械硬盘上的表现也相当出色,磁盘 IO 吞吐量实测可达 2GB/s,这不仅为大规模数据的实时处理奠定了坚实的基础,也使得企业在面对海量数据时能够游刃有余。
除了成本和性能的提升,方便维护也是多级存储功能的一大优势。一旦各级存储的挂载点配置完成,后续的系统数据迁移等工作便无需人工干预。这种自动化的管理方式大大降低了运维人员的工作负担,提升了系统的可靠性。而且,存储扩容变得更加灵活和方便,企业可以根据实际需求随时调整存储策略,灵活应对业务变化。
最后,TDengine 的多级存储功能在 SQL 查询方面也展现出其透明性。无论用户查询的数据是否跨越不同的存储级别,一条 SQL 语句都可以轻松返回所有相关数据。这种设计不仅简化了用户的操作流程,还提高了查询的效率。用户无需关注数据存储的具体位置,只需专注于数据的分析和应用,真正实现了简单高效的数据管理。这种用户友好的设计理念,使得 TDengine 不仅适合技术专家,也能满足各种层次用户的需求。
多级存储负载均衡与挂载点选择策略
从 TDengine 3.1.0.0 版本开始,系统引入了对多个 0 级挂载点的支持。当一个 dnode 配置了多个 0 级挂载点时,所有 vnode 的主目录将被均衡分布到这些挂载点上,由此实现了写入负荷的共享。这一优化策略不仅提高了整体系统的写入能力,还使得系统在网络 I/O 和其他处理资源不成为瓶颈的情况下,能够实现线性增长的写入性能。测试结果表明,随着 0 级挂载点数量的增加,整个系统的写入能力也成倍提升,极大地增强了数据处理的效率。
除了负载均衡,多级存储还对同级挂载点的选择策略进行了优化。通常情况下,TDengine 会采用 round robin 策略从同级挂载点中选择一个用于生成新的数据文件。然而,在实际环境中,各磁盘的容量可能存在差异,或者虽然容量相同,但写入的数据量却不同,这会导致每个磁盘的可用空间不均衡,在实际进行选择时有可能会选择到一个剩余空间已经很小的磁盘。
为了解决这一问题,从 TDengine 3.1.1.0 版本开始,我们引入了新的配置项 minDiskFreeSize。当某个磁盘的可用空间小于等于该阈值时,该磁盘将不再被选中用于生成新的数据文件。该配置项的单位为字节,并建议其值大于 2GB(即会跳过可用空间小于 2GB 的挂载点)。这样的设计确保了在进行数据写入时,能够有效避免选择到已接近满载的磁盘,从而提升了存储的整体效率。
进一步地,从 3.3.2.0 版本开始,TDengine 引入了新的配置项 disable_create_new_file,用于控制某个挂载点上是否可以生成新文件。其缺省值为 false,即默认情况下,每个挂载点都可以生成新文件。这一策略为运维人员提供了更大的灵活性,使他们能够根据实际需求对挂载点进行管理,从而优化系统的存储性能。
通过这些负载均衡和挂载点选择策略的优化,TDengine 多级负载功能得到了显著提升,不仅提高了数据写入的效率,还确保了存储资源的合理利用,为用户在海量数据处理时提供了强有力的支持。
配置方式
TDengine 的多级存储功能支持最多 3 级,每级可配置多达 128 个挂载点。典型的配置方案包括:
0 级:配置多个挂载点,每个挂载点对应一块 SAS 硬盘;
1 级:配置多个挂载点,每个挂载点可以对应单块或多块 SATA 硬盘;
2 级:可配置为 S3 存储或其他廉价的网络存储。
在 TDengine 中,多级存储的配置方式如下(在配置文件 /etc/taos/taos.cfg 中):
dataDir [path] <level> <primary>
其中,各参数的含义如下:
path:挂载点的文件夹路径。
level:介质存储等级,取值为 0、1 或 2。
如果省略该参数,默认为 0。各级存储之间的数据流向为:0 级存储 → 1 级存储 → 2 级存储。需要注意的是,同一存储等级可以挂载多个硬盘,而同一存储等级上的数据文件将分布在该存储等级的所有硬盘上。数据在不同级别存储介质之间的移动是由系统自动完成的,用户无需干预。 primary:标识是否为主挂载点,取值为 0(否)或 1(是)。如果省略该参数,默认为 1。在配置中,只允许存在一个主挂载点(即 level=0,primary=1)。以下是一个示例配置方式:
dataDir /mnt/data1 0 1dataDir /mnt/data2 0 0dataDir /mnt/data3 1 0dataDir /mnt/data4 1 0dataDir /mnt/data5 2 0dataDir /mnt/data6 2 0
需要注意的是:
1. 多级存储不允许跨级配置。合法的配置方案包括:仅 0 级;仅 0 级 + 1 级;以及 0 级 + 1 级 + 2 级。禁止只配置 level=0 和 level=2,而不配置 level=1。
2. 禁止手动移除使用中的挂载盘,并且挂载盘目前不支持非本地的网络盘。
结语

往期推荐
客户盘点:北微传感、青山钢铁、首自信、国电投、江河信息、寓信科技、前晨汽车、华风数据、协鑫鑫光、双合电气、路特斯、昆船电子、天合富家、红有软件、上海晶澳太阳能、极氪汽车、威士顿、树根互联、福州城建、积成电子、西电电力、中船九院、大唐水电院
Use Case:泛能网产业智能平台、电芯容量预测系统、煤矿安全生产综合管控平台、虚拟电厂运营管理平台、明阳集团能源大数据应用系统、知轮智慧轮胎系统、中国地震台网中心、中移物联智慧出行场景、搜狐基金、智光电气、黑格智能设备追踪场景、韵达订单扫描系统、顺丰大数据监控平台、车辆轨迹定位存储引擎项目、西门子轻量级数字化解决方案
技术分享:TDengine S3 存储、TDengine 流计算、TDengine 建模实战、与工业 SCADA 深度融合、TDengine 与新型电力系统、TDgpt 如何助力数据预测、Historian Connector+TDengine、长查询问题实战分享、TDengine 数据订阅、TDengine SQL 查询规则、万字长文解读怎样激活 TDengine 最高性价比
测试报告:TDengine 线性扩展能力测试、IoT 场景下 TDengine 3.0 性能对比分析报告、DevOps 场景下 TDengine 3.0 性能对比分析报告
👇 点击阅读原文,立即体验 TDgpt!




