CN106354435B - Raid初始化的方法及装置 - Google Patents

Raid初始化的方法及装置 Download PDF

Info

Publication number
CN106354435B
CN106354435B CN201610798385.XA CN201610798385A CN106354435B CN 106354435 B CN106354435 B CN 106354435B CN 201610798385 A CN201610798385 A CN 201610798385A CN 106354435 B CN106354435 B CN 106354435B
Authority
CN
China
Prior art keywords
initialization
several target
cpu
disk
target disks
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
CN201610798385.XA
Other languages
English (en)
Other versions
CN106354435A (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 CN201610798385.XA priority Critical patent/CN106354435B/zh
Publication of CN106354435A publication Critical patent/CN106354435A/zh
Application granted granted Critical
Publication of CN106354435B publication Critical patent/CN106354435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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

Abstract

本发明是关于磁盘阵列RAID初始化的方法及装置,所述方法包括:所述CPU接收配置客户端发送的RAID创建命令;所述CPU基于所述创建命令中若干目标磁盘的标识信息确定所述若干目标磁盘,并基于所述若干目标磁盘的硬件信息为所述若干目标磁盘分别构造对应的初始化命令;所述CPU将所述初始化命令下发至所述基于FPGA的初始化模块;所述基于FPGA的初始化模块接收所述CPU下发的所述初始化命令,并基于所述初始化命令构造对应的初始帧;所述基于FPGA的初始化模块将所述初始帧分别发送至所述若干目标磁盘,以使所述若干目标磁盘基于所述初始帧完成初始化。在本发明中,基于FPGA的初始化模块可以直接与磁盘交互,从而可以降低大部分操作系统内的IO操作,减轻操作系统的负担。

Description

RAID初始化的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种RAID(Redundant Arrays ofIndependent Disks,磁盘阵列)初始化的方法及装置。
背景技术
为了保证数据的可用性以及后续应用访问的性能,RAID在使用之前通常需要进行初始化。
以软件RAID为例,在相关技术中,软件RAID在初始化时可以根据配置客户端下发的配置命令构造数据,并根据构造的数据查找目标硬盘,然后,软件RAID可以将目标硬盘除超级块和位图之外的所有数据清零以完成初始化。
在相关技术中,软件RAID发出的数据必须要经过操作系统才能传递到硬盘,在数据发出之后,软件RAID需要等待硬盘回应,并在接收到硬盘回应的数据后对回应数据进行处理。大部分情况下硬盘会返回操作成功的命令,但是接收回应并分析以便进行错误处理这一步骤并不能省略。因此,在软件RAID初始化的过程中,操作系统需要占用较多的CPU资源和内存资源。故,操作系统在上述过程中的负担较重。
发明内容
有鉴于此,本发明提供一种RAID初始化的方法,应用于存储设备,所述存储设备的主板包括CPU以及基于FPGA的初始化模块;所述基于FPGA的初始化模块与所述CPU以及所述存储设备的若干物理磁盘分别相连接;所述方法包括:
步骤A、所述CPU接收配置客户端发送的RAID创建命令;所述RAID创建命令携带用于创建RAID的若干目标磁盘的标识信息;
步骤B、所述CPU基于所述若干目标磁盘的标识信息确定所述若干目标磁盘,并基于所述若干目标磁盘的硬件信息为所述若干目标磁盘分别构造对应的初始化命令;其中,所述若干目标磁盘的硬件信息包括所述若干目标磁盘的物理地址以及磁盘容量;
步骤C、所述CPU将所述初始化命令下发至所述基于FPGA的初始化模块;
步骤D、所述基于FPGA的初始化模块接收所述CPU下发的所述初始化命令,并基于所述初始化命令构造对应的初始帧;
步骤E、所述基于FPGA的初始化模块将所述初始帧分别发送至所述若干目标磁盘,以使所述若干目标磁盘基于所述初始帧完成初始化。
可选的,所述步骤B具体包括:
分别判断所述若干目标磁盘是否支持WRITE SAME命令;
在完成判断后,针对所述若干目标磁盘中支持WRITE SAME命令的磁盘使用WRITESAME命令构造对应的初始化命令;以及针对所述若干目标磁盘中不支持WRITE SAME命令的磁盘使用WRITE命令构造对应的初始化命令。
可选的,所述目标磁盘包括若干块存储空间,并基于所述若干块存储空间完成初始化;所述步骤E进一步包括:
接收所述目标磁盘返回的针对当前存储空间的执行结果;
基于所述执行结果判断所述存储空间是否正常初始化;
当所述存储空间未正常初始化时,向所述目标磁盘重新发送所述初始帧或发送重新构造的初始帧;
当所述存储空间正常初始化时,基于预设的偏移量修改对应的初始帧的磁盘地址,并将修改后的初始帧发送至对应的目标磁盘。
可选的,所述步骤E进一步包括:
在所述若干目标磁盘成功完成初始化后,生成并向所述CPU发送完成指令,以使所述CPU将所述完成指令转发至所述配置客户端,完成所述RAID的初始化。
本发明同时提供一种磁盘阵列RAID初始化的装置,应用于存储设备,所述存储设备的主板包括CPU以及基于FPGA的初始化模块;所述基于FPGA的初始化模块与所述CPU以及所述存储设备的若干物理磁盘分别相连接;所述装置包括:
所述CPU模块,用于接收配置客户端发送的RAID创建命令;所述RAID创建命令携带用于创建RAID的若干目标磁盘的标识信息;
所述CPU模块进一步基于所述若干目标磁盘的标识信息确定所述若干目标磁盘,并基于所述若干目标磁盘的硬件信息为所述若干目标磁盘分别构造对应的初始化命令;其中,所述若干目标磁盘的硬件信息包括所述若干目标磁盘的物理地址以及磁盘容量;
所述CPU模块进一步将所述初始化命令下发至所述基于FPGA的初始化模块;
所述基于FPGA的初始化模块,用于接收所述CPU下发的所述初始化命令,并基于所述初始化命令构造对应的初始帧;
所述基于FPGA的初始化模块进一步将所述初始帧分别发送至所述若干目标磁盘,以使所述若干目标磁盘基于所述初始帧完成初始化。
可选的,所述CPU模块进一步用于:
分别判断所述若干目标磁盘是否支持WRITE SAME命令;
在完成判断后,针对所述若干目标磁盘中支持WRITE SAME命令的磁盘使用WRITESAME命令构造对应的初始化命令;以及针对所述若干目标磁盘中不支持WRITE SAME命令的磁盘使用WRITE命令构造对应的初始化命令。
可选的,所述目标磁盘包括若干块存储空间,并基于所述若干块存储空间完成初始化;所述基于FPGA的初始化模块进一步用于:
接收所述目标磁盘返回的针对当前存储空间的执行结果;
基于所述执行结果判断所述存储空间是否正常初始化;
当所述存储空间未正常初始化时,向所述目标磁盘重新发送所述初始帧或发送重新构造的初始帧;
当所述存储空间正常初始化时,基于预设的偏移量修改对应的初始帧的磁盘地址,并将修改后的初始帧发送至对应的目标磁盘。
可选的,所述基于FPGA的初始化模块进一步用于:
在所述若干目标磁盘成功完成初始化后,生成并向所述CPU发送完成指令,以使所述CPU将所述完成指令转发至所述配置客户端,完成所述RAID的初始化。
在本发明中,存储设备上的CPU可以接收配置客户端发送的RAID创建命令,并基于该创建命令中的若干目标磁盘的标识信息确定若干目标磁盘,在确定上述若干目标磁盘后,CPU可以基于该若干目标磁盘的硬件信息为该若干目标磁盘分别构造对应的初始化命令,然后,CPU可以将上述初始化命令下发至基于FPGA的初始化模块,基于FPGA的初始化模块在接收到上述初始化命令后,可以生成对应的初始帧,并将对应的初始帧分别发送至上述若干目标磁盘,以使上述若干目标磁盘可以基于对应的初始帧完成初始化。
在本发明中,基于FPGA的初始化模块可以直接与磁盘交互,从而可以降低大部分操作系统内的IO操作,减轻操作系统的负担,同时,由于基于FPGA的初始化模块承载了大部分的IO操作以及磁盘响应的处理,节省了传输到操作系统的时间,因此,本发明同时可以提高软件RAID的初始化速度。
附图说明
图1是本发明一实施例示出的一种RAID初始化的方法的流程图;
图2是本发明RAID初始化的装置所在设备的一种硬件结构图;
图3是本发明RAID初始化的装置的一个实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参见图1,为本发明一实施例示出的一种RAID初始化的方法的流程图。该实施例应用于存储设备,包括以下步骤:
步骤101:所述CPU接收配置客户端发送的RAID创建命令;所述RAID创建命令携带用于创建RAID的若干目标磁盘的标识信息。
在本发明中,上述存储设备的主板可以包括CPU以及基于FPGA的初始化模块,其中,基于FPGA的初始化模块可以与上述CPU以及上述存储设备的若干物理磁盘分别相连接。
在本发明中,上述CPU可以接收配置客户端发送的RAID创建命令,其中,该RAID创建命令可以携带用于创建RAID的若干目标磁盘的标识信息。
具体地,上述若干目标磁盘可以为构成RAID的若干物理磁盘,上述若干目标磁盘的标识信息可以为该若干物理磁盘的基本信息,例如,磁盘容量、条带规格等。
在示出的一个实施例中,上述若干目标磁盘的标识信息可以如表1所示:
Name(名称) RAID_Volume1
RAID Level(RAID级别) RAID0(Stripe)
Stripe Size(条带规格) 128KB
Capacity(容量) 149.0GB
表1
在一个实施例中,用户可以通过配置客户端输入RAID创建命令,其中,该RAID创建命令可以包括RAID创建参数,该RAID创建参数可以与上述若干物理磁盘的基本信息相对应,在该RAID创建命令输入完成后,配置客户端可以经操作系统把该RAID创建命令发送至CPU。需要说明的是,由于RAID创建命令通常为一个字节较短的数据,因此,在配置客户端经操作系统将上述RAID创建命令发送至CPU的过程中,占用的操作系统的资源较低。
步骤102:所述CPU基于所述若干目标磁盘的标识信息确定所述若干目标磁盘,并基于所述若干目标磁盘的硬件信息为所述若干目标磁盘分别构造对应的初始化命令;其中,所述若干目标磁盘的硬件信息包括所述若干目标磁盘的物理地址以及磁盘容量。
在本发明中,上述CPU在接收到配置客户端下发的RAID创建命令后,可以基于该命令中的若干目标磁盘的标识信息确定若干目标磁盘。
在一个实施例中,上述CPU在接收到配置客户端下发的RAID创建命令后,可以根据该命令中若干目标磁盘的标识信息从本地预设的对应关系中确定对应的目标磁盘,其中,本地预设的对应关系可以包括上述存储设备中的磁盘的ID与磁盘的标识信息的对应关系。
在示出的一个实施例中,上述预设的对应关系的部分表项可以如表2所示:
ID Size(规格)
5 74.5GB
6 30.0GB
7 74.5GB
8 80.5GB
表2
由表1和表2可知,当上述CPU根据如表1所示的目标磁盘的标识信息从如表2所示的对应关系中确定目标磁盘时,可以确定磁盘5和磁盘7为目标磁盘。
上述CPU在确定若干目标磁盘后,可以基于该若干目标磁盘从预存的磁盘硬件信息表中获取该若干目标磁盘的硬件信息。其中,该硬件信息可以包括该若干目标磁盘的物理地址以及磁盘容量。
需要说明的是,上述磁盘硬件信息表可以包括上述存储设备中的磁盘的ID与磁盘的标识信息的对应关系。
上述CPU在获取到该若干目标磁盘的硬件信息后,可以基于该硬件信息为该若干目标磁盘分别构造对应的初始化命令。
在本发明中,上述CPU在为该若干目标磁盘分别构造对应的初始化命令的过程中,可以先分别判断该若干目标磁盘是否支持WRITE SAME命令。具体地,上述CPU可以针对该若干目标磁盘分别构造若干对应的WRITE SAME命令,然后,可以将该若干WRITE SAME命令分别发送至对应的目标磁盘。该若干目标磁盘接收到对应的WRITE SAME命令后可以执行该命令,并将执行结果返回至上述CPU,上述CPU接收到该若干目标磁盘返回的针对WRITE SAME命令的执行结果后,可以根据该执行结果判断对应的目标磁盘是否支持WRITE SAME命令。
在示出的一个实施例中,可以假设上述CPU针对表2所示的磁盘5以及磁盘7分别构造并发送了对应的WRITE SAME命令,假设磁盘5在接收并执行对应的WRITE SAME命令后,向上述CPU返回的执行结果为done。则上述CPU可以在接收到该执行结果后判断磁盘5为支持WRITE SAME命令的磁盘;类似地,可以假设磁盘7在接收并执行对应的WRITE SAME命令后,向上述CPU返回的执行结果为fail。则上述CPU可以在接收到该执行结果后判断磁盘7为不支持WRITESAME命令的磁盘。
需要说明的是,上述的执行结果仅为示例使用,在实际应用中,上述执行结果可以包括success、finish、error等,本发明对此不做限制。
在完成上述判断后,如果该若干目标磁盘中存在支持WRITE SAME命令的磁盘,则上述CPU可以针对该磁盘使用WRITE SAME命令构造对应的初始化命令;如果该若干目标磁盘中存在不支持WRITE SAME命令的磁盘,则上述CPU可以针对该磁盘使用WRITE命令构造对应的初始化命令。
在示出的一个实施例中,可以假设上述磁盘5支持WRITE SAME命令,则上述CPU可以使用WRITE SAME命令构造与磁盘5对应的初始化命令;类似地,可以假设上述磁盘7不支持WRITE SAME命令,则上述CPU可以使用WRITE命令构造与磁盘7对应的初始化命令。
由于使用WRITE SAME命令以及WRITE命令基于磁盘的硬件信息构造初始化命令的技术为现有技术,故本发明在此不再赘述。
步骤103:所述CPU将所述初始化命令下发至所述基于FPGA的初始化模块。
步骤104:所述基于FPGA的初始化模块接收所述CPU下发的所述初始化命令,并基于所述初始化命令构造对应的初始帧。
步骤105:所述基于FPGA的初始化模块将所述初始帧分别发送至所述若干目标磁盘,以使所述若干目标磁盘基于所述初始帧完成初始化。
在本发明中,在构造了对应的初始化命令后,上述CPU可以通过PCIE总线将上述初始化命令发送至基于FPGA的初始化模块。
在本发明中,基于FPGA的初始化模块接收到上述CPU下发的初始化命令后,可以基于该初始化命令构造对应的初始帧。
然后,基于FPGA的初始化模块可以将构造的初始帧分别发送至若干目标磁盘,以使该若干目标磁盘可以基于上述初始帧完成初始化。
在本发明中,上述若干目标磁盘可以包括若干块存储空间,并可以基于该若干块存储空间完成初始化。其中,该若干块存储空间可以为连续的存储空间。在接收到对应的初始帧后,上述若干目标磁盘可以分别基于对应的初始帧进行初始化。在初始化的过程中,该若干目标磁盘可以在完成每块连续的存储空间的初始化后,向基于FPGA的初始化模块返回执行结果。基于FPGA的初始化模块在接收到执行结果后,可以基于该执行结果判断对应的存储空间是否正常初始化,当该对应的存储空间未正常初始化时,基于FPGA的初始化模块可以向对应的目标磁盘重新发送初始帧或发送基于该执行结果重新构造的初始帧,以使该对应的存储空间基于接收到的初始帧重新初始化;当该对应的存储空间正常初始化时,基于FPGA的初始化模块可以基于预设的偏移量修改对应的初始帧的磁盘地址,并将修改后的初始帧发送至对应的目标磁盘,以使对应的目标磁盘的下一个存储空间可以基于该修改后的初始帧完成初始化。其中,上述预设的偏移量可以由用户通过上述配置客户端来设置,也可以为上述配置客户端下发至上述基于FPGA的初始化模块的默认值。当然,当基于FPGA的初始化模块基于接收到的执行结果判断若干个存储空间正常初始化时,可以同时修改该若干个对应的初始帧的磁盘地址,并将修改后的初始帧分别发送至对应的目标磁盘。
需要说明的是,基于FPGA的初始化模块接收到上述执行结果后,可以基于上述执行结果生成初始化进度信息,并将该初始化进度信息经上述CPU发送至上述配置客户端,以使用户可以基于上述配置客户端查看当前的RAID初始化进度。
在本发明中,当上述若干目标磁盘均成功完成初始化时,基于FPGA的初始化模块可以生成完成指令,并将该完成指令发送至上述CPU,上述CPU在接收到该完成指令后,可以将该完成指令转发至上述配置客户端,以完成RAID的初始化。
在本发明中,存储设备上的CPU可以接收配置客户端发送的RAID创建命令,并基于该创建命令中的若干目标磁盘的标识信息确定若干目标磁盘,在确定上述若干目标磁盘后,CPU可以基于该若干目标磁盘的硬件信息为该若干目标磁盘分别构造对应的初始化命令,然后,CPU可以将上述初始化命令下发至基于FPGA的初始化模块,基于FPGA的初始化模块在接收到上述初始化命令后,可以生成对应的初始帧,并将对应的初始帧分别发送至上述若干目标磁盘,以使上述若干目标磁盘可以基于对应的初始帧完成初始化。
在本发明中,基于FPGA的初始化模块可以直接与磁盘交互,从而可以降低大部分操作系统内的IO操作,减轻操作系统的负担,同时,由于基于FPGA的初始化模块承载了大部分的IO操作以及磁盘响应的处理,节省了传输到操作系统的时间,因此,本发明同时可以提高软件RAID的初始化速度。
与前述RAID初始化的方法的实施例相对应,本发明还提供了RAID初始化的装置的实施例。
本发明RAID初始化的装置的实施例可以应用在存储服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本发明RAID初始化的装置所在设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。
请参考图3,是本发明RAID初始化的装置的一个实施例框图。
该装置可以包括:CPU模块310以及基于FPGA的初始化模块320。
所述CPU模块310,用于接收配置客户端发送的RAID创建命令;所述RAID创建命令携带用于创建RAID的若干目标磁盘的标识信息;
所述CPU模块310进一步基于所述若干目标磁盘的标识信息确定所述若干目标磁盘,并基于所述若干目标磁盘的硬件信息为所述若干目标磁盘分别构造对应的初始化命令;其中,所述若干目标磁盘的硬件信息包括所述若干目标磁盘的物理地址以及磁盘容量;
所述CPU模块310进一步将所述初始化命令下发至所述基于FPGA的初始化模块;
所述基于FPGA的初始化模块320,用于接收所述CPU下发的所述初始化命令,并基于所述初始化命令构造对应的初始帧;
所述基于FPGA的初始化模块320进一步将所述初始帧分别发送至所述若干目标磁盘,以使所述若干目标磁盘基于所述初始帧完成初始化。
在一个可选的实施方式中,所述CPU模块310可以进一步用于:
分别判断所述若干目标磁盘是否支持WRITE SAME命令;
在完成判断后,针对所述若干目标磁盘中支持WRITE SAME命令的磁盘使用WRITESAME命令构造对应的初始化命令;以及针对所述若干目标磁盘中不支持WRITE SAME命令的磁盘使用WRITE命令构造对应的初始化命令。
在另一个可选的实施方式中,所述目标磁盘包括若干块存储空间,并基于所述若干块存储空间完成初始化;所述基于FPGA的初始化模块320可以进一步用于:
接收所述目标磁盘返回的针对当前存储空间的执行结果;
基于所述执行结果判断所述存储空间是否正常初始化;
当所述存储空间未正常初始化时,向所述目标磁盘重新发送所述初始帧或发送重新构造的初始帧;
当所述存储空间正常初始化时,基于预设的偏移量修改对应的初始帧的磁盘地址,并将修改后的初始帧发送至对应的目标磁盘。
在一个可选的实施方式中,所述基于FPGA的初始化模块320可以进一步用于:
在所述若干目标磁盘成功完成初始化后,生成并向所述CPU发送完成指令,以使所述CPU将所述完成指令转发至所述配置客户端,完成所述RAID的初始化。
在本发明中,存储设备上的CPU可以接收配置客户端发送的RAID创建命令,并基于该创建命令中的若干目标磁盘的标识信息确定若干目标磁盘,在确定上述若干目标磁盘后,CPU可以基于该若干目标磁盘的硬件信息为该若干目标磁盘分别构造对应的初始化命令,然后,CPU可以将上述初始化命令下发至基于FPGA的初始化模块,基于FPGA的初始化模块在接收到上述初始化命令后,可以生成对应的初始帧,并将对应的初始帧分别发送至上述若干目标磁盘,以使上述若干目标磁盘可以基于对应的初始帧完成初始化。
在本发明中,基于FPGA的初始化模块可以直接与磁盘交互,从而可以降低大部分操作系统内的IO操作,减轻操作系统的负担,同时,由于基于FPGA的初始化模块承载了大部分的IO操作以及磁盘响应的处理,节省了传输到操作系统的时间,因此,本发明同时可以提高软件RAID的初始化速度。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (8)

1.一种磁盘阵列RAID初始化的方法,应用于存储设备,其特征在于,所述存储设备的主板包括CPU以及基于FPGA的初始化模块;所述基于FPGA的初始化模块与所述CPU以及所述存储设备的若干物理磁盘分别相连接;所述方法包括:
步骤A、所述CPU接收配置客户端发送的RAID创建命令;所述RAID创建命令携带用于创建RAID的若干目标磁盘的标识信息;
步骤B、所述CPU基于所述若干目标磁盘的标识信息确定所述若干目标磁盘,并基于所述若干目标磁盘的硬件信息为所述若干目标磁盘分别构造对应的初始化命令;其中,所述若干目标磁盘的硬件信息包括所述若干目标磁盘的物理地址以及磁盘容量;
步骤C、所述CPU将所述初始化命令下发至所述基于FPGA的初始化模块;
步骤D、所述基于FPGA的初始化模块接收所述CPU下发的所述初始化命令,并基于所述初始化命令构造对应的初始帧;
步骤E、所述基于FPGA的初始化模块将所述初始帧分别发送至所述若干目标磁盘,以使所述若干目标磁盘基于所述初始帧完成初始化。
2.根据权利要求1所述的方法,其特征在于,所述步骤B具体包括:
分别判断所述若干目标磁盘是否支持WRITE SAME命令;
在完成判断后,针对所述若干目标磁盘中支持WRITE SAME命令的磁盘使用WRITE SAME命令构造对应的初始化命令;以及针对所述若干目标磁盘中不支持WRITE SAME命令的磁盘使用WRITE命令构造对应的初始化命令。
3.根据权利要求1所述的方法,其特征在于,所述目标磁盘包括若干块存储空间,并基于所述若干块存储空间完成初始化;所述步骤E进一步包括:
接收所述目标磁盘返回的针对当前存储空间的执行结果;
基于所述执行结果判断所述存储空间是否正常初始化;
当所述存储空间未正常初始化时,向所述目标磁盘重新发送所述初始帧或发送重新构造的初始帧;
当所述存储空间正常初始化时,基于预设的偏移量修改对应的初始帧的磁盘地址,并将修改后的初始帧发送至对应的目标磁盘。
4.根据权利要求1所述的方法,其特征在于,所述步骤E进一步包括:
在所述若干目标磁盘成功完成初始化后,生成并向所述CPU发送完成指令,以使所述CPU将所述完成指令转发至所述配置客户端,完成所述RAID的初始化。
5.一种磁盘阵列RAID初始化的装置,应用于存储设备,其特征在于,所述存储设备的主板包括CPU以及基于FPGA的初始化模块;所述基于FPGA的初始化模块与所述CPU以及所述存储设备的若干物理磁盘分别相连接;所述装置包括:
所述CPU,用于接收配置客户端发送的RAID创建命令;所述RAID创建命令携带用于创建RAID的若干目标磁盘的标识信息;
所述CPU进一步基于所述若干目标磁盘的标识信息确定所述若干目标磁盘,并基于所述若干目标磁盘的硬件信息为所述若干目标磁盘分别构造对应的初始化命令;其中,所述若干目标磁盘的硬件信息包括所述若干目标磁盘的物理地址以及磁盘容量;
所述CPU进一步将所述初始化命令下发至所述基于FPGA的初始化模块;
所述基于FPGA的初始化模块,用于接收所述CPU下发的所述初始化命令,并基于所述初始化命令构造对应的初始帧;
所述基于FPGA的初始化模块进一步将所述初始帧分别发送至所述若干目标磁盘,以使所述若干目标磁盘基于所述初始帧完成初始化。
6.根据权利要求5所述的装置,其特征在于,所述CPU进一步用于:
分别判断所述若干目标磁盘是否支持WRITE SAME命令;
在完成判断后,针对所述若干目标磁盘中支持WRITE SAME命令的磁盘使用WRITE SAME命令构造对应的初始化命令;以及针对所述若干目标磁盘中不支持WRITE SAME命令的磁盘使用WRITE命令构造对应的初始化命令。
7.根据权利要求5所述的装置,其特征在于,所述目标磁盘包括若干块存储空间,并基于所述若干块存储空间完成初始化;所述基于FPGA的初始化模块进一步用于:
接收所述目标磁盘返回的针对当前存储空间的执行结果;
基于所述执行结果判断所述存储空间是否正常初始化;
当所述存储空间未正常初始化时,向所述目标磁盘重新发送所述初始帧或发送重新构造的初始帧;
当所述存储空间正常初始化时,基于预设的偏移量修改对应的初始帧的磁盘地址,并将修改后的初始帧发送至对应的目标磁盘。
8.根据权利要求5所述的装置,其特征在于,所述基于FPGA的初始化模块进一步用于:
在所述若干目标磁盘成功完成初始化后,生成并向所述CPU发送完成指令,以使所述CPU将所述完成指令转发至所述配置客户端,完成所述RAID的初始化。
CN201610798385.XA 2016-08-31 2016-08-31 Raid初始化的方法及装置 Active CN106354435B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610798385.XA CN106354435B (zh) 2016-08-31 2016-08-31 Raid初始化的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610798385.XA CN106354435B (zh) 2016-08-31 2016-08-31 Raid初始化的方法及装置

Publications (2)

Publication Number Publication Date
CN106354435A CN106354435A (zh) 2017-01-25
CN106354435B true CN106354435B (zh) 2019-06-07

Family

ID=57858619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610798385.XA Active CN106354435B (zh) 2016-08-31 2016-08-31 Raid初始化的方法及装置

Country Status (1)

Country Link
CN (1) CN106354435B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122138B (zh) * 2017-04-28 2020-10-20 苏州浪潮智能科技有限公司 一种配置磁盘阵列的设备及方法
CN107562388A (zh) * 2017-10-11 2018-01-09 郑州云海信息技术有限公司 一种raid初始化时的数据读取方法、装置及介质
CN108595269B (zh) * 2018-04-26 2020-10-09 北京腾凌科技有限公司 一种数据处理方法、指令生成装置和数据读写装置
CN109634518A (zh) * 2018-10-29 2019-04-16 成都华为技术有限公司 一种存储资源配置方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101329641A (zh) * 2008-06-11 2008-12-24 华中科技大学 一种磁盘阵列的数据重建方法
CN103218180A (zh) * 2013-05-14 2013-07-24 北京百度网讯科技有限公司 磁盘定位方法和定位装置
CN105630421A (zh) * 2015-12-25 2016-06-01 曙光信息产业(北京)有限公司 磁盘分区格式化的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5160940B2 (ja) * 2008-04-16 2013-03-13 株式会社 沖情報システムズ ハードディスク装置
US20130067156A1 (en) * 2011-09-12 2013-03-14 Byungcheol Cho Double data rate controller having shared address and separate data error correction
KR101856506B1 (ko) * 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101329641A (zh) * 2008-06-11 2008-12-24 华中科技大学 一种磁盘阵列的数据重建方法
CN103218180A (zh) * 2013-05-14 2013-07-24 北京百度网讯科技有限公司 磁盘定位方法和定位装置
CN105630421A (zh) * 2015-12-25 2016-06-01 曙光信息产业(北京)有限公司 磁盘分区格式化的方法及装置

Also Published As

Publication number Publication date
CN106354435A (zh) 2017-01-25

Similar Documents

Publication Publication Date Title
CN106354435B (zh) Raid初始化的方法及装置
US20200028894A1 (en) Rebalancing storage i/o workloads by storage controller selection and redirection
US11550819B2 (en) Synchronization cache seeding
US8849776B2 (en) Method and system for resolving data inconsistency
US20170337097A1 (en) Network-aware storage repairs
US8032702B2 (en) Disk storage management of a tape library with data backup and recovery
KR20200078382A (ko) 개시자 모드를 갖는 솔리드-스테이트 드라이브
CN110673941B (zh) 多机房中微服务的迁移方法、电子设备及存储介质
US20170199694A1 (en) Systems and methods for dynamic storage allocation among storage servers
US9164856B2 (en) Persistent messaging mechanism
CN107506145B (zh) 一种物理存储调度方法及云主机创建方法
US9854037B2 (en) Identifying workload and sizing of buffers for the purpose of volume replication
US10552306B2 (en) Automated test generation for multi-interface and multi-platform enterprise virtualization management environment
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
CN107729536A (zh) 一种数据存储方法和装置
US20170075776A1 (en) Methods for preserving state across a failure and devices thereof
US9325576B2 (en) Dynamic server to server configuration and initialization
CN109684150A (zh) 存储颗粒控制器的性能测试系统、测试方法及仿真平台
US20190034089A1 (en) Storage mirroring decision by capabilty sets
US20170235672A1 (en) Reclaiming free space in a storage system
CN113885797A (zh) 一种数据存储方法、装置、设备及存储介质
CN108829340B (zh) 存储处理方法、装置、存储介质及处理器
CN110990329B (zh) 一种联邦计算高可用方法、设备及介质
CN103713952A (zh) 一种基于ufs的虚拟磁盘分布式存储方法
CN104750547B (zh) 虚拟机的输入输出io请求处理方法及装置

Legal Events

Date Code Title Description
C06 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