数据存储方法、装置及设备、介质和存储集群与流程
未命名
10-25
阅读:125
评论:0
1.本技术涉及存储技术领域,特别是涉及一种数据存储方法、装置及设备、介质和存储集群。
背景技术:
2.存储集群中的节点需要开辟很大的内存来存储自身的性能监控数据、或元数据等大体量数据,但由于内存资源有限,通常无法给节点分配足够的内存来满足节点的数据存储需求。
技术实现要素:
3.本技术实施例的目的是提供一种数据存储方法、装置及设备、介质和存储集群,可以满足存储集群中节点的数据存储需求。
4.为解决上述技术问题,第一方面,本技术实施例提供一种数据存储方法,应用于存储集群中的任一节点,所述方法包括:访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储;其中,所述内部卷通过以下步骤创建:基于所述存储集群被配置的多个存储级内存盘,创建所述内部卷,所述内部卷用于存储所述存储集群中各个节点各自的目标数据。
5.第二方面,本技术实施例还提供了一种数据存储方法,应用于存储集群所配置的内存型数据库,所述方法包括:响应于接收到来自于所述存储集群中节点的写指令,将所述写指令所对应的待写入的目标数据,直接写入至自身的持久化存储区域中的所述节点对应的数据库表中进行存储;其中,所述内存型数据库的持久化存储区域包括基于所述存储集群被配置的多个存储级内存盘所创建的所述存储集群的内部卷。
6.第三方面,本技术实施例还提供了一种存储集群,所述存储集群包括多个节点,其中:所述多个节点中的目标节点,用于基于所述存储集群被配置的多个存储级内存盘,创建所述存储集群的内部卷;所述多个节点中的每个节点,用于访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储。
7.第四方面,本技术实施例还提供了一种数据存储装置,应用于存储集群中的任一节点,所述装置包括:第一写入模块,用于访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储;内部卷创建模块,用于基于所述存储集群被配置的多个存储级内存盘,创建所述
内部卷,所述内部卷用于存储所述存储集群中各个节点各自的目标数据。
8.第五方面,本技术实施例还提供了一种数据存储装置,应用于存储集群所配置的内存型数据库,所述装置包括:第一响应模块,用于响应于接收到来自于所述存储集群中节点的写指令,将所述写指令所对应的待写入的目标数据,直接写入至自身的持久化存储区域中的所述节点对应的数据库表中进行存储;其中,所述内存型数据库的持久化存储区域包括基于所述存储集群被配置的多个存储级内存盘所创建的所述存储集群的内部卷。
9.第六方面,本技术实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现如第一方面或第二方面所述的数据存储方法。
10.第七方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面或第二方面所述的数据存储方法。
11.第八方面,本技术实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面或第二方面所述的数据存储方法。
12.由上述技术方案可以看出,考虑到存储级内存盘的单位成本远低于内存,故可以对存储集群配置多个存储级内存盘,根据该多个存储级内存盘对存储集群创建内部卷,以代替内存来存储各节点的大体量的目标数据,由此可以满足节点的数据存储需求,且能够实现对目标数据的持久化存储,从而减少目标数据丢失的情况。
附图说明
13.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1为本技术实施例提供的一种数据存储方法的实施流程图;图2为本技术实施例提供的一种节点访问内部卷的示意图;图3为本技术实施例提供的另一种节点访问内部卷的示意图;图4为本技术实施例提供的内存型数据库改进前后的示意图;图5为本技术实施例提供的另一种节点访问内部卷的示意图;图6为本技术实施例提供的另一种数据存储方法的实施流程图;图7为本技术实施例提供的一种数据存储装置的结构示意图;图8为本技术实施例提供的另一种数据存储装置的结构示意图;图9为本技术实施例提供的一种电子设备的示意图;图10为本技术实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
15.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本
申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
16.本技术的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
17.首先,为了便于理解本技术实施例的数据存储方案,现对如下内容进行介绍。
18.1、存储级内存(storage class memory,scm)介质(即scm盘)scm介质又可称作持久内存(persistentmemory,pm)介质或者非易失性存储器(non-volatilememory,nvm),其为当前业界非常热门的新介质形态,同时具备持久化和快速字节级访问的特点。
19.2、动态随机存取存储器(dynamic random access memory,dram)dram为最常见的系统内存,只能将数据保持很短的时间。为了保持数据,dram使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果没有被刷新,存储的信息就会丢失。
20.3、内存型数据库内存型数据库就是将数据放在内存中直接操作的数据库,它利用内存的读写速度比磁盘快、以及内存是随机访问而磁盘是顺序访问这两个特点,将数据保存在内存中,在内存中模仿建立表结构和索引结构并针对内存特性进行优化,相比于传统数据库从磁盘上访问,内存型数据库访问较快。
21.4、远程字典服务(remote dictionary server,redis)redis是一个开源的使用标准c(ansi c)语言编写、支持网络、可基于内存亦可持久化的日志型键值对(key-value)数据库,并提供多种语言的应用程序接口(application programming interface,api)。与分布式的高速缓存系统(memcached)一样,为了保证效率,redis的数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从(master-slave)同步。其中,redis的持久化方式包括以下两种:1)远程字典服务数据库(redis database,rdb)持久化:rdb在指定的时间间隔内将内存中的数据集快照(snapshot)写入到磁盘中,恢复时将快照文件直接读到内存中。其中,数据集快照可以理解为在某一时间点将数据集拍照并保存下来。redis通过这种方式可以在指定的时间间隔或者执行特定命令时将当前系统中的数据保存备份,以二进制的形式写入磁盘中。
22.2)仅追加文件(append only-file,aof)持久化:aof将所执行的所有命令都记录下来(除读操作以外),恢复时重新执行一次,如果是大数据就需要写很久,aof默认是文件无限追加,大小会不断扩张。
23.相关技术中,存储集群中的节点需要开辟很大的内存来存储自身的性能监控数据、或元数据(用于记录节点自身的任务执行情况)等大体量数据,但由于内存资源有限,通常无法给节点分配足够的内存来满足节点的数据存储需求。
24.以性能监控数据为例,通过查看性能监控数据可以了解当前存储设备的各项性能指标,帮助用户了解存储设备的运行状态、帮助存储厂商服务人员快速定位问题。通常的存
储设备是双控或者多控,性能监控会涉及各存储设备节点的性能数据的储存与汇总展示,并且用户对于性能监控的时长要求可能长达几年,要求监控的对象数量、对象指标也非常多。
25.例如,常见的监控对象有存储阵列、控制器、后端数据库整合平台(statistics analysis system,sas)端口、后端以太网口、前端fc端口、前端以太网端口、存储池、硬盘、主机组、逻辑单元号(logical unit number,lun)组、lun、文件系统等,以lun为例,多数厂商支持的lun数量能达到几千,部分厂商甚至能达到65535个。监控对象指标,仍然以lun为例,其监控指标通常有每秒进行读写操作的次数(input/output operations per second,iops)、读iops、写iops、平均读写(input/output,i/o)响应时间、平均读i/o响应时间、平均写i/o响应时间、块带宽、读带宽、写带宽、队列长度、读i/o平均大小、写i/o平均大小、读缓存(cache)命中率、写cache命中率平均io大小、读io占总io的百分比、写io占总io的百分比等。
26.由于用户要求的性能监控时长较长(可能长达几年)、监控对象数量(部分对象数量可能几万个,比如卷的数量)及监控指标数量过多(比如卷都有接近20种指标要监控),这导致各节点要开辟很大的内存才能存下节点中性能监控模块产生的性能监控数据,但内存资源有限,多数情况下无法给性能监控模块分配足够的内存以满足性能监控数据的存储需求,进而导致监控模块的监控对象数量、指标数都会降低,无法满足用户需求。
27.针对上述相关技术中存在的问题,本技术提出了一种数据存储方案,利用成本更低的scm盘创建内部卷来代替内存以存储各节点的大体量的目标数据,由此可以满足节点的数据存储需求,且能够实现对目标数据的持久化存储,从而减少目标数据丢失的情况。
28.下面结合附图,通过一些实施例及其应用场景对本技术实施例提供的一种数据存储方法、装置及设备、介质和存储集群进行详细地说明。
29.第一方面,参见图1所示,为本技术实施例所提供的一种数据存储方法的实施流程图,该数据存储方法应用于存储集群中的任一节点,该方法可以包括以下步骤:步骤s101:访问所述存储集群的内部卷,将自身的目标数据写入至内部卷中进行存储。
30.其中,该内部卷通过以下步骤创建:基于存储集群被配置的多个存储级内存盘,创建内部卷,该内部卷用于存储该存储集群中各个节点各自的目标数据。
31.在具体实施时,存储集群中的任一节点在产生目标数据时,对该存储集群的内部卷进行访问,将该节点产生的目标数据写入至该内部卷,由该内部卷(即内部lun)对该目标数据进行持久化存储,相比于开辟内存实现存储的方式,内部卷所属空间来自于scm盘,使得内部卷的单位成本远低于内存,故在成本有限的情况下也可以设置较大的内部卷,如设置几百吉字节(gigabyte,gb)的内部卷来满足存储集群中各节点对目标数据的存储需求,且基于scm盘创建的内部卷可以长时间存储目标数据,不会出现因节点未及时刷新(如节点离线而未及时刷新)相关的存储单元而导致目标数据丢失的情况,还可以免去内存数据需要进一步写入硬盘(如系统盘)以实现持久化存储的操作,提高存储效率,且scm介质访问时延普遍小于1微秒(
µ
s),比当前常用的快闪记忆体(nand flash)快2-3个数量级,读写时也没有nand flash顺序写入和写前擦除的约束,操作过程更简单,同时,scm介质的在寿命和
数据保持能力方面的表现也远超nand flash,故基于scm盘创建的内存卷可以实现相比于硬盘或内存更快的访问速度、更稳定的数据保持能力和更久的使用寿命。
32.用户可以根据当前存储集群的存储需求,为存储集群配置多个scm盘以创建内部卷,也可以预先为存储集群配置包含足量的scm盘的存储池,选择该存储池中的全部或部分scm盘来创建内部卷,以满足存储集群的不同数据存储需求。在为存储集群配置好scm盘之后,可以通过设置脚本的形式使存储集群中的目标节点(如主控节点或指定的其它节点)在装机后运行该脚本以基于scm盘自动创建该存储集群的内部卷,在该内部卷创建好之后,该存储集群的各个节点即可将自身的目标数据写入至该内部卷中进行持久化存储。
33.由上述技术方案可以看出,考虑到存储级内存盘的单位成本远低于内存,故可以对存储集群配置多个存储级内存盘,根据该多个存储级内存盘对存储集群创建内部卷,以代替内存来存储各节点的大体量的目标数据,由此可以满足节点的数据存储需求,且能够实现对目标数据的持久化存储,从而减少目标数据丢失的情况。
34.可选地,在一个实施例中,该方法还包括:访问所述存储集群的内部卷,从内部卷中读取存储集群中的一个或多个节点的目标数据。
35.在具体实施时,节点可以访问该内部卷来读取自身的目标数据或读取其它节点的目标数据,可以免去节点之间因传输目标数据(如元数据、性能监控数据等)而占用的通信带宽。例如,传统存储集群的各节点之间需要互相通信来同步元数据,以保证节点离线后该节点的任务执行情况相关信息不会丢失,而本技术实施例通过创建内部卷来存储各节点的元数据,使得节点在离线并恢复后,可以直接从内部卷中获取到自身的元数据,从而免去节点间因传输元数据而占用的通信带宽。
36.作为一种可能的实施方式,目标数据包括性能监控数据,节点为存储集群中的主控节点或主从控节点切换后的新主控节点;上述访问存储集群的内部卷,从内部卷中读取存储集群中的一个或多个节点的目标数据包括:响应于接收到目标查询请求,从内部卷中读取存储集群中的各个节点各自的性能监控数据;该方法还包括:根据存储集群中各个节点各自的性能监控数据,确定并返回针对所述目标查询请求的查询结果。
37.可以理解的是,考虑到传统的存储集群通常会从各个节点中设置一个主控节点(即主控制器)、以及设置一个或者多个从控节点(即从控制器),各个节点会开辟一块内存用于存放自身的性能监控数据,且从控节点会定期将自身的性能监控数据发送给主控节点,由主控节点汇总计算各个节点的性能监控数据,以得到整个存储集群的性能监控数据,并将汇总计算后的性能监控数据写入本地的系统盘中进行持久化存储,以及在接收到外部的目标查询请求,将汇总计算后的性能监控数据作为查询结果返回至外部,其中,每个节点均有自己的内存和系统盘(用于存储系统安装文件)。
38.然而,由于从控节点要定期(时长较短,大多数是5秒)把自身的性能监控数据发送给主控节点,导致节点间需要频繁发送巨量的性能监控数据,节点间的通信带宽被性能监
控数据频繁占用,从而影响节点间对于缓存等冗余镜像数据的传输,最终影响存储集群的性能。
39.如图2所示,本技术实施例为解决性能监控数据对节点间通信带宽的占用,采用基于scm盘创建的内部卷来持久化存储该存储集群中主控节点和从控节点的性能监控数据,主控节点中的图形用户界面(graphical user interface,gui)进程在接收到外部(如用户)发送的目标查询请求之后,将直接去内部卷上读取该目标查询请求所相关的节点的性能监控数据,将读取到的数据进行汇总计算等处理以得到查询结果,并对外部展示该查询结果,由此可以免去从控节点因向主控节点同步性能监控数据而产生的巨大带宽消耗,保证存储集群的性能。
40.考虑到存储集群还可能因为软件或硬件原因,使得存储集群中的控制器发送主从控节点切换,即存储集群中的某一从控节点成为新的主控节点,由于传统的存储集群是由各个从控节点向主控节点同步性能监控数据,故在存储集群发生主从控节点切换后,该新的主控节点只有自己的性能监控数据,即新的主控节点需要重新收集各从控节点的性能监控数据进行汇总计算,再将汇总计算后的性能监控数据存储到本地的系统盘,这会造成一段时间的性能监控数据异常,且新的主控节点无法正常处理数据收集期间的目标查询请求。
41.本技术实施例为解决主从控节点切换后需要重新同步性能监控数据的问题,采用基于scm盘创建的内部卷来持久化存储该存储集群中主控节点和从控节点的性能监控数据,主从控节点切换后的新主控节点在接收到目标查询请求之后,可以直接访问内部卷来获取存储集群中各从控节点性能监控数据,从而正常进行性能监控数据的汇总计算以及查询结果返回等操作,使得存储集群在主从控节点切换后无需重新进行性能监控数据的同步传输,且可以避免因主从控节点切换而导致的性能监控数据异常和目标查询请求无法被正常处理等情况,从而提升存储集群的性能监控性能。
42.可选地,在一个实施例中,在上述步骤s101中,访问存储集群的内部卷,将自身的目标数据写入至内部卷中进行存储包括:通过节点上安装的数据库软件所提供的接口,访问存储集群的内部卷,将自身的目标数据写入至节点所对应的数据库表中进行存储。
43.其中,该内部卷用于存储该存储集群中各个节点各自对应的数据库表,单个数据库表用于存储单个节点的目标数据。
44.在具体实施时,考虑到由节点来组织和管理目标数据过于繁琐,故本技术实施例引入数据库技术来对各节点的目标数据进行组织和管理。如图3所示,各节点直接通过数据库软件提供的接口往内部卷上的各节点对应的数据表中写数据。数据库(即数据库软件)以各节点各自对应的数据库表(其为数据库中用来存储数据的对象,是有结构的数据的集合)的形式将各节点各自的目标数据写入至内部卷中进行存储,从而实现对各节点的目标数据的组织和管理。
45.作为一种可能的实施方式,该方法还包括:在节点的系统安装阶段,安装数据库软件;其中,该数据库软件用于运行内存型数据库,该内存型数据库在内部卷中对目标数据进行数据操作和存储。
46.可以理解的是,考虑到节点的性能监控数据需要实时更新与记录,直接使用传统型数据库会发生写入和读取的等待时长过长的问题,以致对存储集群的性能产生一定影响,并且会导致用户体验较差(如gui上迟迟不更新数据),故本技术实施例选择内存型数据库(如可以选择extremedb、soliddb、oracle timesten、redis等内存型数据库)来组织和管理性能监控数据,并采用将内部卷作为数据库的数据持久化存储区域的方式来对传统的内存型数据库进行了改进,使得该数据库可以在scm盘中对数据进行操作和持久化存储。
47.在具体实施时,可以在系统安装文件中集成内存型数据库所对应的数据库软件安装包,该存储集群中的各节点在系统安装阶段对该内存型数据库进行安装,并根据配置的脚本执行基于scm盘的内部卷创建,并将创建的内部卷配置为该内存型数据库的持久化存储区域,各节点随后即可通过自身安装的内存型数据库所提供的接口,直接在该内部卷中实现对目标数据的增删改查等数据操作、以及对目标数据的持久化存储。
48.如图4所示,本技术实施例打破了redis等传统内存型数据库中的数据只能在易失性存储(如dram)上进行读写的模式,数据库的数据可以直接在高性能的scm盘中进行读写(相当于使用scm盘代替了dram),且可以使用scm盘直接持久化存储数据库中的数据,无需再经过rdb或者aof操作将数据库中的数据持久化至硬盘,可以提升对目标数据的存储和访问效率。
49.可选地,在一个实施例中,上述基于存储集群被配置的多个存储级内存盘,创建内部卷,包括:基于存储集群被配置的多个存储级内存盘,组建磁盘冗余阵列;基于磁盘冗余阵列,创建内部卷。
50.在该实施例中,如图5所示,可以先基于raid 5等存储解决方案将各个scm盘组建为磁盘冗余阵列,再基于该磁盘冗余阵列来创建内部卷,由此可以避免因scm盘损坏等情况而导致存储的目标数据丢失,从而提升目标数据的存储安全性。
51.作为一种可能的实施方式,上述基于磁盘冗余阵列,创建内部卷包括:基于磁盘冗余阵列,创建单个内部卷;从内部卷中划分出存储集群中各个节点各自对应的存储分区,一个存储分区用于存储一个节点的目标数据;该方法还包括:以只读方式访问存储集群中其它节点对应的存储分区。
52.在具体实施时,可以基于scm盘所组建的磁盘阵列或磁盘冗余阵列,创建一个较大的内部卷来存储该存储集群中所有节点的目标数据,该内部卷支持来自于多个节点的并行访问,一个节点可以从自身对应的存储分区中读写自身的目标数据,并以只读方式从其它节点对应的存储分区中读取其它节点的目标数据,从而可以避免出现节点自身对应的存储分区中的数据被其它节点修改的情况,由此可以进一步提高目标数据的存储安全性。
53.作为另一种可能的实施方式,上述基于磁盘冗余阵列,创建内部卷包括:基于磁盘冗余阵列,创建存储集群中各个节点各自对应的内部卷,一个内部卷用于存储一个节点的目标数据;该方法还包括:以只读方式访问存储集群中其它节点对应的内部卷。
54.在具体实施时,可以基于scm盘所组建的磁盘阵列或磁盘冗余阵列,对各个节点分别创建一个内部卷来分别存储该各个节点的目标数据,即有几个节点就创建几个内部卷,节点访问自身的内部卷来读写自身的目标数据,从而可以提升多节点访问内部卷的并行性能,任一节点也可以采用只读方式访问其它节点对应的内部卷来读取其它节点的目标数据,可以避免因节点间传输目标数据而导致的带宽消耗,且还可以避免出现节点自身对应的内部卷中的数据被其它节点修改的情况,由此可以进一步提高目标数据的存储安全性。
55.基于上述实施例,本技术基于scm介质对内存型数据库进行了改进,并使用改进的内存型数据库来组织和管理存储集群中的目标数据,各节点通过内存型数据库所提供的接口把自身的目标数据都写入scm介质中进行存储,能够满足节点对目标数据的存储需求,尤其是对大体量的性能监控数据的存储需求的满足,可以进一步满足用户对于性能监控对象数量、性能监控对象指标数量、监控时长等日益增长的需求,且由于各节点都能看到并访问基于scm介质组建的内部卷,因此各节点把自身的目标数据写入内部卷后,任意节点都可以通过数据库接口访问各节点存储在内部卷中性能监控数据,由此能够避免节点间频繁传递目标数据而占用宝贵的节点间带宽,进而提高存储集群的性能。
56.第二方面,参见图6所示,为本技术实施例所提供的另一种数据存储方法的实施流程图,该数据存储方法应用于存储集群所配置的内存型数据库,该方法可以包括以下步骤:步骤s201:响应于接收到来自于所述存储集群中节点的写指令,将所述写指令所对应的待写入的目标数据,直接写入至自身的持久化存储区域中的所述节点对应的数据库表中进行存储。
57.其中,所述内存型数据库的持久化存储区域包括基于所述存储集群被配置的多个存储级内存盘所创建的所述存储集群的内部卷。
58.用户可以根据当前存储集群的存储需求,为存储集群配置多个scm盘以创建内部卷,也可以预先为存储集群配置包含足量的scm盘的存储池,选择该存储池中的全部或部分scm盘来创建内部卷,以满足存储集群的不同数据存储需求。在为存储集群配置好scm盘之后,可以通过设置脚本的形式使存储集群中的目标节点(如主控节点或指定的其它节点)在装机后运行该脚本以基于scm盘自动创建该存储集群的内部卷,在该内部卷创建好之后,该存储集群的各个节点即可将自身的目标数据通过该内存型数据库所提供的接口写入至该内部卷中进行持久化存储。
59.作为一种可能的实施方式,所述方法还包括:响应于接收到来自于所述存储集群中节点的读指令,从所述内存型数据库中选取与所述读指令所对应的待读取的目标数据;向所述节点返回所述待读取的目标数据。
60.作为一种可能的实施方式,所述持久化存储区域包括基于所述多个存储级内存盘所创建的所述存储集群中各个节点各自对应的内部卷,一个所述内部卷用于存储一个所述节点对应的数据库表。
61.作为一种可能的实施方式,所述持久化存储区域包括基于所述多个存储级内存盘所创建的单个内部卷,所述单个内部卷包括所述存储集群中各个节点各自对应的存储分区,一个所述存储分区用于存储一个所述节点对应的数据库表。
62.作为一种可能的实施方式,所述内部卷基于所述多个存储级内存盘所构建的磁盘
冗余阵列创建。
63.由上述技术方案可以看出,考虑到存储级内存盘的单位成本远低于内存,故可以对存储集群配置多个存储级内存盘,根据该多个存储级内存盘对存储集群创建内部卷,以代替内存来存储各节点的大体量的目标数据,由此可以满足节点的数据存储需求,且能够实现对目标数据的持久化存储,从而减少目标数据丢失的情况。
64.第三方面,本技术实施例提供了一种存储集群,所述存储集群包括多个节点,其中:所述多个节点中的目标节点,用于基于所述存储集群被配置的多个存储级内存盘,创建所述存储集群的内部卷;所述多个节点中的每个节点,用于访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储。
65.可选地,所述多个节点中的每个节点,还用于访问所述存储集群的内部卷,从所述内部卷中读取自身和/或其它节点的目标数据,所述目标数据包括元数据和性能监控数据中的至少一项。
66.可选地,所述目标数据包括性能监控数据,所述多个节点包括主控节点和至少一个从控节点,其中:所述主控节点或主从控节点切换后的新主控节点,用于响应于接收到目标查询请求,从所述内部卷中读取自身和所述从控节点的性能监控数据,并根据读取到的性能监控数据,确定并返回针对所述目标查询请求的查询结果。
67.可选地,所述目标节点,还用于基于所述存储集群被配置的多个存储级内存盘,组建磁盘冗余阵列,基于所述磁盘冗余阵列,创建所述内部卷。
68.可选地,所述目标节点,还用于基于所述磁盘冗余阵列,创建所述存储集群中各个节点各自对应的内部卷,一个内部卷用于存储一个所述节点的目标数据;所述多个节点中的每个节点,还用于以只读方式访问所述存储集群中其它节点对应的内部卷。
69.可选地,所述目标节点,还用于基于所述磁盘冗余阵列,创建单个内部卷,从所述内部卷中划分出所述存储集群中各个节点各自对应的存储分区,一个所述存储分区用于存储一个所述节点的目标数据;所述多个节点中的每个节点,还用于以只读方式访问所述存储集群中其它节点对应的存储分区。
70.由上述技术方案可以看出,考虑到存储级内存盘的单位成本远低于内存,故可以对存储集群配置多个存储级内存盘,根据该多个存储级内存盘对存储集群创建内部卷,以代替内存来存储各节点的大体量的目标数据,由此可以满足节点的数据存储需求,且能够实现对目标数据的持久化存储,从而减少目标数据丢失的情况。
71.第四方面,本技术实施例提供了一种数据存储装置,应用于存储集群中的任一节点,如图7所示,该装置包括:第一写入模块,用于访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储;内部卷创建模块,用于基于所述存储集群被配置的多个存储级内存盘,创建所述
内部卷,所述内部卷用于存储所述存储集群中各个节点各自的目标数据。
72.可选地,所述装置还包括:第一读取模块,用于访问所述存储集群的内部卷,从所述内部卷中读取所述存储集群中的一个或多个节点的目标数据。
73.可选地,所述目标数据包括性能监控数据,所述节点为所述存储集群中的主控节点或主从控节点切换后的新主控节点;所述第一读取模块包括:第一读取子模块,用于响应于接收到目标查询请求,从所述内部卷中读取所述存储集群中的各个节点各自的性能监控数据;所述装置还包括:结果返回模块,用于根据所述存储集群中各个节点各自的性能监控数据,确定并返回针对所述目标查询请求的查询结果。
74.可选地,所述第一写入模块包括:第一写入子模块,用于通过所述节点上安装的数据库软件所提供的接口,访问所述存储集群的内部卷,将自身的目标数据写入至所述节点所对应的数据库表中进行存储;其中,所述内部卷用于存储所述存储集群中各个节点各自对应的数据库表,单个所述数据库表用于存储单个所述节点的目标数据。
75.可选地,所述装置还包括:软件安装模块,用于在所述节点的系统安装阶段,安装所述数据库软件;其中,所述数据库软件用于运行内存型数据库,所述内存型数据库用于在所述内部卷中对所述目标数据进行数据操作和存储。
76.可选地,所述内部卷创建模块包括:第一创建子模块,用于基于所述存储集群被配置的多个存储级内存盘,组建磁盘冗余阵列;第二创建子模块,用于基于所述磁盘冗余阵列,创建所述内部卷。
77.可选地,所述第二创建子模块包括:第三创建子模块,用于基于所述磁盘冗余阵列,创建所述存储集群中各个节点各自对应的内部卷,一个内部卷用于存储一个所述节点的目标数据;所述装置还包括:第一访问模块,用于以只读方式访问所述存储集群中其它节点对应的内部卷。
78.可选地,所述第二创建子模块包括:第四创建子模块,用于基于所述磁盘冗余阵列,创建单个内部卷;区域划分模块,用于从所述内部卷中划分出所述存储集群中各个节点各自对应的存储分区,一个所述存储分区用于存储一个所述节点的目标数据;所述装置还包括:第二访问模块,用于以只读方式访问所述存储集群中其它节点对应的存储分区。
79.由上述技术方案可以看出,考虑到存储级内存盘的单位成本远低于内存,故可以对存储集群配置多个存储级内存盘,根据该多个存储级内存盘对存储集群创建内部卷,以代替内存来存储各节点的大体量的目标数据,由此可以满足节点的数据存储需求,且能够
实现对目标数据的持久化存储,从而减少目标数据丢失的情况。
80.第五方面,本技术实施例提供了另一种数据存储装置,应用于存储集群所配置的内存型数据库,如图8所示,该装置包括:第一响应模块,用于响应于接收到来自于所述存储集群中节点的写指令,将所述写指令所对应的待写入的目标数据,直接写入至自身的持久化存储区域中的所述节点对应的数据库表中进行存储;其中,所述内存型数据库的持久化存储区域包括基于所述存储集群被配置的多个存储级内存盘所创建的所述存储集群的内部卷。
81.可选地,所述装置还包括:第二响应模块,用于响应于接收到来自于所述存储集群中节点的读指令,从所述内存型数据库中选取与所述读指令所对应的待读取的目标数据;第一返回模块,用于向所述节点返回所述待读取的目标数据。
82.可选地,所述持久化存储区域包括基于所述多个存储级内存盘所创建的所述存储集群中各个节点各自对应的内部卷,一个所述内部卷用于存储一个所述节点对应的数据库表。
83.可选地,所述持久化存储区域包括基于所述多个存储级内存盘所创建的单个内部卷,所述单个内部卷包括所述存储集群中各个节点各自对应的存储分区,一个所述存储分区用于存储一个所述节点对应的数据库表。
84.可选地,所述内部卷基于所述多个存储级内存盘所构建的磁盘冗余阵列创建。
85.由上述技术方案可以看出,考虑到存储级内存盘的单位成本远低于内存,故可以对存储集群配置多个存储级内存盘,根据该多个存储级内存盘对存储集群创建内部卷,以代替内存来存储各节点的大体量的目标数据,由此可以满足节点的数据存储需求,且能够实现对目标数据的持久化存储,从而减少目标数据丢失的情况。
86.需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
87.本技术实施例还提供了一种电子设备,参照图9,图9是本技术实施例提出的电子设备的示意图。如图9所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本技术实施例公开的所述数据存储方法中的步骤。
88.本技术实施例还提供了一种计算机可读存储介质,参见图10,图10是本技术实施例提出的计算机可读存储介质的示意图。如图10所示,计算机可读存储介质200上存储有计算机程序/指令210,该计算机程序/指令210被处理器执行时实现如本技术实施例公开的所述数据存储方法中的步骤。
89.本技术实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如本技术实施例公开的所述数据存储方法中的步骤。
90.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
91.本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和
硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
92.本技术实施例是参照根据本技术实施例的方法、系统、设备、存储介质及程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
93.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
94.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
95.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
96.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
97.以上对本技术所提供的一种数据存储方法、装置及设备、介质和存储集群,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
技术特征:
1.一种数据存储方法,其特征在于,应用于存储集群中的任一节点,所述方法包括:访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储;其中,所述内部卷通过以下步骤创建:基于所述存储集群被配置的多个存储级内存盘,创建所述内部卷,所述内部卷用于存储所述存储集群中各个节点各自的目标数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:访问所述存储集群的内部卷,从所述内部卷中读取所述存储集群中的一个或多个节点的目标数据。3.根据权利要求2所述的方法,其特征在于,所述目标数据包括性能监控数据,所述节点为所述存储集群中的主控节点或主从控节点切换后的新主控节点;所述访问所述存储集群的内部卷,从所述内部卷中读取所述存储集群中的一个或多个节点的目标数据,包括:响应于接收到目标查询请求,从所述内部卷中读取所述存储集群中的各个节点各自的性能监控数据;所述方法还包括:根据所述存储集群中各个节点各自的性能监控数据,确定并返回针对所述目标查询请求的查询结果。4.根据权利要求1所述的方法,其特征在于,所述访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储,包括:通过所述节点上安装的数据库软件所提供的接口,访问所述存储集群的内部卷,将自身的目标数据写入至所述节点所对应的数据库表中进行存储;其中,所述内部卷用于存储所述存储集群中各个节点各自对应的数据库表,单个所述数据库表用于存储单个所述节点的目标数据。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述节点的系统安装阶段,安装所述数据库软件;其中,所述数据库软件用于运行内存型数据库,所述内存型数据库用于在所述内部卷中对所述目标数据进行数据操作和存储。6.根据权利要求1-5任一所述的方法,其特征在于,所述基于所述存储集群被配置的多个存储级内存盘,创建所述内部卷,包括:基于所述存储集群被配置的多个存储级内存盘,组建磁盘冗余阵列;基于所述磁盘冗余阵列,创建所述内部卷。7.根据权利要求6所述的方法,其特征在于,所述基于所述磁盘冗余阵列,创建所述内部卷,包括:基于所述磁盘冗余阵列,创建所述存储集群中各个节点各自对应的内部卷,一个内部卷用于存储一个所述节点的目标数据;所述方法还包括:以只读方式访问所述存储集群中其它节点对应的内部卷。8.根据权利要求6所述的方法,其特征在于,所述基于所述磁盘冗余阵列,创建所述内部卷,包括:
基于所述磁盘冗余阵列,创建单个内部卷;从所述内部卷中划分出所述存储集群中各个节点各自对应的存储分区,一个所述存储分区用于存储一个所述节点的目标数据;所述方法还包括:以只读方式访问所述存储集群中其它节点对应的存储分区。9.一种数据存储方法,其特征在于,应用于存储集群所配置的内存型数据库,所述方法包括:响应于接收到来自于所述存储集群中节点的写指令,将所述写指令所对应的待写入的目标数据,直接写入至自身的持久化存储区域中的所述节点对应的数据库表中进行存储;其中,所述内存型数据库的持久化存储区域包括基于所述存储集群被配置的多个存储级内存盘所创建的所述存储集群的内部卷。10.根据权利要求9所述的方法,其特征在于,所述方法还包括:响应于接收到来自于所述存储集群中节点的读指令,从所述内存型数据库中选取与所述读指令所对应的待读取的目标数据;向所述节点返回所述待读取的目标数据。11.根据权利要求9所述的方法,其特征在于,所述持久化存储区域包括基于所述多个存储级内存盘所创建的所述存储集群中各个节点各自对应的内部卷,一个所述内部卷用于存储一个所述节点对应的数据库表。12.根据权利要求9所述的方法,其特征在于,所述持久化存储区域包括基于所述多个存储级内存盘所创建的单个内部卷,所述单个内部卷包括所述存储集群中各个节点各自对应的存储分区,一个所述存储分区用于存储一个所述节点对应的数据库表。13.根据权利要求9-12任一所述的方法,其特征在于,所述内部卷基于所述多个存储级内存盘所构建的磁盘冗余阵列创建。14.一种存储集群,其特征在于,所述存储集群包括多个节点,其中:所述多个节点中的目标节点,用于基于所述存储集群被配置的多个存储级内存盘,创建所述存储集群的内部卷;所述多个节点中的每个节点,用于访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储。15.根据权利要求14所述的存储集群,其特征在于,所述多个节点中的每个节点,还用于访问所述存储集群的内部卷,从所述内部卷中读取自身和/或其它节点的目标数据,所述目标数据包括元数据和性能监控数据中的至少一项。16.根据权利要求15所述的存储集群,其特征在于,所述目标数据包括性能监控数据,所述多个节点包括主控节点和至少一个从控节点,其中:所述主控节点或主从控节点切换后的新主控节点,用于响应于接收到目标查询请求,从所述内部卷中读取自身和所述从控节点的性能监控数据,并根据读取到的性能监控数据,确定并返回针对所述目标查询请求的查询结果。17.根据权利要求14-16任一所述的存储集群,其特征在于,所述目标节点,还用于基于所述存储集群被配置的多个存储级内存盘,组建磁盘冗余阵列,基于所述磁盘冗余阵列,创建所述内部卷。
18.根据权利要求17所述的存储集群,其特征在于,所述目标节点,还用于基于所述磁盘冗余阵列,创建所述存储集群中各个节点各自对应的内部卷,一个内部卷用于存储一个所述节点的目标数据;所述多个节点中的每个节点,还用于以只读方式访问所述存储集群中其它节点对应的内部卷。19.根据权利要求17所述的存储集群,其特征在于,所述目标节点,还用于基于所述磁盘冗余阵列,创建单个内部卷,从所述内部卷中划分出所述存储集群中各个节点各自对应的存储分区,一个所述存储分区用于存储一个所述节点的目标数据;所述多个节点中的每个节点,还用于以只读方式访问所述存储集群中其它节点对应的存储分区。20.一种数据存储装置,其特征在于,应用于存储集群中的任一节点,所述装置包括:第一写入模块,用于访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储;内部卷创建模块,用于基于所述存储集群被配置的多个存储级内存盘,创建所述内部卷,所述内部卷用于存储所述存储集群中各个节点各自的目标数据。21.一种数据存储装置,其特征在于,应用于存储集群所配置的内存型数据库,所述装置包括:第一响应模块,用于响应于接收到来自于所述存储集群中节点的写指令,将所述写指令所对应的待写入的目标数据,直接写入至自身的持久化存储区域中的所述节点对应的数据库表中进行存储;其中,所述内存型数据库的持久化存储区域包括基于所述存储集群被配置的多个存储级内存盘所创建的所述存储集群的内部卷。22.一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如权利要求1至8中任一项所述的数据存储方法或实现如权利要求9至13中任一项所述的数据存储方法。23.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1至8中任一项所述的数据存储方法或实现如权利要求9至13中任一项所述的数据存储方法。
技术总结
本申请实施例公开了一种数据存储方法、装置及设备、介质和存储集群,涉及存储技术领域,可以满足存储集群中节点的数据存储需求。该方法包括:访问所述存储集群的内部卷,将自身的目标数据写入至所述内部卷中进行存储;其中,所述内部卷通过以下步骤创建:基于所述存储集群被配置的多个存储级内存盘,创建所述内部卷,所述内部卷用于存储所述存储集群中各个节点各自的目标数据。点各自的目标数据。点各自的目标数据。
技术研发人员:徐洪志 杨善松 芮健德 王艳清
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.09.12
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种分水阀结构的制作方法 下一篇:一种基于量子安全技术的数据存储方法及系统与流程