CN101105780A - 存储控制系统及其控制方法,端口选择器,以及控制器 - Google Patents

存储控制系统及其控制方法,端口选择器,以及控制器 Download PDF

Info

Publication number
CN101105780A
CN101105780A CNA2007100964806A CN200710096480A CN101105780A CN 101105780 A CN101105780 A CN 101105780A CN A2007100964806 A CNA2007100964806 A CN A2007100964806A CN 200710096480 A CN200710096480 A CN 200710096480A CN 101105780 A CN101105780 A CN 101105780A
Authority
CN
China
Prior art keywords
controller
data
instruction
port selector
incorrect
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
Application number
CNA2007100964806A
Other languages
English (en)
Other versions
CN100583066C (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN101105780A publication Critical patent/CN101105780A/zh
Application granted granted Critical
Publication of CN100583066C publication Critical patent/CN100583066C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明的目的是提供一种检测逻辑指令错误的装置,以及可以正确地执行错误处理,以及故障部分的检测和阻断的存储系统及其控制方法。存储控制系统包括控制器单元130A和130B,响应于来自主机设备100的数据I/O请求执行到/来自驱动器150和160的数据I/O的处理;连接控制器单元130A和130B和驱动器150和160的转换器140A和140B;以及插入在转换器140A和140B和驱动器160之间的端口选择器300。端口选择器300在接收到基于MPU131执行的处理生成的指令时,在形成指令的数据为正确的情况下访问目标驱动器160。同时,如果端口选择器300检测到逻辑指令不一致,端口选择器300经由转换器140A和140B将检测结果前转到MPU131,并请求MPU131的重试处理。

Description

存储控制系统及其控制方法,端口选择器,以及控制器
技术领域
本发明涉及一种存储控制系统及其控制方法,其中控制单元是多元的并且控制单元访问公用存储器单元。
背景技术
本申请涉及并请求2006年7月10号提交的日本专利申请No.2006-189782的优先权,该申请的全部内容通过引用结合在这里。
已经提出了具有访问一个底架内的公用存储设备的双控制单元的中等范围存储控制单元(参见JP-A-2005-31928)。在该存储控制设备中,存储设备配置在底架中的阵列中,并且控制单元可以经由分开提供的连接系统(连接路径)访问存储设备。
每个控制单元,在从主机设备(主机系统)接收到请求时,访问I/O请求目标存储设备。控制单元包括控制整个控制单元的MPU,缓存存储器,连接到主机设备的端口,磁盘控制器,和控制MPU,缓存存储器,以及磁盘控制器之间的数据交换的数据控制器,该磁盘控制器作为启动器在MPU的控制下管理经由访问系统的对于多个存储设备(硬盘驱动器)中的数据I/O请求目标硬盘驱动器的访问。
控制单元根据来自主机设备的I/O请求访问存储设备所通过的路径包括通过第一控制单元中的磁盘控制器和第一连接路径的路径,以及通过第二控制单元中的磁盘控制器和第二连接路径的路径。当控制单元经由这些路径访问存储设备时,如果在任何一条路径中发生连接故障或连接断开,则不能进行控制单元和硬盘驱动器之间的通信。因此,为了防止路径中的连接故障或连接断开,提供用于旁路(分开)路径或者硬盘驱动器的部分的端口旁路电路。
同时,JP-A-2004-530964揭示了以下方法:通过为了保持数据完整性的目的,在进行物理校验和计算之后在数据块中包括的数据上进行逻辑检查,在数据块通过逻辑检查之后将数据块写到非易失性存储器中,接着从非易失性存储器中读取数据块,对数据块进行物理校验和验证,并还对数据块中包括的数据进行逻辑检查,判断任何数据块是否被破坏,来判断数据块是否被损坏。
还有一种方法用于:当从存储设备的块中读出一系列数据并且将数据存储在数据控制器中的数据存储单元中时,如果写数据的写目标块是存储在数据存储单元中的块,则以写数据更新存储在数据存储单元中的数据;并且,如果写数据的写目标块不是存储在数据存储位置的块,则基于数据存储单元中存储的一系列数据生成保证码,将保证码添加到该数据系列上,并发送该数据(参见JP-A-2005-84799)。JP-A-2005-183420,JP-A-2002-251332,以及JP-A-2005-327230中揭示的技术涉及相同的技术领域。
JP-A-2002-251332为了提供一种验证对于主机设备和从属设备之间传输的数据的转换处理的信息传输处理设备的目的,揭示了一种控制信息处理设备和至少一个存储设备之间的数据传输的信息转换处理设备,该设备提供在信息处理设备和存储设备之间,包括转换关于从信息处理设备到存储设备的传输的逻辑传输信息的物理信息生成器,以及验证是否正确执行了物理信息生成器中的转换并输出验证结果的验证单元。
JP-A-2005-327230针对使得两个主机端口可以同时访问单个端口类型的存储单元(经由串行先进技术连接(串行ATA)链接或者先进技术连接(串行ATA)链接连接到转换器中的设备端口)的电子转换器的需求,揭示了一种转换器,包括连接到第一主机单元的第一串行ATA端口,连接到第二主机单元的第二串行ATA端口,连接到设备的第三串行ATA端口,以及仲裁/控制电路,用于在每次第一或者第二主机单元中的任何一个发送设备执行的指令的时候选择经由转换器连接到设备的第一或者第二主机单元中的一个。
如果当控制单元访问存储设备时必须基于指令信息在控制单元中执行指令转换处理,仅通过进行奇偶计算以防止不正确的指令不能检测α射线引起的损坏的比特,并且防止了不正确的指令的接收和硬盘驱动器的不正确的IO访问的执行。
在JP-A-2005-183420中揭示的技术中,由于形成节点电容的扩散层(栅区域)随着存储器尺寸或者引线尺寸的减少而减少,节点电容因而减少并且发生软错误问题。在存储器单元受到α射线或者中子射线的照射时发生这些软错误。节点电容中累积的数据电势移动到半导体板侧,从而数据消失。
本发明的一个目的是提供一种装置,在转换形成存储设备和控制单元之间的指令的数据时数据损坏的情况下,检测损坏的形成指令的数据,并提供一种防止对于硬盘驱动器的不正确的IO访问的存储控制系统和方法,从而控制器可以执行适当的错误处理。
发明内容
为了实现上述目标,本发明提供一种具有双控制单元的存储控制系统。在该系统中,位于将控制单元与存储器单元和控制单元连接的多条路径上并且控制数据I/O的端口选择器,在收到指令时判断是否发生了指令错误,并根据该判断对于至少控制单元执行处理。
根据本发明,如果在控制单元中生成的指令到存储设备的传输过程中,在对数据进行数据转换处理时形成指令的数据损坏,则验证其中数据形成指令的部分以防止将损坏的指令发送到存储设备,并将错误通知控制器,从而控制器可以执行适当的错误处理。
更具体地,根据本发明的一种存储控制系统,其包括:包括多个存储设备的存储器单元,每个存储单元包括用于控制数据I/O的端口选择器;以及多个控制单元,用于响应于来自主机设备的数据I/O请求执行到/来自存储器单元的数据I/O的处理,每个控制单元包括:存储控制程序的存储器,根据控制程序控制所有的数据I/O处理并且响应于数据I/O请求生成指令的控制器;和根据指令控制对于存储器单元中的作为数据I/O请求的目标的存储设备的访问的启动器,其中该端口选择器在接收到指令时,判断是否发生了任何指令错误,并响应于该判断至少为控制器执行处理。
本发明可以提供一种装置,其在对数据进行数据转换处理时形成指令的数据损坏并且数据是经由正确的物理传输路径传输的情况下,检测指令中的逻辑错误,以及提供可以执行适当的错误处理的存储系统和控制方法。
附图说明
图1是根据本发明第一实施例的存储控制系统的框图。
图2是根据本发明第二实施例的存储控制系统的框图。
图3(A)是示例说明端口选择器的框图,而图3(B)是端口选择器的映射表。
图4(A)是示例说明协议转换控制器的框图,而图4(B)是协议转换控制器的映射表。
图5是示例说明存储系统中执行的、从指令生成到指令执行的处理的图示。
图6(A)是说明配置信息表的图示,而图6(B)是说明校验和计算算法表的图示。
图7(A)和(B)是说明错误计数器表的图示。
图8(A)是SATA读/写FPDMA队列指令帧格式,图8(B)是SCIC读指令帧格式,而图8(C)是SCIC写指令帧格式。
图9是获取存储系统配置信息的流程图。
图10是说明验证指令校验和的结果是“正确”的处理的流程图。
图11是说明验证指令校验和的结果是“不正确”的处理和重试处理的流程图。
图12是说明检测故障部分并阻断该部分的重试处理的流程图。
图13是说明指令验证程序处理的流程图。
具体实施方式
将参考附图描述本发明的实施例。这些实施例不限制权利要求的范围,并且实施例中提到的特征可以适当地组合。
图1是根据本发明第一实施例的存储控制系统(磁盘阵列系统)的框图,而图2是根据本发明第二实施例的存储控制系统(磁盘阵列系统)的框图。作为存储控制系统的存储系统120,经由通信网络110连接到多个主机设备(控制主机设备)100。每个主机设备100为作为存储系统120的控制主机设备工作的服务器,个人计算机,工作站,或者大型机等。通信网络110的例子包括LAN(局域网),SAN(存储区域网),互联网,以及专用线。通信网络110具有连接主机100和存储系统120的主机端口110A和110B。
如果主机为开放系统,则根据诸如TCP/IP(传输控制协议/互联网协议),FCP(光纤路径协议),或者iSCSI(互联网小计算机系统接口)的通信协议进行数据传输。如果主机为大型机,则根据诸如FICON(光纤连接),ESCON(企业系统连接),ACONARC(先进连接结构),或者FIBRARC(光纤连接结构)的通信协议进行数据传输。存储系统120可以作为NAS(网络连接存储)工作,配置为根据诸如NFS(网络文件系统)接收来自主机100的根据文件名分配的数据输出请求。
磁盘阵列系统120包括双控制单元130A和130B,转换器(switch)140A和140B,作为磁盘驱动器的串行连接SCSI(SAS)驱动器150和串行先进技术连接(SATA)驱动器160,以及多个端口选择器300。端口选择器300为转换器,用于将SATA驱动器160中的单个主机端口扩展为两个端口,从而SATA驱动器160可以接收来自双控制器的I/O请求。存储设备的一个例子是FC驱动器。
控制单元130A和130B彼此相同,并且它们中的每个包括MPU 131,存储器132,光纤路径(FC)协议控制器133,数据控制器134,缓存存储器135,以及串联连接SCSI(SAS)协议控制器136。控制单元130A和130B中的数据控制器134经由数据镜像总线137相互连接。同时,在图2所示的第二实施例中,包括了光纤路径(FC)协议控制器133和协议转换控制器400来代替SAS协议控制器136,而其他元件与图1中所示的第一实施例相同。协议转换控制器400可以提供在端口选择器300中。如果使用FC后端,每个端口选择器300可以进一步作为协议转换控制器400工作。
MPU(CPU)131为响应于来自主机设备100的数据I/O请求,控制到/来自多个SAS驱动器150和SATA驱动器160的数据I/O处理(写访问或读访问等),并通过执行作为本地存储器的存储器132中存储的控制程序,控制光纤路径协议控制器133,数据控制器134,SAS协议控制器136以及协议转换控制器400的处理器。
数据控制器134在MPU 131的控制下,控制光纤路径协议控制器133和缓存存储器135之间的数据传输。缓存存储器135临时存储经由光纤路径协议控制器133与前接口和后接口交换的数据。
作为控制对于来自存储器单元中包括的SAS驱动器150和SATA驱动器160中的数据I/O请求目标存储设备的访问的启动器,SAS协议控制器136根据定义指令的协议,经由转换器140A或者转换器140B发送数据I/O请求到各存储设备(SAS驱动器150和SATA驱动器160)。
转换器140A和转换器140B中的每个构成用于控制单元130A和130B与存储器单元中包括的SAS驱动器150和SATA驱动器160之间的连接的连接路径。端口选择器300位于这些连接路径中的特定连接路径上。
如图3所示,每个端口选择器300包括进行各种计算的CPU 310,存储器311,SATA帧临时存储器312,连接到转换器140A的SATA主机端口(端口A)320,连接到转换器140B的SATA主机端口(端口B)321,以及连接到SATA驱动器160的SATA驱动器端口322。存储器311存储与指令验证程序330相关的数据和与映射表340相关的数据。映射表340包含作为与驱动端口341相关的数据的标签0到标签31。主机端口342在主机端口侧存储与主机端口A/B相关的数据以及指令中的标签。
同时,如图4所示,协议转换控制器400包括进行各种计算处理的CPU410,存储器411,光纤路径(FC)帧和SATA帧的临时存储器412,连接到转换器140A和140B的光纤路径(FC)主机端口(端口A)420,以及连接到转换器140A和140B的SAS端口422。存储器411存储与指令验证程序330相关的数据和与转换表440相关的数据。转换表440包括与作为SCSI CMD 441数据及其对应的ATA CMD 442数据的数据读/写相关的数据。
下面,参考图5描述从存储系统120中的指令生成到执行的处理的细节。MPU(CPU)131响应于来自主机设备100的控制数据I/O请求控制所有的数据I/O处理。MPU 131基于控制程序500控制指令。例如,MPU 131在从主机设备100接收到I/O请求时基于控制程序500生成指令。在该时间点上,使用本地存储器132和访问本地存储器132所通过的路径(诸如PCI或者PCI-Express)的总线之间诸如奇偶,ECC,和CRC的处理来保持数据的一致性,其中将形成FCP控制器133从主机设备100接收的指令的数据写到本地存储器132并且本地存储器132保持形成要发送到硬盘驱动器的指令的数据。
此后,MPU 131参考图6(A)所示的配置信息表610和图6(B)所示的算法表620的内容计算校验和,并生成包括指令信息和校验和信息两者的信息。如果指令发出到SATA驱动器160,可以用端口选择器300中的映射表340计算形成经过端口选择器转换之后的指令的数据。从而,MPU 131预计形成经过端口选择器300转换之后的指令的数据,并基于后面描述的校验和计算算法622计算形成指令的上面预计的数据的校验和,该校验和计算算法622是考虑了端口选择器300中的映射表340之后准备的。配置信息表610包含具有驱动端口ID(WWN:全局名称)613,驱动器类型614,以及对应于底架编号611和驱动器编号612的计算算法编号615的数据。算法表620包括具有计算算法622,要进行指令验证的指令类型的列表623,以及对应于计算算法编号621的路径设备624。
在该处理中,由上面计算的校验和,以及本地存储器和总线(PCI,PCI-Express等)上进行的奇偶,ECC和CRC保护形成指令的数据。SAS协议控制器136准备对应于协议的指令帧,将CRC(循环冗余校验)添加到准备的指令帧上,并发出添加了CRC的指令帧。SAS协议控制器136发出的指令帧由保护帧的CRC和保护形成指令的数据的校验和保护。当经由转换器140A和140B将指令前转到端口选择器300,端口选择器300接收指令帧,验证指令帧的CRC,并在CRC正确的情况下删除CRC。端口选择器参照映射表340并将形成指令的信息中的标签编号转换为对应于接收了指令帧的端口编号和前一标签编号的端口的端口编号的新的标签编号。在该转换中,形成指令的数据由MPU 131预先计算并添加的校验和保护。此后,将SATA协议定义的CRC添加到形成转换之后的指令的数据的页脚以形成指令帧。在此时间点上,指令帧由CRC保护,形成指令的数据的由MPU 131预先计算的校验和保护。此后,端口选择器300基于控制程序500通过使用由MPU 131在指令发出之前预先添加的校验和,验证指令是否逻辑上正确。更具体地,执行指令验证以验证指令信息中逻辑地损坏的数据。端口选择器300在验证结果是“正确”的情况下基于指令验证程序330发出指令帧到驱动器,而在验证结果为“不正确”的情况下丢弃指令帧并发出错误通知到控制器。当端口选择器300发出指令到目标驱动器时,SATA驱动器160接收通过了逻辑指令验证的正确指令,并响应于该访问执行处理。SATA驱动器160执行用于指令保护的CRC处理。
如上所述,添加到形成指令的数据上的校验和的值在MPU 131生成指令和校验和之后不变直到驱动器接收到指令帧。如果在路径中改变形成指令的数据的处理中由于软错误之类损坏了数据,端口选择器300可以检测形成指令的损坏的数据,防止发出任何不正确的指令到驱动器,并通知控制器应当采取适当的错误处理。
图7(A)显示了存储器132中存储的错误计数器表710和720的内容。如图7(B)的表中定义的,错误计数器表710包含对应于底架编号611和驱动器编号612的错误计数器711的数据,并且还包含阈值712的数据。错误计数器表720包含协议控制器编号720和错误计数器722的数据,并且还包含阈值723的数据。
图8(A)给出了SATA读/写FPDMA队列指令810的帧信息结构,图8(B)给出了SCIC读(10)指令的指令描述块(CDB)格式820,而图8(c)给出了SCIC写(10)指令的CDB格式和校验和801的插入位置。仅作为例子使用为其计算校验和801的目标域802。
下面,参考图9描述生成配置信息表610的处理。首先,当MPU 131开始生成配置信息表610(S10),控制程序500搜索连接的设备(S11)。控制程序500判断设备类型是协议转换控制器还是驱动器(S12),并在设备为驱动器的情况下判断驱动器类型(S13)。如果步骤S12中设备类型是协议转换控制器,控制程序500发出获取关于协议转换控制器400的设备信息的指令(S20),并且判断驱动器类型(S21)。如果在步骤S13或者步骤S21中驱动器类型是SATA,控制程序500发出获取用于选择端口选择器300中的校验和计算算法的信息的指令到位于SATA驱动器160之前的端口选择器300。
同时,如果在步骤S13中驱动器类型是SAS驱动器或者FC驱动器(连接路径的中间没有连接转换器设备),或者如果在步骤S21中驱动器设备类型为FC/SAS,控制程序500前进到步骤S40。在步骤S40,控制程序500基于连接在路径中间的设备选择连接的设备类型和校验和计算功能(S40)。接着,控制程序500为配置信息表610注册校验和计算功能编号(S50),并执行处理以检查在发出了具有错误的校验和的指令时驱动器是否作出了正确的错误响应(S60)。该流程中的处理在这里结束。
下面,参考图10描述指令验证的结果是“正确”时执行的处理。首先,控制程序500基于MPU 131执行的处理的结果生成形成指令(驱动器地址,发送长度,LBA,和标签等)的数据,该数据是执行读指令所必须的(S100),通过参照指示特定驱动器的底架编号和单元编号从配置信息表610中选择校验和计算算法622(S101),基于在步骤S100中生成的指令信息,通过使用校验和计算算法622为驱动器接收的指令计算校验和,并将该校验和添加到形成步骤S100中生成的指令的数据上(S102),并为SAS协议控制器135注册添加了校验和的指令(S103)。当生成了指令时,发出指令(发出SATA H2D FIS)(S104)。此后,接收指令(S110)的端口选择器300转换指令,在进行指令转换之后为指令帧生成CRC(S111),并进行指令验证(S112)。如果指令验证的结果是“正确”,端口选择器300发出指令到驱动器160(S113)。接收指令(S130)的SATA驱动器160,通知SAS协议控制器136指令的接收(即,发出SATA D2H FIS)(S131)。SAS协议控制器136接收D2H FIS(S132)。SATA驱动器160接着准备DMA发送(即,发出DMA设置FIS)并将准备的内容发送到SAS协议控制器136(S133)。SAS协议控制器136接收DMA设置FIS(S134)。
SATA驱动器160接着发送读数据(即,发送数据FIS)到SAS协议控制器136。SAS协议控制器136接收数据FIS(S136)。SATA驱动器160接着通知SAS协议控制器指令完成(即,发出SDB FIS,或者D2H FIS等)(S137)。SAS协议控制器136通知控制程序500指令完成(S138)。接收指令完成通知的控制程序500完成生成指令的处理(S139),从而结束该流程中的处理。
下面,参考图11描述指令验证的结果是“不正确”时执行的处理和重试处理。首先,控制程序500基于MPU 131进行的处理的结果,以与当指令验证的结果是“正确”时执行的处理相同的方式执行步骤S100到S103中的处理;SAS协议控制器136执行步骤S104中的处理;并且端口选择器300进行步骤S110到S112中的处理。此后,如果端口选择器300检测到作为在指令传输的过程中发生的错误的形成指令的损坏数据,端口选择器300将检测结果通知SAS协议控制器136(S161)。接收形成指令的损坏数据的检测结果的SAS协议控制器136,将接收通知前转到控制程序500(S162)。接收逻辑指令不一致检测的结果的控制程序500,识别指令验证错误(S163),并对每个发出目标驱动器中的指令验证错误进行计数(S170)。
此后,控制程序500确定是否进行重试,还进行确定必须阻断哪个部分的处理(S180),并根据决定回到步骤S100。如果控制程序500判断要阻断的部分为控制器(S180),控制程序500将判断前转到主机设备100(S180)。主机设备100在阻断存储系统120中包括的控制器时切换到控制器的路径为另一条路径,并经由另一条路径继续根据主机I/O执行驱动I/O(S190)。该流程中的处理在这里结束。
下面,根据图12所示的流程图描述重试判断处理和阻断部分确定处理,图12显示了图11中的步骤180的细节。首先,控制程序500开始重试判断(S200),在与发生错误的驱动器相关的错误计数器表700的条目中递增计数器(S201),对于与发生错误的SAS协议控制器136相关的条目递增计数器(S202),并将计数器中的值与各阈值比较(S203)。如果计数器值超过阈值,控制程序500开始断开故障部分(S250)并判断哪个部分对应于计数器值超过阈值的条目(S251)。
如果在上述步骤中故障部分是驱动器,控制程序500确定在驱动器或者用于转换指令格式的设备(端口选择器或者协议转换控制器400等)之前的设备中发生了错误(S261),并阻断相关的驱动器或者转换设备(S262)。此后,如果存储系统存在任何空余的驱动器,控制程序500开始在后台执行RAID控制的收集拷贝(S263),当步骤S203中计数器值为阈值或者更少时执行以相同的方式重试指令的处理(S264),接着回到图11中的步骤S100。
同时,如果在步骤S251中具有超过阈值的值的条目是与协议控制器136相关,控制程序500从另一个控制器130B的错误计数器表确定在另一个控制器130B中没有发生错误(S271),进行处理以阻断发生错误的自己的控制器130A(其中发生了错误),并接着前进到图11中的步骤S190。
下面,根据图13所示的流程图描述指令验证程序执行的指令验证处理,图13显示了图10和图11中的步骤112的细节。
首先,接收指令(S310)的端口选择器300,为接收的指令中的验证目标部分计算校验和(S320),将计算的校验和与控制程序500计算并添加到指令中的校验和进行比较(S330),并判断这些值是否相同(S340)。如果这些值相同,控制程序500判断已正确地转换了指令(S350)。同时,如果这些值不相同,控制程序500判断指令不正确,并且,作为错误响应,将不正确指令通知协议控制器136,并放弃接收的不正确指令(S360)。该流程中的处理在这里结束。
根据本实施例,接收根据MPU 131进行的处理生成的指令的端口选择器300,判断形成指令的数据是否损坏。如果指令正确,端口选择器300访问目标驱动器160。同时,如果指令不正确并且检测到逻辑指令不一致,端口选择器300经由转换器140A或者140B将检测结果前转到MPU 131,从而可以进行重试处理,以及故障部分的检测和阻断。从而,可以提供检测逻辑指令错误并对错误进行适当的错误处理的装置。
在第二实施例中,协议转换控制器和端口选择器都具有指令验证电路,并且准备多个错误响应从而控制程序可以区分协议转换控制器检测并返回的错误和端口选择器检测并返回的错误。因此,通过将第一和第二实施例组合,控制程序可以从诸如协议转换控制器和端口选择器的多个转换部分中识别数据发生逻辑损坏的部分。从而,可以断开正确的故障部分并快速地阻断和替换。

Claims (26)

1.一种存储控制系统,其包括:
存储器单元,包括多个存储设备;
多个控制单元,用于响应于来自主机设备的数据I/O请求执行到/来自存储器单元的数据I/O的处理,每个控制单元包括:存储控制程序的存储器,根据控制程序控制所有的数据I/O处理并且响应于数据I/O请求生成指令的控制器;和根据指令控制对于存储器单元中的作为数据I/O请求的目标的存储设备的访问的启动器;
多条连接路径,用于将控制单元中的每个连接到存储器单元;
位于任意的连接路径上的端口选择器,用于控制数据I/O,该端口选择器在接收到指令时,判断是否发生了任何指令错误,并响应于该判断至少为控制器执行处理。
2.根据权利要求1所述的存储控制系统,其中当关于指令的判断返回“正确”时,端口选择器经由任意一条连接路径访问目标存储设备;且当判断返回“不正确”时,端口选择器经由任意一条连接路径将“不正确”判断发送到控制器。
3.根据权利要求2所述的存储控制系统,其中如果端口选择器在判断是否发生了任何指令错误时检测到指令中的逻辑不一致,端口选择器经由任意一条连接路径将该判断作为“不正确”判断发送到控制器。
4.根据权利要求1所述的存储控制系统,其中在从端口选择器接收到“不正确”判断时,控制器识别“不正确”判断,并执行重试处理以再次生成指令。
5.根据权利要求4所述的存储控制系统,其中在识别从端口选择器接收到的“不正确”判断时,控制器基于识别结果确定必须阻断的部分并根据判断阻断该部分。
6.一种存储控制系统,其包括:
包括多个存储设备的存储器单元,每个存储单元包括用于控制数据I/O的端口选择器;以及
多个控制单元,用于响应于来自主机设备的数据I/O请求执行到/来自存储器单元的数据I/O的处理,每个控制单元包括:存储控制程序的存储器,根据控制程序控制所有的数据I/O处理并且响应于数据I/O请求生成指令的控制器;和根据指令控制对于存储器单元中的作为数据I/O请求的目标的存储设备的访问的启动器,
其中该端口选择器在接收到指令时,判断是否发生了任何指令错误,并响应于该判断至少为控制器执行处理。
7.根据权利要求6所述的存储控制系统,其中当关于指令的判断返回“正确”时,端口选择器访问目标存储设备;而当判断返回“不正确”时,端口选择器将“不正确”判断发送到控制器。
8.根据权利要求7所述的存储控制系统,其中如果端口选择器在判断是否发生了任何指令错误时检测到指令中的逻辑不一致,端口选择器将该检测结果作为“不正确”判断发送到控制器。
9.根据权利要求6所述的存储控制系统,其中在从端口选择器接收到“不正确”判断时,控制器识别“不正确”判断,并执行重试处理以再次生成指令。
10.根据权利要求9所述的存储控制系统,其中控制器识别从端口选择器接收到的“不正确”判断,且控制器基于识别结果确定必须阻断的部分并根据判断阻断该部分。
11.根据权利要求5所述的存储控制系统,其中如果控制器判断必须阻断的部分是启动器,控制器阻断启动器;并且如果控制器判断必须阻断的部分是任一存储设备,控制器进行处理以阻断相关的存储设备。
12.根据权利要求6所述的存储控制系统,其中在确定必须阻断的部分是启动器时,控制器在进行的判断的数量超过阈值的情况下对该部分执行阻断处理。
13.根据权利要求7所述的存储控制系统,其中在对必须阻断的部分执行阻断处理时,控制器将关于该部分的信息发送到主机设备。
14.一种用于存储控制系统的控制方法,该控制系统包括:
存储器单元,包括多个存储设备;
多个控制单元,用于响应于来自主机设备的数据I/O请求执行到/来自存储器单元的数据I/O的处理,每个控制单元包括:存储控制程序的存储器,根据控制程序控制所有的数据I/O处理并且响应于数据I/O请求生成指令的控制器;和根据指令控制对于存储器单元中的作为数据I/O请求的目标的存储设备的访问的启动器;
多条连接路径,用于将控制单元中的每个连接到存储器单元;
位于任意的连接路径上的端口选择器,用于控制数据I/O,在经由多个连接路径和端口控制器在存储器单元和多个控制单元之间进行数据交换时,该端口选择器在接收到指令时,判断是否发生了任何指令错误,并响应于该判断至少为控制器执行处理。
15.根据权利要求14所述的用于存储控制系统的控制方法,其中当关于指令的判断返回“正确”时,端口选择器经由任意一条连接路径访问目标存储设备;且当判断返回“不正确”时,端口选择器经由任意一条连接路径将“不正确”判断发送到控制器。
16.根据权利要求15所述的用于存储控制系统的控制方法,其中如果端口选择器在判断是否发生了任何指令错误时检测到指令中的逻辑不一致,端口选择器经由任意一条连接路径将检测结果作为“不正确”判断发送到控制器。
17.根据权利要求14所述的用于存储控制系统的控制方法,其中在从端口选择器收到“不正确”判断时,控制器识别“不正确”判断,并执行重试处理以再次生成指令。
18.根据权利要求17所述的用于存储控制系统的控制方法,其中在控制器识别从端口选择器接收到的“不正确”判断时,控制器基于识别结果确定必须阻断的部分并根据判断阻断该部分。
19.根据权利要求18所述的用于存储控制系统的控制方法,其中如果控制器判断必须阻断的部分是启动器,控制器阻断启动器;并且如果控制器判断必须阻断的部分是任一存储设备,控制器进行处理以阻断相关的存储设备。
20.一种端口选择器,位于将存储器单元和多个控制单元相连接的多条连接路径之一上,用于控制数据I/O的所述存储器单元包括多个存储设备,所述多个控制单元响应于来自主机设备的数据I/O请求执行到/来自存储器单元的数据I/O的处理,
该端口控制器包括:
判断是否发生了任何指令错误的装置;
当判断返回“正确”时,经由任意一条连接路径访问目标存储设备的装置;和
当判断返回“不正确”时,经由任意一条连接路径将“不正确”判断发送到控制单元的装置。
21.根据权利要求20所述的端口选择器,进一步包括:
在判断是否发生了任何指令错误时检测到指令中的逻辑不一致的情况下,将该检测结果作为“不正确”判断发送到控制单元的装置。
22.一种包括在控制单元中的控制器,该控制单元响应于来自主机设备的数据I/O请求执行到/来自包括多个存储设备的存储器单元的数据I/O的处理,该控制器基于控制程序生成对应于数据I/O请求的指令,并将生成的指令发送到控制对于作为数据I/O请求的目标的存储设备的访问的启动器;
所述控制器进一步包括:从端口选择器收到“不正确”判断时执行重试处理以再次生成指令的装置,所述端口选择器位于连接存储器单元和控制单元的多条连接路径中控制数据I/O的任意一条上。
23.根据权利要求22所述的控制器,进一步包括:在识别从端口选择器接收的“不正确”判断时,基于识别结果确定必须阻断的部分的装置,以及根据判断阻断该部分的装置。
24.根据权利要求23所述的控制器,进一步包括:在判断必须阻断的部分是启动器时阻断启动器的装置;以及在判断必须阻断的部分是任一存储设备时,进行处理以阻断相关的存储设备的装置。
25.根据权利要求24所述的控制器,进一步包括:在确定必须阻断的部分时,在判断的数量超过阈值的情况下对该部分执行阻断处理的装置。
26.根据权利要求25所述的控制器,进一步包括:在对必须阻断的部分执行阻断处理时,将关于该部分的信息发送到主机设备的装置。
CN200710096480A 2006-07-10 2007-04-18 存储控制系统及其控制方法,端口选择器,以及控制器 Expired - Fee Related CN100583066C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006189782 2006-07-10
JP2006189782 2006-07-10
US11/527,497 2006-09-27

Publications (2)

Publication Number Publication Date
CN101105780A true CN101105780A (zh) 2008-01-16
CN100583066C CN100583066C (zh) 2010-01-20

Family

ID=38972709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710096480A Expired - Fee Related CN100583066C (zh) 2006-07-10 2007-04-18 存储控制系统及其控制方法,端口选择器,以及控制器

Country Status (3)

Country Link
US (2) US7761657B2 (zh)
EP (1) EP1881407A3 (zh)
CN (1) CN100583066C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101621465B (zh) * 2009-07-28 2011-12-07 成都市华为赛门铁克科技有限公司 数据包发送方法、装置、系统和交换设备
CN103595725A (zh) * 2013-11-21 2014-02-19 国家电网公司 一种屏柜资源控制系统及方法
CN104798010A (zh) * 2012-10-02 2015-07-22 英特尔公司 至少部分的串行存储协议兼容帧转换
CN105740134A (zh) * 2016-01-29 2016-07-06 浪潮(北京)电子信息产业有限公司 一种基于文件的测试方法及装置
CN107025167A (zh) * 2015-12-21 2017-08-08 英特尔公司 在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备
CN110032508A (zh) * 2019-03-04 2019-07-19 百富计算机技术(深圳)有限公司 功能驱动程序测试方法、终端设备及存储介质

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080183921A1 (en) * 2007-01-29 2008-07-31 Naichih Chang Serial advanced technology attachment (SATA) frame information structure (FIS) processing
US20090006657A1 (en) * 2007-06-26 2009-01-01 Asad Azam Enabling consecutive command message transmission to different devices
US8140796B2 (en) * 2007-12-27 2012-03-20 Igt Serial advanced technology attachment write protection: mass storage data protection device
JP5127491B2 (ja) * 2008-02-08 2013-01-23 株式会社日立製作所 ストレージサブシステム及びこれの制御方法
JP5102918B2 (ja) * 2008-09-02 2012-12-19 株式会社日立製作所 ストレージ装置及びファームウェア更新指示方法
CN104077174B (zh) * 2009-03-27 2018-05-01 希捷科技有限公司 用于提供存储系统逻辑块地址的数据固化的方法及系统
US8671258B2 (en) * 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US8352835B2 (en) * 2009-06-10 2013-01-08 International Business Machines Corporation Data verification using checksum sidefile
US8631284B2 (en) * 2010-04-30 2014-01-14 Western Digital Technologies, Inc. Method for providing asynchronous event notification in systems
US8762682B1 (en) 2010-07-02 2014-06-24 Western Digital Technologies, Inc. Data storage apparatus providing host full duplex operations using half duplex storage devices
US8468385B1 (en) * 2010-10-27 2013-06-18 Netapp, Inc. Method and system for handling error events
EP2761472B1 (en) 2011-09-30 2020-04-01 Intel Corporation Memory channel that supports near memory and far memory access
EP2761466B1 (en) 2011-09-30 2020-08-05 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy
WO2013048467A1 (en) 2011-09-30 2013-04-04 Intel Corporation Generation of far memory access signals based on usage statistic tracking
US8909816B2 (en) * 2012-03-19 2014-12-09 Kaminario Technologies Ltd. Implementing a logical unit reset command in a distributed storage system
US9026865B2 (en) * 2012-06-11 2015-05-05 Unisys Corporation Software handling of hardware error handling in hypervisor-based systems
US9202041B2 (en) * 2013-02-07 2015-12-01 Fairchild Semiconductor Corporation Permanent lockout attack detection
US9423820B2 (en) 2013-07-31 2016-08-23 Fairchild Semiconductor Corporation Complimentary bit slicing side channel attack defense
US10073735B1 (en) * 2014-10-28 2018-09-11 Seagate Technology Llc Seeding mechanism for error detection codes
US10782917B2 (en) 2016-05-12 2020-09-22 Hitachi, Ltd. Storage device
US10635154B2 (en) * 2016-12-19 2020-04-28 Western Digital Technologies, Inc. Intelligent SAS phy power management
DE102017100618A1 (de) * 2017-01-13 2018-07-19 HELLA GmbH & Co. KGaA Kontrollsystem für ein Kraftfahrzeug, Kraftfahrzeug, Verfahren zur Kontrolle eines Kraftfahrzeugs, Computerprogrammprodukt und computerlesbares Medium

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0680492B2 (ja) * 1984-09-29 1994-10-12 株式会社日立製作所 エラー回復方法
JP3537281B2 (ja) * 1997-01-17 2004-06-14 株式会社日立製作所 共有ディスク型多重系システム
SE511114C2 (sv) * 1997-12-10 1999-08-09 Ericsson Telefon Ab L M Metod vid processor, samt processor anpassad att verka enligt metoden
US6496900B1 (en) 2000-09-12 2002-12-17 3Ware, Inc. Disk array system, controller, and method for verifying command data written to disk drives
US6928607B2 (en) 2000-10-19 2005-08-09 Oracle International Corporation Data integrity verification mechanism
US7028213B2 (en) * 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
JP2002251332A (ja) 2002-01-07 2002-09-06 Hitachi Ltd ディスク制御装置
US6948036B2 (en) * 2002-06-21 2005-09-20 Hewlett-Packard Development Company, L.P. System and method for providing multi-initiator capability to an ATA drive
US7360010B2 (en) * 2003-04-14 2008-04-15 Copan Systems, Inc. Method and apparatus for storage command and data router
US7523235B2 (en) 2003-06-11 2009-04-21 Lsi Corporation Serial Advanced Technology Attachment (SATA) switch
CN100433623C (zh) * 2003-06-11 2008-11-12 硅斯托尔公司 串行高级技术附件(sata)交换机
JP2005031928A (ja) 2003-07-11 2005-02-03 Hitachi Ltd 記憶システム及び記憶システムの障害特定方法
JP4391170B2 (ja) 2003-09-05 2009-12-24 株式会社日立製作所 データ転送装置の制御方法、データ転送回路、及びディスクアレイ装置
JP2005107676A (ja) * 2003-09-29 2005-04-21 Toshiba Corp アレイコントローラ及びディスクアレイ再構築方法
JP2005149082A (ja) * 2003-11-14 2005-06-09 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法
JP4426262B2 (ja) * 2003-11-26 2010-03-03 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の障害回避方法
JP4156499B2 (ja) * 2003-11-28 2008-09-24 株式会社日立製作所 ディスクアレイ装置
JP4570352B2 (ja) 2003-12-16 2010-10-27 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2006072634A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd ディスク装置
JP2006079418A (ja) * 2004-09-10 2006-03-23 Fujitsu Ltd 記憶制御装置、制御方法及びプログラム
JP2006189782A (ja) 2004-12-06 2006-07-20 Fujitsu Ten Ltd 表示装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101621465B (zh) * 2009-07-28 2011-12-07 成都市华为赛门铁克科技有限公司 数据包发送方法、装置、系统和交换设备
CN104798010A (zh) * 2012-10-02 2015-07-22 英特尔公司 至少部分的串行存储协议兼容帧转换
CN104798010B (zh) * 2012-10-02 2018-05-25 英特尔公司 至少部分的串行存储协议兼容帧转换
CN103595725A (zh) * 2013-11-21 2014-02-19 国家电网公司 一种屏柜资源控制系统及方法
CN103595725B (zh) * 2013-11-21 2018-05-18 国家电网公司 一种屏柜资源控制系统及方法
CN107025167A (zh) * 2015-12-21 2017-08-08 英特尔公司 在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备
CN107025167B (zh) * 2015-12-21 2021-09-03 英特尔公司 在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备
CN105740134A (zh) * 2016-01-29 2016-07-06 浪潮(北京)电子信息产业有限公司 一种基于文件的测试方法及装置
CN110032508A (zh) * 2019-03-04 2019-07-19 百富计算机技术(深圳)有限公司 功能驱动程序测试方法、终端设备及存储介质
CN110032508B (zh) * 2019-03-04 2022-05-27 百富计算机技术(深圳)有限公司 功能驱动程序测试方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
EP1881407A2 (en) 2008-01-23
EP1881407A3 (en) 2010-02-10
US7831767B2 (en) 2010-11-09
US7761657B2 (en) 2010-07-20
CN100583066C (zh) 2010-01-20
US20100115143A1 (en) 2010-05-06
US20080022041A1 (en) 2008-01-24

Similar Documents

Publication Publication Date Title
CN100583066C (zh) 存储控制系统及其控制方法,端口选择器,以及控制器
US8020074B2 (en) Method for auto-correction of errors in a RAID memory system
US5975738A (en) Method for detecting failure in redundant controllers using a private LUN
US7590884B2 (en) Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid
US8423818B2 (en) Disk array apparatus and method for controlling the same
US8713251B2 (en) Storage system, control method therefor, and program
US8667372B2 (en) Memory controller and method of controlling memory
JP4852315B2 (ja) データ信頼性向上方法及びその方法を用いた情報処理装置
KR100640037B1 (ko) 파일 제어 시스템 및 파일 제어 장치
US20080046783A1 (en) Methods and structure for detection and handling of catastrophic scsi errors
GB2302428A (en) Multi-media storage system
JP2002108572A (ja) バックアップシステム、及び複製装置
JP6307847B2 (ja) 情報処理装置,制御装置及び制御プログラム
US7107343B2 (en) Method and apparatus for improved RAID 1 write performance in low cost systems
WO2014094250A1 (zh) 数据处理方法和设备
US6938188B1 (en) Method for verifying functional integrity of computer hardware, particularly data storage devices
JP2020021313A (ja) データ処理装置および診断方法
US8522075B2 (en) Storage system having storage devices for storing data and control devices for controlling the storage devices
JP2012133456A (ja) ストレージ装置及びストレージ装置の制御方法
US8874972B2 (en) Storage system and method for determining anomaly-occurring portion
JP2008041080A (ja) 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ
CN100505751C (zh) 用于差错管理的方法以及数据存储系统的目标装置
US10409663B2 (en) Storage system and control apparatus
US7526714B2 (en) Apparatus for checking data coherence, raid controller and storage system having the same, and method therefor
CN113868000B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100120

Termination date: 20180418