CN115454331A - 一种用于追加对象的存储方法及存储系统 - Google Patents
一种用于追加对象的存储方法及存储系统 Download PDFInfo
- Publication number
- CN115454331A CN115454331A CN202210956461.0A CN202210956461A CN115454331A CN 115454331 A CN115454331 A CN 115454331A CN 202210956461 A CN202210956461 A CN 202210956461A CN 115454331 A CN115454331 A CN 115454331A
- Authority
- CN
- China
- Prior art keywords
- storage
- additional object
- writing
- length
- data
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/061—Improving I/O performance
-
- 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
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
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
本发明公开了一种用于追加对象的存储方法及存储系统,包括将硬盘空间拆分为多个存储子块,并为任一存储子块配置用于描述该存储子块基本信息的第一控制头;以及为追加对象配置用于描述其基本信息的第二控制头,所述第二控制头配置的基本信息包括对象标识、对象大小以及对象当前所写的长度;在向硬盘空间写入追加对象的情况下,基于所述第二控制头确定追加对象的写入状态,所述写入状态包括其使用的存储子块的数量以及当前的写入长度。利用本申请的方法实现了对元数据异步修改,保证IO写入基本只有写入数据开销,极大降低元数据的管理开销。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种用于追加对象的存储方法及存储系统。
背景技术
传统存储技术,在管理本地硬盘,多采用复杂的管理机制。比如采用rocksdb数据库,来记录空间是否被分配还是释放。也有使用btree来记录,空间的分配和释放。这些方式,在每一次分配或者释放时,都涉及多次IO交互,无法将本地元数据管理的性能发挥到极致。
传统本地硬盘管理,都是基于覆盖写进行设计,需要考虑碎片整理,所以逻辑相对复杂。另外,考虑到覆盖写,下一次IO写入的硬盘空间是不确定的。
传统分布式存储,在故障恢复时,考虑到数据的覆盖写入,需要复杂的元数据信息描述,以及复杂的恢复流程,才能够保证数据恢复的一致性。
发明内容
本发明实施例提供一种用于追加对象的存储方法及存储系统,实现对元数据异步修改,保证IO写入基本只有写入数据开销,极大降低元数据管理的开销。
本发明实施例提供一种用于追加对象的存储方法,包括:
将硬盘空间拆分为多个存储子块,并为任一存储子块配置用于描述该存储子块基本信息的第一控制头;以及
为追加对象配置用于描述其基本信息的第二控制头,所述第二控制头配置的基本信息包括对象标识、对象大小以及对象当前所写的长度;
在向硬盘空间写入追加对象的情况下,基于所述第二控制头确定追加对象的写入状态,所述写入状态包括其使用的存储子块的数量以及当前的写入长度。
可选的,还包括在存储系统启动后,扫描所有存储子块的第一控制头,并建立追加对象的对象信息与所述第一控制头之间的映射表,所述存储系统包括数块硬盘。
可选的,对于处于闲置状态的存储子块,通过链表进行连接;
在追加对象将当前存储子块写满的情况下,从所述链表获取对应的第一控制头,并配置第一控制头的状态信息,并将对象信息插入到所述映射表中,以完成存储子块的分配。
可选的,还包括:
利用数据打散算法确定在追加对象写入后需要执行冗余备份的硬盘;
在硬盘状态异常的情况下,对于不允许写映射关系发生变化的追加对象,通过副本写入,且所有副本写入完成后,返回成功。
可选的,在执行数据恢复的情况下,以各副本中最短长度为准,协商追加对象的数据长度。
可选的,在执行数据恢复的情况下,还包括:
比较待恢复硬盘上追加写对象长度与正常盘上数据长度,以确定需要恢复的数据量。
本申请实施例还提出一种存储系统,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现前述的用于追加对象的存储方法的步骤。
本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的用于追加对象的存储方法的步骤。
本发明实施例通过拆分磁盘空间,并为任一存储子块配置用于描述该存储子块基本信息的第一控制头,并且为追加对象配置用于描述其基本信息的第二控制头,且第二控制头只维护对象数据写入长度信息,大块写入长度信息,由此实现了对元数据异步修改,保证IO写入基本只有写入数据开销,极大降低元数据的管理开销。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例追加对象的存储方法的基本流程图;
图2为本申请实施例控制头配置示例;
图3为本申请实施例追加对象恢复流程示意图;
图4为本申请实施例追加对象恢复示例。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种用于追加对象的存储方法,如图1所示,包括:
在步骤S101中,将硬盘空间拆分为多个存储子块,并为任一存储子块配置用于描述该存储子块基本信息的第一控制头。具体的拆分的各存储子块的大小可以是相同的,例如图2中硬盘空间拆分多个4M的存储子块,第一控制头用于描述子块的基本信息。在一些具体的示例中,如果子块未被分配,Olog id为-1,Olog idx也为-1。如果子块被分配,Olog id表示使用此子块的追加对象id,Olog idx表示此块在追加对象内第几个子块。
在步骤S102中,为追加对象配置用于描述其基本信息的第二控制头,所述第二控制头配置的基本信息包括对象标识、对象大小以及对象当前所写的长度。本示例中,每个追加对象配置有一个对应的第二控制头,用于描述追加对象的基本信息,具体包括对象id,对象大小,以及对象当前所写的长度。
在步骤S103中,在向硬盘空间写入追加对象的情况下,基于所述第二控制头确定追加对象的写入状态,所述写入状态包括其使用的存储子块的数量以及当前的写入长度。在数据写入的情况下,修改追加对象的当前写入长度,由此可以通过追加对象的当前写入长度,计算出当前使用了几个子块,以及子块内追加对象当前的写入长度。在一些实施例中,追加对象控制头中不记录自身所使用哪些子块的信息,避免解决追加对象控制头和数据块控制头信息一致性问题。
在一些实施例中,还包括在存储系统启动后,扫描所有存储子块的第一控制头,并建立追加对象的对象信息与所述第一控制头之间的映射表,所述存储系统包括数块硬盘。具体的在存储系统启动后,通过扫描所有的存储子块的第一控制头,在内存中建立Ologid+idx到第一控制头的映射表。基于当前大块设计,4TB盘,块数量也有1M个,在一些示例中可以采用hash表记录此映射关系,从而加速查找效率。
在一些实施例中,对于处于闲置状态的存储子块,通过链表进行连接;
在追加对象将当前存储子块写满的情况下,从所述链表获取对应的第一控制头,并配置第一控制头的状态信息,并将对象信息插入到所述映射表中,以完成存储子块的分配。具体的,追加对象当前所写子块写满后,例如将4M写满,则需要新分配存储子块。本示例中,所有闲置状态的存储子块,在内存中使用链表连接。每次分配,从链表上摘取块控制头,将控制头Olog id和Olog idx设置为有效值,并将对象插入到hash映射表中,分配成功。
在一些实施例中,还包括:
利用数据打散算法确定在追加对象写入后需要执行冗余备份的硬盘;
在硬盘状态异常的情况下,对于不允许写映射关系发生变化的追加对象,通过副本写入,且所有副本写入完成后,返回成功。
具体的,本示例中追加对象按照固定数据打散算法(类似Crush)确定数据写入的哪些盘进行冗余备份。随着硬盘状态异常,追加对象映射的硬盘关系将发生变化,而映射关系变化,需要迁移数据进行数据恢复。不允许迁移数据时,前台IO写追加对象,如图3所示,本方案直接不允许写映射关系发生变化的追加对象,通过副本写入,以所有副本写入成功为最终写入成功。
在一些实施例中,在执行数据恢复的情况下,以各副本中最短长度为准,协商追加对象的数据长度。用户感知的追加对象写入长度不会超过,副本中最短长度。因此,在恢复数据前,协商个追加对象数据长度时,以各副本中最短的长度为准。
在一些实施例中,在执行数据恢复的情况下,还包括:
比较待恢复硬盘上追加写对象长度与正常盘上数据长度,以确定需要恢复的数据量。
如图4所示,对于传统分布式存储,由于在对象上写入数据是覆盖写,本地元数据设计通过KV键值对记录对象中哪些位置被写入数据,以及存储在本地硬盘位置。在故障硬盘重新接入到集群存储中时,需要补齐故障期间写入到对象上的数据,由于不清楚对象哪些位置在故障后写入了数据,因此传统的方案只能将对象数据全部读取一遍再恢复数据。而在本申请的方案中基于追加写的对象元数据设计,由于在写入时修改的元数据只有对象的长度,在恢复时直接比较待恢复硬盘上追加写对象长度与正常盘上数据长度,就能知道要恢复多少数据,以及恢复哪些数据。因此,本本申请的方案不需要做对象的全量恢复,恢复数据量较少,恢复逻辑也比较简单。
本发明实施例通过拆分磁盘空间,并为任一存储子块配置用于描述该存储子块基本信息的第一控制头,并且为追加对象配置用于描述其基本信息的第二控制头,且第二控制头只维护对象数据写入长度信息,大块写入长度信息,由此实现了对元数据异步修改,保证IO写入基本只有写入数据开销,极大降低元数据的管理开销。
本申请实施例还提出一种存储系统,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现前述的用于追加对象的存储方法的步骤。
本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的用于追加对象的存储方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (8)
1.一种用于追加对象的存储方法,其特征在于,包括:
将硬盘空间拆分为多个存储子块,并为任一存储子块配置用于描述该存储子块基本信息的第一控制头;以及
为追加对象配置用于描述其基本信息的第二控制头,所述第二控制头配置的基本信息包括对象标识、对象大小以及对象当前所写的长度;
在向硬盘空间写入追加对象的情况下,基于所述第二控制头确定追加对象的写入状态,所述写入状态包括其使用的存储子块的数量以及当前的写入长度。
2.如权利要求1所述的用于追加对象的存储方法,其特征在于,还包括在存储系统启动后,扫描所有存储子块的第一控制头,并建立追加对象的对象信息与所述第一控制头之间的映射表,所述存储系统包括数块硬盘。
3.如权利要求2所述的用于追加对象的存储方法,其特征在于,
对于处于闲置状态的存储子块,通过链表进行连接;
在追加对象将当前存储子块写满的情况下,从所述链表获取对应的第一控制头,并配置第一控制头的状态信息,并将对象信息插入到所述映射表中,以完成存储子块的分配。
4.如权利要求2所述的用于追加对象的存储方法,其特征在于,还包括:
利用数据打散算法确定在追加对象写入后需要执行冗余备份的硬盘;
在硬盘状态异常的情况下,对于不允许写映射关系发生变化的追加对象,通过副本写入,且所有副本写入完成后,返回成功。
5.如权利要求4所述的用于追加对象的存储方法,其特征在于,在执行数据恢复的情况下,以各副本中最短长度为准,协商追加对象的数据长度。
6.如权利要求5所述的用于追加对象的存储方法,其特征在于,在执行数据恢复的情况下,还包括:
比较待恢复硬盘上追加写对象长度与正常盘上数据长度,以确定需要恢复的数据量。
7.一种存储系统,其特征在于,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的用于追加对象的存储方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的用于追加对象的存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210956461.0A CN115454331A (zh) | 2022-08-10 | 2022-08-10 | 一种用于追加对象的存储方法及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210956461.0A CN115454331A (zh) | 2022-08-10 | 2022-08-10 | 一种用于追加对象的存储方法及存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454331A true CN115454331A (zh) | 2022-12-09 |
Family
ID=84299154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210956461.0A Pending CN115454331A (zh) | 2022-08-10 | 2022-08-10 | 一种用于追加对象的存储方法及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454331A (zh) |
-
2022
- 2022-08-10 CN CN202210956461.0A patent/CN115454331A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
US20230013281A1 (en) | Storage space optimization in a system with varying data redundancy schemes | |
JP5413948B2 (ja) | ストレージシステム | |
JP5090941B2 (ja) | ストレージサブシステム及びストレージシステム | |
US6421767B1 (en) | Method and apparatus for managing a storage system using snapshot copy operations with snap groups | |
US7933938B2 (en) | File storage system, file storing method and file searching method therein | |
US20070288711A1 (en) | Snapshot copy management method used for logic volume manager | |
US7877554B2 (en) | Method and system for block reallocation | |
EP2416236B1 (en) | Data restore system and method | |
JP2015519674A (ja) | ストレージクラスタにおける消失符号付加および複製 | |
CN109582213B (zh) | 数据重构方法及装置、数据存储系统 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
JP2005018233A (ja) | 仮想記憶媒体に記録されたデータをバックアップする方法及び、仮想記憶媒体に記録されたデータのバックアップ装置 | |
JP5391705B2 (ja) | ストレージシステム | |
CN113568582A (zh) | 数据管理方法、装置和存储设备 | |
US20190347165A1 (en) | Apparatus and method for recovering distributed file system | |
CN111190537B (zh) | 一种追加写场景下顺序存储磁盘管理的方法及系统 | |
CN113885809B (zh) | 数据管理系统及方法 | |
US20220129346A1 (en) | Data processing method and apparatus in storage system, and storage system | |
JP5517224B2 (ja) | ストレージ装置 | |
CN112181299B (zh) | 数据修复方法及分布式存储集群 | |
CN111736754A (zh) | 数据迁移方法和装置 | |
JP5365236B2 (ja) | ストレージシステム | |
CN115454331A (zh) | 一种用于追加对象的存储方法及存储系统 | |
CN109241011B (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 |