CN102033794A - 一种flash固态盘数据冗余保护方法 - Google Patents
一种flash固态盘数据冗余保护方法 Download PDFInfo
- Publication number
- CN102033794A CN102033794A CN 201110003827 CN201110003827A CN102033794A CN 102033794 A CN102033794 A CN 102033794A CN 201110003827 CN201110003827 CN 201110003827 CN 201110003827 A CN201110003827 A CN 201110003827A CN 102033794 A CN102033794 A CN 102033794A
- Authority
- CN
- China
- Prior art keywords
- data
- flash
- zone
- passage
- controller
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及数据存储技术领域,尤其是涉及一种FLASH固态盘数据冗余保护方法,包括数据存储过程、数据读取过程和数据恢复过程;通过数据并行操作、数据冗余保护及数据恢复的方法,解决了现有技术中存在的问题。本发明的有益效果是:本发明提供的高可靠性、高速的FLASH固态盘数据冗余保护方法,为FLASH固态盘存储数据提供了极高的可靠性,即使在同一区域内1个至m个的FLASH通道的芯片损坏,也能够保证存储数据的完整性;在保证高可靠性的同时,以m通道并行读写和“零开销”的冗余机制,极大的提高了FLASH固态盘的读写速度。
Description
技术领域
本发明涉及数据存储技术领域,尤其是涉及一种FLASH固态盘数据冗余保护方法。
背景技术
随着固态盘成本的降低,固态盘的使用范围越来越广,固态盘替代传统的硬盘已经慢慢成为趋势。传统的硬盘的数据可靠性完全依赖于盘片、磁头和电路的可靠性,基本上只要盘片损坏或者磁头损坏,则数据将很难恢复。而普通固态盘由多组FLASH芯片组组成,为了实现数据的管理,FLASH芯片都会按通道的方式进行排列,FLASH芯片分成n个通道,从接口进来的数据按数据块的方式在控制器的控制之下,经过缓存后再通过数据分配电路先把的一块数据分配到FLASH存储通道1进行存储,下一块数据再分配到FLASH存储通道2进行存储,第n块数据分配到FLASH存储通道n进行存储,依次循环往返。这些数据块在FLASH存储通道中的块地址信息将形成文件分配表。反之在进行读取操作的时候,将根据文件分配表读取所需的数据。当某一块FLASH芯片发生损坏后,则该芯片存储的信息将无法读取,数据的完整性显然收到破坏,从而造成用户数据丢失,将会给用户造成无法估量的损失。
发明内容
本发明为克服上述的不足之处,目的在于针对传统的FLASH固态盘,提供了高可靠性、高速的FLASH固态盘数据冗余保护方法,通过数据并行操作、数据冗余保护及数据恢复的方法,解决了现有技术中存在的问题。
本发明是通过以下技术方案达到上述目的:
一种FLASH固态盘数据冗余保护方法,包括数据存储过程、数据读取过程和数据恢复过程;
数据存储过程包括以下步骤:
1)将FLASH芯片分成2个对等的互为冗余的区域,每片区域各有m个FLASH通道,分别编号为0至(m-1);
2)设定FLASH通道每次读写操作的最小单元记为数据块;
3)从接口进来的数据经过控制器的数据重新组织,划分成m个数据块,分别编号为0至(m-1));
4)控制器将这m个数据块分别并行写入2个区域的m个FLASH通道:
0号数据块写入该区域的0号FLASH通道;
1号数据块写入该区域的1号FLASH通道;
……
(m-1)号数据块写入该区域的(m-1)号FLASH通道;
在FLASH固态盘发生故障时,数据读取过程包括以下步骤:
1)控制器查询各个FLASH通道状态,判定故障点,假设是0号FLASH通道损坏;
2)控制器关闭该区域的访问;
3)控制器从另一区域的m个FLASH通道中,每个通道读取1个数据块,组成m个数据块;
4)控制器对读到的m个数据块进行数据重组,将其还原;
在FLASH固态盘替换了故障FLASH芯片、要进行数据恢复时,数据恢复过程包括以下步骤:
1)控制器根据地址,读取另一个区域中相对应的FLASH通道上存储的数据;
2)控制器将读取的数据写入该区域的原损坏的FLASH通道:
读取1号区域的1号FLASH通道,地址0x0000上存储的数据;然后将该数据写入0号区域的1号FLASH通道的0x0000地址;
读取1号区域的1号FLASH通道,地址0x0001上存储的数据;然后将该数据写入0号区域的1号FLASH通道的0x0001地址;
……
读取1号区域的1号FLASH通道,地址0xFFFF上存储的数据;然后将该数据写入0号区域的1号FLASH通道的0xFFFF地址。
作为优选,所述的m为500。
作为优选,所述的m为2000。
本发明的有益效果:本发明提供的高可靠性、高速的FLASH固态盘数据冗余保护方法,为FLASH固态盘存储数据提供了极高的可靠性,即使在同一区域内1个至m个的FLASH通道的芯片损坏,也能够保证存储数据的完整性;在保证高可靠性的同时,以m通道并行读写和“零开销”的冗余机制,极大的提高了FLASH固态盘的读写速度。
附图说明
图1:数据存储过程的示意图;
图2:故障时的数据读取过程的示意图;
图3:数据恢复过程的示意图。
具体实施方式
下面结合附图通过实施例对本发明作进一步阐述:
一种FLASH固态盘数据冗余保护方法,包括数据存储过程、数据读取过程和数据恢复过程。
如图1所示,数据存储过程包括以下步骤:
(一)将FLASH芯片分成2个对等的区域,每片区域各有m个FLASH通道;
(二)设定FLASH通道每次读写操作的最小单元,记为“数据块”;
(三)从接口进来的用户数据经过控制器的数据重新组织,划分成m个数据块;
(四)控制器将这m个数据块并行写入A0区域对应的m个FLASH通道,具体如下:
0号数据块写入FLASH通道A0_0;
1号数据块写入FLASH通道A0_1;
……
(m-1)号数据块写入FLASH通道A0_(m-1)。
(五)同时控制器也将这m个数据块并行写入A1区域对应的m个FLASH通道,具体如下:
0号数据块写入FLASH通道A1_0;
1号数据块写入FLASH通道A1_1;
……
(m-1)号数据块写入FLASH通道A1_(m-1)。
如图2所示,在FLASH固态盘发生故障时,数据读取过程包括以下步骤:
(一)控制器查询各个FLASH通道状态,判定故障点;
(二)假设是A0区域FLASH通道A0_1损坏,控制器关闭A0区域的访问;
(三)控制器从A1区域的m个FLASH通道中,轮流从每个通道读取1个数据块,并这m个数据块组织为一段有序的数据,具体如下:
从FLASH通道A1_0读取的数据为0号数据块;
从FLASH通道A1_1读取的数据为1号数据块;
……
从FLASH通道A1_(m-1)读取的数据为(m-1)号数据块。
(四)控制器对读到的m个数据块进行数据重新组织,将其还原为用户数据。
如图3所示,在FLASH固态盘替换了故障FLASH芯片、要进行数据恢复时,以0号区域的FLASH通道A0_1为例,数据恢复过程包括以下步骤:
(一)控制器根据地址,读取A1区域中相对应的FLASH通道上存储的数据,即FLASH通道A1_1上存储的数据;
(二)控制器将读取的数据写入A0区域的FLASH通道A0_1,具体如下:
读取FLASH通道A1_1、地址0x0000上存储的数据;然后将该数据写入FLASH通道A0_1的0x0000地址;
读取FLASH通道A1_1、地址0x0001上存储的数据;然后将该数据写入FLASH通道A0_1的0x0001地址;
……
读取FLASH通道A1_1、地址0xFFFF上存储的数据;然后将该数据写入FLASH通道A0_1的0xFFFF地址。
此处的m的值可为500或为2000。
为了解决FLASH固态盘中由于FLASH芯片故障造成的数据丢失问题,提高数据存储的可靠性,本发明提出了将FLASH芯片分为互为冗余的两个区域,在存储数据时同时写入两个区域,在发生故障时将完整的用户数据从其中一个完好区域读出,并能根据完好区域快速恢复损坏区域的方法。
将FLASH固态盘上的FLASH通道分为对等的2个对等的区域,每个区域各有m个FLASH通道。按照并行系数m,控制器对接口进来的用户数据进行重新组织,划分成m个数据块,然后并行写入两个区域中对应的m个FLASH通道:0号数据块写入两个区域的0号FLASH通道、1号数据块写入两个区域的1号FLASH通道、……(m-1)号数据块写入两个区域的(m-1)号FLASH通道。存储的数据在两个区域中互为冗余。
当用户读取数据时,如果此时FLASH通道均没有故障,则控制器关闭0号区域的访问,从1号区域的m个FLASH通道中并行读取数据,经控制器重新组织后输出给用户。如果此时一个区域有若干FLASH通道故障,则控制器关闭对这个区域的访问,从另一个完好区域的m个FLASH通道中并行读取数据,经控制器重新组织后输出给用户,从而保证用户数据的正确性。
当故障通道进行替换后,需要恢复完整的用户数据时,控制器从另一个区域的对应FLASH通道上,按照地址顺序读取数据,然后写入需要被恢复的FLASH通道,恢复原故障通道的数据。
本发明采用两个区域互为冗余的机制进行数据保护,能够很大限度的提高数据的可靠性,即使同个区域内的多个FLASH通道故障时也能输出正确数据;而且在实现数据恢复时基本上没有增加额外开销,是很高效的实现方式。同时采用了m通道并行读写,极大的提高了读写速度。
以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。
Claims (3)
1.一种FLASH固态盘数据冗余保护方法,其特征在于,包括数据存储过程、数据读取过程和数据恢复过程;
数据存储过程包括以下步骤:
1)将FLASH芯片分成2个对等的互为冗余的区域,每片区域各有m个FLASH通道,分别编号为0至(m-1);
2)设定FLASH通道每次读写操作的最小单元记为数据块;
3)从接口进来的数据经过控制器的数据重新组织,划分成m个数据块,分别编号为0至(m-1));
4)控制器将这m个数据块分别并行写入2个区域的m个FLASH通道:
0号数据块写入该区域的0号FLASH通道;
1号数据块写入该区域的1号FLASH通道;
……
(m-1)号数据块写入该区域的(m-1)号FLASH通道;
在FLASH固态盘发生故障时,数据读取过程包括以下步骤:
1)控制器查询各个FLASH通道状态,判定故障点,假设是0号FLASH通道损坏;
2)控制器关闭该区域的访问;
3)控制器从另一区域的m个FLASH通道中,每个通道读取1个数据块,组成m个数据块;
4)控制器对读到的m个数据块进行数据重组,将其还原;
在FLASH固态盘替换了故障FLASH芯片、要进行数据恢复时,数据恢复过程包括以下步骤:
1)控制器根据地址,读取另一个区域中相对应的FLASH通道上存储的数据;
2)控制器将读取的数据写入该区域的原损坏的FLASH通道:
读取1号区域的1号FLASH通道,地址0x0000上存储的数据;然后将该数据写入0号区域的1号FLASH通道的0x0000地址;
读取1号区域的1号FLASH通道,地址0x0001上存储的数据;然后将该数据写入0号区域的1号FLASH通道的0x0001地址;
……
读取1号区域的1号FLASH通道,地址0xFFFF上存储的数据;然后将该数据写入0号区域的1号FLASH通道的0xFFFF地址。
2.根据权利要求1所述的一种FLASH固态盘数据冗余保护方法,其特征在于所述的m为500。
3.根据权利要求1所述的一种FLASH固态盘数据冗余保护方法,其特征在于所述的m为2000。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110003827 CN102033794A (zh) | 2011-01-10 | 2011-01-10 | 一种flash固态盘数据冗余保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110003827 CN102033794A (zh) | 2011-01-10 | 2011-01-10 | 一种flash固态盘数据冗余保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102033794A true CN102033794A (zh) | 2011-04-27 |
Family
ID=43886725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110003827 Pending CN102033794A (zh) | 2011-01-10 | 2011-01-10 | 一种flash固态盘数据冗余保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102033794A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591751A (zh) * | 2012-01-05 | 2012-07-18 | 中国电子科技集团公司第五十二研究所 | 一种存储系统的自主热备保护方法 |
CN102629223A (zh) * | 2012-02-28 | 2012-08-08 | 北京搜狐新媒体信息技术有限公司 | 一种数据修复方法及装置 |
WO2013117002A1 (zh) * | 2012-02-09 | 2013-08-15 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085953B1 (en) * | 2002-11-01 | 2006-08-01 | International Business Machines Corporation | Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array |
CN101620555A (zh) * | 2009-08-10 | 2010-01-06 | 中国电子科技集团公司第五十二研究所 | 一种基于flash芯片的固态盘数据存储与恢复方法 |
CN101727298A (zh) * | 2009-11-04 | 2010-06-09 | 北京东方广视科技股份有限公司 | 实现独立磁盘冗余阵列的方法和装置 |
CN101777013A (zh) * | 2009-01-12 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘及数据读写方法 |
-
2011
- 2011-01-10 CN CN 201110003827 patent/CN102033794A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085953B1 (en) * | 2002-11-01 | 2006-08-01 | International Business Machines Corporation | Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array |
CN101777013A (zh) * | 2009-01-12 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘及数据读写方法 |
CN101620555A (zh) * | 2009-08-10 | 2010-01-06 | 中国电子科技集团公司第五十二研究所 | 一种基于flash芯片的固态盘数据存储与恢复方法 |
CN101727298A (zh) * | 2009-11-04 | 2010-06-09 | 北京东方广视科技股份有限公司 | 实现独立磁盘冗余阵列的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591751A (zh) * | 2012-01-05 | 2012-07-18 | 中国电子科技集团公司第五十二研究所 | 一种存储系统的自主热备保护方法 |
WO2013117002A1 (zh) * | 2012-02-09 | 2013-08-15 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
CN103354923A (zh) * | 2012-02-09 | 2013-10-16 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
CN103354923B (zh) * | 2012-02-09 | 2016-03-09 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
US9904599B2 (en) | 2012-02-09 | 2018-02-27 | Huawei Technologies Co., Ltd. | Method, device, and system for data reconstruction |
CN102629223A (zh) * | 2012-02-28 | 2012-08-08 | 北京搜狐新媒体信息技术有限公司 | 一种数据修复方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023815B (zh) | 在固态存储器中实现raid | |
CN102163458B (zh) | 半导体存储器装置 | |
CN102906712B (zh) | Mlc自raid闪速数据保护方案 | |
CN102194527B (zh) | 半导体存储器装置 | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
US8640006B2 (en) | Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis | |
CN102184129B (zh) | 磁盘阵列的容错方法和装置 | |
CN107247563A (zh) | 一种nand flash芯片的块信息标识实现方法 | |
CN102508620B (zh) | 一种处理raid5坏扇区的方法 | |
US20150019808A1 (en) | Hybrid storage control system and method | |
CN102968361A (zh) | 一种raid数据自修复的方法 | |
CN103279424A (zh) | 一种Nand Flash的坏列管理装置和方法 | |
CN104484251A (zh) | 一种硬盘故障的处理方法及装置 | |
CN103455386A (zh) | 一种修复出错数据的方法和设备 | |
JP2012234254A (ja) | メモリシステム | |
CN104063187A (zh) | 适用于安防应用的硬盘文件系统及其运行方法 | |
CN103729149A (zh) | 一种存储数据的方法 | |
CN103544082A (zh) | 基于闪存芯片实现存储设备数据恢复的方法 | |
CN102033794A (zh) | 一种flash固态盘数据冗余保护方法 | |
US20130036259A1 (en) | Solid state drive and data storing method thereof | |
CN203311409U (zh) | 一种Nand Flash的坏列管理装置 | |
JP6524126B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
CN100492323C (zh) | 对缓存内容进行保护的方法和装置以及缓存控制器 | |
CN105117172A (zh) | 一种磁盘阵列历史掉盘记录的保存方法 | |
CN101620555A (zh) | 一种基于flash芯片的固态盘数据存储与恢复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110427 |