CN115220654A - 分布式存储系统、存储节点及网络数据处理器 - Google Patents
分布式存储系统、存储节点及网络数据处理器 Download PDFInfo
- Publication number
- CN115220654A CN115220654A CN202210685585.XA CN202210685585A CN115220654A CN 115220654 A CN115220654 A CN 115220654A CN 202210685585 A CN202210685585 A CN 202210685585A CN 115220654 A CN115220654 A CN 115220654A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- network
- node
- stored
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种分布式存储系统、存储节点及网络数据处理器。该网络数据处理器用于分布式存储系统的存储节点,包括:网络通信模块,用于接收待存储数据;数据处理模块,用于对待存储数据数据处理,以得到对应于第一存储方式的第一存储数据和对应于第二存储方式的第二存储数据;第一非易失性存储器,用于以第一存储方式存储第一存储数据;以及本地通信模块,用于通过存储节点的本地数据传输链路,将第二存储数据传送到存储节点的第二非易失性存储器,以便以第二存储方式在第二非易失性存储器上存储第二存储数据。由此,显著减少了本地内存复制操作,降低了本地数据传输链路如PCIe总线的带宽开销,实现了系统整体性能的提升。
Description
技术领域
本公开涉及云计算技术,特别涉及用于分布式存储系统的存储节点的网络数据处理技术。
背景技术
随着云计算技术的发展,云存储服务也得到了越来越多的关注。采用分布式架构的云存储服务技术具备高可用、高可靠性、大容量等优势。
图1示意性地示出了分布式存储集群服务各类应用的基本架构。
如图1所示,分布式系统可以包括至少一个存储节点(存储服务器)100,用于对数据进行分布式存储。
分布式存储系统还可以包括数据中心网络系统200和至少一个计算节点100。
数据中心网络系统200负责数据网络传输和控制,例如可以根据全局信息对数据读写任务进行整体调度。计算节点100可以用于提供分布式计算服务。
高性能云存储服务在提供大容量、高稳定性的同时,在可售卖带宽和数据持久化延迟等方面提出了更高的要求,并以此作为是否具有强竞争力的衡量标准。在同类产品的比对中,可售卖带宽和数据持久化延迟持续选为主要遴选标准,因而成为各云服务厂商关注的焦点之一。
因此,如何持续提升分布式存储的性能,是后续不断建设云存储技术先进性与产品竞争力的关键之一。
在分布式存储方案中,数据进入存储节点100的本地缓存之后,要对所输入的数据同时执行两种方式的数据存储,即数据日志存储和数据下刷存储。这种操作也可以称为“双写”,即同时写入日志盘(数据日志存储)和下属盘(数据下刷存储)。这两个写入操作可以同步进行,是互相独立的。
数据日志存储(也可以称为“日志写入”)是指,在接收到写入数据时,为缩短延迟,将数据例如顺序写入,采用快速纠删码方案或多备份方案以保证数据可靠性与一致性。这样,数据快速完成写入操作后,即可返回写操作成功消息,缩短写入延迟。待数据下刷存储操作完成后,日志中缓存的数据可以被覆盖或删除,无需保留。
数据下刷存储(也可以称为“下刷写入”)是指,后台进行的更经济实用的数据存储方式,可以采用更高码率、更少冗余的纠删码方案来进行保护,长期地持久化所保存的数据。
下面,参考图2和图3,简要描述现有分布式存储系统的数据分布式存储解决方案。
图2示意性地示出了现有分布式存储系统中存储节点100对来自计算节点300的数据的处理方式。
如图2所示,在步骤S1,来自计算节点300的数据经数据中心网络系统200,进入存储节点100的网卡(NIC)130,对数据进行解析与格式转换等操作,以便传输至存储节点100的内存120。这里,内存120例如可以是DIMM(双列直插内存模块)。
在步骤S2,数据从网卡经存储节点100的PCIe总线链路160,经控制单元如CPU 110传输到内存120中。
这里,CPU 110中运行的分布式程序可以完成数据分布式写入之前要进行的操作,例如纠删码编码等处理,并分配各个数据段分别要写入的本地地址或远端(其它存储节点)地址。即,存储节点100的CPU 110对来自计算节点300的数据进行处理,得到要日志写入的(多个)数据段和要下刷写入的(多个)数据段,并为每个数据段分别分配分布式系统的多个存储节点100中的相应数量的存储节点100(可以包括当前存储节点100)。
需要注意的是,对应于同样的数据内容,数据日志写入与数据下刷写入的格式与目的地(所分配的存储节点100)等可以互不相同。即,对于同一段要求存储的数据,所对应的要日志写入的数据段和要下刷写入的数据段可以分别以不同的格式写入不同的存储节点100。
在步骤S3,执行数据日志存储(写入),即,将内存120中经CPU 110处理得到的、要日志写入的数据段,经存储节点100的CPU 110和PCIe总线链路160,传输到日志写入缓存140中。
为提升数据持久化存储性能,缩短延迟并提升带宽,可以采用傲腾存储器作为数据日志写入缓存140。这样,数据可快速写入持久化存储设备,随后便可反馈上层应用该数据已完成写操作,显著缩短写入延迟。
必要时,还可以进一步将缓存140中的日志写入数据写入非易失性存储设备如硬盘等中。
在步骤S4,执行数据下刷存储(写入),即,将内存120中经CPU 110处理,格式调整就绪,要下刷写入的数据,写入非易失性存储设备如硬盘150中,完成数据下刷写入操作。这里,非易失性存储设备例如可以采用NAND闪存固态硬盘(SSD)。
如上所述,步骤S3的数据日志存储(写入)操作与步骤S4的数据下刷存储(写入)操作可以并行或同步执行,可以不分执行先后顺序。
在步骤S5,与步骤S3的数据日志存储(写入)操作与步骤S4的数据下刷存储(写入)操作并行或同步地,将要写入远端其它存储节点100的数据,从本地内存120经CPU110和本地PCIe总线链路160,再传输回到网卡(NIC)130,从而发送到其它存储节点。
图3示意性地示出了现有分布式存储系统中存储节点100对来自其它存储节点100的数据的处理方式。
如图3所示,在步骤S6,存储节点100的网卡(NIC)130接收到分布式集群内其它存储节点100传递来的数据段。
这里,从其它存储节点100传递来的数据段是如上述步骤S5所述,其它存储节点100按照所分配的远端地址发送的,已经经过其它存储节点100的CPU 110处理的要日志存储(写入)或要下刷存储(写入)的数据段,可以不必再由CPU 110对其进行前述步骤S2所提到的数据分布式写入之前要进行的操作,例如纠删码编码等处理。
在步骤S7,将网卡(NIC)130所接收的数据段,经本地PCIe总线链路160和本地CPU110,传入本地内存120中。
然后,对于所接收的要日志存储(写入)的数据段,在步骤S8,执行数据日志存储(写入),即,从该存储节点100的本地内存120,经本地CPU 110和PCIe总线链路160,传输到日志写入缓存140如英特尔傲腾存储器中。必要时,还可以进一步将缓存140中的日志写入数据写入非易失性存储设备如硬盘等中。
而对于所接收的要下刷存储(写入)的数据段,在步骤S9,执行数据下刷存储(写入),即,从本地内存120,经本地CPU 110和PCIe总线链路160,写入非易失性存储设备如硬盘150(如NAND闪存固态硬盘(SSD))中。
应当理解,分布式存储系统中,各个存储节点100的角色可以是平等的。即,各个存储节点100都可以接收来自计算节点300的数据,对其进行分布式写入之前要进行的操作如纠删码编码等,并按照所分配的目的地地址将数据段发送给其它存储节点100,也都可以从其它存储节点100接收已经经过处理的数据段而对其进行存储。
从上面对现有分布式数据写入方案的描述不难看到,在海量数据传输过程中,存储节点100的内存DIMM 120和/或PCIe总线链接带宽承受数据输入/输出双向压力,是整体带宽性能的瓶颈,也是在解决了网络带宽与SSD带宽之后,系统性能的短板。
因此,仍然需要一种改进的分布式数据写入方案,解决上述技术问题。
发明内容
本公开要解决的一个技术问题是提供一种分布式存储方案,其能够缩短数据传输路径,减少内存复制操作,降低PCIe总线链路带宽开销,从而实现系统整体性能的提升。
根据本公开的第一个方面,提供了一种网络数据处理器,用于分布式存储系统的存储节点,该网络数据处理器包括:网络通信模块,用于接收待存储数据;数据处理模块,用于对待存储数据进行第一数据处理,以得到对应于第一存储方式的第一存储数据,并对待存储数据进行第二数据处理,以得到对应于第二存储方式的第二存储数据;第一非易失性存储器,用于以第一存储方式存储第一存储数据;以及本地通信模块,用于通过存储节点的本地数据传输链路,将第二存储数据传送到存储节点的第二非易失性存储器,以便以第二存储方式在第二非易失性存储器上存储第二存储数据。
可选地,第一存储数据被分配给存储节点和多个其它存储节点以便以多备份存储方案进行存储,并且网络通信模块还用于将第一存储数据发送给多个其它存储节点;并且/或者数据处理模块将待存储数据划分为多段第一存储数据,多段第一存储数据被分别分配给存储节点和多个其它存储节点以便以多备份存储方案进行存储,并且网络通信模块还用于将多段第一存储数据分别对应发送给多个其它存储节点;并且/或者数据处理模块对待存储数据进行第一数据处理以得到N1个第一存储数据,N1个第一存储数据被分别分配给存储节点和N1-1个其它存储节点,并且网络通信模块还用于将N1个第一存储数据中除分配给存储节点的第一存储数据之外的N1-1个第一存储数据分别对应发送给N1-1个其它存储节点,其中N1为大于1的整数;并且/或者数据处理模块对待存储数据进行第二数据处理以得到N2个第二存储数据,N2个第二存储数据被分别分配给存储节点和N2-1个其它存储节点,并且网络通信模块还用于将N2个第二存储数据中除分配给存储节点的第二存储数据之外的N2-1个第二存储数据分别对应发送给N2-1个其它存储节点,其中N2为大于1的整数。
可选地,网络通信模块还用于接收来自其它存储节点的第一存储数据和/或第二存储数据,第一非易失性存储器还用于以第一存储方式存储来自其它存储节点的第一存储数据,本地通信模块还用于通过存储节点的本地数据传输链路,将来自其它存储节点的第二存储数据传送到存储节点的第二非易失性存储器,以便以第二存储方式在第二非易失性存储器上存储来自其它存储节点的第二存储数据。
可选地,该网络数据处理器还可以包括:数据缓存器,用于缓存网络通信模块接收的数据。
可选地,数据处理模块包括下述至少一项:纠删码编码器,用于对待存储数据进行纠删码编码处理。
可选地,第一数据处理是用于多备份存储方案的数据处理,第二数据处理是纠删码编码;或者第一数据处理和第二数据处理均为纠删码编码。
可选地,第一存储方式的数据存储操作与第二存储方式的数据存储操作相互独立;并且/或者第一存储方式的数据存储速度比第二存储方式的数据存储速度快;并且/或者第二存储方式比第一存储方式具有更高码率;并且/或者第二存储方式比第一存储方式具有更少冗余;并且/或者针对同一数据内容,在完成第二存储方式的存储操作后,将以第一存储方式存储的对应数据设置为能够被删除。
可选地,第一存储方式为数据日志存储,第二存储方式为数据下刷存储。
可选地,数据处理模块基于来自存储节点的控制单元的指令或参数执行第一数据处理和/或第二数据处理;并且/或者数据处理模块基于来自存储节点的控制单元的指令或参数来确定第一存储数据和/或第二存储数据的分布式存储方案。
根据本公开的第二个方面,提供了一种分布式存储系统中的存储节点,包括:网络数据处理器,用于与分布式存储系统中的其它存储节点或计算节点进行数据通信,并以第一存储方式存储第一存储数据;本地数据传输链路;以及第二非易失性存储器,其中,网络数据处理器将对应于第二存储方式的第二存储数据传送到第二非易失性存储器,以便第二非易失性存储器以第二存储方式存储第二存储数据。
可选地,网络数据处理器是如上述第一方面所述的网络数据处理器。
根据本公开的第三个方面,提供了一种分布式存储系统,包括:至少一个如上述第二方面所述的存储节点。
由此,通过为分布式存储系统中的存储节点设置网络数据处理器,可以由该网络数据处理器来进行网络数据通信、分布式存储之前的纠删码编码等数据预处理、数据日志存储等操作,而通过存储节点的本地PCIe总线链路仅需要向存储节点的本地非易失性存储设备如SSD传输要在本地下刷存储(写入)的数据段,显著减少了本地内存复制操作,降低了本地数据传输链路如PCIe总线链路的带宽开销,而对于要传送给其它存储节点的数据则缩短了本地数据传输路径,从而实现了系统整体性能的提升。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性地示出了分布式存储集群服务各类应用的基本架构。
图2示意性地示出了现有分布式存储系统中存储节点对来自计算节点的数据的处理方式。
图3示意性地示出了现有分布式存储系统中存储节点对来自其它存储节点的数据的处理方式。
图4是根据本公开的存储节点的示意性框图。
图5是根据本公开的用于存储节点的网络数据处理器的示意性框图。
图6是根据本公开的数据处理模块的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
为解决前述技术问题,本公开通过在存储节点进行改造,实现数据传输路径的改善,进而缓解因内存带宽与PCIe总线链路带宽消耗过大而导致的性能瓶颈。另一方面,因为大幅降低了PCIe总线链路带宽与内存网络带宽的开销,单个存储节点上可配置更多非易失性存储器如NAND SSD,从而可以进一步降低综合成本。
下面参考图4至图6详细描述根据本公开的分布式数据存储方案。
本公开的分布式系统架构可以与图1所示现有分布式系统架构基本相同,包括至少一个存储节点100'。本公开的主要改进点在于存储节点100'。
图4是根据本公开的存储节点100'的示意性框图。
如图4所示,根据本公开的存储节点100'可以与图2和3所示存储节点100'一样包括控制单元如CPU 110、内存120、本地数据传输链路如PCIe总线链路160。
存储节点100'的第二非易失性存储器180也可以与现有方案的存储节点100的非易失性存储器相同,例如可以是NAND闪存固态硬盘(SSD)等。
如图4所示,存储节点100'还包括网络数据处理器170,用于与分布式存储系统中的其它存储节点100'或计算节点进行数据通信。并且,网络数据处理器170以第一存储方式存储第一存储数据,而不经过存储节点100'的本地数据传输链路如PCEe总线链路160来将数据传输到存储节点100'的第二非易失性存储器180或其它非易失性存储器中进行存储。
网络数据处理器170还将对应于第二存储方式的第二存储数据,例如经由本地数据传输链路如PCIe总线链路160,传送到第二非易失性存储器180,以便第二非易失性存储器180以第二存储方式存储第二存储数据。
这里,第一存储方式的数据存储操作与第二存储方式的数据存储操作相互独立。
第一存储方式可以为数据日志存储,第二存储方式可以为数据下刷存储。
如上文所述,数据日志存储(也可以称为“日志写入”)是指,在接收到写入数据时,为缩短延迟,将数据例如顺序写入,采用快速纠删码方案或多备份方案以保证数据可靠性与一致性。这样,数据快速完成写入操作后,即可返回写操作成功消息,缩短写入延迟。待数据下刷存储操作完成后,日志中缓存的数据可以被覆盖或删除,无需保留。
数据下刷存储(也可以称为“下刷写入”)是指,后台进行的更经济实用的数据存储方式,可以采用更高码率、更少冗余的纠删码方案来进行保护,长期地持久化所保存的数据。如果数据下刷写入时原始数据出现故障,可以基于数据日志写入结果来恢复数据。
相应地,第一存储方式和第二存储方式可以具有下述至少一项特点:
-第一存储方式的数据存储速度比第二存储方式的数据存储速度快;
-第二存储方式比第一存储方式具有更高码率;
-第二存储方式比第一存储方式具有更少冗余;
-针对同一数据内容,在完成第二存储方式的存储操作后,将以第一存储方式存储的对应数据设置为能够被删除。
这样,在分布式数据存储的过程中,存储节点100'的本地数据传输链路如PCIe总线链路160可以仅用于传输需要本地下刷存储的数据,而不需要传输要以日志存储方式存储的数据,也不需要传输要在其它存储节点100'存储的数据,显著降低了本地数据传输链路的带宽消耗。
另外,分布式存储之前需要对数据执行的一些处理如纠删码编码等也可以在网络数据处理器170中执行,而不需要利用存储节点100'的控制单元如CPU 110和内存120来执行。而且,网络数据处理器170和第二非易失性存储器180之间的数据传输还可以通过本地数据传输链路如PCIe总线链路160,采用例如PCIe数据直连的方式进行,不需要CPU 110和内存120的参与。因此,还可以进一步减少对存储节点100'的CPU 110和内存120的使用,减少对存储单元100'的资源消耗。
下面,详细描述根据未公开的网络数据处理器。
图5是根据本公开的用于存储节点的网络数据处理器的示意性框图。
本公开的网络数据处理器170集成了网络接口卡(网卡NIC)、数据缓存、非易失性数据存储、为实现分布式存储而进行的数据处理如纠删码编码等功能,缩短了数据传输路径,显著减少了在本地数据传输链路如PCIe160上传输的数据量,减少了对存储节点100'的本地CPU 110和内存120的使用。
如图5所示,本公开的网络数据处理器170可以包括网络通信模块710、数据处理模块720、第一非易失性存储器730、本地通信模块740。
网络通信模块710接收(输入)待存储数据。待存储数据可以来自计算节点300,也可以来自其它存储节点100'。另外,网络通信模块710也可以向外发送(输出)数据。
网络通信模块710可以包括网络接口卡(网卡,NIC),通过网络接口实现网络数据的输入与输出。
数据处理模块720对待存储数据进行分布式存储所需的数据处理。
具体说来,可以对待存储数据进行第一数据处理,以得到对应于第一存储方式(例如,数据日志存储)的第一存储数据;并对待存储数据进行第二数据处理,以得到对应于第二存储方式(例如,数据下刷存储)的第二存储数据。
这里,数据处理模块720可以基于来自存储节点100'的控制单元如CPU 110的指令或参数来执行第一数据处理和/或第二数据处理。
并且,数据处理模块720还可以基于来自存储节点100'的控制单元如CPU 110的指令或参数来确定第一存储数据和/或第二存储数据的分布式存储方案。
在本公开的分布式存储方案中,存储节点100'的控制单元如CPU 110上可以运行用于分布式存储的控制逻辑,提供管控指令和/或参数给网络数据处理器170的数据处理模块720。管控指令和/或参数可以用于指示下述内容中的至少一项:
-数据分布式存储方案,即采用纠删码方案,还是多备份方案,纠删码方案或多备份方案的具体类型、参数等信息;
-“条带化分配”,即对待存储数据的分块(段)方案,包括数据块(段)的尺寸、划分方式等;
-数据段(第一存储数据和/或第二存储数据)的目的地,即各数据段要写入的本地地址(例如本地存储节点的SSD地址信息等)与远端地址(所选其它存储节点的地址信息等);以及
-数据格式的转换方式、元数据的记录方案、故障处理方案等分布式存储的常规操作的方案。
存储节点100'的控制单元如CPU 110上不再需要执行具体的数据分段、压缩、纠删码编码等处理,显著减轻了存储节点100'的控制单元如CPU 110的工作负担。
第一存储数据可以传输给网络数据处理器170自带的第一非易失性存储器730,以在其中以第一存储方式存储第一存储数据。这样,就不用将第一存储数据经由本地数据通信链路如PCIe总线链路160来传输第一存储数据。
第一非易失性存储器730可以选用相变存储器(PCM)或使用相变存储器原理的存储器。
本地通信模块740通过存储节点100'的本地数据传输链路如PCIe总线链路160,将第二存储数据传送到存储节点100'的第二非易失性存储器180,以便以第二存储方式在第二非易失性存储器180上存储第二存储数据。
本地通信模块740例如可以包括PCIe控制器,通过PCIe总线接口连接到PCIe总线链路。通过该PCIe总线接口,网络数据处理器170实现与存储节点100'的CPU 110之间的管控指令和/或参数的通信,以及与存储节点100'的第二非易失性存储器180之间的数据通信。
第一数据处理可以是用于多备份存储方案的数据处理。换言之,对于第一存储方式如日志存储的数据,可以采用多备份存储方案来进行存储。
一些情况下,可以不对来自计算节点300的待存储数据进行进一步的分段。将来自计算节点300的待存储数据,作为第一存储数据,分配给当前存储节点100'和多个其它存储节点100'以便以多备份存储方案进行存储。这种情况下,第一数据处理可以只是简单的用于多备份存储方案的数据处理,如数据压缩、数据复制、数据重复发送地。
于是,可以在当前存储节点100'的第一非易失性存储器730上存储该第一存储数据。并且,网络通信模块710将第一存储数据发送给多个其它存储节点100',以便在这些其它存储节点100'的第一非易失性存储器730上存储该第一存储数据。
或者,在另一些情况下,数据处理模块720也可以将待存储数据划分为多段第一存储数据。将多段第一存储数据分别分配给当前存储节点100'和多个其它存储节点100'以便以多备份存储方案进行存储。每段第一存储数据可以分配给多个(例如3个)存储节点100'。这种情况下,第一数据处理可以包括数据压缩、数据分段、数据复制、数据重复发送等用于多备份存储方案的数据处理。
于是,可以在当前存储节点100'的第一非易失性存储器730上存储为其分配的第一存储数据(段)。网络通信模块710则将其它多段第一存储数据分别对应发送给多个其它存储节点100。
或者,对于第一存储方式如日志存储的数据,也可以不是简单的分段,而是可以执行预定的数据处理,以得到多个第一存储数据以进行日志存储。
数据处理模块720可以对待存储数据进行第一数据处理以得到N1个第一存储数据,N1为大于1的整数。
第一数据处理例如可以是纠删码编码处理,将待存储数据划分为n个数据段,通过纠删码编码处理另外生成m个数据段,将这n+m=N1个数据段作为要以第一存储方式,n和m为正整数。纠删码编码方案为现有技术中所已知,在此不再赘述。
另外,在纠删码编码之前或之后,还可以进行数据压缩,以进一步减小存储或传输的数据量。
将N1个第一存储数据分别分配给当前存储节点100'和N1-1个其它存储节点100'。
于是,可以在当前存储节点100'的第一非易失性存储器730上存储为其分配的第一存储数据。网络通信模块710将N1个第一存储数据中除分配给当前存储节点100'的第一存储数据之外的N1-1个第一存储数据分别对应发送给N1-1个其它存储节点100'。
对于第二存储方式如下刷存储的数据,可以通过第二数据处理得到。
数据处理模块720对待存储数据进行第二数据处理以得到N2个第二存储数据,N2为大于1的整数。
第二数据处理可以是纠删码编码处理。
在第一数据处理和第二数据处理均为纠删码编码处理的情况下,与第一数据处理相比,第二数据处理可以采用具有更高码率和/或更少冗余的纠删码编码处理方案。
同样地,在纠删码编码之前或之后,还可以进行数据压缩,以减小存储或传输的数据量。
将N2个第二存储数据分别分配给当前存储节点和N2-1个其它存储节点。
于是,可以由本地通信模块740将分配给当前存储点100'的第二存储数据经本地数据传输链路如PCIe总线链路160,传输到第二非易失性存储器180以便以第二存储方式如下刷存储方式存储。并且,网络通信模块710将N2个第二存储数据中除分配给当前存储节点100'的第二存储数据之外的N2-1个第二存储数据分别对应发送给N2-1个其它存储节点100'。
综上,在一些实施例中,第一数据处理是用于多备份存储方案的数据处理,而第二数据处理是纠删码编码。在另一些实施例中,第一数据处理和第二数据处理可以均为纠删码编码。
分布式存储系统中各个存储节点100'可以具有平等的角色,地位同等。这样,本地存储节点100'不但可以向其它存储节点100'发送经本地存储节点100'处理的第一存储数据和/或第二存储数据,还可以从其它存储节点100'接收待存储的第一存储数据或第二存储数据。
这样,网络通信模块710还可以接收来自其它存储节点100'的第一存储数据和/或第二存储数据。相应地,第一非易失性存储器730还可以以第一存储方式存储来自其它存储节点100'的第一存储数据。本地通信模块740还可以通过存储节点100'的本地数据传输链路如PCIe总线链路160,将来自其它存储节点100'的第二存储数据传送到存储节点100'的第二非易失性存储器180,以便以第二存储方式在第二非易失性存储器180上存储来自其它存储节点100'的第二存储数据。
另外,如图5所示,网络数据处理器170还可以包括数据缓存器750,用于缓存网络通信模块710接收的数据。数据缓存器750例如可以是DRAM(动态随机存取存储器)缓存。
当接收到大量数据时,可以将数据先缓存在数据缓存器750中,以备数据处理模块720取用。同样地,也可以将要发送的数据缓存在数据缓存器750中,以备网络通信模块710对外发送。
图6是根据本公开的数据处理模块720的示意性框图。
如图6所示,数据处理模块720可以包括纠删码编码器724,用于对待存储数据进行纠删码编码处理。如上文所述,在上述第一数据处理和第二数据处理中,均可以采用纠删码编码器724来进行纠删码编码处理。
相应地,数据处理模块720也可以包括纠删码解码器725,用于对纠删码编码的数据段进行解码处理,以便得到所存储的原始数据(纠删码编码前的数据)。
进一步地,数据处理模块720还可以包括压缩引擎722,用于对待存储数据或纠删码编码后的数据进行压缩处理,以便进一步减小存储和传输的数据量。在上述第一数据处理和第二数据处理中,均可以采用压缩引擎722来进行数据压缩处理。
相应地,数据处理模块720也可以包括解压缩引擎722,用于对压缩存储的数据进行解压缩,以得到压缩处理前的数据。
另外,数据处理模块720还可以包括缓存721。缓存721例如可以是SRAM(静态随机存取存储器)缓存。
应当理解,缓存721和数据缓存器750可以视为构成二级缓存结构,例如DRAM的数据缓存器750用于缓存大量待处理数据,而例如SRAM的缓存721则用于协助执行数据的计算和处理(接收、发送、分段划分、数据压缩及解压缩、纠删编解码)。
在一些实施例中,网络通信模块710、数据处理模块720以及本地通信模块740可以组合或集成为一个融合控制器,执行数据的接收、传输、发送和计算处理。
该融合控制器还可以包括存储器控制器如PCM控制器,通过存储器接口如PCM接口与第一非易失性存储器730如PCM存储器连接,将第一存储数据以第一存储方式如日志存储方式写入第一非易失性存储器730中。
该融合控制器还可以包括缓存控制器如DRAM控制器,通过缓存器接口如DRAM接口,与数据缓存器750如DRAM连接,以便在数据缓存器750中缓存待处理或待发送的数据。
如上所述,本公开的存储节点100'中,新增了网络数据处理器170,也可以称为“网络数据缓存部件”或“网络缓存”,而如图2和3中所示现有方案的存储节点100中用于数据日志存储(写入)的缓存如傲腾则可以不再配置。这样,单个存储节点100'中可以配置了更多第二非易失性存储器180如NAND SSD。
此外,部分计算处理功能,如纠删码编码等,改为在网络数据处理器170中实现,可降低对CPU 110的算力需求和对内存120容量的消耗,因此,存储节点100'的CPU 110和内存120可适当降级改配,使得成本降低。
网络数据处理器170上设置有例如以相变存储器(PCM)实现的第一非易失性存储器730,可以用于实现数据日志存储。
另外,网络数据处理器170还可以配备数据缓存器750如DRAM以实现数据暂存空间。
网络数据处理器170的数据处理模块720还可以包括纠删码编解码器与压缩/解压缩引擎(可选)的硬件单元,以实现数据纠删码的编解码。如果分布式存储方案采用多备份存储方案而不是数据纠删码方案,则可以跳过纠删码编码操作。
下面,进一步描述一下本公开实施例的分布式数据存储写入流程。
首先,待存储数据从计算节点300经数据中心网络200进入存储节点100'的网络数据处理器170,在其中例如由网络通信模块710的网卡NIC完成网络数据拆包、数据转换等常规网卡操作,所得到的数据可放入数据缓存器750如DRAM中缓存。
然后,网络数据处理器170的数据处理模块720结合CPU 110所运行的分布式逻辑给出的分布式存储方案,例如纠删码安排(条带化分配、数据段目的地等),选取数据条带、完成纠删码编码、切割为数据块(段)。上述操作对数据日志存储操作和数据下刷存储操作均独立进行。分离出要数据日志存储的纠删码码字的本地块(分配给本地存储节点100'的数据块(段))与远端块(分配给其它存储节点100'的数据块(段)),分离出要数据下刷存储的纠删码码字的本地块(分配给本地存储节点100'的数据块(段))与远端块(分配给其它存储节点100'的数据块(段))。
将要数据日志存储的本地块写入网络数据处理器170的第一非易失性存储器730如PCM存储介质。将要数据下刷存储的本地块通过例如PCIe数据直连方式,写入本地第二非易失性存储器180如NAND SSD中。
另一方面,通过网络数据处理器170的网络通信模块710的网卡功能,将要数据日志存储的远端块经网络发送到目的地存储节点100',将要数据下刷存储的远端块经网络发送到其目的地存储节点100'。
目的地存储节点100'接收到要数据日志存储的数据块后,将其写入本机的网络数据处理器170中的第一非易失性存储器730如PCM存储介质中。
目的地存储节点100'接收到要数据下刷存储的数据块后,将其写入本机的第二非易失性存储器180如NAND SSD中。
结合上述流程,运行在CPU 110中的分布式逻辑提供数据传输的管控指令和/或参数给网络数据处理器170。使用PCIe总线链路160传输数据下刷存储操作所需的本地块数据。而数据日志存储操作的数据传输则改为:本地块在网络数据处理器170内部完成,而远端块在经网络传输后在远端的网络数据处理器170内部完成。
这样,海量数据不需要再经过存储节点100'的服务器内存,从而大幅降低对存储节点100'的主机内存的容量与带宽要求,有效克服了当前高性能服务器设计中的一个主要瓶颈。
下面,比较一下采用现有方案和本公开的分布式存储方案的PCIe总线带宽使用情况。
在现有方案中,参考图2和图3,需要在PCIe总线链路160上传输的数据包括两方面:本地(当前存储节点100)PCIe总线链路160上传输的数据和远端(其它存储节点100)PCIe总线链路160上传输的数据。
本地PCIe总线链路160上传输的数据量如下:
-步骤S2,网卡NIC 130从计算节点300接收并写入内存120的待存储数据,设数据量为M个数据块(段),M为大于1的正整数;
-步骤S3,从内存120日志写入缓存140的数据,数据量为1,即1个数据块(段);
-步骤S4,从内存120下刷写入硬盘150的数据,数据量为1,即1个数据块(段);
-步骤S5,从内存120写入网卡NIC 130的数据,N1-1个日志写入数据块(段),N2-1个下刷写入数据块(段)。
这里,设CPU 110进行数据处理后,需要进行日志写入操作的数据块(段)共有N1个,需要进行下刷写入操作的数据块(段)共有N2个,N1、N2均为大于1的正整数。
即,在本地PCIe总线链路160上传输的数据量总计为M+N1+N2个数据块(段)。
远端(所有其它存储节点100)的PCIe总线链路160上传输的数据量如下:
-步骤S7,从各存储节点100的网卡NIC 130写入内存120的日志写入数据块(段)共N1-1个,各存储节点100的网卡NIC 130写入内存120的下刷写入数据块(段)共N2-1个,合计共N1-1+N2-1个;
-步骤S8,从各存储节点100各自的内存120写入缓存140的日志写入数据块(段)共N1-1个;
-步骤S9,从各存储节点100各自的内存120写入硬盘150的下刷写入数据块(段)共N2-1个。
即在远端(所有其它存储节点100)的PCIe总线链路160上传输的数据量总计为2N1+2N2-4个数据块(段)。
这样,在所有存储节点100,包括本地和远端,PCIe总线链路160上传输的数据量总计为M+3N1+3N2-4个数据块(段)。
另一方面,在根据本公开的数据分布式存储方案中,本地(当前存储节点100')PCIe总线链路160上传输的数据仅为从网络数据处理器170直连写入第二非易失性存储器180从而以下刷存储方式写入的1个第二存储数据(块/段)。
而在远端(所有其它存储节点100'),PCIe总线链路160上传输的数据仅为从各存储节点100'的网络数据处理器170直连写入其第二非易失性存储器180从而以下刷存储方式写入的N2-1个第二存储数据(块/段)。
因此,根据本公开的数据分布式存储方案中,在所有存储节点100',包括本地和远端,PCIe总线链路160上传输的数据量总计为N2个第二存储数据(块/段)。
可见,PICe带宽的开销得以显著降低。
这样,一方面,采用同样的物理资源,对用户的可售卖/可使用带宽得以提升,有助于超卖;另一方面,可以有更多第二非易失性存储器180如NAND SSD加入到存储节点100'中,进而提升对CPU/内存/网络缓存等共用部件的利用率,降低综合成本。
而整个链路中,避免了海量数据的多次复制,从而缩短了全链路延迟。
本公开通过在分布式存储系统的存储节点中加入网络数据处理器(也可以称为“网络缓存”),改善了分布式存储的带宽、成本、延迟等关键要素。
在实际线上生产环境实战分析中发现,内存带宽与PCIe总线带宽为高性能分布式存储的主要性能瓶颈。通过在网络数据处理器中,在网络连接设备如网络通信模块或网卡NIC上加入非易失存储器及基本硬件处理单元,可缩短数据传输路径、减少内存复制、降低带宽开销,并缓解对CPU核数等硬件配置的需求,实现TCO(总体拥有成本)降低和性能提升的有益效果。
至此,已详细描述了根据本公开的分布式数据存储方案。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种网络数据处理器,用于分布式存储系统的存储节点,该网络数据处理器包括:
网络通信模块,用于接收待存储数据;
数据处理模块,用于对所述待存储数据进行第一数据处理,以得到对应于第一存储方式的第一存储数据,并对所述待存储数据进行第二数据处理,以得到对应于第二存储方式的第二存储数据;
第一非易失性存储器,用于以第一存储方式存储第一存储数据;以及
本地通信模块,用于通过所述存储节点的本地数据传输链路,将第二存储数据传送到所述存储节点的第二非易失性存储器,以便以第二存储方式在所述第二非易失性存储器上存储第二存储数据。
2.根据权利要求1所述的网络数据处理器,其中,
所述第一存储数据被分配给所述存储节点和多个其它存储节点以便以多备份存储方案进行存储,并且所述网络通信模块还用于将所述第一存储数据发送给所述多个其它存储节点;并且/或者
所述数据处理模块将所述待存储数据划分为多段第一存储数据,所述多段第一存储数据被分别分配给所述存储节点和多个其它存储节点以便以多备份存储方案进行存储,并且所述网络通信模块还用于将所述多段第一存储数据分别对应发送给所述多个其它存储节点;并且/或者
所述数据处理模块对所述待存储数据进行第一数据处理以得到N1个第一存储数据,所述N1个第一存储数据被分别分配给所述存储节点和N1-1个其它存储节点,并且所述网络通信模块还用于将所述N1个第一存储数据中除分配给所述存储节点的第一存储数据之外的N1-1个第一存储数据分别对应发送给所述N1-1个其它存储节点,其中N1为大于1的整数;并且/或者
所述数据处理模块对所述待存储数据进行第二数据处理以得到N2个第二存储数据,所述N2个第二存储数据被分别分配给所述存储节点和N2-1个其它存储节点,并且所述网络通信模块还用于将所述N2个第二存储数据中除分配给所述存储节点的第二存储数据之外的N2-1个第二存储数据分别对应发送给所述N2-1个其它存储节点,其中N2为大于1的整数。
3.根据权利要求1所述的网络数据处理器,其中,
所述网络通信模块还用于接收来自其它存储节点的第一存储数据和/或第二存储数据,
所述第一非易失性存储器还用于以第一存储方式存储来自其它存储节点的第一存储数据,
所述本地通信模块还用于通过所述存储节点的本地数据传输链路,将来自其它存储节点的第二存储数据传送到所述存储节点的第二非易失性存储器,以便以第二存储方式在所述第二非易失性存储器上存储所述来自其它存储节点的第二存储数据。
4.根据权利要求1所述的网络数据处理器,还包括:
数据缓存器,用于缓存所述网络通信模块接收的数据。
5.根据权利要求1所述的网络数据处理器,其中,所述数据处理模块包括下述至少一项:
纠删码编码器,用于对所述待存储数据进行纠删码编码处理;以及
压缩引擎,用于对数据进行压缩处理。
6.根据权利要求5所述的网络数据处理器,其中,
第一数据处理是用于多备份存储方案的数据处理,第二数据处理是纠删码编码;或者
第一数据处理和第二数据处理均为纠删码编码。
7.根据权利要求1所述的网络数据处理器,其中,
第一存储方式的数据存储操作与第二存储方式的数据存储操作相互独立;并且/或者
第一存储方式的数据存储速度比第二存储方式的数据存储速度快;并且/或者
第二存储方式比第一存储方式具有更高码率;并且/或者
第二存储方式比第一存储方式具有更少冗余;并且/或者
针对同一数据内容,在完成第二存储方式的存储操作后,将以第一存储方式存储的对应数据设置为能够被删除。
8.根据权利要求1所述的网络数据处理器,其中,
第一存储方式为数据日志存储,第二存储方式为数据下刷存储。
9.根据权利要求1所述的网络数据处理器,其中,
所述数据处理模块基于来自所述存储节点的控制单元的指令或参数执行所述第一数据处理和/或第二数据处理;并且/或者
所述数据处理模块基于来自所述存储节点的控制单元的指令或参数来确定第一存储数据和/或第二存储数据的分布式存储方案。
10.一种分布式存储系统中的存储节点,包括:
网络数据处理器,用于与分布式存储系统中的其它存储节点或计算节点进行数据通信,并以第一存储方式存储第一存储数据;
本地数据传输链路;以及
第二非易失性存储器,
其中,网络数据处理器将对应于第二存储方式的第二存储数据传送到第二非易失性存储器,以便第二非易失性存储器以第二存储方式存储第二存储数据。
11.根据权利要求10所述的存储节点,其中,
所述网络数据处理器是如权利要求1至9中任何一项所述的网络数据处理器。
12.一种分布式存储系统,包括:
至少一个如权利要求10或11所述的存储节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210685585.XA CN115220654A (zh) | 2022-06-17 | 2022-06-17 | 分布式存储系统、存储节点及网络数据处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210685585.XA CN115220654A (zh) | 2022-06-17 | 2022-06-17 | 分布式存储系统、存储节点及网络数据处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220654A true CN115220654A (zh) | 2022-10-21 |
Family
ID=83608173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210685585.XA Pending CN115220654A (zh) | 2022-06-17 | 2022-06-17 | 分布式存储系统、存储节点及网络数据处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220654A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865782A (zh) * | 2022-11-22 | 2023-03-28 | 天津中科曙光存储科技有限公司 | 数据传输系统、方法、装置、计算机设备和存储介质 |
-
2022
- 2022-06-17 CN CN202210685585.XA patent/CN115220654A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865782A (zh) * | 2022-11-22 | 2023-03-28 | 天津中科曙光存储科技有限公司 | 数据传输系统、方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590533B (zh) | 一种用于深度神经网络的压缩装置 | |
US11243837B2 (en) | Data storage drive rebuild with parity generation offload using peer-to-peer data transfers | |
TWI814975B (zh) | 用於利用自我調整寫緩衝區釋放的存儲介質編程方法與裝置、以及其系統單晶片 | |
US10725859B2 (en) | Parity generation offload using peer-to-peer data transfers in data storage system | |
US20190065310A1 (en) | System and method to utilize larger block sizes for logical disk and further decompose into smaller physical block sizes for redundant encoding by utilizing erasure coding | |
US10289507B1 (en) | Distributed rebuild of failed storage device | |
CN103645969A (zh) | 数据复制方法及数据存储系统 | |
US11379127B2 (en) | Method and system for enhancing a distributed storage system by decoupling computation and network tasks | |
EP3229138B1 (en) | Method and device for data backup in a storage system | |
US11755254B2 (en) | Network storage gateway | |
CN107479833B (zh) | 一种面向键值存储的远程非易失内存访问与管理方法 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
EP3494493A1 (en) | Repartitioning data in a distributed computing system | |
CN117311593A (zh) | 数据处理方法、装置及系统 | |
CN115220654A (zh) | 分布式存储系统、存储节点及网络数据处理器 | |
CN114595043A (zh) | 一种io调度方法和装置 | |
WO2021106514A1 (ja) | コントローラおよび記憶装置 | |
WO2022007225A1 (zh) | 数据存储方法、存储系统、存储设备及存储介质 | |
WO2024001863A1 (zh) | 一种数据处理方法及相关设备 | |
US11797379B2 (en) | Error detection and data recovery for distributed cache | |
CN116414730A (zh) | 计算系统及数据处理系统 | |
CN110196682B (zh) | 数据管理方法、装置、计算设备及存储介质 | |
KR102729696B1 (ko) | 적응형 기입 버퍼 해제를 이용한 스토리지 미디어 프로그래밍 | |
WO2024037010A1 (zh) | 数据存储方法、装置及存储介质 | |
US10908828B1 (en) | Enhanced quality of service (QoS) for multiple simultaneous replication sessions in a replication setup |
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 |