CN111143117A - 数据存储方法及装置 - Google Patents
数据存储方法及装置 Download PDFInfo
- Publication number
- CN111143117A CN111143117A CN201811315379.XA CN201811315379A CN111143117A CN 111143117 A CN111143117 A CN 111143117A CN 201811315379 A CN201811315379 A CN 201811315379A CN 111143117 A CN111143117 A CN 111143117A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- index
- type
- write
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据存储方法及装置,应用于云存储节点。所述方法包括:获得包括待存储数据的写命令请求;获得写命令请求的类型;在写命令请求的类型为索引命令时,在回滚方式下将待存储数据进行存储;在写命令请求的类型为非索引命令时,在非回滚方式下将待存储数据进行存储。对于索引命令启用回滚功能,对于普通的非索引命令取消回滚功能,由此即使面对条带不一致的情况,也不会极大降低云存储节点的写入性能,同时也不会出现由于索引信息丢失而导致丢失大量录像的情况。
Description
技术领域
本申请涉及存储技术领域,具体而言,涉及一种数据存储方法及装置。
背景技术
由于监控应用有大容量、长留存期的需求,因此在云存储系统应用在视频监控类应用时,基本上采用K+M的纠删码方式来存储数据,从而提高空间利用率、降低硬件采购成本。目前在存储数据时,一般都会使用纠删码的回滚功能以确保条带一致性,便于后期可以回放录像。然而使用纠删码的回滚功能会导致在条带不一致时,云存储节点反复进行回滚,进而影响云存储节点的写入性能。
针对上述不足,有的方案提出:既然监控应用中大部分都是视频流,即使几个条带出现不一致,顶多出现跳秒或马赛克现象,因此干脆取消纠删码的回滚功能。
上述方案虽然可以解决由于回滚影响云存储节点的写入性能这一问题,但是由于回滚功能被取消,在这种情况下,若不一致的条带是超级块或者一级索引、二级索引,则会造成丢失几十秒甚至几个小时的录像。
发明内容
为了克服现有技术中的上述不足,本申请实施例的目的在于提供一种数据存储方法及装置,其能够通过对索引命令启用回滚功能,对普通的非索引命令取消回滚功能,由此即使面对条带不一致的情况,也不会极大降低云存储节点的写入性能,同时不会出现由于索引信息丢失而导致丢失大量录像的情况。
第一方面,本申请实施例提供一种数据存储方法,应用于云存储节点,所述方法包括:
获得包括待存储数据的写命令请求;
获得所述写命令请求的类型;
在所述写命令请求的类型为索引命令时,在回滚方式下将所述待存储数据进行存储;
在所述写命令请求的类型为非索引命令时,在非回滚方式下将所述待存储数据进行存储。
可选地,在本申请实施例中,所述获得所述写命令请求的类型的步骤包括:
根据所述待存储数据对应的写入地址得到所述待存储数据的类型;
在所述待存储数据的类型为索引数据时,判定所述写命令请求为索引命令;
在所述待存储数据的类型为非索引数据时,判定所述写命令请求为非索引命令。
可选地,在本申请实施例中,所述根据所述待存储数据对应的写入地址得到所述待存储数据的类型的步骤包括:
在所述待存储数据对应的写入地址属于索引数据对应的地址范围时,判定所述待存储数据的类型为索引数据;
在所述待存储数据对应的写入地址属于非索引数据对应的地址范围时,判定所述待存储数据的类型为非索引数据。
可选地,在本申请实施例中,所述在回滚方式下将所述待存储数据进行存储的步骤包括:
启用回滚接口;
在预设纠删码策略下,将所述待存储数据以重构写方式写入对应的磁盘内。
可选地,在本申请实施例中,所述在非回滚方式下将所述待存储数据进行存储的步骤包括:
取消回滚接口;
在预设纠删码策略下,将所述待存储数据以满条带写方式写入对应的磁盘内。
第二方面,本申请实施例提供一种数据存储装置,应用于云存储节点,所述装置包括:
获得模块,用于获得包括待存储数据的写命令请求;
分析模块,用于获得所述写命令请求的类型;
存储模块,用于在所述写命令请求的类型为索引命令时,在回滚方式下将所述待存储数据进行存储;
所述存储模块,还用于在所述写命令请求的类型为非索引命令时,在非回滚方式下将所述待存储数据进行存储。
可选地,在本申请实施例中,所述分析模块包括:
类型分析子模块,用于根据所述待存储数据对应的写入地址得到所述待存储数据的类型;
判定子模块,用于在所述待存储数据的类型为索引数据时,判定所述写命令请求为索引命令;
所述判定子模块,还用于在所述待存储数据的类型为非索引数据时,判定所述写命令请求为非索引命令。
可选地,在本申请实施例中,所述类型分析子模块根据所述待存储数据对应的写入地址得到所述待存储数据的类型的方式包括:
在所述待存储数据对应的写入地址属于索引数据对应的地址范围时,判定所述待存储数据的类型为索引数据;
在所述待存储数据对应的写入地址属于非索引数据对应的地址范围时,判定所述待存储数据的类型为非索引数据。
可选地,在本申请实施例中,所述存储模块在回滚方式下将所述待存储数据进行存储的方式包括:
启用回滚接口;
在预设纠删码策略下,将所述待存储数据以重构写方式写入对应的磁盘内。
可选地,在本申请实施例中,所述存储模块在非回滚方式下将所述待存储数据进行存储的方式包括:
取消回滚接口;
在预设纠删码策略下,将所述待存储数据以满条带写方式写入对应的磁盘内。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供一种数据存储方法及装置,应用于云存储节点。在得到的写命令请求的类型为索引命令时,在回滚方式下将该写命令请求中的待存储数据进行存储。在得到的写命令请求的类型为非索引命令时,在非回滚方式下将该写命令请求中的待存储数据进行存储。通过上述方式,可对每一个写命令进行预判,以提前确定是否启用纠删码的回滚功能。由于对于索引命令启用回滚,可保条带一致性,达到不因停电导致大量丢录像的健壮性要求;而对于不启用回滚的非索引命令,则可达到前端要求的高性能写入。
为使申请的上述目的、特征和优点能更明显易懂,下文特举本申请较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是条带不一致的示意图。
图2是满写示意图。
图3是覆盖写示意图。
图4是云直存组网结构示意图。
图5是本申请实施例提供的云存储节点的方框示意图。
图6是本申请实施例提供的数据存储方法的流程示意图。
图7是图6中步骤S120包括的子步骤的流程示意图。
图8是数据的一种存储格式示意图。
图9是块层地址与命令类型对应关系图。
图10是重构写示意图。
图11是满条带写示意图。
图12是本申请实施例提供的数据流程图。
图13是本申请实施例提供的数据存储装置的方框示意图。
图标:100-云存储节点;110-存储器;120-存储控制器;130-处理器;400-数据存储装置;410-获得模块;420-分析模块;430-存储模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请发明人提出本申请实施例中的技术方案之前,包括多个云存储节点的云存储系统通常采取K+M的纠删策略,将数据分别散布到不同的云存储节点上。当云存储系统全局断电或者大于M个云存储节点断电时,其数据的写入状态就有可能出现:小于K个磁盘的数据成功写入,而其它磁盘没有写成功的情况,从而出现条带数据不一致的现象。如图1所示,以4+1纠删码为例,若2个数据盘更新失败,将引起整个条带不一致的现象。此时必须引入回滚机制,来保证条带的一致性。其中,纠删码(Erasure Coding,EC)将原始数据分割成多个数据块,并基于分割成的数据块形成至少一个冗余块,条带(strip)即由得到的数据块及冗余块组成。
当前实现的回滚包括满写情况和覆盖写情况。如图2所示,满写情况:将旧的数据对象重命名,创建一个新的数据对象文件完成写操作,当需要回滚时,删除新写入的对象文件,恢复旧的数据即可。如图3所示,覆盖写:先拷贝被覆盖的那部分数据到一个新的文件,并记录被覆盖的数据的起始地址及长度,然后将要写的数据写到原来的对象文件里,回滚时,用拷贝出来的数据替换新写的数据。
上述方式虽然确保了条带一致性,但是相较于不回滚时增加了对磁盘的读操作和写操作,由此将增加磁盘的压力。而视频监控中一般使用机械硬盘,上述方式将导致云存储节点的写入性能降低到原有性能的十分之一左右,由此将影响云存储节点对后续数据的存储,最终可能导致大量录像数据丢失。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得到的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应是发明人在本申请过程中对本申请做出的贡献。
请参照图4,图4是云直存组网结构示意图。该云直存组网结构包括图像采集设备、云存储节点100、数据管理服务器及视频管理服务器。其中,图像采集设备及云存储节点100均为多个,图像采集设备通过业务网络与云存储节点100通信连接;多个云存储节点100之间通过集群网络通信连接,以构成云存储系统。其中,每个云存储节点100中包括多个磁盘。视频管理服务器(Video Management,VM)用于集中管理监控系统所有设备,调度各种视频监控业务及管理分配用户权限。数据管理服务器(Data Management,DM)用于集中管理监控系统所有前端的存储资源及存储数据。其中,所述图像采集设备可以是,但不限于,IPC(IPCamera,网络摄像机)。
当监控点的图像需要进行集中存储时,图像采集设备与云存储节点100建立iSCSI(internet Small Computer System Interface,互联网小型计算机系统接口)连接,将云存储节点100的存储资源通过iSCSI协议挂载到本地,然后将存储视频流进行iSCSI协议封装,采用专有的块存储格式将媒体与时间索引数据写入云存储节点100中。当需要查看历史监控数据时,视频管理服务器接收到回访请求,向数据管理服务器发送指示信息,指示数据管理服务器读取云存储系统中存储的相应监控数据,并返回给用于显示的设备。
在本实施例中,一云存储节点100在接收到需要存储的待存储数据后,若该待存储数据为索引数据,则启用回滚功能后进行存储;若该待存储数据为非索引数据,则不启用回滚功能,直接进行存储。
请参照图5,图5是本申请实施例提供的云存储节点100的方框示意图。如图5所示,所述云存储节点100包括:存储器110、存储控制器120、处理器130。
所述存储器110、存储控制器120及处理器130各元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有数据存储装置400,所述数据存储装置400包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器130通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的数据存储装置400,从而执行各种功能应用以及数据处理,即实现本申请实施例中的数据存储方法。
其中,所述存储器110可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述处理器130以及其他可能的组件对存储器110的访问可在所述存储控制器120的控制下进行。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解,图5所示的结构仅为示意,云存储节点100还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
请参照图6,图6是本申请实施例提供的数据存储方法的流程示意图。所述方法应用于云存储节点100。下面对数据存储方法的具体流程进行详细阐述。
步骤S110,获得包括待存储数据的写命令请求。
在本实施例中,在设置在图像采集点的图像采集设备采集的图像需要进行集中存储时,图像采集设备首先与云存储节点100建立iSCSI连接,然后向云存储节点100发送写命令请求,以将与采集的图像相关的待存储数据存储至云存储系统。由此,所述云存储节点100获得写命令请求。
其中,云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。
步骤S120,获得所述写命令请求的类型。
在本实施例中,在获得所述写命令请求后,分析该写命令请求的类型,以基于该写命令请求的类型确定是否在回滚方式下对待存储数据进行存储,以在保证云存储节点100写入性能的基础上,避免由于索引信息丢失而导致丢失大量录像的情况。
请参照图7,图7是图6中步骤S120包括的子步骤的流程示意图。步骤S120可以包括子步骤S121、子步骤S122及子步骤S123。
子步骤S121,根据所述待存储数据对应的写入地址得到所述待存储数据的类型。
在本实施例中,所述根据所述待存储数据对应的写入地址得到所述待存储数据的类型的步骤包括:
在所述待存储数据对应的写入地址属于索引数据对应的地址范围时,判定所述待存储数据的类型为索引数据;
在所述待存储数据对应的写入地址属于非索引数据对应的地址范围时,判定所述待存储数据的类型为非索引数据。
其中,所述非索引数据包括I帧数据。请参照图8,图8是数据的一种存储格式示意图。对于图4所示的云直存组网结构,在单个图像采集设备的磁盘存储空间内,一般使用图8所示的一种通用监控录像块存储格式。该块存储格式主要包括:超级块、一级时间索引区、数据单元及二级时间索引区、I帧组。超级块一般有几十K(比如16K)字节,用来记录块格式的版本号、摄像机编号。超级块后面为一级时间索引区,一级索引区中的每条时间索引与一个数据单元对应,用于记录该数据单元的最早I帧组时间。一级索引区后面是一系列的数据单元,用于保存录像的I帧组数据。每个数据单元是以一个二级时间索引区开始的,其中每条时间索引项与一个I帧组一一对应,用于记录该I帧组的开始时间。二级索引时间区之后,就是本数据单元中的所有I帧组数据。一个I帧组就是1秒的监控录像数据。在I帧组中,存储的是该I帧组的所有视频、音频数据包,即I帧组的数据类型为非索引数据。I帧组长度一般会记录到块格式中。
在回放时,一般读取一级时间索引区,然后找到指定的数据单元;再从数据单元中根据二级时间索引区的二级索引找到与指定时间对应的I帧组,接着读取该I帧组数据,然后发送给显示设备即可实现回放。
请参照图9,图9是块层地址与命令类型对应关系图。由于图像采集设备发送的命令格式固定,因此对应到块层的地址也是固定的。在接收到所述写命令请求后,首先获得该写命令请求中的待存储数据对应的写入地址。然后判断该写入地址是否位于索引数据对应的地址范围内,或位于非索引数据对应的地址范围内。若该写入地址位于索引数据对应的地址范围内,表示该写命令请求中的待存储数据即将写入用于存储索引数据的空间内,也就是说,该待存储数据的类型为索引数据。其中,该索引数据包括超级块、一级索引、二级索引。若该写入地址位于非索引数据对应的地址范围内,表示该写命令请求中的待存储数据即将写入用于非索引数据的空间内,也就是说,该待存储数据的类型为非索引数据。由此基于与待存储数据对应的写入地址获得待存储数据的类型为索引数据或非索引数据。
如图9所示,在块层中,设定0-16384对应的存储空间用来存储超级块,16385-81920对应的存储空间用来存储一级索引,81921-344064对应的存储空间用来存储二级索引,344065-268435456对应的存储空间用来存储类型为非索引数据的I帧组数据。由此,可以基于待存储数据对应的写入地址确定待存储数据的类型。
子步骤S122,在所述待存储数据的类型为索引数据时,判定所述写命令请求为索引命令。
子步骤S123,在所述待存储数据的类型为非索引数据时,判定所述写命令请求为非索引命令。
在本实施例中,索引命令中的待存储数据为索引数据,非索引命令中的待存储数据为非索引数据,因此在得到待存储数据的类型后,可基于待存储数据的类型判定对应的写命令请求为索引命令或非索引命令。
步骤S130,在所述写命令请求的类型为索引命令时,在回滚方式下将所述待存储数据进行存储。
在本实施例中,若写命令请求的类型为索引命令,为避免由于索引数据丢失而导致丢失大量录像,因此对于索引命令中的作为待存储数据的索引数据,启用回滚功能,然后对该待存储数据进行存储,以确保索引数据的一致性。
在本实施例中,所述在回滚方式下将所述待存储数据进行存储的步骤包括:
启用回滚接口;
在预设纠删码策略下,将所述待存储数据以重构写方式写入对应的磁盘内。
在本实施例中,若待存储数据为索引数据,则通过启用回滚接口以启用回滚功能。并根据写入地址长度计算出要更新的磁盘个数,采用RCW(reconstruct write,重构写)的写入方式将索引数据写入磁盘。如图10所示,图10是重构写示意图。在产生新的校验信息时先将所有待更新的磁盘中的旧数据读到缓存中,计算出新的校验信息P’,然后将新用户数据与新校验信息一起写到相应的磁盘。其中,预设纠删码策略预先根据实际需求设置,比如,为4+1纠删码。
步骤S140,在所述写命令请求的类型为非索引命令时,在非回滚方式下将所述待存储数据进行存储。
在本实施例中,所述在非回滚方式下将所述待存储数据进行存储的步骤包括:
取消回滚接口;
在预设纠删码策略下,将所述待存储数据以满条带写方式写入对应的磁盘内。
在本实施例中,若待存储数据为非索引数据,则通过取消回滚接口以不启用回滚功能。然后以满条带写入的方式将非索引数据写入磁盘。如图11所示,图11是满条带写示意图。在采取满条带写入方式时,不读取任何一个磁盘的旧数据,直接更新全部磁盘。
假设使用4+1纠删码,接收待存储数据的云存储节点1在确定是否启用回滚功能以及写入方式后,将待存储数据划分为4份实际数据,并基于纠删码技术及4份实际数据生成1份检验信息,最后将4分实际数据及1份校验信息存储在5个云存储节点中。可选地,每份数据对应一个云存储节点100。可选地,其他每个云存储节点在存储一份数据时,可根据云存储节点1确定的是否启用回滚功能以及写入方式对数据进行存储。
请参照图12,图12是本申请实施例提供的数据流程图。当块层收到由客户端下发的写命令请求后,一提取分发函数可根据写入地址计算出当前命令是索引命令还是非索引命令。若是索引命令,则下发写入命令到逻辑层时,通知启用回滚接口;若是非索引命令,则下发写入命令到逻辑层时,通知取消回滚接口。其中,在为索引命令时,写入命令中包括的写入方式为RCW写入方式;在为非索引命令时,写入命令中包括的写入方式为满条带写入方式。其中,在逻辑层实现K+M纠删码。
在实际应用中,一般采用覆盖写,回滚时要先备份原来旧的数据化,也就是从磁盘读出原来旧的数据并写入到新的地方。等业务IO成功写完后,再删除对应的备份数据。这种方式比不回滚时增加了一次读磁盘,两次写磁盘的操作,无疑大大地增加了磁盘的压力。而在本实施例中,并不对所有的数据都启用回滚功能。仅对于索引数据启用EC的回滚功能,对于普通的非索引数据则取消回滚。由此,不会由于对所有数据都启用回滚功能而极大地降低云存储节点100的写入性能,也不会由于索引数据丢失而出现大量录像丢失的情况。
请参照图13,图13是本申请实施例提供的数据存储装置400的方框示意图。所述数据存储装置400应用于云存储节点100。所述数据存储装置400可以包括获得模块410、分析模块420及存储模块430。
获得模块410,用于获得包括待存储数据的写命令请求。
在本实施例中,所述获得模块410用于执行图6中的步骤S110,关于所述获得模块410的具体描述可以参照图6中步骤S110的描述。
分析模块420,用于获得所述写命令请求的类型。
在本实施例中,所述分析模块420可以包括:
类型分析子模块,用于根据所述待存储数据对应的写入地址得到所述待存储数据的类型;
判定子模块,用于在所述待存储数据的类型为索引数据时,判定所述写命令请求为索引命令;
所述判定子模块,还用于在所述待存储数据的类型为非索引数据时,判定所述写命令请求为非索引命令。
可选地,所述类型分析子模块根据所述待存储数据对应的写入地址得到所述待存储数据的类型的方式包括:
在所述待存储数据对应的写入地址属于索引数据对应的地址范围时,判定所述待存储数据的类型为索引数据;
在所述待存储数据对应的写入地址属于非索引数据对应的地址范围时,判定所述待存储数据的类型为非索引数据。
在本实施例中,所述分析模块420用于执行图6中的步骤S120,关于所述分析模块420的具体描述可以参照图6中步骤S120的描述。
存储模块430,用于在所述写命令请求的类型为索引命令时,在回滚方式下将所述待存储数据进行存储。
在本实施例中,所述存储模块430在回滚方式下将所述待存储数据进行存储的方式包括:
启用回滚接口;
在预设纠删码策略下,将所述待存储数据以重构写方式写入对应的磁盘内。
在本实施例中,所述存储模块430用于执行图6中的步骤S130,关于所述存储模块430的具体描述可以参照图6中步骤S130的描述。
所述存储模块430,还用于在所述写命令请求的类型为非索引命令时,在非回滚方式下将所述待存储数据进行存储。
在本实施例中,所述存储模块430在非回滚方式下将所述待存储数据进行存储的方式包括:
取消回滚接口;
在预设纠删码策略下,将所述待存储数据以满条带写方式写入对应的磁盘内。
在本实施例中,所述存储模块430还用于执行图6中的步骤S140,关于所述存储模块430的具体描述还可以参照图6中步骤S140的描述。
本申请实施例还提供一种云存储节点,所述云存储节点包括:处理器及可读存储介质,所述可读存储介质存储有可执行计算机指令,所述可执行计算机指令由所述处理器读取并运行时,执行所述的数据存储方法。
本领域的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
综上所述,本申请实施例提供一种数据存储方法及装置,应用于云存储节点。在得到的写命令请求的类型为索引命令时,在回滚方式下将该写命令请求中的待存储数据进行存储。在得到的写命令请求的类型为非索引命令时,在非回滚方式下将该写命令请求中的待存储数据进行存储。通过上述方式,可对每一个写命令进行预判,以提前确定是否启用纠删码的回滚功能。由于对于索引命令启用回滚,可保证条带一致性,达到不因停电导致大量丢录像的健壮性要求;而对于不启用回滚的非索引命令,则可达到前端要求的高性能写入。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,应用于云存储节点,所述方法包括:
获得包括待存储数据的写命令请求;
获得所述写命令请求的类型;
在所述写命令请求的类型为索引命令时,在回滚方式下将所述待存储数据进行存储;
在所述写命令请求的类型为非索引命令时,在非回滚方式下将所述待存储数据进行存储。
2.根据权利要求1所述的方法,其特征在于,所述获得所述写命令请求的类型的步骤包括:
根据所述待存储数据对应的写入地址得到所述待存储数据的类型;
在所述待存储数据的类型为索引数据时,判定所述写命令请求为索引命令;
在所述待存储数据的类型为非索引数据时,判定所述写命令请求为非索引命令。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待存储数据对应的写入地址得到所述待存储数据的类型的步骤包括:
在所述待存储数据对应的写入地址属于索引数据对应的地址范围时,判定所述待存储数据的类型为索引数据;
在所述待存储数据对应的写入地址属于非索引数据对应的地址范围时,判定所述待存储数据的类型为非索引数据。
4.根据权利要求1所述的方法,其特征在于,所述在回滚方式下将所述待存储数据进行存储的步骤包括:
启用回滚接口;
在预设纠删码策略下,将所述待存储数据以重构写方式写入对应的磁盘内。
5.根据权利要求1所述的方法,其特征在于,所述在非回滚方式下将所述待存储数据进行存储的步骤包括:
取消回滚接口;
在预设纠删码策略下,将所述待存储数据以满条带写方式写入对应的磁盘内。
6.一种数据存储装置,其特征在于,应用于云存储节点,所述装置包括:
获得模块,用于获得包括待存储数据的写命令请求;
分析模块,用于获得所述写命令请求的类型;
存储模块,用于在所述写命令请求的类型为索引命令时,在回滚方式下将所述待存储数据进行存储;
所述存储模块,还用于在所述写命令请求的类型为非索引命令时,在非回滚方式下将所述待存储数据进行存储。
7.根据权利要求6所述的装置,其特征在于,所述分析模块包括:
类型分析子模块,用于根据所述待存储数据对应的写入地址得到所述待存储数据的类型;
判定子模块,用于在所述待存储数据的类型为索引数据时,判定所述写命令请求为索引命令;
所述判定子模块,还用于在所述待存储数据的类型为非索引数据时,判定所述写命令请求为非索引命令。
8.根据权利要求7所述的装置,其特征在于,所述类型分析子模块根据所述待存储数据对应的写入地址得到所述待存储数据的类型的方式包括:
在所述待存储数据对应的写入地址属于索引数据对应的地址范围时,判定所述待存储数据的类型为索引数据;
在所述待存储数据对应的写入地址属于非索引数据对应的地址范围时,判定所述待存储数据的类型为非索引数据。
9.根据权利要求6所述的装置,其特征在于,所述存储模块在回滚方式下将所述待存储数据进行存储的方式包括:
启用回滚接口;
在预设纠删码策略下,将所述待存储数据以重构写方式写入对应的磁盘内。
10.根据权利要求6所述的装置,其特征在于,所述存储模块在非回滚方式下将所述待存储数据进行存储的方式包括:
取消回滚接口;
在预设纠删码策略下,将所述待存储数据以满条带写方式写入对应的磁盘内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315379.XA CN111143117A (zh) | 2018-11-06 | 2018-11-06 | 数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315379.XA CN111143117A (zh) | 2018-11-06 | 2018-11-06 | 数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143117A true CN111143117A (zh) | 2020-05-12 |
Family
ID=70515303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811315379.XA Pending CN111143117A (zh) | 2018-11-06 | 2018-11-06 | 数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143117A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307033A (zh) * | 2020-11-23 | 2021-02-02 | 杭州迪普科技股份有限公司 | 数据包文件的重构方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520883A (zh) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种数据存取方法及其装置 |
CN102819406A (zh) * | 2012-07-04 | 2012-12-12 | 浙江宇视科技有限公司 | 一种前端数据存储方法及装置 |
CN104881242A (zh) * | 2014-02-28 | 2015-09-02 | 中兴通讯股份有限公司 | 数据写入方法及装置 |
CN105930103A (zh) * | 2016-05-10 | 2016-09-07 | 南京大学 | 一种分布式存储ceph的纠删码覆盖写方法 |
-
2018
- 2018-11-06 CN CN201811315379.XA patent/CN111143117A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520883A (zh) * | 2011-12-12 | 2012-06-27 | 杭州华三通信技术有限公司 | 一种数据存取方法及其装置 |
CN102819406A (zh) * | 2012-07-04 | 2012-12-12 | 浙江宇视科技有限公司 | 一种前端数据存储方法及装置 |
CN104881242A (zh) * | 2014-02-28 | 2015-09-02 | 中兴通讯股份有限公司 | 数据写入方法及装置 |
CN105930103A (zh) * | 2016-05-10 | 2016-09-07 | 南京大学 | 一种分布式存储ceph的纠删码覆盖写方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307033A (zh) * | 2020-11-23 | 2021-02-02 | 杭州迪普科技股份有限公司 | 数据包文件的重构方法、装置及设备 |
CN112307033B (zh) * | 2020-11-23 | 2023-04-25 | 杭州迪普科技股份有限公司 | 数据包文件的重构方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8069191B2 (en) | Method, an apparatus and a system for managing a snapshot storage pool | |
US9105308B2 (en) | System and method for disk sector failure prediction | |
US20110107053A1 (en) | Allocating Storage Memory Based on Future Use Estimates | |
US20070282921A1 (en) | Recovery point data view shift through a direction-agnostic roll algorithm | |
CN111078147A (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
US11853587B2 (en) | Data storage system with configurable durability | |
CN104281468A (zh) | 分布式虚拟机图像管理的方法和系统 | |
CN112019788B (zh) | 数据存储方法、装置、系统及存储介质 | |
CN112346647B (zh) | 数据存储方法、装置、设备和介质 | |
US20200026428A1 (en) | Smart auto-backup of virtual machines using a virtual proxy | |
US20100169283A1 (en) | Recovery point data view formation with generation of a recovery view and a coalesce policy | |
CN113064744A (zh) | 任务处理方法、装置、计算机可读介质及电子设备 | |
CN109254958B (zh) | 分布式数据读写方法、设备及系统 | |
US20070106868A1 (en) | Method and system for latency-directed block allocation | |
CN115167782B (zh) | 临时存储副本管理方法、系统、设备和存储介质 | |
CN114443332A (zh) | 一种存储池的检测方法、装置、电子设备及存储介质 | |
WO2017087015A1 (en) | Count of metadata operations | |
US20140136698A1 (en) | Statistical profiling of cluster tasks | |
CN111143117A (zh) | 数据存储方法及装置 | |
CN116483284B (zh) | 一种读写虚拟硬盘的方法、装置、介质及电子设备 | |
CN111435323B (zh) | 信息的传输方法、装置、终端、服务器及存储介质 | |
CN111381770B (zh) | 一种数据存储切换方法、装置、设备及存储介质 | |
CN111522689B (zh) | 全局快照方法、装置、电子设备及计算机可读存储介质 | |
US20070234114A1 (en) | Method, apparatus, and computer program product for implementing enhanced performance of a computer system with partially degraded hardware | |
CN106998436B (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 |