CN104679447A - 磁盘控制方法及装置 - Google Patents
磁盘控制方法及装置 Download PDFInfo
- Publication number
- CN104679447A CN104679447A CN201410848885.0A CN201410848885A CN104679447A CN 104679447 A CN104679447 A CN 104679447A CN 201410848885 A CN201410848885 A CN 201410848885A CN 104679447 A CN104679447 A CN 104679447A
- Authority
- CN
- China
- Prior art keywords
- disk
- instruction
- storage space
- detection
- reparation
- 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.)
- Granted
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种磁盘控制方法及装置,该磁盘控制方法包括:接收广播原语及检测指令,将所述检测指令存入预定的存储空间中;根据第一次接收的广播原语对所述磁盘的错误信息进行修复;将所述修复的过程中接收到的检测指令存入到所述存储空间中;当完成修复后,调度所述存储空间中的至少一个检测指令对所述磁盘进行检测。本发明通过将对磁盘进行修复过程中的检测信息延迟,然后等修复完成后在将受到的多个检测指令合并处理从而可以有效的减少逻辑磁盘的误报率,并减少逻辑磁盘重建操作的发生,大大提供了存储数据的安全性及稳定性。
Description
技术领域
本发明涉及计算机领域,具体来说,涉及一种磁盘控制方法及装置。
背景技术
SATA的全称是Serial Advanced Technology Attachment,是由intel、IBM、Dell、APT、Maxtor和seagate公司共同提出的硬盘接口规范。SATA硬盘比IDE硬盘传输速度高,现在已经可以提供600MB/s的传输速率。相对于IDE硬盘,SATA的线缆少,传输距离远,而且支持热插拔;而相对于SAS磁盘,SATA磁盘容量大,价格便宜,因此SATA磁盘在工业界一直是各个存储产品主流使用的硬盘。
但是从实际使用来看,在盘阵系统中,SATA磁盘的链路稳定性要落后于SAS磁盘,有相当一部分从用户手中回收的盘阵坏盘都是SATA硬盘,原因是逻辑磁盘发生了“踢盘”现象,而SAS硬盘就相对稳定很多。而如果SATA硬盘是一个逻辑磁盘的成员磁盘,则需要花费很长的时间进行重建。随着SATA磁盘容量的变大,一次的逻辑磁盘重建可能花费好几天的时间,而且重建过程中若遇到真正的坏盘现象,则逻辑磁盘很可能无法使用。
经过分析,现在linux系统中,SATA链路发生变化时有时不应该让逻辑磁盘感知的情况,现有的host驱动还是对SATA磁盘进行了注销再注册的处理,在逻辑磁盘看来就是发生了一次短暂的插拔磁盘的情况,由于在此期间IO指令被舍去,有些磁盘的逻辑标识也发生了改变,因此逻辑磁盘对这些SATA硬盘进行了“踢盘”操作。
现有的基于linux系统的各种SATA硬盘的host驱动,将对硬件的中断响应放在处理的第一位,任何的硬件变动都迅速处理掉,不给硬件恢复的机会,从而不可避免的将这些硬件的变动传递给了上一层软件。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种磁盘控制方法及装置。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种磁盘控制方法。
该方法包括:
接收广播原语及检测指令,将所述检测指令存入预定的存储空间中;
根据第一次接收的广播原语对所述磁盘的错误信息进行修复;
将所述修复的过程中接收到的检测指令存入到所述存储空间中;
当完成修复后,调度所述存储空间中的至少一个检测指令对所述磁盘进行检测。
其中,所述存储空间为scsi层的work queue。
其中,所述磁盘为SATA磁盘。
其中,在调度所述存储空间中的至少一个检测指令时,通过SMP指令查询当前磁盘的状态。
此外,所述修复包括:通过SMP指令更新当前所述磁盘的链路参数。
根据本发明的另一方面,还提供了一种磁盘控制装置,该装置包括:
第一存储模块,用于接收广播原语及检测指令,将所述检测指令存入预定的存储空间中;
修复模块,用于根据第一次接收的广播原语对所述磁盘的错误信息进行修复;
第二存储模块,用于将所述修复的过程中接收到的检测指令存入到所述存储空间中;
调度模块,用于当完成修复后,调度所述存储空间中的至少一个检测指令对所述磁盘进行检测。
其中,所述存储空间为scsi层的work queue。
其中,所述磁盘为SATA磁盘。
其中,调度模块进一步包括:
查询单元,用于在调度所述存储空间中的至少一个检测指令时,通过SMP 指令查询当前磁盘的状态。
此外,所述修复模块进一步用于,通过SMP指令更新当前所述磁盘的链路参数。
本发明通过将对磁盘进行修复过程中的检测信息延迟,然后等修复完成后在将受到的多个检测指令合并处理从而可以有效的减少逻辑磁盘的误报率,并减少逻辑磁盘重建操作的发生,大大提供了存储数据的安全性及稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的逻辑磁盘的结构示意图;
图2是现有技术的磁盘控制方法的流程示意图;
图3是根据本发明实施例的磁盘控制方法的流程图;
图4是根据本发明实施例的磁盘控制方法的示意性流程图;
图5是根据本发明实施例的磁盘控制装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明针对的对象是以SATA硬盘为基本存储介质的存储盘阵,一般存储盘阵不对最终用户开放裸物理硬盘的访问权限,而是将物理硬盘通过一定的规则组合成相应的逻辑磁盘给用户使用。如图1所示,逻辑磁盘LD1有n个物理硬盘PDx组成。
为了提高逻辑磁盘的安全性,现在逻辑磁盘大多数都选择将物理硬盘建立各种等级的raid。如最普遍的raid 5可以在失效一块硬盘的情况下从其他硬盘 读取数据计算出实现磁盘上的数据,从而对错误有较好的容忍性。但是raid技术的一个基本的要求是物理硬盘必须具有较好的稳定性,现linux的raid一旦发现逻辑磁盘的成员物理硬盘发生改变,则会启动踢盘、重建的动作。随着SATA磁盘容量越来越大,踢盘、重建的代价也越来越大,时间耗费也越来越长,而且容易引起数据丢失。而且重要的是对于SATA硬盘抖动,是一种本来不需要触发这种操作的事件。
本发明的优化对象是sas控制器BROADCAST事件处理方式。host控制器通过BROADCAST事件来通知host硬件TOP发生了改变,host需要按照SMP协议来处理这种改变。由于只要硬件检测到任何链路断开的变化,就会触发BROADCAST事件,因此也把这种事件称之为BROADCAST原语。
在实现本发明的过程中,发明人发现如果完全一旦按照收到原语,就进行TOP检测的机制,则普通的host驱动对SATA链路抖动的处理方式如图2所示,这种处理方式不可避免的将SATA磁盘的链路抖动和一次真正的插拔SATA硬盘等同起来,则如果SATA物理硬盘处于一个逻辑磁盘之中,每一次链路的抖动都会将这个状态良好的硬盘标记为坏盘。
根据本发明的实施例,提供了一种磁盘控制方法。
如图3所示,根据本发明实施例的磁盘控制方法包括:
步骤S301,接收广播原语及检测指令,将检测指令存入预定的存储空间中;
步骤S303,根据第一次接收的广播原语对磁盘的错误信息进行修复;
步骤S305,将修复的过程中接收到的检测指令存入到存储空间中;
步骤S307,当完成修复后,调度存储空间中的至少一个检测指令对磁盘进行检测。
其中,本发明提到存储空间可以为scsi层的work queue。
其中,本发明处理的磁盘对象为SATA磁盘。
其中,在调度存储空间中的至少一个检测指令时,可以通过SMP指令查询当前磁盘的状态。
此外,在进行修复时可以通过SMP指令更新当前磁盘的链路参数。
为了进行本发明,对BROADCAST原语响应在软中断进行简单的处理,将真正的TOP检测处理放在scsi层的work queue里,然后通过work queue,对BROADCAST原语的处理进行了延时和合并。
具体流程如图4所示:
1)收到BROADCAST原语后不在软中断中直接处理,而是加入到work queue中
2)任何处理BROADCAST原语的work若被调度到,首先检查SATA的错误处理是否正在进行,如果是则暂时退出等待下一次调度机会
3)SATA磁盘上的指令普遍采取延时处理的方式等待硬件环境的恢复,先不要向block层报告有错误指令发生
4)一旦work再次被调度到,且此时无SATA错误处理在进行,则进行一次完整的TOP检测,在此之前如果是真正的SATA链路抖动,则应该会再次收到BROADCAST原语,做同样的处理,将另一个原语的处理加入到work queue中;此时通过相应的SMP指令查询发生改变的链路其实已经恢复
5)做相应的确认,需要确认发生改变的链路连接的远端设备是否存在,确认远端连接的设备是否和记录的设备是同一个类型的设备,比较前后设备的sas地址是否一致,做完这些确认就可以确定是发生了链路抖动了,此时应该再次通过SMP指令更新当前链路的参数,此时设备真正的恢复了
6)恢复链路后,SATA错误处理中的指令可以通过重试回复正常返回,这样对逻辑磁盘来讲,除了损失几十秒时间之外,仿佛什么都没发生一般
7)接着后面的原语处理work被调度的时候,就检测不到任何链路的改变了,因为上面已经将两次的链路改变合并到一起处理了
根据本发明的实施例,还提供了一种磁盘控制装置。
如图5所示,根据本发明实施例的磁盘控制装置,包括:
第一存储模块51,用于接收广播原语及检测指令,将检测指令存入预定的存储空间中;
修复模块52,用于根据第一次接收的广播原语对磁盘的错误信息进行修复;
第二存储模块53,用于将修复的过程中接收到的检测指令存入到存储空间中;
调度模块54,用于当完成修复后,调度存储空间中的至少一个检测指令对磁盘进行检测。
其中,存储空间为scsi层的work queue。
其中,磁盘为SATA磁盘。
其中,调度模块54进一步包括:
查询单元(未示出),用于在调度存储空间中的至少一个检测指令时,通过SMP指令查询当前磁盘的状态。
此外,修复模块52进一步用于,通过SMP指令更新当前磁盘的链路参数。
综上,借助于本发明的上述技术方案,本发明通过将对磁盘进行修复过程中的检测信息延迟,然后等修复完成后在将受到的多个检测指令合并处理从而可以有效的减少逻辑磁盘的误报率,并减少逻辑磁盘重建操作的发生,大大提供了存储数据的安全性及稳定性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种磁盘控制方法,其特征在于,用于在所述磁盘发生抖动的情况下,所述方法包括:
接收广播原语及检测指令,将所述检测指令存入预定的存储空间中;
根据第一次接收的广播原语对所述磁盘的错误信息进行修复;
将所述修复的过程中接收到的检测指令存入到所述存储空间中;
当完成修复后,调度所述存储空间中的至少一个检测指令对所述磁盘进行检测。
2.根据权利要求1所述的方法,其特征在于,所述存储空间为scsi层的work queue。
3.根据权利要求1所述的方法,其特征在于,所述磁盘为SATA磁盘。
4.根据权利要求1所述的方法,其特征在于,在调度所述存储空间中的至少一个检测指令时,通过SMP指令查询当前磁盘的状态。
5.根据权利要求1所述的方法,其特征在于,所述修复包括:通过SMP指令更新当前所述磁盘的链路参数。
6.一种磁盘控制装置,其特征在于,用于在所述磁盘发生抖动的情况下,所述装置包括:
第一存储模块,用于接收广播原语及检测指令,将所述检测指令存入预定的存储空间中;
修复模块,用于根据第一次接收的广播原语对所述磁盘的错误信息进行修复;
第二存储模块,用于将所述修复的过程中接收到的检测指令存入到所述存储空间中;
调度模块,用于当完成修复后,调度所述存储空间中的至少一个检测指令对所述磁盘进行检测。
7.根据权利要求6所述的装置,其特征在于,所述存储空间为scsi层的work queue。
8.根据权利要求6所述的装置,其特征在于,所述磁盘为SATA磁盘。
9.根据权利要求6所述的装置,其特征在于,所述调度模块进一步包括:
查询单元,用于在调度所述存储空间中的至少一个检测指令时,通过SMP指令查询当前磁盘的状态。
10.根据权利要求6所述的装置,其特征在于,所述修复模块进一步用于,通过SMP指令更新当前所述磁盘的链路参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410848885.0A CN104679447B (zh) | 2014-12-31 | 2014-12-31 | 磁盘控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410848885.0A CN104679447B (zh) | 2014-12-31 | 2014-12-31 | 磁盘控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679447A true CN104679447A (zh) | 2015-06-03 |
CN104679447B CN104679447B (zh) | 2018-05-18 |
Family
ID=53314580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410848885.0A Active CN104679447B (zh) | 2014-12-31 | 2014-12-31 | 磁盘控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679447B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380074A (zh) * | 2020-11-10 | 2021-02-19 | 中科可控信息产业有限公司 | 连接器处理方法、装置、处理模块及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515871A (zh) * | 2009-03-27 | 2009-08-26 | 杭州华三通信技术有限公司 | 一种sas链路状态变化抑制方法和监控实体 |
CN101699389A (zh) * | 2009-10-30 | 2010-04-28 | 中兴通讯股份有限公司 | 磁盘热拔除的处理方法及装置 |
CN102147708A (zh) * | 2010-02-10 | 2011-08-10 | 成都市华为赛门铁克科技有限公司 | 一种磁盘检测方法及装置 |
-
2014
- 2014-12-31 CN CN201410848885.0A patent/CN104679447B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515871A (zh) * | 2009-03-27 | 2009-08-26 | 杭州华三通信技术有限公司 | 一种sas链路状态变化抑制方法和监控实体 |
CN101699389A (zh) * | 2009-10-30 | 2010-04-28 | 中兴通讯股份有限公司 | 磁盘热拔除的处理方法及装置 |
CN102147708A (zh) * | 2010-02-10 | 2011-08-10 | 成都市华为赛门铁克科技有限公司 | 一种磁盘检测方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380074A (zh) * | 2020-11-10 | 2021-02-19 | 中科可控信息产业有限公司 | 连接器处理方法、装置、处理模块及电子设备 |
CN112380074B (zh) * | 2020-11-10 | 2024-05-28 | 中科可控信息产业有限公司 | 连接器处理方法、装置、处理模块及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104679447B (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101047010B (zh) | 用于最大化raid系统中受保护数据量的方法和系统 | |
CN102306115B (zh) | 异步远程复制方法、系统及设备 | |
CN103748561B (zh) | 用以减少延迟并提高对主机的吞吐量的同步数据传输和错误控制 | |
CN102945201A (zh) | 已验证数据集合的非易失性介质日志记录 | |
JP5285786B2 (ja) | 回復動作中に使用するためのキャッシュ内の修正済みデータを決定するためのシステム | |
CN106557145A (zh) | 断电保护系统及其方法 | |
CN102024044A (zh) | 分布式文件系统 | |
CN103534688A (zh) | 数据恢复方法、存储设备和存储系统 | |
US20120311291A1 (en) | Space reclamation in multi-layered and thin provisioned storage systems | |
CN105892936A (zh) | 性能平缓的数据存储设备 | |
US20140317442A1 (en) | Communication of conditions at a primary storage controller to a host | |
JP2010020701A (ja) | 機器の間のアクセスを管理する装置及び方法 | |
CN106325974A (zh) | 一种虚拟化io性能优化方法及系统 | |
CN103927136A (zh) | 输入输出io类型的识别方法和装置 | |
CN102819480A (zh) | 一种监控计算机存储器的方法和计算机 | |
US7676604B2 (en) | Task context direct indexing in a protocol engine | |
CN106610788B (zh) | 硬盘阵列控制方法及装置 | |
CN104484135A (zh) | 一种快速数据读取方法及装置 | |
CN105556462A (zh) | 写入文件和文件元数据 | |
CN101794246B (zh) | 备份存储系统、备份系统及数据备份方法和恢复方法 | |
CN105892954A (zh) | 基于多副本的数据存储方法和装置 | |
CN104679447A (zh) | 磁盘控制方法及装置 | |
CN102495815B (zh) | I/o数据访问中断的处理方法和系统以及设备 | |
CN104484354A (zh) | 保证数据一致性的快照方法和存储设备 | |
CN104035886A (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 |