CN106990916B - 一种读写请求的处理方法及装置 - Google Patents

一种读写请求的处理方法及装置 Download PDF

Info

Publication number
CN106990916B
CN106990916B CN201710117622.6A CN201710117622A CN106990916B CN 106990916 B CN106990916 B CN 106990916B CN 201710117622 A CN201710117622 A CN 201710117622A CN 106990916 B CN106990916 B CN 106990916B
Authority
CN
China
Prior art keywords
read
module
control command
write
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
CN201710117622.6A
Other languages
English (en)
Other versions
CN106990916A (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.)
Beijing Tengling Technology Co ltd
Original Assignee
Beijing Tengling Technology Co 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 Beijing Tengling Technology Co ltd filed Critical Beijing Tengling Technology Co ltd
Priority to CN201710117622.6A priority Critical patent/CN106990916B/zh
Publication of CN106990916A publication Critical patent/CN106990916A/zh
Application granted granted Critical
Publication of CN106990916B publication Critical patent/CN106990916B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种读写请求处理方法及装置,本申请中,通过使用RAID模块替代SCSI子系统来完成读写控制命令的构造,并将基于重传命令对读写控制命令进行再构造的任务,从SCSI子系统转移至SAS子系统内新配置的FPGA模块来完成,本申请方法不仅省去了现用技术中复杂SCSI子系统参与用户读写请求处理的环节,而且实现了基于SAS子系统内部的错误状态下读写控制命令的重传机制,从而大幅提升了计算机对每一次RAID读写操作的实现速度。

Description

一种读写请求的处理方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种读写请求的处理方法及装置。
背景技术
在计算机技术快速发展的今天,存储设备作为用以与计算机进行数据交互的重要设备,其可读写能力在与计算机的数据交互中发挥着至关重要的作用。RAID(RedundantArrays of Independent Disks,磁盘阵列)技术通过将多块磁盘利用数组的原理整合为一磁盘组的方式,可以使得计算机具备同时对多块磁盘执行读写操作的能力,从而大幅提高了计算机的磁盘读写速度。在对RAID的实际应用中,计算机具体通过操作系统内核中相关子系统间的交互等来实现用户对于RAID的每一次读写操作,这些相关子系统均为软件实现,包括:块IO(Input Output,输入输出)子系统、SCSI(Small Computer SystemInterface,小型计算机系统接口)子系统、以及SAS(Serial Attached SCSI,串行连接SCSI接口)子系统。
在现有技术中,操作系统内核中位于块IO子系统中的RAID模块将含有用户读写请求参数的BIO(Block Input Output,块输入输出)请求发送至SCSI子系统;在SCSI子系统中,上述BIO请求将被构造为同样包含用户读写请求参数的读写控制命令发送至SAS子系统,并最终由SAS子系统根据上述读写控制命令主导实施用户的读写操作。然而,由于读写控制命令由SCSI子系统构造并发送,因此,每次当SAS子系统在读写控制命令的处理过程中出现问题时,则会向SCSI子系统返回用于请求重新发送读写控制命令的错误状态信息,并根据接收到的读写控制命令再次实施用户读写操作。但是,SAS子系统与复杂SCSI子系统间的频繁交互,将大幅减小计算机对于每一次RAID读写操作的实现速度。
发明内容
有鉴于此,本申请提供一种读写请求处理方法,以增大计算机对每一次RAID读写操作的实现速度。
根据本申请实施例的第一方面,提供一种读写请求处理方法,所述方法涉及块IO子系统和SAS子系统,具体涉及所述块IO子系统中的RAID模块、所述SAS子系统中的SAS驱动模块、FPGA模块以及SAS协议模块,其中,IO是指输入输出、SAS是指串行连接的小型计算机系统接口、RAID是指磁盘阵列、FPGA是指现场可编程门阵列,所述方法包括:
RAID模块接收包含用户读写请求参数的BIO请求,所述BIO请求是指块输入输出请求;
根据BIO请求中的用户读写请求参数构造读写控制命令,并将构造出的读写控制命令通过所述SAS驱动模块发送至FPGA模块;
FPGA模块接收并保存所述读写控制命令,并将所述读写控制命令发送至SAS协议模块,以使所述SAS协议模块根据所述读写控制命令对RAID实施读写操作;
判断是否接收到SAS协议模块返回的对应所述读写控制命令的重传命令;
如果是,则基于所述重传命令和所保存的读写控制命令构造待重传的读写控制命令,并将构造出的待重传的读写控制命令发送至SAS协议模块,以使所述SAS协议模块根据该读写控制命令对RAID实施读写操作。
根据本申请实施例的第二方面,提供一种读写请求处理装置,所述装置包括:
RAID模块,用于接收包含用户读写请求参数的BIO请求;
以及用于根据BIO请求中的用户读写请求参数构造读写控制命令,并将构造出的读写控制命令通过所述SAS驱动模块发送至FPGA模块;
SAS驱动模块,用于将接收到的RAID模块构造出的读写控制命令发送至FPGA模块;
FPGA模块,用于接收并保存所述读写控制命令,并将所述读写控制命令发送至SAS协议模块;
用于判断是否接收到SAS协议模块返回的对应所述读写控制命令的重传命令;
以及用于在接收到所述重传命令后,基于所述重传命令和所保存的读写控制命令构造待重传的读写控制命令,并将构造出的待重传的读写控制命令发送至SAS协议模块;
SAS协议模块,用于根据所述FPGA模块发送的读写控制命令对RAID实施读写操作;
以及用于在根据接收到的读写控制命令对RAID实施读写操作失败时,向所述FPGA模块返回对应所述读写控制命令的重传命令;
其中,RAID是指磁盘阵列、BIO请求是指块输入输出请求、FPGA是指现场可编程门阵列、SAS是指串行连接的小型计算机系统接口;
其中,RAID模块位于块IO子系统;SAS驱动模块、FPGA模块、SAS协议模块位于SAS子系统。
本申请中,通过使用RAID模块替代SCSI子系统来完成读写控制命令的构造,并将基于重传命令对读写控制命令进行再构造的任务,从SCSI子系统转移至SAS子系统内新配置的FPGA模块来完成,本申请方法不仅省去了现用技术中复杂SCSI子系统参与用户读写请求处理的环节,而且实现了基于SAS子系统内部的错误状态下读写控制命令的重传机制,从而大幅提升了计算机对每一次RAID读写操作的实现速度。
附图说明
图1是本申请一种读写请求处理方法的流程图;
图2是本申请一种读写请求处理装置的第一种结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
RAID技术通过将多块磁盘利用数组的原理整合为一磁盘组的方式,可以使得计算机具备同时对多块磁盘执行读写操作的能力,从而大幅提高了计算机的磁盘读写速度。在对RAID的实际应用中,计算机具体通过操作系统内核中相关子系统间的交互等来实现用户对于RAID的每一次读写操作,这些相关子系统均为软件实现,包括:块IO子系统、SCSI子系统、以及SAS子系统。具体的,块IO子系统是指Linux内核中主要用于处理基于块设备的IO请求的子系统;SCSI子系统是指Linux内核中主要用于处理基于SCSI接口设备或者SATA(Serial Advanced Technology Attachment,串行高级技术附件)接口设备的IO请求的子系统;SAS子系统是指Linux内核中主要用于处理更接近于SCSI接口设备或者SATA接口设备底层的IO请求的子系统,其中,IO请求即为读写请求。需要指出的是,本文所提到的“读写”一般是指读/写。
在现有技术中,操作系统内核中位于块IO子系统内的RAID模块将含有用户读写请求参数的BIO请求发送至SCSI子系统;在SCSI子系统中,上述BIO请求将被构造为同样包含用户读写请求参数的读写控制命令发送至SAS子系统,并最终由SAS子系统根据上述读写控制命令主导实施用户的读写操作。然而,由于读写控制命令由SCSI子系统构造并发送,因此,每次当SAS子系统在读写控制命令的处理过程中出现问题时,则会向SCSI子系统返回用于请求重新发送读写控制命令的错
误状态信息,并根据接收到的读写控制命令再次实施用户读写操作。但是,SAS子系统与复杂SCSI子系统间的频繁交互,将大幅减小计算机对于每一次RAID读写操作的实现速度。其中,RAID模块是指位于块IO子系统中的块设备驱动层内用以支持物理RAID的软件实现,负责执行基于RAID的IO请求的接收、处理以及下发等操作。
有鉴于此,本申请提供一种读写请求处理方法,以增大计算机对每一次RAID读写操作的实现速度。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
参见图1,图1是本申请一种读写请求处理方法的流程图,该流程图可以包括以下步骤:
步骤101:RAID模块接收包含用户读写请求参数的BIO请求,上述BIO请求是指块输入输出请求。
本方法实施例涉及块IO子系统和SAS子系统,具体涉及上述块IO子系统中的RAID模块、上述SAS子系统中的SAS驱动模块、FPGA模块以及SAS协议模块,其中,IO是指输入输出、SAS是指串行连接的小型计算机系统接口、RAID是指磁盘阵列、FPGA是指现场可编程门阵列。
本方法实施例中,上述用户读写请求参数可以包括:待读写的磁盘的标识、读操作/写操作、以及待读写的块的地址,其中,上述块位于每一磁盘中,为构成RAID的最小存储单元。
本方法实施例中,有关上述BIO请求的内容将在以下实施例中加以说明,在此不再赘述。
步骤102:RAID模块根据BIO请求中的用户读写请求参数构造读写控制命令,并将构造出的读写控制命令通过上述SAS驱动模块发送至FPGA模块。
本方法实施例中,有关上述读写控制命令和SAS驱动模块的内容将在以下实施例中加以说明,在此不再赘述。
步骤103:FPGA模块接收并保存上述读写控制命令,并将上述读写控制命令发送至SAS协议模块,以使上述SAS协议模块根据上述读写控制命令对RAID实施读写操作。
本实施例中,在接收到RAID模块发送的读写控制命令后,FPGA模块可以对该接收到的读写控制命令进行保存,以在接收到SAS协议模块返回的重传命令后,基于该保存的读写控制命令和重传命令替代RAID模块进行读写控制命令构造,从而在SAS子系统内构建了一错误状态下读写控制命令的重传机制。
本方法实施例中,RAID模块在发送一读写控制命令后,可实时判断是否接收到针对SAS协议模块所实施的RAID读写操作而返回的、对应于该读写控制命令的操作结果,并在接收到上述操作结果后,将所返回的操作结果反馈给用户,以使用户获悉该操作结果。具体的,当对RAID实施读操作时,上述操作结果可以为读操作失败消息或从RAID所读取的数据;当对RAID实施写操作时,上述操作结果可以为写操作失败消息或写操作成功消息。
步骤104:FPGA模块判断是否接收到SAS协议模块返回的对应上述读写控制命令的重传命令,并在接收到上述重传命令后,执行步骤105。
本方法实施例中,关于上述重传命令将在以下实施例中加以说明,在此不再赘述。
步骤105:FPGA模块基于上述重传命令和所保存的读写控制命令构造待重传的读写控制命令,并将构造出的待重传的读写控制命令发送至SAS协议模块,以使上述SAS协议模块根据该读写控制命令对RAID实施读写操作。
通过以上方法实施例可以看出,通过使用RAID模块替代SCSI子系统来完成读写控制命令的构造,并将基于重传命令对读写控制命令进行再构造的任务,从SCSI子系统转移至SAS子系统内新配置的FPGA模块来完成,本申请方法不仅省去了现用技术中复杂SCSI子系统参与用户读写请求处理的环节,而且实现了基于SAS子系统内部的错误状态下读写控制命令的重传机制,从而大幅提升了计算机对每一次RAID读写操作的实现速度。
以下将通过一个实施例对申请方法进行详细描述,与上述方法实施例不同的是,本实施例将结合具体示例对部分步骤进行说明,具有较强的实际操作意义,具体的,本实施例可以包括以下步骤:
步骤1:RAID模块接收包含用户读写请求参数的BIO请求,上述BIO请求是指块输入输出请求。
本实施例中,当用户发出一个RAID读写请求后,计算机将通过操作系统内核中各子系统间的交互等,来逐步实现最终基于RAID的读写操作。事实上,在每一不同的子系统中,甚至同一子系统中的不同模块中,上述RAID读写请求都将会以不同的形式表示,每一子系统或每一模块对这一RAID读写请求的处理,都将以可以使其下层子系统或模块能够识别且能够处理为准。
比如,在本步骤中,RAID模块将从位于其上层的IO调度模块中接收到上述BIO请求-RAID读写请求的一种表现形式,并进一步获取该BIO请求中待执行读写操作的连续的块地址段。此时,RAID模块将基于该连续块地址段中的每一地址所对应的块在物理RAID中实际的磁盘位置,将这一块地址段切分成不同的块地址,以便其下层的子系统或模块可以根据这些已经切分好的块地址同时对这些分立的块实施读写操作。事实上,正是因为这一切分动作的存在,才使得计算机具备对于RAID中多块磁盘同时进行读写操作的能力。
步骤2:RAID模块根据BIO请求中的用户读写请求参数构造读写控制命令,并将构造出的读写控制命令通过上述SAS驱动模块发送至FPGA模块。
在本实施例的第一种实现方式中,上述读写控制命令除包含上述用户读写请求参数之外,还可以包括一命令标识,以方便对于该控制命令的查询和与下述重传命令的匹配。
本实施例中,上述将构造出的读写控制命令发送至FPGA模块,事实上可以以参数传递的方式实现。具体的,在本实施例的第一种实现方式中,RAID模块可以与SAS子系统中的FPGA模块预先协商所要传递的参数的类型,以保证参数信息的准确传递;在本实施例的第二种实现方式中,上述实现方式中参与协商的FPGA模块也可以由步骤102中所提到的SAS驱动模块来替代。需要指出的是,上述所传递的参数不仅可以包括上述用户读写请求参数、命令标签,还可以包括其它一些必要信息,但由于这些必要信息并不在本申请所要求保护的范围之内,故不予赘述。
本实施例中,SAS驱动模块会将接收到的读写控制命令转换为SAS帧这一表现形式,以便于FPGA模块对所接收到的读写控制命令进行识别和处理。
步骤3:FPGA模块接收并保存上述读写控制命令,并将上述读写控制命令发送至SAS协议模块,以使上述SAS协议模块根据上述读写控制命令对RAID实施读写操作。
本实施例中,FPGA模块为SAS子系统内对应于物理FPGA的软件实现,且该软件实现所使用的程序指令十分接近于硬件层面。
本实施例中,在对应于步骤2中第一种实现方式的第二种实现方式中,上述命令标识也可以由FPGA模块生成。具体的,FPGA模块可以在保存上述读写控制命令之前,为该读写控制命令设置一命令标识,以方便对于该控制命令的查询和与下述重传命令的匹配。
本实施例中,SAS协议模块可以对接收到的读写控制命令进行相应的处理,并最终由SAS扩展器执行对RAID的读写操作。由于该过程并不在本申请所要求保护的范围之内,故不予赘述。
步骤4:FPGA模块判断是否接收到SAS协议模块返回的对应上述读写控制命令的重传命令,并在接收到上述重传命令后,执行步骤105。
步骤5:FPGA模块基于上述重传命令和所保存的读写控制命令构造待重传的读写控制命令,并将构造出的待重传的读写控制命令发送至SAS协议模块,以使上述SAS协议模块根据该读写控制命令对RAID实施读写操作。
本实施例中,FPGA模块可以对接收到的重传命令进行解析,已通过解析获取该重传命令中用于与上述读写控制命令进行匹配的命令标识,并在根据该命令标识找到所保存的读写控制命令后,基于上述重传命令和所保存的读写控制命令构造待重传的读写控制命令。
通过以上实施例可以看出,通过使用RAID模块替代SCSI子系统来完成读写控制命令的构造,并将基于重传命令对读写控制命令进行再构造的任务,从SCSI子系统转移至SAS子系统内新配置的FPGA模块来完成,本申请方法不仅省去了现用技术中复杂SCSI子系统参与用户读写请求处理的环节,而且实现了基于SAS子系统内部的错误状态下读写控制命令的重传机制,从而大幅提升了计算机对每一次RAID读写操作的实现速度。
与前述一种读写请求处理方法的实施例相对应,本申请还提供了一种读写请求处理装置的实施例。
参见图2,图2是本申请一种读写请求处理装置的第一种结构图。该装置可以包括:RAID模块210、SAS驱动模块220、FPGA模块230以及SAS协议模块240。
其中,RAID模块210,用于接收包含用户读写请求参数的BIO请求;
以及用于根据BIO请求中的用户读写请求参数构造读写控制命令,并将构造出的读写控制命令发送至FPGA模块230;
SAS驱动模块220,用于将接收到的RAID模块210构造出的读写控制命令发送至FPGA模块230;
FPGA模块230,用于接收并保存上述读写控制命令,并将上述读写控制命令发送至SAS协议模块240;
用于判断是否接收到SAS协议模块240返回的对应上述读写控制命令的重传命令;
以及用于在接收到上述重传命令后,基于上述重传命令和所保存的读写控制命令构造待重传的读写控制命令,并将构造出的待重传的读写控制命令发送至SAS协议模块240;
SAS协议模块240,用于根据FPGA模块230发送的读写控制命令对RAID实施读写操作;
以及用于在根据接收到的读写控制命令对RAID实施读写操作失败时,向FPGA模块230返回对应上述读写控制命令的重传命令;
其中,RAID是指磁盘阵列、BIO请求是指块输入输出请求、FPGA是指现场可编程门阵列、SAS是指串行连接的小型计算机系统接口;
其中,RAID模块位于块IO子系统;SAS驱动模块、FPGA模块、SAS协议模块位于SAS子系统。
在本实施例的第一种实现方式中,上述用户读写请求参数可以包括:
待读写的磁盘的标识、读操作/写操作、以及待读写的块的地址,其中,上述块位于每一磁盘中,为构成RAID的最小存储单元。
在本实施例的第二种实现方式中,上述RAID模块210,
还用于判断是否接收到针对SAS协议模块240所实施的RAID读写操作而返回的操作结果;
以及在接收到所返回的操作结果后,将所返回的操作结果反馈给用户,以使用户获悉上述操作结果。
在本实施例的第三种实现方式中,当对RAID实施读操作时,上述操作结果为读操作失败消息或从RAID所读取的数据;
当对RAID实施写操作时,上述操作结果为写操作失败消息或写操作成功消息。
从以上装置实施例可以看出,通过使用RAID模块替代SCSI子系统来完成读写控制命令的构造,并将基于重传命令对读写控制命令进行再构造的任务,从SCSI子系统转移至SAS子系统内新配置的FPGA模块来完成,本申请方法不仅省去了现用技术中复杂SCSI子系统参与用户读写请求处理的环节,而且实现了基于SAS子系统内部的错误状态下读写控制命令的重传机制,从而大幅提升了计算机对每一次RAID读写操作的实现速度。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (8)

1.一种读写请求处理方法,其特征在于,所述方法涉及块IO子系统和SAS子系统,具体涉及所述块IO子系统中的RAID模块、所述SAS子系统中的SAS驱动模块、FPGA模块以及SAS协议模块,其中,IO是指输入输出、SAS是指串行连接的小型计算机系统接口、RAID是指磁盘阵列、FPGA是指现场可编程门阵列,所述方法包括:
RAID模块接收包含用户读写请求参数的BIO请求,所述BIO请求是指块输入输出请求;
根据BIO请求中的用户读写请求参数构造读写控制命令,并将构造出的读写控制命令通过所述SAS驱动模块发送至FPGA模块;
FPGA模块接收并保存所述读写控制命令,并将所述读写控制命令发送至SAS协议模块,以使所述SAS协议模块根据所述读写控制命令对RAID实施读写操作;
判断是否接收到SAS协议模块返回的对应所述读写控制命令的重传命令;
如果是,则基于所述重传命令和所保存的读写控制命令构造待重传的读写控制命令,并将构造出的待重传的读写控制命令发送至SAS协议模块,以使所述SAS协议模块根据该读写控制命令对RAID实施读写操作。
2.根据权利要求1所述的方法,其特征在于,所述用户读写请求参数包括:
待读写的磁盘的标识、读操作/写操作、以及待读写的块的地址,其中,所述块位于每一磁盘中,为构成RAID的最小存储单元。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
RAID模块判断是否接收到针对SAS协议模块所实施的RAID读写操作而返回的操作结果;
如果是,则将所返回的操作结果反馈给用户,以使用户获悉所述操作结果。
4.根据权利要求3所述的方法,其特征在于,
当对RAID实施读操作时,所述操作结果为读操作失败消息或从RAID所读取的数据;
当对RAID实施写操作时,所述操作结果为写操作失败消息或写操作成功消息。
5.一种读写请求处理装置,其特征在于,所述装置包括:
RAID模块,用于接收包含用户读写请求参数的BIO请求;
以及用于根据BIO请求中的用户读写请求参数构造读写控制命令,并将构造出的读写控制命令通过SAS驱动模块发送至FPGA模块;
SAS驱动模块,用于将接收到的RAID模块构造出的读写控制命令发送至FPGA模块;
FPGA模块,用于接收并保存所述读写控制命令,并将所述读写控制命令发送至SAS协议模块;
用于判断是否接收到SAS协议模块返回的对应所述读写控制命令的重传命令;
以及用于在接收到所述重传命令后,基于所述重传命令和所保存的读写控制命令构造待重传的读写控制命令,并将构造出的待重传的读写控制命令发送至SAS协议模块;
SAS协议模块,用于根据所述FPGA模块发送的读写控制命令对RAID实施读写操作;
以及用于在根据接收到的读写控制命令对RAID实施读写操作失败时,向所述FPGA模块返回对应所述读写控制命令的重传命令;
其中,RAID是指磁盘阵列、BIO请求是指块输入输出请求、FPGA是指现场可编程门阵列、SAS是指串行连接的小型计算机系统接口;
其中,RAID模块位于块IO子系统;SAS驱动模块、FPGA模块、SAS协议模块位于SAS子系统。
6.根据权利要求5所述的装置,其特征在于,所述用户读写请求参数包括:
待读写的磁盘的标识、读操作/写操作、以及待读写的块的地址,其中,所述块位于每一磁盘中,为构成RAID的最小存储单元。
7.根据权利要求5所述的装置,其特征在于,所述RAID模块,
还用于判断是否接收到针对SAS协议模块所实施的RAID读写操作而返回的操作结果;
以及在接收到所返回的操作结果后,将所返回的操作结果反馈给用户,以使用户获悉所述操作结果。
8.根据权利要求7所述的装置,其特征在于,
当对RAID实施读操作时,所述操作结果为读操作失败消息或从RAID所读取的数据;
当对RAID实施写操作时,所述操作结果为写操作失败消息或写操作成功消息。
CN201710117622.6A 2017-03-01 2017-03-01 一种读写请求的处理方法及装置 Active CN106990916B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710117622.6A CN106990916B (zh) 2017-03-01 2017-03-01 一种读写请求的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710117622.6A CN106990916B (zh) 2017-03-01 2017-03-01 一种读写请求的处理方法及装置

Publications (2)

Publication Number Publication Date
CN106990916A CN106990916A (zh) 2017-07-28
CN106990916B true CN106990916B (zh) 2020-04-07

Family

ID=59412651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710117622.6A Active CN106990916B (zh) 2017-03-01 2017-03-01 一种读写请求的处理方法及装置

Country Status (1)

Country Link
CN (1) CN106990916B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579936A (zh) * 2017-09-11 2018-01-12 北京腾凌科技有限公司 报文传输方法、控制器及存储系统
CN111241016B (zh) * 2019-12-31 2021-06-25 杭州华澜微电子股份有限公司 一种接口转换装置
CN116700633B (zh) * 2023-08-08 2023-11-03 成都领目科技有限公司 一种raid阵列硬盘的io延时监测方法、装置及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101208677A (zh) * 2005-06-30 2008-06-25 英特尔公司 自动串行协议目标端口传输层重试机制
CN101411124A (zh) * 2006-02-14 2009-04-15 菲尼萨公司 内嵌设备中的诊断功能
CN103530257A (zh) * 2013-10-18 2014-01-22 浪潮电子信息产业股份有限公司 一种动态自适应传输路径优化sas信号质量的方法
CN104965677A (zh) * 2015-06-26 2015-10-07 北京百度网讯科技有限公司 存储系统
CN105138469A (zh) * 2015-08-28 2015-12-09 北京腾凌科技有限公司 一种数据读写方法以及主板
CN105183374A (zh) * 2015-08-28 2015-12-23 北京腾凌科技有限公司 一种数据读写方法以及主板

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101208677A (zh) * 2005-06-30 2008-06-25 英特尔公司 自动串行协议目标端口传输层重试机制
CN101411124A (zh) * 2006-02-14 2009-04-15 菲尼萨公司 内嵌设备中的诊断功能
CN103530257A (zh) * 2013-10-18 2014-01-22 浪潮电子信息产业股份有限公司 一种动态自适应传输路径优化sas信号质量的方法
CN104965677A (zh) * 2015-06-26 2015-10-07 北京百度网讯科技有限公司 存储系统
CN105138469A (zh) * 2015-08-28 2015-12-09 北京腾凌科技有限公司 一种数据读写方法以及主板
CN105183374A (zh) * 2015-08-28 2015-12-23 北京腾凌科技有限公司 一种数据读写方法以及主板

Also Published As

Publication number Publication date
CN106990916A (zh) 2017-07-28

Similar Documents

Publication Publication Date Title
CN103136074B (zh) 多个磁盘阵列系统的数据储存方法及数据储存系统
US8838892B2 (en) Data storage method and storage device
US7558915B2 (en) System and method for updating the firmware of a device in a storage network
CN102929748B (zh) 数据备份方法及装置
US7739462B2 (en) Policy based data shredding for storage controller
US20070250302A1 (en) Simulated storage area network
CN101243396B (zh) 用于在虚拟化环境中支持通用串行总线装置的方法和设备
JP5263902B2 (ja) ストレージ・コントローラと複製エンジンとの間で書き込みを分割する方法、システムおよびコンピュータ・プログラム
CN106990916B (zh) 一种读写请求的处理方法及装置
US20040153833A1 (en) Fault tracing in systems with virtualization layers
CN107111531A (zh) 使用分配图的数据恢复
US20070294476A1 (en) Method For Representing Foreign RAID Configurations
KR20130061050A (ko) 스토리지 장치, 제어 장치 및 기록 매체
JP2013117922A (ja) ディスクシステム、データ保持装置、及びディスクデバイス
CN109558260A (zh) Kubernetes故障排除系统、方法、设备及介质
EP3361371A1 (en) Thin import for a data storage system
CN116501259A (zh) 磁盘组双活同步方法、装置、计算机设备及存储介质
CN116301596A (zh) 一种软件raid构建方法、装置、设备及存储介质
US9372633B2 (en) Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size
US9588691B2 (en) Dynamically managing control information in a storage device
US20060129781A1 (en) Offline configuration simulator
CN109150986A (zh) 存储双活模式下数据的访问方法、装置及存储介质
US20060085425A1 (en) Cluster spanning command routing
US10089202B1 (en) Providing data high availability to a set of host computers via automatic failover
KR102422189B1 (ko) 인쇄 시스템의 에러 발생시 인쇄작업을 관리하는 방법 및 이를 수행하기 위한 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant