CN104007936B - 访问数据的方法及装置 - Google Patents
访问数据的方法及装置 Download PDFInfo
- Publication number
- CN104007936B CN104007936B CN201410007103.0A CN201410007103A CN104007936B CN 104007936 B CN104007936 B CN 104007936B CN 201410007103 A CN201410007103 A CN 201410007103A CN 104007936 B CN104007936 B CN 104007936B
- Authority
- CN
- China
- Prior art keywords
- state
- read
- data
- disk
- disk group
- 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
Links
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/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
-
- 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/0653—Monitoring storage devices or 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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
-
- 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
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/103—Hybrid, i.e. RAID systems with parity comprising a mix of RAID types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
-
- 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种访问数据的方法及装置,属于信息技术领域。方法包括:获取携带有读取地址的第一磁盘组的数据读请求;根据读取地址确定第一磁盘组的第一条带位置范围;依次读取第一条带位置范围内的每个第一条带上的数据;将未成功读取的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果。本发明通过将未成功读取的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果,从而实现未成功读取数据时,减少数据的丢失和访问的中断时间。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种访问数据的方法及装置。
背景技术
随着信息技术的飞速发展,依靠设备存储数据的方式得到广泛的应用。但是设备中的存储区域存在损坏的风险,致使存储的数据丢失,这给人们带来不便,甚至是难以挽回的损失。由于不同领域对数据可靠性的要求不同,而对于数据可靠性要求不高的应用场景,存储区域中残存的数据也是有价值的。因此,如何在存储区域损坏的情况下,减少数据的丢失,从而有效地访问数据是人们需要考虑的问题。
现有技术在访问数据时会使用RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)技术,RAID是将多个磁盘组成一个磁盘组,每个磁盘又分为多个条带;数据被划分为多个数据块,分别存储在多个磁盘中的不同条带中,每个条带存储一个数据块。以RAID5为例,RAID5包括一个磁盘组,该磁盘组包括n+1个磁盘,n个磁盘用于存储访问的数据,1个磁盘用于存储冗余数据。当磁盘组中一个磁盘发生故障时,通过磁盘组中其他磁盘的数据可以计算出故障磁盘中的未知数据,进而访问全部数据。当磁盘组中多于一个磁盘发生故障时,通过磁盘组中其他磁盘的数据无法计算出故障磁盘中的未知数据,磁盘组会进入失效状态,并且无法访问磁盘组中的数据,在这种情况下可以采用RAID内置的方法或者第三方服务来访问磁盘组中的残存数据,该残存数据为磁盘组中除故障磁盘外的其他磁盘的数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
当多于一个磁盘发生故障时,如果不采取其它措施,则磁盘组中的数据将全部丢失,不能有效地访问数据。另外,即使采用RAID内置和第三方服务的方式来访问数据,但RAID内置和第三方服务没有实时性,不能方便、快捷地读取数据,还会导致业务长时间中断,并且第三方介入不能保证数据的保密性。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种访问数据的方法及装置。所述技术方案如下:
一方面,提供了一种访问数据的方法,所述方法应用于独立磁盘冗余阵列,所述独立磁盘冗余阵列至少包括第一磁盘组,所述第一磁盘组包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,所述方法包括:
获取第一磁盘组的数据读请求,所述数据读请求中携带有读取地址;
根据所述读取地址确定所述第一磁盘组的第一条带位置范围,所述第一条带位置范围内包括至少一个第一条带;
依次读取所述第一条带位置范围内的每个第一条带上的数据;
如果当前的第一条带上的数据未成功读取,则将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果。
结合第一方面,在第一方面的第一种可能的实现方式中,所述独立磁盘冗余阵列还包括第二磁盘组,所述方法还包括:
获取所述第一磁盘组的数据写请求,所述数据写请求中携带有写入地址;
根据所述写入地址确定所述第一磁盘组的第二条带位置范围,所述第二条带位置范围内包括至少一个第二条带;
依次向所述第二条带位置范围内的每个第二条带写入数据;
如果当前的第二条带上的数据未成功写入,则扫描所述第一磁盘组的状态,所述第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
如果所述第一磁盘组的状态为只读状态,则在所述第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述扫描所述第一磁盘组的状态之后,还包括:
如果所述第一磁盘组的状态为降级状态,则响应告警。
结合第一方面至第一方面的第一种至第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
检测所述第一磁盘组中各个磁盘的状态是否发生改变,所述磁盘的状态为新盘状态、正常状态和故障状态中的一种;
如果所述第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态,则对所述第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将划分得到的每个条带的状态设置为未写入状态之后,还包括:
在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。
结合第一方面至第一方面的第一种至第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
检测所述第一磁盘组的当前状态是否为只读状态,所述只读状态为所述第一磁盘组中至少两个磁盘的状态为故障状态;
如果所述第一磁盘组的当前状态为非只读状态,则确定上次检测到的所述第一磁盘组的状态是否为只读状态;
如果上次检测到的所述第一磁盘组的状态为只读状态,则将所述第一磁盘组的状态设置为非只读状态,所述非只读状态包括降级状态和正常读写状态。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述检测所述第一磁盘组的当前状态是否为只读状态之后,还包括:
如果所述第一磁盘组的当前状态为只读状态,则确定上次检测到的所述第一磁盘组的状态是否为非只读状态;
如果上次检测到的所述第一磁盘组的状态为非只读状态,则将所述第一磁盘组的状态设置为只读状态。
第二方面,提供了一种访问数据的装置,所述装置应用于独立磁盘冗余阵列,所述独立磁盘冗余阵列至少包括第一磁盘组,所述第一磁盘组包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,所述装置包括:
第一获取模块,用于获取第一磁盘组的数据读请求,所述数据读请求中携带有读取地址;
第一确定模块,用于根据所述读取地址确定所述第一磁盘组的第一条带位置范围,所述第一条带位置范围内包括至少一个第一条带;
读取模块,用于依次读取所述第一条带位置范围内的每个第一条带上的数据;
第一设置模块,用于在当前的第一条带上的数据未成功读取时,将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕;
返回模块,用于返回各个第一条带的数据读取结果。
结合第二方面,在第二方面的第一种可能的实现方式中,所述独立磁盘冗余阵列还包括第二磁盘组,所述装置还包括:
第二获取模块,用于获取所述第一磁盘组的数据写请求,所述数据写请求中携带有写入地址;
第二确定模块,用于根据所述写入地址确定所述第一磁盘组的第二条带位置范围,所述第二条带位置范围内包括至少一个第二条带;
第一写入模块,用于依次向所述第二条带位置范围内的每个第二条带写入数据;
扫描模块,用于在当前的第二条带上的数据未成功写入时,扫描所述第一磁盘组的状态,所述第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
第二写入模块,用于当所述第一磁盘组的状态为只读状态时,在所述第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述装置,还包括:
响应模块,用于当所述第一磁盘组的状态为降级状态时,响应告警。
结合第二方面至第二方面的第一种至第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置,还包括:
第一检测模块,用于检测所述第一磁盘组中各个磁盘的状态是否发生改变,所述磁盘的状态为新盘状态、正常状态和故障状态中的一种;
格式化模块,用于当所述第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态时,对所述第一磁盘进行格式化;
划分模块,用于对格式化后的第一磁盘进行条带划分;
第二设置模块,用于将划分得到的每个条带的状态设置为未写入状态。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一设置模块,还用于在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。
结合第二方面至第二方面的第一种至第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括:
第二检测模块,用于检测所述第一磁盘组的当前状态是否为只读状态,所述只读状态为所述第一磁盘组中至少两个磁盘的状态为故障状态;
第三确定模块,用于当所述第一磁盘组的当前状态为非只读状态时,确定上次检测到的所述第一磁盘组的状态是否为只读状态;
第三设置模块,用于当上次检测到的所述第一磁盘组的状态为只读状态时,将所述第一磁盘组的状态设置为非只读状态,所述非只读状态包括降级状态和正常读写状态。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置,还包括:
第四确定模块,用于当所述第一磁盘组的当前状态为只读状态时,确定上次检测到的所述第一磁盘组的状态是否为非只读状态;
第四设置模块,用于当上次检测到的所述第一磁盘组的状态为非只读状态时,将所述第一磁盘组的状态设置为只读状态。
本发明实施例提供的技术方案带来的有益效果是:
将未成功读取的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果,从而实现未成功读取数据时,减少数据的丢失和访问的中断时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的访问数据的方法流程图;
图2是本发明实施例二提供的访问数据的方法流程图;
图3是本发明实施例二提供的第一磁盘的结构示意图;
图4是本发明实施例二提供的划分的条带的示意图;
图5是本发明实施例二提供的第一种第一磁盘组的结构示意图;
图6是本发明实施例二提供的第二种第一磁盘组的结构示意图;
图7是本发明实施例二提供的访问数据的软件的结构示意图;
图8是本发明实施例二提供的软件独立磁盘冗余阵列的结构示意图;
图9是本发明实施例二提供的访问数据的硬件的结构示意图;
图10是本发明实施例三提供的访问数据的方法流程图;
图11是本发明实施例三提供的显示界面的示意图;
图12是本发明实施例四提供的访问数据的装置的结构示意图。
具体实施方式
为了访问数据,需要确定存储数据的设备。确定存储设备时需要考虑存储设备的性能、可靠性和成本,而独立磁盘冗余阵列在性能、可靠性和成本之间取得了比较好的平衡。因此,民用存储设备大部分都采用了独立磁盘冗余阵列技术来构建存储环境。
本发明实施例提供的访问数据的方法,除了应用于流媒体数据存储的场景外,针对数据可靠性要求不高的应用场景,例如纯文本的存储、互联网缓存等场景,也可应用本发明实施例提供的访问数据的方法。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例提供了一种访问数据的方法,应用于独立磁盘冗余阵列,该独立磁盘冗余阵列至少包括第一磁盘组,该第一磁盘组包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,参见图1,本实施例提供的方法流程包括:
101:获取第一磁盘组的数据读请求,数据读请求中携带有读取地址;
102:根据读取地址确定第一磁盘组的第一条带位置范围,第一条带位置范围内包括至少一个第一条带;
103:依次读取第一条带位置范围内的每个第一条带上的数据;
104:如果当前的第一条带上的数据未成功读取,则将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果。
优选地,独立磁盘冗余阵列还包括第二磁盘组,方法还包括:
获取第一磁盘组的数据写请求,数据写请求中携带有写入地址;
根据写入地址确定第一磁盘组的第二条带位置范围,第二条带位置范围内包括至少一个第二条带;
依次向第二条带位置范围内的每个第二条带写入数据;
如果当前的第二条带上的数据未成功写入,则扫描第一磁盘组的状态,第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
如果第一磁盘组的状态为只读状态,则在第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
优选地,扫描第一磁盘组的状态之后,还包括:
如果第一磁盘组的状态为降级状态,则响应告警。
优选地,方法还包括:
检测第一磁盘组中各个磁盘的状态是否发生改变,磁盘的状态为新盘状态、正常状态和故障状态中的一种;
如果第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态,则对第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。
优选地,将划分得到的每个条带的状态设置为未写入状态之后,还包括:
在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。
优选地,方法还包括:
检测第一磁盘组的当前状态是否为只读状态,只读状态为第一磁盘组中至少两个磁盘的状态为故障状态;
如果第一磁盘组的当前状态为非只读状态,则确定上次检测到的第一磁盘组的状态是否为只读状态;
如果上次检测到的第一磁盘组的状态为只读状态,则将第一磁盘组的状态设置为非只读状态,非只读状态包括降级状态和正常读写状态。
优选地,检测第一磁盘组的当前状态是否为只读状态之后,还包括:
如果第一磁盘组的当前状态为只读状态,则确定上次检测到的第一磁盘组上次的状态是否为非只读状态;
如果上次检测到的第一磁盘组的状态为非只读状态,则将第一磁盘组的状态设置为只读状态。
本发明实施例提供的方法,通过根据获取到的第一磁盘组的数据读请求中携带的读取地址确定的第一磁盘组的第一条带位置范围依次读取数据,将未成功读取的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果,从而实现未成功读取数据时,减少数据的丢失和访问的中断时间,且由于未引入第三方介入,因而能够保证数据的保密性。
实施例二
本发明实施例提供了一种访问数据的方法,应用于独立磁盘冗余阵列,该独立磁盘冗余阵列至少包括第一磁盘组,该第一磁盘组包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,结合上述实施例一的内容,对本发明实施例提供的方法进行详细地解释说明,参见图2,方法流程包括:
201:获取第一磁盘组的数据读请求,数据读请求中携带有读取地址;
关于获取数据读请求的方式,本实施例不作具体限定。具体实施时,可以采用接收消息的方式来获取数据读请求。当然,除了上述方式外,还可以采用其他方式。
进一步地,为了确定读取范围,数据读请求中携带有读取地址,用于根据读取地址确定读取范围。数据读请求中除了携带有读取地址外,还可以携带其他信息,本实施例对此不作具体限定。例如,数据读请求中携带读取顺序等。
202:根据读取地址确定第一磁盘组的第一条带位置范围,第一条带位置范围内包括至少一个第一条带;
具体地,根据读取地址确定第一磁盘组的第一条带位置范围,包括但不限于:根据读取地址计算对应读取地址的第一磁盘组中的第一磁盘,计算每个第一磁盘的第一条带位置范围,则第一条带位置范围为每个第一磁盘的第一条带位置范围的累加。当然,除了上述方式外,还可以采用其他方式根据读取地址确定第一磁盘组的第一条带位置范围,本实施例对此不作具体限定。
需要说明的是,第一条带位置范围内包括至少一个第一条带,则后续步骤中可依次读取第一条带位置范围内的每个第一条带上的数据。
为了便于理解,以第一磁盘组中包括磁盘D1至D8为例进行说明。其中,读取地址为D1条带1至D4条带1,D1条带1为磁盘D1中的条带1,D4条带1为磁盘D4中的条带1。根据读取地址计算对应读取地址的第一磁盘组中的第一磁盘为D1至D4,计算磁盘D1的第一条带位置范围是条带1,磁盘D2的第一条带位置范围是条带1,磁盘D3的第一条带位置范围是条带1,磁盘D4的第一条带位置范围是条带1,则第一条带位置范围为磁盘D1中的条带1、磁盘D2中的条带1、磁盘D3中的条带1及磁盘D4中的条带1,即第一条带位置范围内包括4个第一条带。
203:依次读取第一条带位置范围内的每个第一条带上的数据;
由于已经根据读取地址确定第一磁盘组的第一条带位置范围,则可直接依次读取第一条带位置范围内的每个第一条带上的数据。关于读取条带上的数据的方式,本实施例不作具体限定。例如,访问的数据如果是连续数据,则可提前读取未被请求的数据,并将读取到的数据存储在内存中,在获取到数据读请求后,直接从内存中读取数据,加快数据的读取速度;又例如,访问的数据如果是随机数据,则在获取到数据读请求后,直接从对应的存储区域读取数据。
204:在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据;
为了能够确定条带的状态,本实施例提供的方法还包括:检测第一磁盘组中各个磁盘的状态是否发生改变,磁盘的状态为新盘状态、正常状态和故障状态中的一种;如果第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态,则对第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。
其中,关于触发检测第一磁盘组中各个磁盘的状态的方式,本实施例不作具体限定。具体实施时,可以定期触发检测磁盘的状态。当然,除了上述方式外,还可以采用其他方式触发检测磁盘的状态。磁盘的状态为新盘状态、正常状态和故障状态中的一种。新盘状态的磁盘为新插入磁盘组的磁盘,正常状态的磁盘为磁盘组中可以进行读取、写入数据的磁盘,故障状态的磁盘为磁盘组中出现故障或拔出磁盘组的磁盘。
如果第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态,则该第一磁盘可能被人工更换为新的第一磁盘。为了正常使用新的第一磁盘,对新的第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。本实施例不对条带的状态作具体限定,条带的状态包括但不限于:已写入状态和未写入状态。需要说明的是,对第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分后,第一磁盘可正常读写数据,则第一磁盘的状态由新盘状态变为正常状态。
为了便于理解,以如图3所示的第一磁盘为例进行说明。第一磁盘被分为两个区域存储数据,分别为数据区域和元数据区域。数据区域被划分为条带1至条带5,由于第一磁盘的状态由故障状态变为新盘状态,则条带1至条带5的状态都被设置为未写入状态。元数据区域又被分为全局元数据区域和本磁盘元数据区域;全局元数据区域以B+树的形式存储第一磁盘组的元数据,本磁盘元数据区域根据全局元数据区域存储的第一磁盘组的元数据将第一磁盘中条带状态为未写入状态的条带的标志存储在“空闲条带链表”,将第一磁盘中条带状态为已写入状态的条带的标志存储在“已用条带链表”;其中,第一磁盘组的元数据在第一磁盘组中的每个第一磁盘中的全局元数据区域镜像存储,即第一磁盘组中的每个第一磁盘的全局元数据区域都记录相同的第一磁盘组的元数据。
另外,本实施例不对条带划分的大小作具体限定。具体实施时,可以根据不同的数据进行不同的划分。以流媒体数据为例,尤其是对于高清视频来说,损失一两个条带的数据时,损坏的可能仅仅是几帧图像,在25帧每秒的播放帧率下,损坏的几帧图像对视觉影像不大。绝大多数解码器和播放器可以兼容这样的错误。当损失的条带的数据增加时,视频的播放可能会变得断断续续。在视频监控的场景下,这样的视频数据一般也极具价值。
为了便于理解,以如图4(1)所示的划分的条带为例进行说明。第一行为划分后的条带,条带的大小为1MB,条带中的数据a、b、c、e、f、h、i、j、k、m、n、p、q、r、s、u、v、x未丢失,标0的条带中的数据丢失;第二行为视频数据分类,I表示关键帧(I帧),P表示前向预测帧(P帧);数据为0的条带对应I帧和P帧为损坏的帧。后续在读取数据时,第一个I帧和第一个至第三个P帧对应的条带成功读取,并可渲染到屏幕;第四个和第五个P帧对应的条带未成功读取,如果解码器解出混乱的数据,则屏幕上出现短时花屏;后续帧的显示效果可参照上述内容,针对8Mbps码率的视频数据,播放的视频基本连贯,偶尔卡顿,花屏的现象较少。
又例如,以如图4(2)所示的划分的条带为例进行说明。第一行为划分后的条带,条带的大小为256KB;第二行为视频数据分类,码率大小同图4(1)。从图4(2)可以看出,一个帧对应的条带数目增加,损坏的帧的数目也增加。因此,合适的条带大小是和媒体数据的码率大小相关的,较大的条带大小可以降低I帧连续被破坏的概率,但是一个条带包含的帧数也会变多,播放媒体数据时跳跃的时间增加;较小的条带会增大I帧连续损坏的概率,导致媒体数据的播放效果不佳。对于8MBps码率的1080p视频来说,1MB条带大小是比较好的选择,其他码率的视频文件可按照上述码率和条带的比例酌减。
进一步地,在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。由于读取未写入状态的条带没有存储数据,则在读取未写入状态的条带上的数据时,并不会实际读取数据,而是将未写入状态的条带的数据读取结果设置为预设的填充数据。本实施例不对预设的填充数据的数值作具体限定,具体实施时,预设的填充数据的数值可以为零。当然,除了上述数值外,还可以预设其他数值。
205:如果当前的第一条带上的数据未成功读取,则将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果。
为了使第一磁盘组中多于一个第一磁盘的状态为故障状态时,还可以读取磁盘组中其他第一磁盘的数据,本实施例提供的方法在当前的第一条带上的数据未成功读取时,将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据。其中,预设的填充数据参见上述步骤204中的内容,此处不再赘述。在第一条带位置范围内的每个第一条带上的数据全部读取完毕后,返回各个第一条带的数据读取结果,从而避免了第一磁盘组失效时,不能读取第一磁盘组中的任一第一磁盘的数据。
需要说明的是,在RAID5中,如果一个磁盘的状态为故障状态,可以根据磁盘组中的冗余数据恢复该磁盘中的数据。为了便于理解,以如图5所示的第一磁盘组为例进行说明,该第一磁盘组中包括D1至D9这9个磁盘,数据abcdefghijklmnopqrstuvwx被划分为数据块a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x,分别存储在磁盘D1至D9的条带中。数据a、i、q分别存储在磁盘D1的三个条带中,数据b、j、r分别存储在磁盘D2的三个条带中,数据c、k、s分别存储在磁盘D3的三个条带中,数据d、l、t分别存储在磁盘D4的三个条带中,数据e、m、u分别存储在磁盘D5的三个条带中,数据f、n、v分别存储在磁盘D6的三个条带中,数据g、o、w分别存储在磁盘D7的三个条带中,数据h、p、x分别存储在磁盘D8的三个条带中。冗余数据xor1、xor2、xor1分别存储在磁盘D9的三个条带中,xor1=a^b^c^d^e^f^g^h,xor2=i^j^k^l^m^n^o^p,xor3=q^r^s^t^u^v^w^x;其中,^表示异或。当D1至D8中任一磁盘的状态为故障状态时,可通过冗余计算恢复任一磁盘中的数据。
例如,磁盘D3的状态为故障状态,则数据c的冗余计算过程为:
xor1^a^b^d^e^f^g^h
=(a^b^c^d^e^f^g^h)^a^b^d^e^f^g^h
=(a^a)^(b^b)^c^(d^d)^(e^e)^(f^f)^(g^g)^(h^h)
=0^0^c^0^0^0^0^0
=c
数据k和数据s的冗余计算过程可参见数据c的冗余计算过程,此处不再赘述。
又例如,磁盘D4和D7的状态为故障状态,如图6所示,由于通过冗余计算不能得到磁盘D4和D7中的数据,则不能成功读取磁盘D4和D7中的数据。设置预设的填充数据为0,磁盘D4和D7中的数据中的数据的读取结果都为0。如果根据读取地址确定第一磁盘组的第一条带位置范围为D1至D8中的每个条带,则返回的数据读取结果为abc0ef0hijk0mn0pqrs0uv0x。
进一步地,本发明实施例提供的访问数据的方法可通过软件实现,还可通过硬件实现。为了便于理解,以如图7所示的访问数据的软件的结构为例进行说明。软件RAID位于VFS(Virtual File System,虚拟文件系统)和XFS(X-FileSystem,X文件系统)之间,并且提供WebUI(User Interface,用户界面)和CLI(Command Line Interface,命令行接口)用于控制软件RAID;RAID用户可通过VFS控制软件RAID。其中,软件RAID的结构可以如图8(1)所示,还可以如图8(2)所示。相对于图8(1)中的软件RAID,图8(2)中的软件RAID没有RAID文件系统和读写缓存,虚拟块设备直接连接标准文件系统,在磁盘组满足失效条件时,丢失的数据可能是标准文件里的关键数据,导致标准文件系统损坏,因此该软件RAID通常不应用于文件系统。
另外,如图9所示的访问数据的硬件的结构中,可通过RAID卡等来实现本发明实施例提供的访问数据的方法。其中,RAID卡位于操作系统和磁盘之间。
本实施例提供的方法,通过根据获取到的第一磁盘组的数据读请求中携带的读取地址确定的第一磁盘组的第一条带位置范围依次读取数据,将未成功读取的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果,从而实现未成功读取数据时,减少数据的丢失和访问的中断时间,且由于未引入第三方介入,因而能够保证数据的保密性。
实施例三
本实施例提供了一种访问数据的方法,应用于独立磁盘冗余阵列,该独立磁盘冗余阵列包括第一磁盘组和第二磁盘组,第一磁盘组和第二磁盘组分别包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,参见图10,方法流程包括:
1001:获取第一磁盘组的数据写请求,数据写请求中携带有写入地址;
为了能够访问磁盘组中的数据,获取第一磁盘组的数据写请求。关于获取数据写请求的方式,本实施例不作具体限定。具体实施时,可以采用接收消息的方式来获取数据写请求。当然,除了上述方式外,还可以采用其他方式。
进一步地,为了确定写入范围,数据写请求中携带有写入地址,用于根据写入地址确定写入范围。数据写请求中除了携带有写入地址外,还可以携带其他信息,本实施例对此不作具体限定。例如,数据写请求中携带写入顺序等。
1002:根据写入地址确定第一磁盘组的第二条带位置范围,第二条带位置范围内包括至少一个第二条带;
具体地,根据写入地址确定第一磁盘组的第二条带位置范围,包括但不限于:根据写入地址计算对应写入地址的第一磁盘组中的第一磁盘,计算每个第一磁盘的第二条带位置范围,则第二条带位置范围为每个第一磁盘的第二条带位置范围的累加。当然,除了上述方式外,还可以采用其他方式根据写入地址确定第一磁盘组的第二条带位置范围,本实施例对此不作具体限定。
需要说明的是,第一条带位置范围内包括至少一个第一条带,则后续步骤中可依次向第二条带位置范围内的每个第二条带写入数据。
为了便于理解,以第一磁盘组中包括磁盘D1至D8为例进行说明。其中,写入地址为D1条带1至D4条带1,D1条带1为磁盘D1中的条带1,D4条带1为磁盘D4中的条带1。根据写入地址计算对应写入地址的第一磁盘组中的第一磁盘为D1至D4,计算磁盘D1的第二条带位置范围是条带1,磁盘D2的第二条带位置范围是条带1,磁盘D3的第二条带位置范围是条带1,磁盘D4的第二条带位置范围是条带1,则第二条带位置范围为磁盘D1中的条带1、磁盘D2中的条带1、磁盘D3中的条带1及磁盘D4中的条带1,即第二条带位置范围内包括4个第二条带。
1003:依次向第二条带位置范围内的每个第二条带写入数据;
由于已经根据写入地址确定第一磁盘组的第二条带位置范围,则可直接依次向第二条带位置范围内的每个第二条带写入数据。关于向条带写入数据的方式,本实施例不作具体限定。具体实施时,可以将待写入的数据划分为多个数据块,并行写入第二条带位置范围内的每个第二条带写入数据,从而提高写入数据的速度。当然,除了上述方式外,还可以采用其他方式。
1004:如果当前的第二条带上的数据未成功写入,则扫描第一磁盘组的状态,第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
为了将数据成功写入独立磁盘冗余阵列,本实施例提供的方法在当前的第二条带上的数据未成功写入时,扫描第一磁盘组的状态。需要说明的是,除了在当前的第二条带上的数据未成功写入时触发扫描第一磁盘组的状态,还可以定期触发扫描第一磁盘组的状态。其中,第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;只读状态为第一磁盘组中的每个第一磁盘只能进行读取数据的操作,不能进行写入数据的操作;正常读写状态为第一磁盘中的每个第一磁盘既能进行读取数据的操作,还能进行写入数据的操作;降级状态为第一磁盘中的每个第一磁盘既能进行读取数据的操作,还能进行写入数据的操作,并且第一磁盘组中有至少一个第一磁盘的状态为故障状态;降级状态介于只读状态和正常读写状态之间。针对不同的独立磁盘冗余阵列,第一磁盘组的状态对应不同的第一磁盘的状态。
为了便于理解,以RAID5为例进行说明。如果第一磁盘组中有多于一个第一磁盘的状态为故障状态,则扫描到的第一磁盘组的状态为只读状态;如果第一磁盘组中没有第一磁盘的状态为故障状态,则扫描到的第一磁盘组的状态为正常读写状态;如果第一磁盘组中有一个第一磁盘的状态为故障状态,则扫描到的第一磁盘组的状态为降级状态。
1005:如果第一磁盘组的状态为只读状态,则在第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
如果第一磁盘组的状态为只读状态,则只能读取第一磁盘组中的数据,而不能在第一磁盘组中的条带上继续写入数据。为了能够继续向写入独立磁盘冗余阵列中写入数据,在第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
优选地,为了将第一磁盘组的状态恢复为正常读写状态,本实施例提供的方法还包括但不限于:显示第一磁盘组中磁盘状态为故障状态的第一磁盘。关于显示第一磁盘的方式,本实施例不作具体限定。为了便于理解,以图11所示的显示界面为例进行说明。根据第一磁盘组中的每个第一磁盘实际对应的插卡槽的位置显示每个第一磁盘对应的标志,分别为D1至D8;在磁盘D4和磁盘D7的位置标注,表明磁盘D4和磁盘D7的状态为故障状态。
由于已经标注故障状态的第一磁盘的位置,便于人工更换第一磁盘,为了检测第一磁盘是否被更换,本实施例提供的方法包括但不限于:检测第一磁盘组中各个磁盘的状态是否发生改变,磁盘的状态为新盘状态、正常状态和故障状态中的一种;如果第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态,则对第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。
进一步地,在检测第一磁盘组中各个磁盘的状态是否发生改变之后,本实施例提供的方法还包括但不限于:
(1)检测第一磁盘组的当前状态是否为只读状态,只读状态为第一磁盘组中至少两个磁盘的状态为故障状态;如果第一磁盘组的当前状态为非只读状态,则执行(2);如果第一磁盘组的当前状态为只读状态,则执行(4);
(2)确定上次检测到的第一磁盘组的状态是否为只读状态;
(3)如果上次检测到的第一磁盘组的状态为只读状态,则将第一磁盘组的状态设置为非只读状态,非只读状态包括降级状态和正常读写状态。
(4)确定上次检测到的第一磁盘组的状态是否为非只读状态;
(5)如果上次检测到的第一磁盘组的状态为非只读状态,则将第一磁盘组的状态设置为只读状态。
另外,为了尽量避免磁盘组失效条件,在扫描第一磁盘组的状态之后,如果第一磁盘组的状态为降级状态,则响应告警。第一磁盘组的状态为降级状态时,表明第一磁盘组中有一个第一磁盘的状态为故障状态。通过响应警告,可提醒人工更换磁盘。关于响应告警的方式,本实施例不作具体限定。具体实施时,可以采用发出告警信息的方式来响应告警。另外,告警信息中还可携带磁盘的位置信息,便于更换磁盘。
需要说明的是,本发明实施例提供的访问数据的方法可通过软件实现,还可通过硬件实现,具体详见上述实施例二中关于软件实现和硬件实现的具体描述内容,此处不再赘述。
本发明实施例提供的方法,通过在当前的第二条带上的数据未成功写入时,扫描到第一磁盘组的状态为只读状态,在第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕,从而无需重新组建磁盘组就实现了写入数据,减少访问的中断时间,且由于未引入第三方介入,因而能够保证数据的保密性。
实施例四
参见图12,本发明实施例提供了一种访问数据的装置,该装置应用于独立磁盘冗余阵列,独立磁盘冗余阵列至少包括第一磁盘组,第一磁盘组包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,该装置包括:
第一获取模块1201,用于获取第一磁盘组的数据读请求,数据读请求中携带有读取地址;
第一确定模块1202,用于根据读取地址确定第一磁盘组的第一条带位置范围,第一条带位置范围内包括至少一个第一条带;
读取模块1203,用于依次读取第一条带位置范围内的每个第一条带上的数据;
第一设置模块1204,用于在当前的第一条带上的数据未成功读取时,将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕;
返回模块1205,用于返回各个第一条带的数据读取结果。
优选地,独立磁盘冗余阵列还包括第二磁盘组,该装置,还包括:
第二获取模块,用于获取第一磁盘组的数据写请求,数据写请求中携带有写入地址;
第二确定模块,用于根据写入地址确定第一磁盘组的第二条带位置范围,第二条带位置范围内包括至少一个第二条带;
第一写入模块,用于依次向第二条带位置范围内的每个第二条带写入数据;
扫描模块,用于在当前的第二条带上的数据未成功写入时,扫描第一磁盘组的状态,第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
第二写入模块,用于当第一磁盘组的状态为只读状态时,在第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
优选地,该装置,还包括:
响应模块,用于当第一磁盘组的状态为降级状态时,响应告警。
优选地,该装置,还包括:
第一检测模块,用于检测第一磁盘组中各个磁盘的状态是否发生改变,磁盘的状态为新盘状态、正常状态和故障状态中的一种;
格式化模块,用于当第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态时,对第一磁盘进行格式化;
划分模块,用于对格式化后的第一磁盘进行条带划分;
第二设置模块,用于将划分得到的每个条带的状态设置为未写入状态。
优选地,第一设置模块1204,还用于在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。
优选地,装置还包括:
第二检测模块,用于检测第一磁盘组的当前状态是否为只读状态,只读状态为第一磁盘组中至少两个磁盘的状态为故障状态;
第三确定模块,用于当第一磁盘组的当前状态为非只读状态时,确定上次检测到的第一磁盘组的状态是否为只读状态;
第三设置模块,用于当上次检测到的第一磁盘组的状态为只读状态时,将第一磁盘组的状态设置为非只读状态,非只读状态包括降级状态和正常读写状态。
优选地,该装置,还包括:
第四确定模块,用于当第一磁盘组的当前状态为只读状态时,确定上次检测到的第一磁盘组的状态是否为非只读状态;
第四设置模块,用于当上次检测到的第一磁盘组的状态为非只读状态时,将第一磁盘组的状态设置为只读状态。
本实施例提供的装置,通过根据获取到的第一磁盘组的数据读请求中携带的读取地址确定的第一磁盘组的第一条带位置范围依次读取数据,将未成功读取的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果,从而实现未成功读取数据时,减少数据的丢失和访问的中断时间,且由于未引入第三方介入,因而能够保证数据的保密性。
实施例五
本发明实施例提供了一种访问数据的终端,该终端应用于独立磁盘冗余阵列,独立磁盘冗余阵列至少包括第一磁盘组,第一磁盘组包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,该终端包括处理器、发射机和接收机。
其中,接收机,用于获取第一磁盘组的数据读请求,数据读请求中携带有读取地址;
处理器,用于根据读取地址确定第一磁盘组的第一条带位置范围,第一条带位置范围内包括至少一个第一条带;
处理器,还用于依次读取第一条带位置范围内的每个第一条带上的数据;
处理器,还用于在当前的第一条带上的数据未成功读取时,将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕;
发射机,用于返回各个第一条带的数据读取结果。
作为一种可选实施例,处理器,还用于检测第一磁盘组中各个磁盘的状态是否发生改变,磁盘的状态为新盘状态、正常状态和故障状态中的一种;
处理器,还用于在第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态时,对第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。
作为一种可选实施例,处理器,还用于在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。
作为一种可选实施例,处理器,还用于检测第一磁盘组的当前状态是否为只读状态,只读状态为第一磁盘组中至少两个磁盘的状态为故障状态;
处理器,还用于在第一磁盘组的当前状态为非只读状态时,确定上次检测到的第一磁盘组的状态是否为只读状态;
处理器,还用于在上次检测到的第一磁盘组的状态为只读状态时,将第一磁盘组的状态设置为非只读状态,非只读状态包括降级状态和正常读写状态。
作为一种可选实施例,处理器,还用于在第一磁盘组的当前状态为只读状态时,确定上次检测到的第一磁盘组的状态是否为非只读状态;
处理器,还用于在上次检测到的第一磁盘组的状态为非只读状态时,将第一磁盘组的状态设置为只读状态。
本实施例提供的终端,通过根据获取到的第一磁盘组的数据读请求中携带的读取地址确定的第一磁盘组的第一条带位置范围依次读取数据,将未成功读取的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果,从而实现未成功读取数据时,减少数据的丢失和访问的中断时间,且由于未引入第三方介入,因而能够保证数据的保密性。
实施例六
本发明实施例提供了一种访问数据的终端,该终端应用于独立磁盘冗余阵列,独立磁盘冗余阵列至少包括第一磁盘组和第二磁盘组,第一磁盘组包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,该终端包括处理器和接收机。
其中,接收机,用于获取第一磁盘组的数据写请求,数据写请求中携带有写入地址;
处理器,用于根据写入地址确定第一磁盘组的第二条带位置范围,第二条带位置范围内包括至少一个第二条带;
处理器,还用于依次向第二条带位置范围内的每个第二条带写入数据;
处理器,还用于在当前的第二条带上的数据未成功写入时,扫描第一磁盘组的状态,第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
处理器,还用于在如果第一磁盘组的状态为只读状态时,在第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
作为一种可选实施例,处理器,还用于在第一磁盘组的状态为降级状态时,响应告警。
作为一种可选实施例,处理器,还用于检测第一磁盘组中各个磁盘的状态是否发生改变,磁盘的状态为新盘状态、正常状态和故障状态中的一种;
处理器,还用于在第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态时,对第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。
作为一种可选实施例,处理器,还用于检测第一磁盘组的当前状态是否为只读状态,只读状态为第一磁盘组中至少两个磁盘的状态为故障状态;
处理器,还用于在第一磁盘组的当前状态为非只读状态时,确定上次检测到的第一磁盘组的状态是否为只读状态;
处理器,还用于在上次检测到的第一磁盘组的状态为只读状态时,将第一磁盘组的状态设置为非只读状态,非只读状态包括降级状态和正常读写状态。
作为一种可选实施例,处理器,还用于在第一磁盘组的当前状态为只读状态时,确定上次检测到的第一磁盘组的状态是否为非只读状态;
处理器,还用于在上次检测到的第一磁盘组的状态为非只读状态时,将第一磁盘组的状态设置为只读状态。
本发明实施例提供的终端,通过在当前的第二条带上的数据未成功写入时,扫描到第一磁盘组的状态为只读状态,在第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕,从而无需重新组建磁盘组就实现了写入数据,减少访问的中断时间,且由于未引入第三方介入,因而能够保证数据的保密性。
需要说明的是:上述实施例提供的访问数据的装置在访问数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的访问数据的装置与访问数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种访问数据的方法,其特征在于,所述方法应用于独立磁盘冗余阵列,所述独立磁盘冗余阵列至少包括第一磁盘组和第二磁盘组,所述第一磁盘组和所述第二磁盘组分别包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,所述方法包括:
获取第一磁盘组的数据读请求,所述数据读请求中携带有读取地址;
根据所述读取地址确定所述第一磁盘组的第一条带位置范围,所述第一条带位置范围内包括至少一个第一条带;
依次读取所述第一条带位置范围内的每个第一条带上的数据;
如果当前的第一条带上的数据未成功读取,则将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕,返回各个第一条带的数据读取结果;
获取所述第一磁盘组的数据写请求,所述数据写请求中携带有写入地址;
根据所述写入地址确定所述第一磁盘组的第二条带位置范围,所述第二条带位置范围内包括至少一个第二条带;
依次向所述第二条带位置范围内的每个第二条带写入数据;
如果当前的第二条带上的数据未成功写入,则扫描所述第一磁盘组的状态,所述第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
如果所述第一磁盘组的状态为只读状态,则在所述第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
2.根据权利要求1所述的方法,其特征在于,所述扫描所述第一磁盘组的状态之后,还包括:
如果所述第一磁盘组的状态为降级状态,则响应告警。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
检测所述第一磁盘组中各个磁盘的状态是否发生改变,所述磁盘的状态为新盘状态、正常状态和故障状态中的一种;
如果所述第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态,则对所述第一磁盘进行格式化,并对格式化后的第一磁盘进行条带划分,将划分得到的每个条带的状态设置为未写入状态。
4.根据权利要求3所述的方法,其特征在于,所述将划分得到的每个条带的状态设置为未写入状态之后,还包括:
在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
检测所述第一磁盘组的当前状态是否为只读状态,所述只读状态为所述第一磁盘组中至少两个磁盘的状态为故障状态;
如果所述第一磁盘组的当前状态为非只读状态,则确定上次检测到的所述第一磁盘组的状态是否为只读状态;
如果上次检测到的所述第一磁盘组的状态为只读状态,则将所述第一磁盘组的状态设置为非只读状态,所述非只读状态包括降级状态和正常读写状态。
6.根据权利要求5所述的方法,其特征在于,所述检测所述第一磁盘组的当前状态是否为只读状态之后,还包括:
如果所述第一磁盘组的当前状态为只读状态,则确定上次检测到的所述第一磁盘组的状态是否为非只读状态;
如果上次检测到的所述第一磁盘组的状态为非只读状态,则将所述第一磁盘组的状态设置为只读状态。
7.一种访问数据的装置,其特征在于,所述装置应用于独立磁盘冗余阵列,所述独立磁盘冗余阵列至少包括第一磁盘组和第二磁盘组,所述第一磁盘组和所述第二磁盘组分别包括至少一个磁盘,每个磁盘预先被划分为至少一个条带,所述装置包括:
第一获取模块,用于获取第一磁盘组的数据读请求,所述数据读请求中携带有读取地址;
第一确定模块,用于根据所述读取地址确定所述第一磁盘组的第一条带位置范围,所述第一条带位置范围内包括至少一个第一条带;
读取模块,用于依次读取所述第一条带位置范围内的每个第一条带上的数据;
第一设置模块,用于在当前的第一条带上的数据未成功读取时,将当前的第一条带的数据读取结果设置为预设的填充数据,并继续读取下一个第一条带上的数据,直至每个第一条带上的数据全部读取完毕;
返回模块,用于返回各个第一条带的数据读取结果;
第二获取模块,用于获取所述第一磁盘组的数据写请求,所述数据写请求中携带有写入地址;
第二确定模块,用于根据所述写入地址确定所述第一磁盘组的第二条带位置范围,所述第二条带位置范围内包括至少一个第二条带;
第一写入模块,用于依次向所述第二条带位置范围内的每个第二条带写入数据;
扫描模块,用于在当前的第二条带上的数据未成功写入时,扫描所述第一磁盘组的状态,所述第一磁盘组的状态为只读状态、正常读写状态和降级状态中的一种;
第二写入模块,用于当所述第一磁盘组的状态为只读状态时,在所述第二磁盘组中对应的条带上继续写入数据,直至将数据全部写入完毕。
8.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
响应模块,用于当所述第一磁盘组的状态为降级状态时,响应告警。
9.根据权利要求7或8所述的装置,其特征在于,所述装置,还包括:
第一检测模块,用于检测所述第一磁盘组中各个磁盘的状态是否发生改变,所述磁盘的状态为新盘状态、正常状态和故障状态中的一种;
格式化模块,用于当所述第一磁盘组中的第一磁盘的状态由故障状态变为新盘状态时,对所述第一磁盘进行格式化;
划分模块,用于对格式化后的第一磁盘进行条带划分;
第二设置模块,用于将划分得到的每个条带的状态设置为未写入状态。
10.根据权利要求9所述的装置,其特征在于,所述第一设置模块,还用于在读取未写入状态的条带上的数据时,将未写入状态的条带的数据读取结果设置为预设的填充数据。
11.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
第二检测模块,用于检测所述第一磁盘组的当前状态是否为只读状态,所述只读状态为所述第一磁盘组中至少两个磁盘的状态为故障状态;
第三确定模块,用于当所述第一磁盘组的当前状态为非只读状态时,确定上次检测到的所述第一磁盘组的状态是否为只读状态;
第三设置模块,用于当上次检测到的所述第一磁盘组的状态为只读状态时,将所述第一磁盘组的状态设置为非只读写状态,所述非只读状态包括降级状态和正常读写状态。
12.根据权利要求11所述的装置,其特征在于,所述装置,还包括:
第四确定模块,用于当所述第一磁盘组的当前状态为只读状态时,确定上次检测到的所述第一磁盘组的状态是否为非只读状态;
第四设置模块,用于当上次检测到的所述第一磁盘组的状态为非只读状态时,将所述第一磁盘组的状态设置为只读状态。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410007103.0A CN104007936B (zh) | 2014-01-07 | 2014-01-07 | 访问数据的方法及装置 |
ES14878327.7T ES2664795T3 (es) | 2014-01-07 | 2014-12-30 | Procedimiento y aparato de acceso a datos |
EP14878327.7A EP3079054B1 (en) | 2014-01-07 | 2014-12-30 | Method and apparatus for data access |
RU2016132295A RU2626091C1 (ru) | 2014-01-07 | 2014-12-30 | Способ и устройство доступа к данным |
EP17205748.1A EP3385832A1 (en) | 2014-01-07 | 2014-12-30 | Data access method and apparatus |
JP2016544792A JP6229067B2 (ja) | 2014-01-07 | 2014-12-30 | データアクセス方法及び装置 |
PCT/CN2014/095668 WO2015103933A1 (zh) | 2014-01-07 | 2014-12-30 | 访问数据的方法及装置 |
KR1020167020719A KR101743411B1 (ko) | 2014-01-07 | 2014-12-30 | 데이터 액세스 방법 및 장치 |
US15/203,645 US10585600B2 (en) | 2014-01-07 | 2016-07-06 | Data access method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410007103.0A CN104007936B (zh) | 2014-01-07 | 2014-01-07 | 访问数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104007936A CN104007936A (zh) | 2014-08-27 |
CN104007936B true CN104007936B (zh) | 2017-09-29 |
Family
ID=51368607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410007103.0A Active CN104007936B (zh) | 2014-01-07 | 2014-01-07 | 访问数据的方法及装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10585600B2 (zh) |
EP (2) | EP3079054B1 (zh) |
JP (1) | JP6229067B2 (zh) |
KR (1) | KR101743411B1 (zh) |
CN (1) | CN104007936B (zh) |
ES (1) | ES2664795T3 (zh) |
RU (1) | RU2626091C1 (zh) |
WO (1) | WO2015103933A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007936B (zh) | 2014-01-07 | 2017-09-29 | 华为技术有限公司 | 访问数据的方法及装置 |
CN107783784A (zh) * | 2016-08-24 | 2018-03-09 | 衡宇科技股份有限公司 | 由主机到设备控制器传输命令的方法及使用其的系统 |
CN110515761B (zh) | 2018-05-22 | 2022-06-03 | 杭州海康威视数字技术股份有限公司 | 一种数据获取方法及装置 |
CN111427508B (zh) * | 2019-01-09 | 2023-07-21 | 深圳市茁壮网络股份有限公司 | 一种文件均衡分布方法及装置 |
CN111435286B (zh) * | 2019-01-14 | 2023-12-05 | 深圳市茁壮网络股份有限公司 | 一种数据存储方法、装置和系统 |
CN115904255B (zh) * | 2023-01-19 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 一种数据请求方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储系统、从存储系统读取数据的方法及写入数据的方法 |
CN102207895A (zh) * | 2011-05-27 | 2011-10-05 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列数据重建方法和装置 |
CN102226892A (zh) * | 2011-05-20 | 2011-10-26 | 杭州华三通信技术有限公司 | 一种磁盘容错处理方法及设备 |
US8417987B1 (en) * | 2009-12-01 | 2013-04-09 | Netapp, Inc. | Mechanism for correcting errors beyond the fault tolerant level of a raid array in a storage system |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5913927A (en) * | 1995-12-15 | 1999-06-22 | Mylex Corporation | Method and apparatus for management of faulty data in a raid system |
JPH11232048A (ja) * | 1998-02-19 | 1999-08-27 | Sony Corp | データ処理装置およびデータ処理方法 |
US7062704B2 (en) * | 2001-04-30 | 2006-06-13 | Sun Microsystems, Inc. | Storage array employing scrubbing operations using multiple levels of checksums |
AU2003201837A1 (en) | 2002-04-01 | 2003-10-23 | Sony Corporation | Storage medium and storage medium recording method |
RU2305330C2 (ru) * | 2002-04-01 | 2007-08-27 | Сони Корпорейшн | Носитель записи и способ записи на носитель записи |
RU2303822C2 (ru) * | 2002-04-01 | 2007-07-27 | Сони Корпорейшн | Способ записи данных на носитель записи |
US6944791B2 (en) * | 2002-07-18 | 2005-09-13 | Lsi Logic Corporation | Method of handling unreadable blocks during write of a RAID device |
JP4426262B2 (ja) * | 2003-11-26 | 2010-03-03 | 株式会社日立製作所 | ディスクアレイ装置及びディスクアレイ装置の障害回避方法 |
US7188212B2 (en) * | 2004-05-06 | 2007-03-06 | International Business Machines Corporation | Method and system for storing data in an array of storage devices with additional and autonomic protection |
TWI346944B (en) * | 2007-12-31 | 2011-08-11 | Qnap Systems Inc | Method of raid level migration and system for the same |
US8049980B1 (en) * | 2008-04-18 | 2011-11-01 | Network Appliance, Inc. | Partial disk failures and improved storage resiliency |
KR20100004792A (ko) * | 2008-07-04 | 2010-01-13 | 삼성전자주식회사 | 손상된 정보를 저장하는 방법, 손상된 정보를 저장할 수있는 정보 처리 장치, 손상된 정보를 저장 가능하게송신하는 정보 저장 장치, 손상된 정보를 저장하기 위한소프트웨어가 기록된, 정보 처리 장치로 읽을 수 있는 매체 |
US20100125695A1 (en) * | 2008-11-15 | 2010-05-20 | Nanostar Corporation | Non-volatile memory storage system |
US7904749B2 (en) * | 2008-10-24 | 2011-03-08 | Hitachi, Ltd. | Fast data recovery from HDD failure |
JP5546635B2 (ja) * | 2010-06-01 | 2014-07-09 | 株式会社日立製作所 | データ転送装置およびその制御方法 |
JP5519573B2 (ja) * | 2011-05-12 | 2014-06-11 | 株式会社日立製作所 | 映像処理装置、映像処理方法、および、映像処理プログラム |
US9021339B2 (en) * | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9277208B2 (en) * | 2013-11-12 | 2016-03-01 | Oovoo, Llc | System and method for estimating quality of video with frame freezing artifacts |
CN104007936B (zh) * | 2014-01-07 | 2017-09-29 | 华为技术有限公司 | 访问数据的方法及装置 |
-
2014
- 2014-01-07 CN CN201410007103.0A patent/CN104007936B/zh active Active
- 2014-12-30 JP JP2016544792A patent/JP6229067B2/ja active Active
- 2014-12-30 RU RU2016132295A patent/RU2626091C1/ru active
- 2014-12-30 EP EP14878327.7A patent/EP3079054B1/en active Active
- 2014-12-30 WO PCT/CN2014/095668 patent/WO2015103933A1/zh active Application Filing
- 2014-12-30 EP EP17205748.1A patent/EP3385832A1/en not_active Ceased
- 2014-12-30 KR KR1020167020719A patent/KR101743411B1/ko active IP Right Grant
- 2014-12-30 ES ES14878327.7T patent/ES2664795T3/es active Active
-
2016
- 2016-07-06 US US15/203,645 patent/US10585600B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储系统、从存储系统读取数据的方法及写入数据的方法 |
US8417987B1 (en) * | 2009-12-01 | 2013-04-09 | Netapp, Inc. | Mechanism for correcting errors beyond the fault tolerant level of a raid array in a storage system |
CN102226892A (zh) * | 2011-05-20 | 2011-10-26 | 杭州华三通信技术有限公司 | 一种磁盘容错处理方法及设备 |
CN102207895A (zh) * | 2011-05-27 | 2011-10-05 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列数据重建方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
ES2664795T3 (es) | 2018-04-23 |
JP2017502424A (ja) | 2017-01-19 |
RU2626091C1 (ru) | 2017-07-21 |
EP3079054A4 (en) | 2016-11-09 |
US20160313937A1 (en) | 2016-10-27 |
EP3079054A1 (en) | 2016-10-12 |
EP3079054B1 (en) | 2018-02-21 |
US10585600B2 (en) | 2020-03-10 |
KR101743411B1 (ko) | 2017-06-02 |
JP6229067B2 (ja) | 2017-11-08 |
WO2015103933A1 (zh) | 2015-07-16 |
CN104007936A (zh) | 2014-08-27 |
KR20160104671A (ko) | 2016-09-05 |
EP3385832A1 (en) | 2018-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104007936B (zh) | 访问数据的方法及装置 | |
US8649427B2 (en) | Image processor, image generator and computer program | |
CN107229418B (zh) | 一种录像文件存储方法及装置 | |
US20100306466A1 (en) | Method for improving disk availability and disk array controller | |
CN104484427B (zh) | 一种录像文件存储装置及方法 | |
CN104965768A (zh) | 用于存储系统中的服务感知数据放置的方法和系统 | |
CN109412755B (zh) | 一种多媒体数据处理方法、装置及存储介质 | |
CN105100716A (zh) | 一种用于网络视频监控的安全存储单元及其系统 | |
CN116339647A (zh) | 基于人工智能的计算机数据管理系统 | |
CN104200831B (zh) | 车载多媒体终端sd卡的存储方法 | |
CN105528344B (zh) | 确定存储设备中被读取数据所属媒体信息的方法及装置 | |
CN107967118A (zh) | 一种实现硬盘数据快速转储和查看的方法及设备 | |
CN104572374B (zh) | 存储的处理方法、装置和存储设备 | |
CN103761194B (zh) | 一种内存管理方法及装置 | |
CN100492323C (zh) | 对缓存内容进行保护的方法和装置以及缓存控制器 | |
CN110431534A (zh) | 用于用户体验事件处理和分析的方法和系统 | |
CN104394453B (zh) | 视频预录方法及装置 | |
CN110990239B (zh) | 一种基于软传感器在用户设备中采集用户数据的系统及方法 | |
CN104504349B (zh) | 一种录像数据安全存储装置及方法 | |
US20100027878A1 (en) | Content detection of an image comprising pixels | |
CN106921464A (zh) | 一种信息调整方法和装置 | |
US8487777B2 (en) | Semiconductor storage apparatus and early-warning systems and methods for the same | |
CN102646434B (zh) | 影像存储装置与影像纪录器 | |
CN110515761B (zh) | 一种数据获取方法及装置 | |
CN111147902B (zh) | 视频播放系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |