CN116450054A - Io请求处理方法、装置、主机和计算机可读存储介质 - Google Patents

Io请求处理方法、装置、主机和计算机可读存储介质 Download PDF

Info

Publication number
CN116450054A
CN116450054A CN202310713209.1A CN202310713209A CN116450054A CN 116450054 A CN116450054 A CN 116450054A CN 202310713209 A CN202310713209 A CN 202310713209A CN 116450054 A CN116450054 A CN 116450054A
Authority
CN
China
Prior art keywords
hard disk
target
target hard
preset
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310713209.1A
Other languages
English (en)
Other versions
CN116450054B (zh
Inventor
钟辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Panlian Zhicun Technology Co ltd
Original Assignee
Chengdu Panlian Zhicun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Panlian Zhicun Technology Co ltd filed Critical Chengdu Panlian Zhicun Technology Co ltd
Priority to CN202310713209.1A priority Critical patent/CN116450054B/zh
Publication of CN116450054A publication Critical patent/CN116450054A/zh
Application granted granted Critical
Publication of CN116450054B publication Critical patent/CN116450054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及分布式存储技术领域,提供了一种IO请求处理方法、装置、主机和计算机可读存储介质,所述方法包括:接收客户端发送的写请求,写请求包括待写对象;基于写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一硬盘组包括各存储节点的至少一块硬盘,每一硬盘只属于一个硬盘组,容量均衡策略用于保证多个硬盘组间的容量均衡和目标硬盘所属的硬盘组内的容量均衡;确定目标硬盘的当前IO处理负载;根据目标硬盘的当前IO处理负载,对待写对象进行写处理,以使目标硬盘的负载达到均衡。本发明能够使得分布式存储系统各节点尽量均衡,以提高分布式存储系统整体存储性能。

Description

IO请求处理方法、装置、主机和计算机可读存储介质
技术领域
本发明涉及分布式存储技术领域,具体而言,涉及一种IO请求处理方法、装置、主机和计算机可读存储介质。
背景技术
为了支撑不断增加的海量数据的存储需求,分布式存储系统以横向方式进行规模化地扩展,分布式存储系统中的存储节点数量越来越多,各存储节点不均衡地的问题极大地影响了分布式存储系统整体存储性能。
发明内容
本发明的目的在于提供了一种IO请求处理方法、装置、主机和计算机可读存储介质,其能够使得分布式存储系统各存储节点尽量均衡,以提高分布式存储系统整体存储性能。
本发明的实施例可以这样实现:
第一方面,本发明提供一种IO请求处理方法,应用于分布式存储系统中的主机,所述分布式存储系统还包括多个存储节点,每一所述存储节点包括多块硬盘,所述主机与客户端及多个所述存储节点均通信连接,所述的IO请求处理方法包括:
接收所述客户端发送的写请求,所述写请求包括待写对象;
基于所述写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一所述硬盘组包括各存储节点的至少一块硬盘,每一所述硬盘只属于一个硬盘组,所述容量均衡策略用于保证多个所述硬盘组间的容量均衡和所述目标硬盘所属的硬盘组内的容量均衡;
确定所述目标硬盘的当前IO处理负载;
根据所述目标硬盘的当前IO处理负载,对所述待写对象进行写处理,以使所述目标硬盘的负载达到均衡。
在可选的实施方式中,所述基于所述写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘的步骤包括:
计算每一所述硬盘组的剩余容量百分比;
根据每一所述硬盘组的剩余容量百分比,从多个所述硬盘组中确定目标硬盘组;
计算所述目标硬盘组中每一块硬盘的剩余容量百分比;
根据所述目标硬盘组中每一块硬盘的剩余容量百分比,从所述目标硬盘组中确定目标硬盘。
在可选的实施方式中,所述根据每一所述硬盘组的剩余容量百分比,从多个所述硬盘组中确定目标硬盘组的步骤包括:
若多个所述硬盘组的剩余容量百分比中的最大值与最小值之间的差值大于预设均衡差值,则将除剩余容量百分比最小的硬盘组之外的硬盘组作为初选硬盘组;
若多个所述硬盘组的剩余容量百分比中的最大值与最小值之间的差值不大于预设均衡差值,则将所有所述硬盘组作为初选硬盘组;
从所述初选硬盘组中确定所述目标硬盘组。
在可选的实施方式中,确定所述目标硬盘的当前IO处理负载的步骤包括:
计算所述目标硬盘所属的目标存储节点的节点带宽压力;
获取所述目标硬盘当前正在处理的IO数量及IO大小;
将所述节点带宽压力、IO数量及IO大小确定为所述目标硬盘的当前IO处理负载。
在可选的实施方式中,所述计算所述目标硬盘所属的目标存储节点的节点带宽压力的步骤包括:
根据所述目标存储节点中每一硬盘当前正在处理的IO及其IO长度,计算所述目标存储节点中每一硬盘当前正在处理的数据量;
将所述目标存储节点中所有硬盘当前正在处理的数据量求和,得到所述节点带宽压力。
在可选的实施方式中,所述主机还包括存储级别内存SCM,所述根据所述目标硬盘的当前IO处理负载,对所述待写对象进行写处理的步骤包括:
根据所述当前IO处理负载,判断所述目标硬盘是否满足预设负载条件;
若所述目标硬盘满足所述预设负载条件,则将所述待写对象写入至所述目标硬盘;
若所述目标硬盘不满足所述预设负载条件,则将所述待写对象暂存至所述SCM。
在可选的实施方式中,所述目标硬盘为多个,每一所述目标硬盘的当前IO处理负载均包括节点带宽压力、IO数量及IO大小,所述根据所述当前IO处理负载,判断所述目标硬盘是否满足预设负载条件的步骤包括:
根据每一所述目标硬盘的节点带宽压力、所述IO数量及所述IO大小,计算每一所述目标硬盘的负载评分;
若所述目标硬盘中存在负载评分不大于预设值的硬盘,则判定所述目标硬盘满足所述预设负载条件,否则,判定所述目标硬盘不满足所述预设负载条件。
在可选的实施方式中,所述目标硬盘为多个,每一所述目标硬盘的当前IO处理负载均包括节点带宽压力、IO数量及IO大小,所述根据所述当前IO处理负载,判断所述目标硬盘是否满足预设负载条件的步骤还包括:
若所述目标硬盘中存在节点带宽压力小于预设压力、IO数量小于预设数量、且IO大小小于预设大小的硬盘,则判定所述目标硬盘满足所述预设负载条件,否则,判定所述目标硬盘不满足所述预设负载条件。
第二方面,本发明提供一种IO请求处理装置,应用于分布式存储系统中的主机,所述分布式存储系统还包括多个存储节点,每一所述存储节点包括多块硬盘,所述主机与客户端及多个所述存储节点均通信连接,所述IO请求处理装置包括:
接收模块,用于接收所述客户端发送的写请求,所述写请求包括待写对象;
确定模块,用于基于所述写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一所述硬盘组包括各存储节点的至少一块硬盘,每一所述硬盘只属于一个硬盘组,所述容量均衡策略用于保证多个所述硬盘组间的容量均衡和所述目标硬盘所属的硬盘组内的容量均衡;
所述确定模块,还用于确定所述目标硬盘的当前IO处理负载;
处理模块,用于根据所述目标硬盘的当前IO处理负载,对所述待写对象进行写处理,以使所述目标硬盘的负载达到均衡。
第三方面,本发明提供一种主机,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现前述实施方式中任一项所述的IO请求处理方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现前述实施方式中任一项所述的IO请求处理方法。
与现有技术相比,本发明中的存储节点包括多个硬盘组,每一硬盘组包括各存储节点的至少一块硬盘,一块硬盘只属于一个硬盘组,先基于接收的写请求、按照容量均衡策略从多个硬盘组中确定目标硬盘,保证多个硬盘组间的容量均衡和目标硬盘所属的硬盘组内的容量均衡,然后根据目标硬盘的当前IO处理负载,对写请求中的待写对象进行写处理,以使目标硬盘的负载达到均衡,通过容量均衡和负载均衡,使得分布式存储系统各存储节点尽量均衡,提高了分布式存储系统整体存储性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的应用场景的示例图。
图2为本发明实施例提供的硬盘组的示例图。
图3为本发明实施例提供的主机的方框示例图。
图4为本发明实施例提供的IO请求处理方法的流程示例图。
图5为本发明实施例提供的IO请求处理装置的方框示例图。
图标:10-主机;11-处理器;12-存储器;13-总线;20-存储节点;30-客户端;100-IO请求处理装置;110-接收模块;120-确定模块;130-处理模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参考图1,图1为本发明实施例提供的应用场景的示例图,图1中,主机10与分布式存储系统通信连接,分布式存储系统包括多个存储节点20,每个存储节点20包括多块硬盘,客户端30和主机10通信连接。
主机10可以是物理的计算机设备或者能够实现与物理的计算机设备相同功能的虚拟机,主机10可以是单独一台计算机设备,也可以是由多台计算机设备组成的计算机集群。
存储节点20可以是一台存储服务器、或者存储阵列等提供数据存储服务的存储设备。
客户端30可以、但不限于手机、笔记本电脑、台式电脑、业务服务器等需要存储数据的电子设备。
客户端30发送写请求至主机10,主机10将数据写入至分布式存储系统,实际上,主机10写入的数据是分散至各存储节点20的各硬盘上。若各存储节点20不均衡,可能会出现写数据在某一时刻集中于一个存储节点20、或者集中于一个存储节点20的一个硬盘,由此会导致分布式存储系统整体性能下降。
基于图1的应用场景,为了更好地实现存储节点的均衡,本实施例将多块硬盘划分为多个硬盘组,每一硬盘组包括各存储节点的至少一块硬盘,每一硬盘只属于一个硬盘组,请参照图2,图2为本发明实施例提供的硬盘组的示例图,图2中,存储节点为3个:A、B、C。硬盘组1包括存储节点A的硬盘a1、存储节点B的硬盘b1及存储节点C的硬盘c1,硬盘组2包括存储节点A的硬盘a2、存储节点B的硬盘b2及存储节点C的硬盘c2。例如,当需求写待写数据时,首先从硬盘组中确定要写入的待写硬盘组(例如硬盘组2),再从待写硬盘组2中确定目标硬盘(例如硬盘b2、c2),以实现硬盘组1和硬盘组2间的容量均衡和硬盘组2中硬盘a1、b2和c2间的容量均衡,最后根据b2、c2的当前IO处理负载对待写数据进行处理,以使目标硬盘b2、c2的负载达到均衡。
接下来,本实施例将基于图1和图2,对能够实现分布式存储系统各存储节点尽量均衡的IO请求处理方法、装置、主机和计算机可读存储介质进行详细描述。
首先,对应用本实施例提供的IO请求处理方法的图1中的主机进行描述,请参照图3,图3为本发明实施例提供的主机10的方框示例图,主机10包括处理器11、存储器12、总线13。处理器11、存储器12通过总线13连接。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如本实施例中的IO请求处理装置100,IO请求处理装置100均包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行程序以实现本发明实施例中的IO请求处理方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),还可能包括存储级别内存SCM(Storage ClassMemory,SCM),SCM是一种物理计算机内存,其访问数据的速度比固态硬盘、传统硬盘和外部存储阵列中的数据访问速度要快。SCM 比 DRAM (即动态RAM)更耐用,读取和写取数据的速度比闪存芯片快 10 倍。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图3仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
然后,本实施例对提供的IO请求处理方法进行详细描述,请参照图4,图4为本发明实施例提供的IO请求处理方法的流程示例图,该方法包括以下步骤:
步骤S101,接收客户端发送的写请求,写请求包括待写对象。
在本实施例中,待写对象通常包括待写对象标识和待写数据,待写对象标识唯一表征该待写对象,待写数据为客户端30真正需要存储的数据。
步骤S102,基于写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一硬盘组包括各存储节点的至少一块硬盘,每一硬盘只属于一个硬盘组,容量均衡策略用于保证多个硬盘组间的容量均衡和目标硬盘所属的硬盘组内的容量均衡。
在本实施例中,容量均衡策略是根据硬盘组的容量保证硬盘组间的容量均衡,根据目标硬盘所属的硬盘组内硬盘的容量保证该硬盘组内的容量均衡。
步骤S103,确定目标硬盘的当前IO处理负载。
在本实施例中,当前IO处理负载表征目标硬盘的当前IO处理压力,负载越大,则当前IO处理压力越大,反之越小,影响当前IO处理压力的因素包括、但不限于IO数量、IO大小等中的至少一种。
步骤S104,根据目标硬盘的当前IO处理负载,对待写对象进行写处理,以使目标硬盘的负载达到均衡。
在本实施例中,可以将待写对象写入至目标硬盘中当前IO处理负载最小的硬盘,也可以在目标硬盘中当前IO处理负载最小的硬盘的负载仍然比较大时,将待写对象先暂存,再利用后台线程利用预设的刷盘策略将待写对象写入硬盘中,以实现目标硬盘的负载均衡。
本实施例提供的上述方法,通过容量均衡策略保证从硬盘组中选目标硬盘时,各硬盘组间和选出的目标硬盘组内各硬盘间的容量均衡,再根据目标硬盘的当前IO处理负载对待写对象进行写处理,以实现目标硬盘的负载均衡,通过容量均衡和负载均衡使得分布式存储系统各存储节点尽量均衡,提高了分布式存储系统整体存储性能。
在可选的实施方式中,为了实现容量均衡,一种基于写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘的方式为:
首先,计算每一硬盘组的剩余容量百分比;
在本实施例中,对于任一硬盘组而言,先计算该硬盘组中的每一块硬盘的剩余容量,求硬盘组中所有硬盘的剩余容量之和,再计算该硬盘组中所有硬盘的总容量,将剩余容量之和与总容量的比值作为该硬盘组的剩余容量百分比。
其次,根据每一硬盘组的剩余容量百分比,从多个硬盘组中确定目标硬盘组;
在本实施例中,为了确保硬盘组间的容量均衡,若所有硬盘组的剩余容量百分比之间的差别过大,则采用的方式不能使差别进一步加大,可以将剩余容量百分比最小的排除后,再按照预设选取策略从剩余的硬盘组中确定目标硬盘组,若所有硬盘组的剩余容量百分比之间的差别不太大,则无需排除,直接按照预设选取策略从多个硬盘组中确定目标硬盘组,预设选取策略可以是随机选取、哈希选取、轮流选取等策略,一种实现方式为:
若多个硬盘组的剩余容量百分比中的最大值与最小值之间的差值大于预设均衡差值,则将除剩余容量百分比最小的硬盘组之外的硬盘组作为初选硬盘组;
若多个硬盘组的剩余容量百分比中的最大值与最小值之间的差值不大于预设均衡差值,则将所有硬盘组作为初选硬盘组;
从初选硬盘组中确定目标硬盘组。
在本实施例中,预设均衡差值可以根据实际容量均衡的需要设置,例如,预设均衡差值设置为6%。
在本实施例中,一种确定方式可以是采取哈希策略,可以采用待写对象的对象ID和初选硬盘组的个数,从初选硬盘组中确定目标硬盘组,以保证不同ID的待写对象分布在不同的硬盘组。当然,也可以采用随机选取等其他方式确定目标硬盘组。
第三,计算目标硬盘组中每一块硬盘的剩余容量百分比;
第四,根据目标硬盘组中每一块硬盘的剩余容量百分比,从目标硬盘组中确定目标硬盘。
在本实施例中,从多个目标硬盘组中的多个硬盘中确定目标硬盘的方式与前述确定初选硬盘组的方式类似:若目标硬盘组中硬盘的剩余容量百分比的最大值与最小值之间的差值大于预设均衡差值,则将除剩余容量百分比最小的硬盘之外的硬盘作为目标硬盘;若目标硬盘组中硬盘的剩余容量百分比的最大值与最小值之间的差值不大于预设均衡差值,则将目标硬盘组中的所有硬盘作为目标硬盘。
在本实施例中,为了实现目标硬盘之间的负载均衡,先确定目标硬盘的当前IO处理负载,再根据目标硬盘的当前IO处理负载,对待写对象进行写处理。
在可选的实施方式中,目标硬盘的当前IO处理负载受节点带宽压力、IO数量及IO大小等多种因素中的一种或者多种的影响,一种确定当前IO处理负载的方式为:
计算目标硬盘所属的目标存储节点的节点带宽压力;
获取目标硬盘当前正在处理的IO数量及IO大小;
在本实施例中,当前正在处理的IO数量为当前正在处理的IO个数,IO大小可以为当前正在处理的IO的大小之和,例如,IO个数为3,各IO的大小分别为2KB、10KB及5KB,则IO大小为:2KB+10KB+5KB=17KB。IO大小也可以为当前正在处理的IO的大小的平均值,IO大小还可以为当前正在处理的IO大小的最大值等。
将节点带宽压力、IO数量及IO大小确定为目标硬盘的当前IO处理负载。
在本实施例中,一种计算目标存储节点的节点带宽压力的方式为:计算目标存储节点中每一块硬盘当前正在处理的数据量,将目标存储节点中所有硬盘当前正在处理的数据量求和,得到目标存储节点的节点带宽压力。每一块硬盘当前正在处理的数据量可以通过每一块硬盘当前正在处理的所有IO及每一IO的大小计算得到,一种具体实现方式为:
根据目标存储节点中每一硬盘当前正在处理的IO及其IO长度,计算目标存储节点中每一硬盘当前正在处理的数据量;
将目标存储节点中所有硬盘当前正在处理的数据量求和,得到节点带宽压力。
在本实施例中,为了在目标硬盘的当前IO处理负载过大的情况,不进一步增加目标硬盘的负载,导致目标硬盘成为性能瓶颈,本实施例提供了一种处理方式:
根据当前IO处理负载,判断目标硬盘是否满足预设负载条件;
若目标硬盘满足预设负载条件,则将待写对象写入至目标硬盘;
若目标硬盘不满足预设负载条件,则将待写对象暂存至SCM。
在本实施例中,预设负载条件用于表征目标硬盘是否处于能够正常处理IO的状态,若目标硬盘满足预设负载条件,意味着目标硬盘能够正常处理IO,即能够继续处理写入待写对象的写请求,否则,意味着目标硬盘已经处理超负荷处理状态,如果再继续处理写入待写对象的写请求,则目标硬盘则会成为性能瓶颈。
需要说明的是,对于暂存至SCM中的待写对象,仍然按照本实施例提供的IO请求处理方法对其进行处理,直至将其写入硬盘中。例如,对于SCM中的待写对象,基于预测刷盘策略,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一所述硬盘组包括各存储节点的至少一块硬盘,每一所述硬盘只属于一个硬盘组,所述容量均衡策略用于保证多个硬盘组间的容量均衡和所述目标硬盘所属的硬盘组内的容量均衡;确定所述目标硬盘的当前IO处理负载;根据所述目标硬盘的当前IO处理负载,对所述待写对象进行写处理,以使所述目标硬盘的负载达到均衡。其中的处理细节均与本发明实施方式中的一致,不再重复描述。
还需要说明的是,在待写对象写入后,若需读取该对象,则首先判断该对象的存储区域:是暂存于SCM中还是硬盘中,以便从对应的存储区域中读取该对象。
在本实施例中,目标硬盘可以为多个,若其中任一个目标硬盘满足预设负载条件,则判定目标硬盘满足预设负载条件,并将待写对象写入至满足预设负载条件的目标硬盘,若所有目标硬盘均不满足预设负载条件,则判定目标硬盘不满足预设负载条件,为了更合理地判断出任一目标硬盘是否满足预设负载条件,本实施例提供了两种判断方式:
方式一:
根据每一目标硬盘的节点带宽压力、IO数量及IO大小,计算每一目标硬盘的负载评分;
在本实施例中,对于任一目标硬盘而言,可以根据实际应用场景中节点带宽压力、IO数量及IO大小对于该目标硬盘的负载能力的影响给予其不同的权重,再根据节点带宽压力、IO数量及IO大小及对应的权重,计算该目标硬盘的负载评分,例如,任一目标硬盘的负载评分=节点带宽压力×w1+IO数量×w2+IO大小×w3,其中,w1、w2及w3分别是节点带宽压力、IO数量及IO大小的权重。
若目标硬盘中存在负载评分不大于预设值的硬盘,则判定目标硬盘满足预设负载条件,否则,判定目标硬盘不满足预设负载条件。
在本实施例中,预设值可以根据实际需要设置。
方式二:
若目标硬盘中存在节点带宽压力小于预设压力、IO数量小于预设数量、且IO大小小于预设大小的硬盘,则判定目标硬盘满足预设负载条件,否则,判定目标硬盘不满足预设负载条件。
在本实施例中,预设压力、预设数量及预设大小均可以根据实际场景设置,例如,预设压力为32MB/s,预设数量为12,预设大小为12MB。
需要说明的是,方式一和方式二中的节点带宽压力、IO数量及IO大小在描述当前IO处理负载确定方式时已有说明,此处不再赘述。
还需要说明的是,若满足预设负载条件的目标硬盘为多块时,可以按照预设选择策略从多个目标硬盘中选择一块硬盘,并将待写对象写入该硬盘,较佳的预设选择策略可以是选择目标硬盘中负载最小的盘,当然也可以采用其他预设选择策略,例如随机选择,或者记录每块硬盘的最近预设时段内的选择次数,选择最近最少选择次数的盘。
还需要说明的是,若待写对象是多副本的方式存储,则在满足预设负载条件的目标硬盘为多块时,需要从目标硬盘中选择与副本数相同个数的硬盘,再以多副本的形式将待写对象写入选出的多块硬盘。在读取以多副本存储的对象时,也可以根据多副本的硬盘的节点带宽压力、IO数量及IO大小,从中选择负载最小的硬盘读取,例如,根据多副本的硬盘的节点带宽压力、IO数量及IO大小计算负载评分,选择负载评分表征的负载最小的硬盘,并从其中读取需要读取的对象,或者选取硬盘的节点带宽压力、IO数量及IO大小均比较小的硬盘,并从其中读取需要读取的对象,以使读数据时也能达到较好的存储节点之间的负载均衡。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种IO请求处理装置的实现方式。请参照图5,图5为本发明实施例提供的IO请求处理装置100的方框示例图。需要说明的是,本实施例所提供的IO请求处理装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
IO请求处理装置100,应用于分布式存储系统中的主机,分布式存储系统还包括多个存储节点,每一存储节点包括多块硬盘,主机与客户端及多个存储节点均通信连接,IO请求处理装置100包括接收模块110、确定模块120及处理模块130。
接收模块110,用于接收客户端发送的写请求,写请求包括待写对象;
确定模块120,用于基于写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一硬盘组包括各存储节点的至少一块硬盘,每一硬盘只属于一个硬盘组,容量均衡策略用于保证多个硬盘组间的容量均衡和目标硬盘所属的硬盘组内的容量均衡;
确定模块120,还用于确定目标硬盘的当前IO处理负载;
处理模块130,用于根据目标硬盘的当前IO处理负载,对待写对象进行写处理,以使目标硬盘的负载达到均衡。
在可选的实施方式中,确定模块120具体用于:计算每一硬盘组的剩余容量百分比;根据每一硬盘组的剩余容量百分比,从多个硬盘组中确定目标硬盘组;计算目标硬盘组中每一块硬盘的剩余容量百分比;根据目标硬盘组中每一块硬盘的剩余容量百分比,从目标硬盘组中确定目标硬盘。
在可选的实施方式中,确定模块120在用于根据每一硬盘组的剩余容量百分比,从多个硬盘组中确定目标硬盘组时,具体用于:若多个硬盘组的剩余容量百分比中的最大值与最小值之间的差值大于预设均衡差值,则将除剩余容量百分比最小的硬盘组之外的硬盘组作为初选硬盘组;若多个硬盘组的剩余容量百分比中的最大值与最小值之间的差值不大于预设均衡差值,则将所有硬盘组作为初选硬盘组;从初选硬盘组中确定目标硬盘组。
在可选的实施方式中,确定模块120具体还用于:计算目标硬盘所属的目标存储节点的节点带宽压力;获取目标硬盘当前正在处理的IO数量及IO大小;将节点带宽压力、IO数量及IO大小确定为目标硬盘的当前IO处理负载。
在可选的实施方式中,确定模块120在具体用于计算目标硬盘所属的目标存储节点的节点带宽压力时,具体用于:根据目标存储节点中每一硬盘当前正在处理的IO及其IO长度,计算目标存储节点中每一硬盘当前正在处理的数据量;将目标存储节点中所有硬盘当前正在处理的数据量求和,得到节点带宽压力。
在可选的实施方式中,主机还包括存储级别内存SCM,处理模块130具体用于:根据当前IO处理负载,判断目标硬盘是否满足预设负载条件;若目标硬盘满足预设负载条件,则将待写对象写入至目标硬盘;若目标硬盘不满足预设负载条件,则将待写对象暂存至SCM。
在可选的实施方式中,目标硬盘为多个,每一目标硬盘的当前IO处理负载均包括节点带宽压力、IO数量及IO大小,处理模块130在用于根据当前IO处理负载,判断目标硬盘是否满足预设负载条件时具体用于:根据每一目标硬盘的节点带宽压力、IO数量及IO大小,计算每一目标硬盘的负载评分;若目标硬盘中存在负载评分不大于预设值的硬盘,则判定目标硬盘满足预设负载条件,否则,判定目标硬盘不满足预设负载条件。
在可选的实施方式中,目标硬盘为多个,每一目标硬盘的当前IO处理负载均包括节点带宽压力、IO数量及IO大小,处理模块130在用于根据当前IO处理负载,判断目标硬盘是否满足预设负载条件时具体还用于:若目标硬盘中存在节点带宽压力小于预设压力、IO数量小于预设数量、且IO大小小于预设大小的硬盘,则判定目标硬盘满足预设负载条件,否则,判定目标硬盘不满足预设负载条件。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现前述实施方式中任一项的IO请求处理方法。
综上所述,本发明实施例提供了一种IO请求处理方法、装置、主机和计算机可读存储介质,应用于分布式存储系统中的主机,分布式存储系统还包括多个存储节点,每一存储节点包括多块硬盘,主机与客户端及多个存储节点均通信连接,方法包括:接收客户端发送的写请求,写请求包括待写对象;基于写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一硬盘组包括各存储节点的至少一块硬盘,每一硬盘只属于一个硬盘组,容量均衡策略用于保证多个硬盘组间的容量均衡和目标硬盘所属的硬盘组内的容量均衡;确定目标硬盘的当前IO处理负载;根据目标硬盘的当前IO处理负载,对待写对象进行写处理,以使目标硬盘的负载达到均衡。与现有技术相比,本发明实施例至少具有以下优势:(1)将分布式存储系统中的存储节点中的硬盘划分为硬盘组,利用容量均衡策略实现多个硬盘组间的容量均衡和目标硬盘所属的硬盘组内的容量均衡,实现了数据在分布式存储系统中的分散均衡存储;(2)写IO下发至硬盘组,硬盘组中包括各存储节点的硬盘,有效缓解写请求的带宽瓶颈;(3)根据目标硬盘的当前IO处理负载,对待写对象进行写处理,在兼顾容量均衡的同时,也兼顾了目标硬盘的负载均衡;(4)在目标硬盘的负载过大时,将待写对象暂存至SCM中,避免了IO处理性能的波动,有效地保证了分布式存储系统整体性能的稳定。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种IO请求处理方法,其特征在于,应用于分布式存储系统中的主机,所述分布式存储系统还包括多个存储节点,每一所述存储节点包括多块硬盘,所述主机与客户端及多个所述存储节点均通信连接,所述的IO请求处理方法包括:
接收所述客户端发送的写请求,所述写请求包括待写对象;
基于所述写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一所述硬盘组包括各存储节点的至少一块硬盘,每一所述硬盘只属于一个硬盘组,所述容量均衡策略用于保证多个所述硬盘组间的容量均衡和所述目标硬盘所属的硬盘组内的容量均衡;
确定所述目标硬盘的当前IO处理负载;
根据所述目标硬盘的当前IO处理负载,对所述待写对象进行写处理,以使所述目标硬盘的负载达到均衡。
2.如权利要求1所述的IO请求处理方法,其特征在于,所述基于所述写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘的步骤包括:
计算每一所述硬盘组的剩余容量百分比;
根据每一所述硬盘组的剩余容量百分比,从多个所述硬盘组中确定目标硬盘组;
计算所述目标硬盘组中每一块硬盘的剩余容量百分比;
根据所述目标硬盘组中每一块硬盘的剩余容量百分比,从所述目标硬盘组中确定目标硬盘。
3.如权利要求2所述的IO请求处理方法,其特征在于,所述根据每一所述硬盘组的剩余容量百分比,从多个所述硬盘组中确定目标硬盘组的步骤包括:
若多个所述硬盘组的剩余容量百分比中的最大值与最小值之间的差值大于预设均衡差值,则将除剩余容量百分比最小的硬盘组之外的硬盘组作为初选硬盘组;
若多个所述硬盘组的剩余容量百分比中的最大值与最小值之间的差值不大于预设均衡差值,则将所有所述硬盘组作为初选硬盘组;
从所述初选硬盘组中确定所述目标硬盘组。
4.如权利要求2所述的IO请求处理方法,其特征在于,确定所述目标硬盘的当前IO处理负载的步骤包括:
计算所述目标硬盘所属的目标存储节点的节点带宽压力;
获取所述目标硬盘当前正在处理的IO数量及IO大小;
将所述节点带宽压力、IO数量及IO大小确定为所述目标硬盘的当前IO处理负载。
5.如权利要求4所述的IO请求处理方法,其特征在于,所述计算所述目标硬盘所属的目标存储节点的节点带宽压力的步骤包括:
根据所述目标存储节点中每一硬盘当前正在处理的IO及其IO长度,计算所述目标存储节点中每一硬盘当前正在处理的数据量;
将所述目标存储节点中所有硬盘当前正在处理的数据量求和,得到所述节点带宽压力。
6.如权利要求2所述的IO请求处理方法,其特征在于,所述主机还包括存储级别内存SCM,所述根据所述目标硬盘的当前IO处理负载,对所述待写对象进行写处理的步骤包括:
根据所述当前IO处理负载,判断所述目标硬盘是否满足预设负载条件;
若所述目标硬盘满足所述预设负载条件,则将所述待写对象写入至所述目标硬盘;
若所述目标硬盘不满足所述预设负载条件,则将所述待写对象暂存至所述SCM。
7.如权利要求6所述的IO请求处理方法,其特征在于,所述目标硬盘为多个,每一所述目标硬盘的当前IO处理负载均包括节点带宽压力、IO数量及IO大小,所述根据所述当前IO处理负载,判断所述目标硬盘是否满足预设负载条件的步骤包括:
根据每一所述目标硬盘的节点带宽压力、所述IO数量及所述IO大小,计算每一所述目标硬盘的负载评分;
若所述目标硬盘中存在负载评分不大于预设值的硬盘,则判定所述目标硬盘满足所述预设负载条件,否则,判定所述目标硬盘不满足所述预设负载条件。
8.如权利要求6所述的IO请求处理方法,其特征在于,所述目标硬盘为多个,每一所述目标硬盘的当前IO处理负载均包括节点带宽压力、IO数量及IO大小,所述根据所述当前IO处理负载,判断所述目标硬盘是否满足预设负载条件的步骤还包括:
若所述目标硬盘中存在节点带宽压力小于预设压力、IO数量小于预设数量、且IO大小小于预设大小的硬盘,则判定所述目标硬盘满足所述预设负载条件,否则,判定所述目标硬盘不满足所述预设负载条件。
9.一种IO请求处理装置,其特征在于,应用于分布式存储系统中的主机,所述分布式存储系统还包括多个存储节点,每一所述存储节点包括多块硬盘,所述主机与客户端及多个所述存储节点均通信连接,所述IO请求处理装置包括:
接收模块,用于接收所述客户端发送的写请求,所述写请求包括待写对象;
确定模块,用于基于所述写请求,按照容量均衡策略从多个硬盘组中确定目标硬盘,其中,每一所述硬盘组包括各存储节点的至少一块硬盘,每一所述硬盘只属于一个硬盘组,所述容量均衡策略用于保证多个所述硬盘组间的容量均衡和所述目标硬盘所属的硬盘组内的容量均衡;
所述确定模块,还用于确定所述目标硬盘的当前IO处理负载;
处理模块,用于根据所述目标硬盘的当前IO处理负载,对所述待写对象进行写处理,以使所述目标硬盘的负载达到均衡。
10.一种主机,其特征在于,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现权利要求1-8中任一项所述的IO请求处理方法。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1-8中任一项所述的IO请求处理方法。
CN202310713209.1A 2023-06-16 2023-06-16 Io请求处理方法、装置、主机和计算机可读存储介质 Active CN116450054B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310713209.1A CN116450054B (zh) 2023-06-16 2023-06-16 Io请求处理方法、装置、主机和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310713209.1A CN116450054B (zh) 2023-06-16 2023-06-16 Io请求处理方法、装置、主机和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN116450054A true CN116450054A (zh) 2023-07-18
CN116450054B CN116450054B (zh) 2023-09-26

Family

ID=87130644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310713209.1A Active CN116450054B (zh) 2023-06-16 2023-06-16 Io请求处理方法、装置、主机和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116450054B (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005038368A (ja) * 2002-08-30 2005-02-10 Hitachi Ltd 仮想一元化されたネットワークストレージ間のディスク残量平準化方法
US20110138131A1 (en) * 2009-12-09 2011-06-09 Scality, S.A. Probabilistic Offload Engine For Distributed Hierarchical Object Storage Devices
US20170222935A1 (en) * 2016-02-01 2017-08-03 Netapp, Inc. Methods and systems for managing quality of service in a networked storage environment
CN107807787A (zh) * 2016-09-08 2018-03-16 北京京东尚科信息技术有限公司 一种分布式数据存储方法和系统
US20180352023A1 (en) * 2017-06-01 2018-12-06 Salesforce.Com, Inc. Decentralized, resource aware load distribution in a distributed system
CN110781006A (zh) * 2019-10-28 2020-02-11 重庆紫光华山智安科技有限公司 负载均衡方法、装置、节点及计算机可读存储介质
CN111880750A (zh) * 2020-08-13 2020-11-03 腾讯科技(深圳)有限公司 磁盘读写资源的分配方法、装置、设备及存储介质
WO2021052199A1 (zh) * 2019-09-18 2021-03-25 中兴通讯股份有限公司 一种服务器负载均衡的方法、装置及cdn节点
CN112929408A (zh) * 2021-01-19 2021-06-08 郑州阿帕斯数云信息科技有限公司 动态负载均衡方法及装置
CN113157609A (zh) * 2021-04-20 2021-07-23 北京达佳互联信息技术有限公司 存储系统、数据处理方法、装置、电子设备及存储介质
CN113268203A (zh) * 2021-05-18 2021-08-17 天津中科曙光存储科技有限公司 存储系统的容量均衡方法、装置、计算机设备和存储介质
CN113377291A (zh) * 2021-06-09 2021-09-10 北京天融信网络安全技术有限公司 一种缓存设备的数据处理方法、装置、设备及介质
CN113867617A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 存储系统及节能控制方法
CN114527936A (zh) * 2022-01-14 2022-05-24 苏州浪潮智能科技有限公司 一种服务器高性能磁盘分布式存储方法及装置
CN114816241A (zh) * 2022-03-30 2022-07-29 北京奇艺世纪科技有限公司 分布式存储集群的磁盘分配方法、装置及分布式存储集群
CN115421990A (zh) * 2022-09-09 2022-12-02 成都泛联智存科技有限公司 分布式存储系统数据一致性测试方法、系统、终端及介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005038368A (ja) * 2002-08-30 2005-02-10 Hitachi Ltd 仮想一元化されたネットワークストレージ間のディスク残量平準化方法
US20110138131A1 (en) * 2009-12-09 2011-06-09 Scality, S.A. Probabilistic Offload Engine For Distributed Hierarchical Object Storage Devices
US20170222935A1 (en) * 2016-02-01 2017-08-03 Netapp, Inc. Methods and systems for managing quality of service in a networked storage environment
CN107807787A (zh) * 2016-09-08 2018-03-16 北京京东尚科信息技术有限公司 一种分布式数据存储方法和系统
US20180352023A1 (en) * 2017-06-01 2018-12-06 Salesforce.Com, Inc. Decentralized, resource aware load distribution in a distributed system
WO2021052199A1 (zh) * 2019-09-18 2021-03-25 中兴通讯股份有限公司 一种服务器负载均衡的方法、装置及cdn节点
CN110781006A (zh) * 2019-10-28 2020-02-11 重庆紫光华山智安科技有限公司 负载均衡方法、装置、节点及计算机可读存储介质
CN113867617A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 存储系统及节能控制方法
CN111880750A (zh) * 2020-08-13 2020-11-03 腾讯科技(深圳)有限公司 磁盘读写资源的分配方法、装置、设备及存储介质
CN112929408A (zh) * 2021-01-19 2021-06-08 郑州阿帕斯数云信息科技有限公司 动态负载均衡方法及装置
CN113157609A (zh) * 2021-04-20 2021-07-23 北京达佳互联信息技术有限公司 存储系统、数据处理方法、装置、电子设备及存储介质
CN113268203A (zh) * 2021-05-18 2021-08-17 天津中科曙光存储科技有限公司 存储系统的容量均衡方法、装置、计算机设备和存储介质
CN113377291A (zh) * 2021-06-09 2021-09-10 北京天融信网络安全技术有限公司 一种缓存设备的数据处理方法、装置、设备及介质
CN114527936A (zh) * 2022-01-14 2022-05-24 苏州浪潮智能科技有限公司 一种服务器高性能磁盘分布式存储方法及装置
CN114816241A (zh) * 2022-03-30 2022-07-29 北京奇艺世纪科技有限公司 分布式存储集群的磁盘分配方法、装置及分布式存储集群
CN115421990A (zh) * 2022-09-09 2022-12-02 成都泛联智存科技有限公司 分布式存储系统数据一致性测试方法、系统、终端及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
周渭博;钟勇;李振东;: "基于存储熵的存储负载均衡算法", 计算机应用, no. 08, pages 87 - 91 *
李东阳;刘鹏;丁科;田浪军;: "基于固态硬盘的云存储分布式缓存策略", 计算机工程, no. 04, pages 38 - 41 *
苏金泷;欧阳钟辉;: "敏捷企业集成基础结构中的服务器集群均衡性探讨", 福建电脑, no. 11, pages 13 - 14 *

Also Published As

Publication number Publication date
CN116450054B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
CN110781006B (zh) 负载均衡方法、装置、节点及计算机可读存储介质
TWI753881B (zh) 資料表連接方式處理方法及裝置
CN110659151A (zh) 数据校验方法及装置,存储介质
CN111562884B (zh) 一种数据存储方法、装置及电子设备
CN107357642B (zh) 一种计算任务调整方法及装置
CN112882663A (zh) 一种随机写的方法、电子设备及存储介质
CN110321225B (zh) 负载均衡方法、元数据服务器及计算机可读存储介质
CN116450054B (zh) Io请求处理方法、装置、主机和计算机可读存储介质
US20180018104A1 (en) Dynamic write latency for memory controller using data pattern extraction
CN114253456A (zh) 一种缓存负载均衡方法和装置
CN111857600A (zh) 一种数据读写方法及装置
CN116578410A (zh) 资源管理方法、装置、计算机设备和存储介质
KR20190048227A (ko) 블록체인 기반 데이터 관리 방법 및 그 장치
CN115048057A (zh) 一种存储路径的选择方法、装置及介质
CN110866066B (zh) 一种业务处理方法及装置
CN110658994B (zh) 一种基于hdd和ssd混合磁盘阵列的数据处理方法及装置
CN116820324A (zh) 存储扩容方法及装置、存储介质和电子设备
CN111858129B (zh) 一种纠删码读请求处理方法、系统、设备及计算机介质
CN114550773A (zh) 存储器控制器、存储系统和数据处理方法
CN114374707B (zh) 用于存储集群的管理方法、装置、设备及介质
CN115801787B (zh) 路端数据传输方法、装置及电子设备、存储介质
CN112905345B (zh) 任务调配方法、分布式存储系统、服务器
US11627085B2 (en) Non-transitory computer-readable recording medium, service management device, and service management method
CN117539407B (zh) 数据存储方法、电子设备及计算机可读存储介质
CN117640541B (zh) 一种云服务器资源分配方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant