CN104793897B - 一种bitmap的存储方法 - Google Patents

一种bitmap的存储方法 Download PDF

Info

Publication number
CN104793897B
CN104793897B CN201510058742.4A CN201510058742A CN104793897B CN 104793897 B CN104793897 B CN 104793897B CN 201510058742 A CN201510058742 A CN 201510058742A CN 104793897 B CN104793897 B CN 104793897B
Authority
CN
China
Prior art keywords
block
bitmap
bit
bit positions
raid
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.)
Active
Application number
CN201510058742.4A
Other languages
English (en)
Other versions
CN104793897A (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.)
Shenzhou Yunke Beijing Technology Co ltd
Wuhan Shenzhou Digital Cloud Technology Co ltd
Original Assignee
Shenzhen Science And Technology Co Ltd Digital Cloud Data
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 Shenzhen Science And Technology Co Ltd Digital Cloud Data filed Critical Shenzhen Science And Technology Co Ltd Digital Cloud Data
Priority to CN201510058742.4A priority Critical patent/CN104793897B/zh
Publication of CN104793897A publication Critical patent/CN104793897A/zh
Application granted granted Critical
Publication of CN104793897B publication Critical patent/CN104793897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种bitmap的存储方法,包括:根据CPU的个数将磁盘阵列raid的条带进行均分,得到与每个CPU一一对应的多个区块,每个区块包括若干raid条带;在内存中选取若干bit对,分别用于表示所述多个区块的使用状态,得到区域bitmap,所述bit对包括第一bit位和第二bit位,所述第一bit位用于表示区块是否写过,所述第二bit位用于表示区块是否初始化完毕。本发明能够减少重启后首次访问条带块的IO数量,使得重启后首次写IO的速度更快,重启时,在很大程度上保持了初始化、重建进度,允许重建或者初始化中出现多次重启;节省了bitmap的存储区域,进而减少了superblock中bitmap出现问题的几率。

Description

一种bitmap的存储方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种bitmap的存储方法。
背景技术
为了在raid中使用读改写算法,必须保证raid在进行该算法之前raid已经初始化过,而对于没有初始化过的区块,只能采用重构写。所以在raid运行过程中需要有一个bitmap来表征,哪些条带或者区块是初始化过的。
现有的技术中,主要有两种,一种是将整个bitmap存储起来,要么是将bitmap分散的存储于各个区块中。第一种解决方式区域较大不仅访问起来比较耗时,而且区块被破坏的概率也很大,第二种方式则对每次IO的负担较大,每次重启后都需要做到重新读入区块信息,一般要求初始化完全结束,才可以正常工作,对前期准备要求较多。
发明内容
为解决上述技术问题,本发明提出了一种bitmap的存储方法,使得在不影响raid正确性的情况下,尽量减少bitmap的刷新频次,节省了bitmap的存储区域,进而减少了超级块superblock中bitmap出现问题的几率。
本发明提供了一种bitmap的存储方法,该方法包括:
根据CPU的个数将磁盘阵列raid的条带进行均分,得到与每个CPU一一对应的多个区块,每个区块包括若干raid条带;
在内存中选取若干bit对,分别用于表示所述多个区块的使用状态,得到区域bitmap,所述bit对包括第一bit位和第二bit位,所述第一bit位用于表示区块是否写过,所述第二bit位用于表示区块是否初始化完毕。
优选地,所述方法还包括:
根据区块与CPU之间的对应关系,将区块对应的区域bitmap存储于不同的CPU内存区域。
优选地,所述区块包括的若干条带中只要有一个条带被写过,则所述区块对应的bit对中第一bit位设置为写过状态;
当所述区块包括的若干条带均初始化完毕,则所述区块对应的bit对中第二bit位设置为初始化完毕状态。
优选地,在状态切换过程中,所述方法还包括:
从超级快superblock中读取并接管所述区域bitmap。
优选地,在重启创建raid时,所述方法还包括:
从超级快superblock中读取所述区域bitmap,并进行重新构造。
优选地,raid处于降级状态时,所述方法还包括:
当对区块进行写操作时,清除所述区块对应的bit对中第二bit位设置的初始化完毕状态
采用本发明提出的一种bitmap的存储方法,用两个bit位来表示多个raid条带的初始化或写状态,使得刷新频次降得很低,又不会影响正确性和功能体验,本发明减少了重启后首次访问条带块的IO数量,使得重启后首次写IO的速度更快,重启时,在很大程度上保持了初始化、重建进度,允许重建或者初始化中出现多次重启,节省了bitmap的存储区域,进而减少了superblock中bitmap出现问题的几率。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1为本发明提出的一种bitmap的存储方法流程图;
图2为本发明实施例中提出的在需要改变bitmap的raid算法中对bitmap的处理流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提出的一种bitmap的存储方法流程图,如图1所示,该方法包括以下步骤:
S101,根据CPU的个数将磁盘阵列raid的条带进行均分,得到与每个CPU一一对应的多个区块,每个区块包括若干raid条带;
S102,在内存中选取若干bit对,分别用于表示所述多个区块的使用状态,得到区域bitmap,所述bit对包括第一bit位和第二bit位,所述第一bit位用于表示区块是否写过,所述第二bit位用于表示区块是否初始化完毕。
其中,所述区块包括的若干条带中只要有一个条带被写过,则所述区域对应的bit对中第一bit位设置为写过状态;当所述区域包括的若干条带均初始化完毕,则所述区域对应的bit对中第二bit位设置为初始化完毕。
进一步地,所述方法还包括:根据区块与CPU之间的对应关系,将区块对应的区域bitmap存储于不同的CPU内存区域。
本发明中,在bitmap中存储两个bit,来表示一个区块,一个位表示该区块是否写过,另一个区块表示该区块是否初始化完毕,相当于给了每个区块三个状态,没有数据,有数据但是没有初始化完毕,和有数据而且已经初始化完成。这样一来对于raid算法能对每个区块实行读改写的条件就变成了该区块被初始化完成,而能通过快速初始化(刷全0数据)方式对该区域进行初始化的条件是该区域没有写过。
对于每个条带而言,作为本发明中bitmap的最小单元需要在首次写的时候对整个条带进行初始化。而对于存储单元中的bitmap而言,每个存储bit可以表示若干个条带,存储的条件是,若一个位信息表示的若干条带只要有一个条带被写过,则这一位为1表示这一个区域被写过,而只有当这个区域的所有条带都被初始化过(同时肯定被写过),才能说这个bit所表示的区域被初始化过。这样就保证了重启后bitmap的信息的改变不会影响逻辑的正确性。
本发明可以把所有条带按照cpu数目(双控制器情况下为两个控制器的总和),平分raid所属条带,并按照一定的比例缩小到以固定大小的bitmap中,存储于不同区域中,这样就使得各个核之间没有了对于bitmap的访问冲突。
其中,在状态切换过程中,所述方法还包括:从超级快superblock中读取并接管所述区域bitmap。本发明实施例中,在状态切换过程中,一个控制器上的所有核都要从superblock中读取并接管属于自己的bitmap。
其中,在重启创建raid时,所述方法还包括:从超级快superblock中读取所述区域bitmap,并进行重新构造。本发明实施例中,在重启创建raid时,控制器会从superblock中读取出区域bitmap并,恢复构造内存bitmap,在需要判别条带是否初始化的raid算法中,直接判断内存中的bitmap信息。该方法能解除bitmap刷新过程冲突,使得在某一块raid当中的磁盘拔出之后,重新插入,能够很快的从重建状态恢复到正常状态,而又不会太过加重重建过程的IO访问数量。
本发明实施例中,当raid处于降级状态时,所述方法还包括:当对区块进行写操作时,需清除所述区块对应的bit对中第二bit位设置的初始化完毕状态,将所写IO所在的区块对应的bit对中的第二bit置为初始化未完成状态。
本发明的具体工作流程如下:
在创建raid时,按照当时的控制器状态(单控或双控,具体核数等),以及raid的条带数等将raid的bitmap分成若干份,内存中用一个bit对来表示一个条带的写或者初始化信息,交由各个核心来处理。
对于关心bitmap的raid算法,每当一次写IO完成时,需要判断对某一个条带的数据,是否会产生对superblock区域bitmap的修改,若需要修改则产生IO请求,等待上一次对bitmap的访问结束时会,将这一段时间产生的请求全部完成并将当时内存中的bitmap,转化成superblock中的bitmap形式,刷新到设备当中,在此过程中其他的修改请求会存在与处理队列中,等待合并下放,在刷新结束后,会将这一次生效的请求全部完成。
图2为在需要改变bitmap的raid算法中对bitmap的处理流程图,如图2所示,具体包括:
如果对条带的写操作会产生对superblock区域bitmap的修改,则生成IO请求;
判断superblock是否在进行写操作;
若是,则请求压入队列,并退出;
若否,则合并所有请求判断这期间是否对磁盘上的bitmap,产生修改;
若是,则构造存储superblock,并写IO;
若否,则完成合并的所有请求并退出。
本发明用两个bit位来表示多个raid条带的初始化或写状态,使得刷新频次降得很低,而且bit位存储的条件设置为,若一个位信息表示的若干条带只要有一个条带被写过,则这一位为1表示这一个区域被写过,而只有当这个区域的所有条带都被初始化过(同时肯定被写过),才能说这个bit所表示的区域被初始化过,从而保证了重启后bitmap的信息的改变不会影响逻辑的正确性。按照CPU个数将bit位分成多组存放于superblock,每个CPU核心分管一个区域的bitmap。在刷新bitmap的时候优化刷新算法,使得刷新频次降得很低,又不会影响正确性和功能体验。
在双控条件下,双方各自监管自己的核心负责的bitmap,切换状态时,交接控制权。
采用本发明提出的一种bitmap的存储方法,减少了重启后首次访问条带块的IO数量;使得重启后首次写IO的速度更快;重启时,在很大程度上保持了初始化、重建进度,允许重建或者初始化中出现多次重启;节省了bitmap的存储区域,进而减少了superblock中bitmap出现问题的几率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (6)

1.一种bitmap的存储方法,其特征在于,包括:
根据CPU的个数将磁盘阵列raid的条带进行均分,得到与每个CPU一一对应的多个区块,每个区块包括若干raid条带;
在内存中选取若干bit对,分别用于表示所述多个区块的使用状态,得到区域bitmap,所述bit对包括第一bit位和第二bit位,所述第一bit位用于表示区块是否写过,所述第二bit位用于表示区块是否初始化完毕。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据区块与CPU之间的对应关系,将区块对应的区域bitmap存储于不同的CPU内存区域。
3.根据权利要求1或2所述的方法,其特征在于,所述区块包括的若干条带中只要有一个条带被写过,则所述区块对应的bit对中第一bit位设置为写过状态;
当所述区块包括的若干条带均初始化完毕,则所述区块对应的bit对中第二bit位设置为初始化完毕状态。
4.根据权利要求1或2所述的方法,其特征在于,在状态切换过程中,所述方法还包括:
将当时内存中的bitmap,转化成superblock中的bitmap形式,刷新到设备当中,并从超级块superblock中读取并接管所述区域bitmap。
5.根据权利要求1或2所述的方法,其特征在于,在重启创建raid时,所述方法还包括:
将当时内存中的bitmap,转化成superblock中的bitmap形式,刷新到设备当中,从超级块superblock中读取所述区域bitmap,并进行重新构造。
6.根据权利要求1或2所述的方法,其特征在于,raid处于降级状态时,所述方法还包括:
当对区块进行写操作时,清除所述区块对应的bit对中第二bit位设置的初始化完毕状态。
CN201510058742.4A 2015-02-04 2015-02-04 一种bitmap的存储方法 Active CN104793897B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510058742.4A CN104793897B (zh) 2015-02-04 2015-02-04 一种bitmap的存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510058742.4A CN104793897B (zh) 2015-02-04 2015-02-04 一种bitmap的存储方法

Publications (2)

Publication Number Publication Date
CN104793897A CN104793897A (zh) 2015-07-22
CN104793897B true CN104793897B (zh) 2018-04-06

Family

ID=53558720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510058742.4A Active CN104793897B (zh) 2015-02-04 2015-02-04 一种bitmap的存储方法

Country Status (1)

Country Link
CN (1) CN104793897B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536393B (zh) * 2018-03-20 2021-03-19 深圳神州数码云科数据技术有限公司 一种磁盘初始化方法及装置
CN109977117A (zh) * 2019-03-18 2019-07-05 广州虎牙信息科技有限公司 状态数据的存储方法、数据发送的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993676B2 (en) * 2002-06-12 2006-01-31 Sun Microsystems, Inc. Method and apparatus for fast initialization of redundant arrays of storage devices
CN101840360A (zh) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Raid系统的快速重建方法及装置
CN102789370A (zh) * 2012-06-29 2012-11-21 浙江宇视科技有限公司 一种raid阵列同步方法及装置
CN102981936A (zh) * 2012-11-15 2013-03-20 浪潮电子信息产业股份有限公司 一种磁盘阵列数据重构的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101566924B (zh) * 2008-04-23 2011-07-13 中兴通讯股份有限公司 一种磁盘阵列的数据读写方法
CN102567214A (zh) * 2011-12-01 2012-07-11 浪潮电子信息产业股份有限公司 一种用于raid5快速初始化位图页面管理的方法
CN103488435B (zh) * 2013-09-24 2017-08-04 华为技术有限公司 Raid子系统及其数据读写方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993676B2 (en) * 2002-06-12 2006-01-31 Sun Microsystems, Inc. Method and apparatus for fast initialization of redundant arrays of storage devices
CN101840360A (zh) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Raid系统的快速重建方法及装置
CN102789370A (zh) * 2012-06-29 2012-11-21 浙江宇视科技有限公司 一种raid阵列同步方法及装置
CN102981936A (zh) * 2012-11-15 2013-03-20 浪潮电子信息产业股份有限公司 一种磁盘阵列数据重构的方法

Also Published As

Publication number Publication date
CN104793897A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
CN109783007A (zh) 数据储存装置与存储器装置的数据处理方法
CN105740946B (zh) 一种应用细胞阵列计算系统实现神经网络计算的方法
CN105280215B (zh) 动态随机存取存储器dram的刷新方法、设备以及系统
CN1983196B (zh) 用于将执行线程分组的系统和方法
CN103999038B (zh) 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备
CN104407933B (zh) 一种数据的备份方法及装置
CN106462410B (zh) 用于加速存储器的引导时间清零的设备和方法
CN103299281B (zh) 防止硬件事务存储器系统非故意丢失事务数据
CN107077882B (zh) 一种dram刷新方法、装置和系统
DE112011106032T5 (de) Energieeinsparung durch Speicherkanal-Abschaltung
DE102013205886A1 (de) Dynamische Bankmodus-Adressierung für Speicherzugriff
CN102347075A (zh) 半导体器件
CN106527971B (zh) 一种提升ssd在垃圾回收期间读性能的方法
CN104793897B (zh) 一种bitmap的存储方法
DE102013114351A1 (de) System und Verfahren für Hardware-Disponierung bedingter Barrieren und ungeduldiger Barrieren
CN107680622A (zh) Raid存储系统、存储控制器以及raid阵列巡查方法
CN107918523A (zh) 数据储存装置及其数据写入方法
CN104122977B (zh) 一种存储数据的方法及存储系统
CN109117085A (zh) 具有nand缓冲器的nand闪速存储设备
JP2010277194A (ja) 記憶装置、データ処理方法およびデータ処理プログラム
DE60315190T2 (de) Vorladevorschlag
US20120047344A1 (en) Methods and apparatuses for re-ordering data
US20130339592A1 (en) Approach to virtual bank management in dram controllers
CN117215491A (zh) 一种快速数据访问方法、快速数据访问装置及光模块
CN106155914A (zh) 实体储存对照表维护方法以及使用该方法的装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170331

Address after: Nanshan District Guangdong streets, Shenzhen city 518131 Guangdong Province Road No. 8 financial services technology innovation base 1 building 11 floor F3

Applicant after: Shenzhen science and Technology Co.,Ltd. digital cloud data

Address before: 100085 Beijing, Haidian District, No. 9 on the ground floor of the digital science and Technology Plaza, 9

Applicant before: YUNKE CHINA DATA TECHNOLOGY LTD.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190715

Address after: 430200 Six Floors of 777B Office Building, Guanggu Third Road, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Patentee after: Wuhan Shenzhou Digital Cloud Technology Co.,Ltd.

Address before: Nanshan District Guangdong streets, Shenzhen city 518131 Guangdong Province Road No. 8 financial services technology innovation base 1 building 11 floor F3

Patentee before: Shenzhen science and Technology Co.,Ltd. digital cloud data

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230417

Address after: 6 / F, office building B, No.777, Guanggu Third Road, Donghu New Technology Development Zone, Wuhan, Hubei 430200

Patentee after: Wuhan Shenzhou Digital Cloud Technology Co.,Ltd.

Patentee after: Shenzhou Yunke (Beijing) Technology Co.,Ltd.

Address before: 6 / F, office building B, No.777, Guanggu Third Road, Donghu New Technology Development Zone, Wuhan, Hubei 430200

Patentee before: Wuhan Shenzhou Digital Cloud Technology Co.,Ltd.