一种处理磁盘漫游的方法、装置和设备与流程

文档序号:14897308发布日期:2018-07-08 08:45阅读:228来源:国知局
本发明涉及存储领域,尤其涉及一种非易失性高速传输总线存储设备中处理磁盘漫游的方法、装置和设备。
背景技术
:随着冗余磁盘阵列(redundantarrayofindependentdisk,raid)广泛应用在服务器中,常见的raid控制器可以管理多个raid组,每个raid组中包括多个磁盘,raid控制器创建raid时会利用元数据信息记录该raid组中成员磁盘的盘符顺序,以此进行数据的读写,当维护人员将磁盘取出后插入不同的槽位,或者在开机状态下进行磁盘的插拔时,raid组中盘符顺序发生变化,盘符顺序与创建riad组时不一致的现象称为磁盘漫游。此时,raid控制器中出现磁盘漫游,raid组无法识别该raid组中成员磁盘,导致该riad组无法正常工作,最终造成用户无法访问磁盘。现有技术中,为解决磁盘漫游问题,通过记录磁盘簇(justabunchofdisk)号、槽位号、串行连接小型计算机系统接口(serialattachedscsi,sas)地址、逻辑单元、盘符等关系,建立磁盘、盘符、槽位号、jbod号、sas地址和逻辑单元之间的映射关系,当发生磁盘漫游时,根据映射关系重建存储设备中的raid关系,以此解决基于sas盘和串行高级技术附件(serialadvancedtechnologyattachment,sata)盘的raid控制器中磁盘漫游问题。但是,与sas盘和sata盘只能与raid控制器中某个端口相连不同,在非易失性高速传输总线(non-volatilememoryexpress,nvme)存储设备中,由于磁盘和raid控制器之间使用快捷外围部件互连标准(peripheralcomponentinterconnectexpress,pcie)协议进行数据传输,每个磁盘的盘符由存储设备的操作系统根据其在pcie中的总线号、设备号和功能号确定,当存储设备中出现磁盘拔插或raid卡更换时,raid控制器或磁盘在pcie中的位置也可能发生相应的变更,无法利用现有技术的方法解决nvme存储设备中raid控制器识别磁盘漫游的问题。因此,在现有技术的nvme存储设备中,raid控制器无法解决磁盘漫游问题,导致影响整个存储系统的可靠性和用户访问。技术实现要素:本发明实施例提供了一种处理磁盘漫游的方法、装置和设备,可以解决现有技术的方法无法在非易失性高速传输总线(non-volatilememoryexpress,nvme)存储设备中处理磁盘漫游的问题,以此提高整个存储系统的可靠性。第一方面,提供一种处理磁盘漫游的方法,该方法应用于nvme存储设备中,nvme存储设备中包括冗余磁盘阵列(redundantarrayofindependentdisk,raid)控制器和多个固态磁盘ssd,raid控制按照nvme接口标准管理ssd,raid控制器和ssd通过pcie总线相通信,raid控制器和每个ssd在pcie总线中均会有一个总线号(bus)、设备号(device)和功能号(function)的标识,可以简称为bdf。每个ssd在出厂时会带有一个全球唯一标识(globaluniqueidentification,guid),该guid为ssd生产时由厂商设置,不同厂商按照不同策略对ssd进行标识,该标识为全球唯一标识。raid控制器中记录有包含每个ssd的guid和其总线号、设备号、功能号的对应关系的第一映射表,当存储设备中出现插拔磁盘时,raid控制器会获取存储设备中所有ssd的guid和bdf,并根据存储设备重新上电时获取的所有ssd的guid和bdf更新第一映射表,再根据更新后的第一映射表恢复存储设备的raid关系,以此解决现有技术中nvme存储设备无法识别漫游磁盘的问题,提高nvme存储设备的可靠性。在一种可能的实现方式中,raid控制器可以按照如下方法建立第一映射表:raid控制器记录该raid控制器在pcie总线中的总线号,然后扫描raid控制器的总线号起始的所有设备的总线号、设备号和功能号,当存在ssd时,记录每个ssd的总线号、设备号和功能号;再利用ssd的总线号减去raid控制器的总线号获得ssd的相对总线号,建立ssd的guid、相对总线号、设备号、功能号的对应关系的第一映射表。在另一种可能的实现方式中,raid控制器更新第一映射表的过程包括:raid控制器先根据存储设备重新上电时获取的所有ssd的guid、总线号、设备号、功能号建立第二映射表,第二映射表中包括ssd的guid和相对总线号、设备号、功能号的对应关系;比较第一映射表和第二映射表确定对应关系发生变更的ssd;再根据发生变更的ssd更新第一映射表。其中,更新第一映射表包括以下两种情况:当发生变更的ssd的guid在第一映射表中不存在时,raid控制器在第一映射表中新增发生变更的ssd的guid和相对总线号、设备号及功能号;或者,当发生变更的ssd的guid在第一映射表中存在时,raid控制器更新发生变更的ssd的guid和相对总线号、设备号、及功能号的对应关系。在另一种可能的实现方式中,raid控制器更新第一映射表的过程也可以利用下述方法确定,具体包括:raid控制器扫描所述存储设备重新上电时raid控制器的总线号起始的所有ssd的guid和相对总线号、设备号、及功能号的对应关系;根据第一映射表和在存储设备重新上电时获取的raid控制器的总线号起始的所有ssd的guid和相对总线号、设备号、及功能号的对应关系确定对应关系发生变更的ssd。其中,在第一映射表中更新发生变更的ssd的过程包括以下两种情况:当发生变更的ssd的guid在第一映射表中不存在时,raid控制器在第一映射表中新增发生变更的ssd的guid和相对总线号、设备号及功能号;或者当发生变更的ssd的guid在第一映射表中存在时,raid控制器更新发生变更的ssd的guid和相对总线号、设备号、及功能号的对应关系。在另一种可能的实现方式中,raid控制器根据更新后的第一映射表恢复所述存储设备中raid关系的方法包括:raid控制创建raid关系时,会利用元数据记录每个raid组的成员磁盘信息,其中,成员磁盘信息包括成员磁盘的盘符。在nvme存储设备中,每个磁盘的盘符由操作系统根据其bdf分配。当nvme存储设备中出现磁盘插拔且重新上电时,操作系统会根据当前时刻磁盘的bdf信息重新分配盘符,磁盘槽位的变更会导致其盘符的变更,例如,ssd1在创建raid组时对应的bdf为1:0:0,其盘符为sda,当该磁盘被拔出又重新插入bdf为2:0:0的槽位时,其盘符变更为sdb,此时,ssd1的盘符发生变更,会导致其所在的raid组故障,raid控制器需要根据更新后的第一映射表,并在元数据中将ssd1的盘符更新为sdb,以此保证ssd1所在的raid组能够恢复故障,继续完成应用程序的读写操作指令。值得说明的是,当一个raid组中出现插拔磁盘但未重新插入原磁盘或新磁盘(新磁盘的容量小于原磁盘的容量)时,该raid组中成员磁盘数量或磁盘容量与创建时成员磁盘信息不符,即使raid控制器根据更新后的第一映射表更新raid关系,该raid组由于成员磁盘缺失仍无法正常工作。在另一种可能的实现方式中,raid控制器也可以按照如下方法建立第一映射表:raid控制器记录该raid控制器在pcie总线中的总线号,然后扫描raid控制器的总线号起始的所有设备的总线号、设备号和功能号,当存在ssd时,记录每个ssd的总线号、设备号和功能号;利用ssd的guid、总线号、设备号、功能号的对应关系建立第一映射表。在另一种可能的实现方式中,raid控制器更新第一映射表的过程包括:raid控制器先根据存储设备出现插拔后获取的所有ssd的guid、总线号、设备号、功能号建立第二映射表,第二映射表中包括ssd的guid和其总线号、设备号、功能号的对应关系;比较第一映射表和第二映射表确定对应关系发生变更的ssd;再根据发生变更的ssd更新第一映射表。其中,更新第一映射表包括以下两种情况:当发生变更的ssd的guid在第一映射表中不存在时,raid控制器在第一映射表中新增发生变更的ssd的guid和总线号、设备号及功能号;或者当发生变更的ssd的guid在第一映射表中存在时,raid控制器更新发生变更的ssd的guid和总线号、设备号、及功能号的对应关系。在另一种可能的实现方式中,raid控制器更新第一映射表的过程也可以利用下述方法确定,具体包括:raid控制器扫描所述存储设备重新上电时raid控制器的总线号起始的所有ssd的guid和相对总线号、设备号、及功能号的对应关系;根据第一映射表和在存储设备上电时获取的raid控制器的总线号起始的所有ssd的guid和其总线号、设备号、及功能号的对应关系确定对应关系发生变更的ssd。其中,在第一映射表中更新发生变更的ssd的过程包括以下两种情况:当发生变更的ssd的guid在第一映射表中不存在时,raid控制器在第一映射表中新增发生变更的ssd的guid和总线号、设备号及功能号;或者当发生变更的ssd的guid在第一映射表中存在时,raid控制器更新发生变更的ssd的guid和总线号、设备号、及功能号的对应关系。在另一种可能的实现方式中,当存储设备在上电后出现插拔磁盘时,raid控制器接收中断信号,如pcie的linkdown信号,将该出现磁盘插拔的磁盘状态调整为故障,当磁盘插拔故障恢复后,raid控制器获取出现插拔磁盘槽位的ssd的guid和总线号、设备号、功能号,与第一映射表进行比较,并根据更新后的第一映射表恢复raid关系。其中,插拔磁盘故障恢复包括将原拔出磁盘重新插回原位置,或者将容量大于或等于拔出磁盘的容量的新磁盘插入原位置。通过上述内容的描述,nvme存储设备的raid控制器中记录有ssd的guid和bdf的对应关系,当nvme存储设备重新上电时,可以根据重新获取的所有ssd的guid和bdf的对应关系和raid控制器中所记录的对应关系进行比较,并根据发生变更的对应关系更新raid控制器所记录的对应关系,以此快速确定漫游磁盘,解决现有技术中nvme存储设备无法识别漫游磁盘的问题,提高整个存储系统的可靠性。进一步地,raid控制器还可以利用相对总线号、设备号、功能号和ssd的guid建立对应关系,避免raid控制器在pcie总线中位置变更所引起的总线漂移问题,提高确定漫游磁盘的准确定。第二方面,本发明提供了一种处理磁盘漫游的装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的处理磁盘漫游的方法的各个模块。第三方面,提供一种处理磁盘漫游的设备,该设备包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过所述总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述设备中的硬件资源执行第一方面或第一方面任一种可能实现方式中的处理磁盘漫游的方法。第四方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。第五方面,提供一种处理磁盘漫游的设备,该设备包括raid卡、处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过所述总线连接并完成相互间的通信,所述raid卡中包括raid控制器、存储器、总线,所述raid控制器和所述raid卡的所述存储器通过总线连接并完成相互间的通信,所述raid卡的所述存储器中用于存储计算机执行指令,所述设备运行时,所述raid控制器执行所述raid卡的所述存储器中的计算机执行指令以利用所述设备中的硬件资源执行第一方面或第一方面任一种可能实现方式中的处理磁盘漫游的方法。第六方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。第七方面,提供一种处理磁盘漫游的设备,该设备包括控制器、存储器、通信接口、总线,所述控制器、存储器和通信接口之间通过所述总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述设备运行时,所述控制器执行所述存储器中的计算机执行指令以利用所述设备中的硬件资源执行第一方面或第一方面任一种可能实现方式中的处理磁盘漫游的方法。第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。第九方面,提供一种处理磁盘漫游的设备,该设备包括控制器、存储器、通信接口、总线、raid卡,所述至少一个控制器、存储器、通信接口、raid卡之间通过所述总线连接并完成相互间通信,所述raid卡中包括raid控制器、存储器、总线,所述raid控制器和所述raid卡的所述存储器通过总线连接并完成相互间的通信,所述raid卡的所述存储器中用于存储计算机执行指令,所述设备运行时,所述raid控制器执行所述raid卡的所述存储器中的计算机执行指令以利用所述设备中的硬件资源执行执行第一方面或第一方面任一种可能实现方式中的处理磁盘漫游的方法。第十方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。图1a为本发明提供的一种nvme存储设备的逻辑架构的示意图;图1b为本发明提供的另一种nvme存储设备的逻辑架构的示意图;图2为本发明提供的一种处理磁盘漫游的方法流程的示意图;图3为本发明提供的另一种处理磁盘漫游的方法流程的示意图;图3a为本发明提供的另一种处理磁盘漫游的方法流程的示意图;图3b为本发明提供的另一种处理磁盘漫游的方法流程的示意图;图4为本发明提供的一种处理磁盘漫游的装置的示意图;图5为本发明提供的另一种处理磁盘漫游的设备的示意图;图6为本发明提供的另一种处理磁盘漫游的设备的示意图;图7为本发明提供的另一种处理磁盘漫游的设备的示意图;图8为本发明提供的另一种处理磁盘漫游的设备的示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。对于串行连接小型计算机系统接口(serialattachedscsi,sas)或串行高级技术附件(serialadvancedtechnologyattachment,sata)类型的磁盘,由于raid控制器通过raid控制器的端口与每个磁盘相连,sas或sata磁盘的位置号为磁盘与raid控制器连接的端口号,raid控制器可以记录raid组的成员磁盘的磁盘簇(justabunchofdisk,jbod)号、槽位号、sas地址等的对应关系,当成员磁盘被重新插拔或更换时,raid控制器可以根据其记录的raid组的成员磁盘的磁盘簇(justabunchofdisk,jbod)号、槽位号、sas地址等的对应关识别漫游磁盘或热插拔的磁盘,并进行数据恢复和处理,其中,jbod是指多个磁盘的集合,sas地址是sas协议标准中用于区分不同设备的标识。而对于基于pcie协议的nvme存储设备,raid控制器和ssd磁盘通过pcie总线相连,raid控制器和ssd磁盘的位置不固定,磁盘和控制器可以根据具体业务需求调整其在pcie总线中的位置,相应的,其对应pcie总线中的总线号、功能号和设备号也会变更,导致raid控制器无法利用现有技术的方法快速识别nvme存储设备中磁盘漫游问题。本申请提供一种nvme存储设备中处理磁盘漫游的方法,以此解决现有技术中的nvme存储设备中磁盘漫游所导致raid关系错乱的问题,提升nvme存储设备的可靠性。图1a为本申请所提供的一种非易失性高速传输总线(non-volatilememoryexpress,nvme)存储设备的逻辑架构图,如图所示,该存储设备中包括冗余磁盘阵列(redundantarrayofindependentdisks,raid)控制器、快速互连外围总线(peripheralcomponentinterconnectexpress,pcie)交换芯片和多个nvme固态磁盘(solidstatedisk,ssd),其中,raid控制器按照nvme接口标准管理该存储设备中的所有ssd,例如图1a中raid控制用于管理ssd1、ssd2、ssd3、ssd4、ssd5、…、ssdn,n为大于1的正整数,其中,nvme接口标准是一个针对pciessd的企业和普通客户端系统开发的主机控制器接口标准,具有优化的控制器寄存器接口、命令集、读写队列管理,通过配置设备bar寄存器地址将nvme存储设备的控制器状态寄存器映射到内存空间,这样对映射空间中所有操作将直接体现nvme存储设备内部寄存器的操作,通过寄存器达到对存储设备控制和状态读取的效果。而不需要像传统存储设备需要通过主机总线适配器(hostbusadapter,hba)卡进行数据传输,具有高性能、高效和可扩展的优势;ssd通过pcie交换芯片的端口与raid控制器相连,每个ssd作为pcie总线中的一个端点设备(endpoint,ep);而pcie交换芯片为pcie标准中用于扩展pcie结构的芯片,每个pcie交换芯片包括上行端口和下行端口,上行端口用于pcie交换芯片连接raid控制器,下行端口用于pcie交换芯片连接ssd,上行端口和下行端口在图1a中未示出。可选地,存储设备的逻辑架构图中也可以如图1b所示,该存储设备中包括raid控制器和多个ssd,图1a与图1b的差别在于ssd作为raid控制器在pcie总线中的ep,直接与raid控制器连接,不需要通过pcie交换芯片。raid控制器可以利用存储设备中的多个ssd按照预置配置策略组成磁盘组,该磁盘组也可以称为raid组。预置配置策略主要划分为raid0、raid1、raid2、raid3、raid4、raid5、raid6、raid7、raid10、raid50,其中,raid3以上的配置策略中需要配置为n+m模式,n和m为大于1的正整数,n表示在该raid组的成员硬盘中存储数据的数据盘的个数,m表示在该raid组的成员硬盘中存储校验码的校验盘的个数。例如,在如图1所示存储设备中,raid控制器利用ssd1、ssd2、ssd3、ssd4和ssd5创建raid5。下面,结合图2进一步介绍本发明所提供的一种nvme存储设备中处理磁盘漫游的方法,如图所示,raid控制器记录每个ssd磁盘的全球唯一标识(globaluniqueidentification,guid)和总线号、设备号和功能号的对应关系,所述方法包括:s201、raid控制器记录该raid控制器在pcie总线中的总线号。具体地,在pcie标准中,存储设备中raid控制器和ssd通过pcie的槽位接入pcie结构中,每个pcie槽位的设备均有一组总线号(bus)、设备号(device)、功能号(function)的标识,为方便描述,在下文的描述中,将该组标识信息简称为“bdf”,其中,总线号用于标识该pcie槽位在pcie结构中的总线标识;设备号用于标识该pcie槽位的设备类型;功能号用于标识该pcie槽位的设备的功能,例如,该设备为pcie交换机或ep。值得说明的是,在同一个存储设备的pcie结构中,包括一个根复合体(rootcomplex,rc),该rc运行在中央处理器(centralprocessunit,cpu)上,用于为每个接入该pcie结构的端点设备(endpoint,ep)分配bdf,其中,每个pcie槽位的bdf是唯一的,当存储设备上电后执行初始化操作时,raid控制器首先确定并记录其在pcie结构中的bdf。s202、raid控制器扫描该raid控制器的总线号起始的所有设备的bdf,当存在ssd时,记录该ssd的bdf。具体地,raid控制器确定自身的总线号后,会开始扫描以自身的总线号起始的所有设备,raid控制器可以根据pcie配置空间中指定参数确定pcie槽位的设备类型,如通过配置空间中的classcode区分pcie槽位的设备是否为ssd,具体通过classcode中重置位(reset)字段为01h、08h和02h确定该pcie槽位1设备是否为ssd,其中,配置空间是寄存器中一段独立的存储空间,用于记录pcie规范中配置信息,如classcode。当磁盘为ssd时,则记录该ssd的bdf。s203(可选)、raid控制器确定ssd的相对总线号。具体地,raid控制器在获取每个ssd的bdf后,会根据raid控制器的总线号确定每个ssd的相对总线号,此时,每个ssd的bdf可以利用相对总线号、设备号和功能号标识,为便于后续描述,相对总线号、设备号和功能号的标识可以简称为“相对bdf”,该相对总线号为ssd的总线号减去raid控制器的总线号所得。以此避免raid控制所在raid卡或处理器插拔后所导致的总线号漂移问题。s204、raid控制器获取ssd的全球唯一标识guid。具体地,raid控制器在初始化nvme存储设备时可以获取ssd的guid,初始化过程中,raid控制器分别对每个ssd执行如下几个步骤:1)raid控制器使能ssd,即在raid控制器中通知每个ssd进入工作状态,开始存储数据功能。2)raid控制器创建管理队列,管理队列用于对ssd下发管理命令,例如raid控制器通知ssd创建读写队列、删除读写队列,查找ssd的属性或错误信息等。3)raid控制器获取当前已使能的ssd所能支持的读写队列数量,其中,读写队列数量用于记录ssd所需处理的读写请求的个数和并发处理能力。具体地,为了实现nvme存储设备中多cpu间处理效率,nvme存储设备确定其可以支持的cpu个数,当前已使能的ssd所支持的读写队列数量,并确定nvme存储设备可以支持的cpu个数和当前已使能的ssd所支持的io队列数的最小值为当前已使能的ssd所能支持的读写队列数量。4)raid控制器按照步骤3)确定的ssd所能支持的读写io队列数量创建对应数量的读写队列。5)raid控制器发送查找指令,获取ssd的基本信息,包括ssd所支持的指令集,例如,读写操作指令、及读写操作指令中是否携带校验功能、具体校验方式,数据预取、数据加锁处理指令,分区的数量和全球唯一标识(globaluniqueidentification,guid)信息。其中,guid为每个ssd出厂时设置,该标识信息按照不同厂商设置不同标识规则,为全球唯一标识。s205、raid控制器建立第一映射表。具体地,raid控制器可以根据ssd的guid和相对bdf建立第一映射表。示例地,表1为第一映射表的一种示例,如表所示,guid为0001的ssd在pcie结构中的槽位对应的相对bdf为1:0:0;guid为0002的ssd在pcie结构中的槽位对应的相对bdf为2:0:0;guid为0003的ssd在pcie结构中的槽位对应的相对bdf为3:0:0;…;guid为000n的ssd在pcie结构中的槽位对应的相对bdf为n:0:0;其中,相对bus号为步骤s203中所确定的,n为大于1的正整数;相对bdf中第一位为相对总线号,第二位为设备号,第三位为功能号,例如相对bdf为1:0:0表示相对总线号为1、设备号为0、功能号为0。raid控制器中记录有如表1所示的ssd磁盘的guid和其所在pcie槽位的相对bdf的对应关系。表1相对bus号device号function号guid100000120000023000003……………………n00000n可选地,raid控制器也可以根据ssd的guid和bdf建立第一映射表,与表1区别在于,表2所示的第一映射表是直接利用ssd的guid和该ssd所在pcie槽位的bdf建立的对应关系,不需要先确定每个ssd的相对总线号。示例地,表2为第一映射表的一种示例,如表所示,guid为0001的ssd在pcie结构中的槽位对应bdf为10:0:0;guid为0002的ssd在pcie结构中的槽位对应bdf为20:0:0;guid为0003的ssd对应bdf为30:0:0;…;guid为000n的ssd在pcie结构中的槽位对应bdf为n0:0:0;其中,n为大于1的正整数;bdf中第一位为总线号,第二位为设备号,第三位为功能号,例如bdf为10:0:0表示总线号为10、设备号为0、功能号为0。不同设备插在pcie的不同槽位时,仅影响bdf与guid的对应关系,可以通过每个ssd的guid即可确认该磁盘在pcie总线中的槽位信息。表2值得说明的是,raid控制器记录第一映射表的方式,可以采用指定文件进行记录,也可以利用数据库中数据表进行记录,还可以利用内存中数据结构进行记录,本发明不作限制。通过上述内容的描述,nvme存储设备的raid控制器中记录有每个ssd的guid和bdf的对应关系,具体可以在初始化过程中,可以利用每个ssd的guid和bdf的对应关系预先建立第一映射表,当nvme存储设备中重新上电时,可以根据第一映射表快速确定nvme存储设备中对应关系发生变更的磁盘,解决现有技术中nvme存储设备无法识别漫游磁盘的问题,并针对该漫游磁盘进行相应的故障处理,提升nvme存储设备磁盘管理效率和故障处理能力,提高整个存储系统的可靠性。进一步地,第一映射表可以利用ssd的相对总线号建立相对bdf和该ssd磁盘的guid的对应关系,避免了raid控制器所在raid卡或处理器拔插过程所导致的总线号漂移问题,也进一步提升了识别磁盘漫游或热插拔的速度。进一步地,结合图3详细介绍本发明提供的一种nvme存储设备中处理磁盘漫游的方法流程示意图,如图所示,所述方法包括:s301、当存储设备重新上电时,raid控制器获取存储设备中的所有ssd的guid和bdf。具体地,存储设备在下电状态时出现磁盘插拔,当存储设备重新上电时,raid控制器会获取存储设备中所有ssd的guid和bdf。可选地,raid控制器也可以确定每个ssd的相对总线号,进而确定相对bdf,其中,raid控制器获取每个ssd的bdf,及确定相对总线号的方法与步骤s201至步骤s204相同,在此不再赘述。存储设备出现磁盘插拔包括以下情况中的至少一种:情况一:存储设备中任一磁盘被拔出后再插回原位置;情况二:存储设备中任一磁盘被拔出后再插到存储设备中的其他空闲位置;情况三:存储设备中多个磁盘被拔出后,再交换位置重新插入存储设备;情况四:新磁盘被插入存储设备的空闲位置;情况五:存储设备中任一磁盘被拔出后,在该磁盘的位置插入新磁盘,其中,新磁盘的容量可以大于或等于原磁盘的容量,或新磁盘的容量也可以小于原磁盘的容量。s302、raid控制器根据存储设备重新上电时获取的所有ssd磁盘的guid、bdf和第一映射表更新第一映射表。具体地,对应步骤s301中几种磁盘插拔的情况,除情况一外,情况二至情况五均会导致第一映射表中ssd的guid和bdf(或相对bdf)的对应关系发生变更,其中,第一映射表中对应关系发生变更包括以下情况中的至少一种:情况一:同一ssd的guid对应的bdf(或相对bdf)发生变更,例如,如图1a所示的nvme存储设备中,guid为0001的ssd1从bdf为1:0:0的槽位拔出后被插入m:0:0的槽位,那么,guid为0001的ssd与bdf的对应关系由1:0:0变更为m:0:0,m为大于1且小于n的正整数,raid控制器需要更新ssd1的guid和bdf的对应关系。情况二:ssd的guid和bdf(或相对bdf)的对应关系为原第一映射表中新增内容,即ssd为存储设备中新增磁盘。例如,如图1a所示的nvme存储设备中,插入新增磁盘ssd10,ssd10的guid为0010,该磁盘对应的bdf为10:0:0,那么,raid控制器需要在第一映射表中插入一行,记录ssd10的guid为0010和bdf为10:0:0的对应关系。情况三:raid控制器未获取到第一映射表中至少一个ssd的guid,即ssd被拔出后未重新插回存储设备。例如,如图1a所示的nvme存储设备中,且第一映射表中ssd2的guid和bdf的对应关系如表2所示,即guid为0002的ssd2对应bdf为20:0:0,ssd2被拔出后未插回该存储设备,存储设备重新上电后,raid控制器获取的ssd的guid中不包括ssd2的guid信息,在比较raid控制器获取的所有ssd的guid、bdf和第一映射表后,raid控制器可以根据比较结果更新第一映射表,具体地,当ssd2被拔出且该位置未插入其他ssd时,暂不删除第一映射表中guid为0002和bdf为20:0:0的对应关系,待下一次该位置有新磁盘插入时再更新,此时,操作系统在扫描磁盘时,对于不存在的磁盘不会分配盘符,保留的guid和bdf的对应关系不影响操作系统的分配盘符的处理过程;当ssd2被拔出且该位置插入其他ssd磁盘时,则raid控制器根据新插入磁盘的guid和bdf的对应关系更新第一映射表。进一步地,上述确定第一映射表中发生变更的ssd的过程可以利用以下方式中的任意一种:方式一:raid控制器根据nvme存储设备上电后获取的所有ssd的guid和bdf建立第二映射表,比较第一映射表和第二映射表的差异确定guid和bdf发生变更的ssd。其中,第二映射表的内容与第一映射表的内容相同,示例地,如表1或表2所示,第二映射表中包括每个ssd的guid和bdf的对应关系,或者第二映射表中包括每个ssd的guid和相对bdf的对应关系。方式二:raid控制器也可以在如表1或表2所示的第一映射表中直接添加一列,用于记录raid控制器本次扫描获得的ssd的bdf和guid的临时对应关系,当临时对应关系与前3列中记录的历史对应关系不一致时,即将临时对应关系直接更新为当前时刻guid和bdf的对应关系,例如,表3中第一行中,bdf为1:0:0的pcie槽位在原第一映射表中对应guid为0001的ssd,而当存储设备出现磁盘插拔时,该bdf对应的guid变更为0005,则raid控制器将如表4所示,将bdf为1:0:0对应的guid更新为0005;当临时对应关系为新增内容时,直接在第一映射表中插入该新增内容。表3bus号device号function号guid临时对应关系10000011:0:0-00520000022:0:0-00230000033:0:0-003…………………………n00000nn:0:0-00n表4bus号device号function号guid临时对应关系10000051:0:0-00520000022:0:0-00230000033:0:0-003…………………………n00000nn:0:0-00ns303、raid控制器根据更新后的第一映射表恢复存储设备中的raid关系。具体地,raid控制创建raid关系时,会利用元数据记录每个raid组的成员磁盘信息,其中,成员磁盘信息包括成员磁盘的盘符。在nvme存储设备中,每个磁盘的盘符由操作系统根据其bdf分配。当nvme存储设备中出现磁盘插拔且重新上电时,操作系统会根据当前时刻磁盘的bdf信息重新分配盘符,磁盘槽位的变更会导致其盘符的变更,例如,ssd1在创建raid组时对应的bdf为1:0:0,其盘符为sda,当该磁盘被拔出又重新插入bdf为2:0:0的槽位时,其盘符变更为sdb,此时,ssd1的盘符发生变更,会导致其所在的raid组故障,raid控制器需要根据更新后的第一映射表,并在元数据中将ssd1的盘符更新为sdb,以此保证ssd1所在的raid组能够恢复故障,继续完成应用程序的读写操作指令。值得说明的是,当一个raid组中出现磁盘插拔但未重新插入原磁盘或新磁盘的容量小于原磁盘的容量时,该raid组中成员磁盘数量或容量与创建时成员磁盘信息不符,即使raid控制器根据更新后的第一映射表更新raid关系,该raid组由于成员磁盘缺失仍无法正常工作。通过上述内容的描述,在nvme存储设备重新上电时,raid控制器可以根据其记录的第一映射表确定对应关系发生变化的ssd,并根据更新后的第一映射表对存储设备中的raid关系进行恢复。解决了nvme存储设备中无法利用现有技术的方法识别漫游磁盘的问题,而且,通过记录ssd的guid和bdf(或相对bdf)对应关系的方式,记录内容简单,可以快速识别nvme存储设备中漫游磁盘,并对其进行处理,提高了nvme存储设备的可靠性。进一步地,通过确定每个ssd的相对bdf,记录相对bdf和guid的对应关系,可以解决由于raid控制器在pcie总线中槽位变更所导致的总线号漂移问题,提高了确定漫游磁盘的准确性。作为一个可能的实施例,图3a为本发明提供的一个nvme存储设备中处理磁盘漫游的示例,如图所示,所述方法包括:s311、当存储设备在下电时出现插拔磁盘且重新执行上电操作时,raid控制器获取存储设备中所有ssd的guid和bdf,并建立第二映射表。具体地,第二映射表中包括nvme存储设备上电后,raid控制器获取的所有ssd的guid、总线号、设备号及功能号之间的对应关系,其中,第二映射表为临时表,可以以内存的数据结构形式存储。示例地,假设未出现磁盘插拔时,存储设备的架构如图1a所示,该存储设备中包括2个raid组,raid组1包括ssd1、ssd2、ssd3;raid组2包括ssd4、ssd5、ssd6,第一映射表如表5所示,其中,按照bdf从1:0:0至6:0:0的标识,操作系统为每个磁盘分配的盘符依次为sda、sdb、sdc、sdd、sde、sdf,则raid组1中磁盘的盘符依次为sda、sdb、sdc;raid组2中磁盘的盘符依次为sdd、sde、sdf。表5bus号device号function号guid100000120000023000003400000450000056000006在该nvme存储设备下电时,ssd1与ssd6的位置互换,则该存储设备上电后,raid控制器建立的第二映射表如表6所示,guid为0006的ssd6对应bdf为1:0:0;guid为0001的ssd1对应bdf为6:0:0。表6bus号device号function号guid100000620000023000003400000450000056000001s312、raid控制器比较第一映射表和第二映射表确定发生变更ssd为漫游磁盘。具体地,raid控制器可以通过比较如表5所示的第一映射表和表6所示的第二映射表确定漫游磁盘,例如,通过比较表5和表6可以确定ssd1和ssd6为漫游磁盘。s313、raid控制器根据发生变更的ssd更新第一映射表。在步骤s312确定漫游磁盘后,raid控制器可以根据发生变更的ssd的guid和bdf的对应关系更新第一映射表。s314、raid控制器根据更新后的第一映射表恢复nvme存储设备中的raid关系。其中,raid控制器根据更新后的第一映射表恢复ssd存储设备中的raid关系的处理过程与步骤s303相同,在此不再赘述。可选地,对于磁盘漫游的识别方法,除了通过建立临时的第二映射表确定发生变更的节点之外,也可以通过在第一映射表中添加如表7所示临时对应记录列,对raid控制器扫描的每个guid设备和其对应的总线号、设备号、功能号进行记录,当对应关系发生变更时,raid控制器根据变更关系修改第一映射表中前3列,然后再根据更新后的第一映射表恢复raid关系。表7bus号device号function号guid临时对应关系10000011:0:0-000620000022:0:0-000230000033:0:0-000340000044:0:0-000450000055:0:0-000560000066:0:0-0001raid控制器通过其记录的第一映射表,当存储设备在下电时出现插拔磁盘且重新执行上电操作时,raid控制器可以重新建立本次上电操作后每个ssd的guid和bdf的对应关系,当该对应关系与raid控制器中共记录的第一映射表中的对应关系不同时,即可确定对应关系发生变更的磁盘为漫游磁盘,并根据发生变更的信息更新第一映射表,保证raid组中数据恢复和处理。作为另一个可能的实施例,图3b为本发明实施例提供的一种nvme存储设备在热插拔磁盘过程中的处理方法,与图3a所述方法的区别在于,图3a为nvme存储设备在下电状态执行插拔磁盘操作再重新对存储设备执行上电操作后的处理过程,而图3b是在存储设备上电情况下进行的插拔磁盘操作。如图所示,所述方法包括:s321、当存储设备中出现热插拔磁盘故障时,raid控制器收到磁盘故障信息。具体地,存储设备中出现热插拔磁盘是指:在存储设备上电时,将任意磁盘拔出,此时,raid控制器会接收到故障磁盘的pcie中断信息,如linkdown信息。s322、raid控制器将故障磁盘的状态更新为故障。具体地,raid控制器可以根据磁盘状态标识每个磁盘,如磁盘正常工作时标识为attach,故障时标识为detach。s323、当热插拔磁盘故障恢复后,raid控制器更新第一映射表。具体地,故障磁盘的恢复包括几种情况:情况一:步骤s321中磁盘被拔出后,又被重新插回原槽位。情况二:步骤s321中磁盘被拔出后,利用新磁盘插回原槽位,该新磁盘的容量大于或等于步骤s321中磁盘的容量。对于情况一,raid控制器无需更新第一映射表;对于情况二,raid控制器需要更新第一映射表。具体地,当磁盘故障恢复后,raid控制器会接收到故障磁盘的恢复信息,如linkup信息,raid控制器对插入步骤s231中故障磁盘的bdf槽位的ssd进行初始化,读取该ssd的guid,并根据bdf和guid的对应关系更新第一映射表。s324、raid控制器更新故障磁盘的状态为可用,并恢复raid数据。值得说明的是,当nvme存储设备中存在热插拔现象时,raid组由于出现成员磁盘故障,无法进行正常数据读写操作;当磁盘故障恢复后,raid控制器会根据故障磁盘所在的raid组的配置策略对故障磁盘数据进行重建,具体根据该raid组中非故障的数据盘和校验盘将故障磁盘数据重新写入重新插回的磁盘中。通过上述内容的描述,在nvme存储设备中记录的ssd的guid和bdf的对应关系,当nvme存储设备中出现磁盘插拔时,可以快速确定存储设备中的漫游磁盘,解决现有技术的方法无法识别nvme存储设备中磁盘漫游的问题。值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。上文中结合图1至图3b详细描述了根据本发明实施例所提供的非易失性高速传输总线nvme存储设备中处理磁盘漫游的方法,下面将结合图4至图8,描述根据本发明实施例所提供的nvme存储设备中处理磁盘漫游的装置和设备。图4为本发明实施例提供的一种处理磁盘漫游的装置400,该装置400中包括获取单元401、更新单元402、处理单元403;获取单元401,用于当存储设备重新上电时,获取存储设备中的所有ssd的guid、总线号、设备号、及功能号;更新单元402,用于根据存储设备中的所有ssd的guid、总线号、设备号、及功能号和第一映射表更新第一映射表;处理单元403,用于根据更新后的第一映射表恢复存储设备中的raid关系。应理解的是,本发明实施例的装置400可以通过专用集成电路(applicationspecificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。也可以通过软件实现图2至图3b所示的nvme存储设备中处理磁盘漫游的方法时,装置400及其各个模块也可以为软件模块。可选地,所述获取单元401,还用于记录raid控制器在pcie总线中的总线号;扫描raid控制器的总线号起始的所有设备的总线号、设备号和功能号,当存在ssd时,记录每个ssd的总线号、设备号和功能号;获取所述ssd的全球唯一标识guid;所述处理单元403,还用于确定ssd的相对总线号,相对总线号为ssd的总线号减去所述raid控制器的总线号所得;建立每个ssd的guid和相对总线号、设备号、及功能号的对应关系。可选地,所述处理单元403,还用于建立第二映射表,所述第二映射表中包括所述存储设备重新上电时所述raid控制器的总线号起始的所有ssd的guid和相对总线号、设备号、及功能号的对应关系;比较所述第一映射表和所述第二映射表确定对应关系发生变更的ssd;当所述发生变更的ssd的guid在第一映射表中不存在时,在所述第一映射表中新增所述发生变更的ssd的guid和相对总线号、设备号、及功能号的对应关系;或者,当所述发生变更的ssd的guid在第一映射表中存在时,更新所述发生变更的ssd的guid和相对总线号、设备号、及功能号的对应关系。可选地,所述处理单元403,还用于扫描所述存储设备出现磁盘插拔后所述raid控制器的总线号起始的所有ssd的guid和相对总线号、设备号、及功能号的对应关系;根据所述第一映射表和在所述存储设备上电时获取的所述raid控制器的总线号起始的所有ssd的guid和相对总线号、设备号、及功能号的对应关系确定对应关系发生变更的ssd;当所述发生变更的ssd的guid在所述第一映射表中不存在时,在所述第一映射表中新增所述发生变更的ssd的guid和相对总线号、设备号、及功能号的对应关系;或者,当所述发生变更的ssd的guid在第一映射表中存在时,在所述第一映射表中更新所述发生变更的ssd的guid和相对总线号、设备号、及功能号的对应关系。可选地,所述处理单元403,还用于在操作系统根据所述存储设备在重新上电时获取的ssd的总线号、设备号及功能号分配盘符后,根据当前时刻ssd的盘符更新raid关系,并对数据进行恢复。可选地,所述获取单元401,还用于记录所述raid控制器在pcie总线中的总线号;扫描所述raid控制器的总线号起始的所有设备的总线号、设备号和功能号,当存在ssd时,记录每个ssd的总线号、设备号和功能号;获取所述ssd的全球唯一标识guid;所述处理单元403,还用于建立每个ssd的guid和总线号、设备号、及功能号的对应关系的所述第一映射表。可选地,所述处理单元403,还用于当所述存储设备在上电时出现插拔磁盘时,根据所述插拔磁盘的guid和所述插拔磁盘的总线号、设备号及功能号更新所述第一映射表,所述插拔磁盘包括将原磁盘拔出后重新插回所述原磁盘的槽位,或所述原磁盘被拔出后,重新插入容量大于或等于所述原磁盘容量的新磁盘。根据本发明实施例的装置400可对应于执行本发明实施例中描述的方法,并且装置400中的各个单元的上述和其它操作和/或功能分别为了实现图2至图3b中的各个方法的相应流程,为了简洁,在此不再赘述。通过装置400的描述,在nvme存储设备在下电状态出现插拔磁盘且重新上电时,装置400可以获取存储设备上电后所有ssd的guid和bdf对应关系,根据其记录的第一映射表确定对应关系发生变化的ssd,并根据更新后的第一映射表对存储设备中的raid关系进行恢复。解决了nvme存储设备中无法利用现有技术的方法识别漫游磁盘的问题,而且,通过记录ssd的guid和bdf对应关系的方式,记录内容简单,可以快速识别nvme存储设备中漫游磁盘,并对其进行处理,提高了nvme存储设备的可靠性。进一步地,通过确定每个ssd的相对bdf,记录相对bdf和guid的对应关系,可以解决由于raid控制器在pcie总线中槽位变更所导致的总线号漂移问题,提高了确定漫游磁盘的准确性。图5为本申请提供的一种设备500的示意图,如图所示,所述设备500中包括处理器501、存储器502、通信接口503和总线504。其中,设备500中可以包括至少一个处理器501,图5中仅以一个处理器501为例,处理器501、存储器502、通信接口503通过总线504进行通信,也可以通过无线传输等其他手段实现通信。该存储器502用于存储指令,该处理器501用于执行该存储器502存储的指令。该存储器502存储程序代码,且处理器501可以调用存储器502中存储的程序代码执行以下操作:当所述存储设备重新上电时,获取所述存储设备中的所有ssd的guid、总线号、设备号、及功能号;根据所述存储设备中的所有ssd的guid、总线号、设备号、及功能号和所述第一映射表更新所述第一映射表;根据更新后的第一映射表恢复所述存储设备中的raid关系。应理解,在本发明实施例中,该处理器501可以是cpu,该处理器501还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器502可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。该系统总线504除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线504。应理解,根据本发明实施例的设备500对应于本发明实施例图1a和图1b所示的nvme存储设备,该设备500用于实现图2至图3b中所示方法的相应流程,为了简洁,在此不再赘述。应理解,根据本发明实施例的处理磁盘漫游的设备500可对应于本发明实施例中的nvme存储设备中处理磁盘漫游的装置400,并可以对应于执行根据本发明实施例的图3中的相应主体,并且设备500中的各个模块的上述和其它操作和/或功能分别为了实现图2至图3b中的各个方法的相应流程,为了简洁,在此不再赘述。图6为本发明实施例提供的另一种设备600的示意图,如图所示,设备600包括raid卡604、处理器601、存储器602、通信接口603、总线607,所述处理器601、存储器602和通信接口603之间通过所述总线607连接并完成相互间的通信,所述raid卡604中包括raid控制器605、存储器606、总线608,所述raid控制器605和所述raid卡604的所述存储器606通过总线608连接并完成相互间的通信,所述raid卡604的所述存储器606中用于存储计算机执行指令,所述设备600运行时,所述raid控制器605执行所述raid卡604的所述存储器606中的计算机执行指令以利用所述设备600中的硬件资源执行以下操作:当所述存储设备重新上电时,获取所述存储设备中的所有ssd的guid、总线号、设备号、及功能号;根据所述存储设备中的所有ssd的guid、总线号、设备号、及功能号和所述第一映射表更新所述第一映射表;根据更新后的第一映射表恢复所述存储设备中的raid关系。可选地,存储器602也可以用于存储计算机执行指令,在设备600运行时,raid控制器605执行存储器602中的计算机执行指令利用设备600的硬件资源执行上述操作。应理解,在本发明实施例中,该处理器601和raid控制器605可以是cpu,还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器602和存储器606可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器602和存储器606的一部分还可以包括非易失性随机存取存储器。例如,存储器602和存储器606还可以存储设备类型的信息。该系统总线608和总线607除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线607或总线608。应理解,根据本发明实施例的设备600对应于本发明实施例图1a和图1b所示的nvme存储设备,该设备600用于实现图2至图3b中所示方法的相应流程,为了简洁,在此不再赘述。应理解,根据本发明实施例的处理磁盘漫游的设备600可对应于本发明实施例中的nvme存储设备中处理磁盘漫游的装置400,并可以对应于执行根据本发明实施例的图3中的相应主体,并且设备600中的各个模块的上述和其它操作和/或功能分别为了实现图2至图3b中的各个方法的相应流程,为了简洁,在此不再赘述。图7为本发明实施例提供的另一种设备700的示意图,如图所示,设备700包括控制器701、存储器702、通信接口703、总线704,所述控制器701、存储器702和通信接口703之间通过所述总线704连接并完成相互间的通信,所述存储器702中用于存储计算机执行指令,所述设备700运行时,所述控制器701执行所述存储器702中的计算机执行指令以利用所述设备700中的硬件资源执行以下操作:当所述存储设备重新上电时,获取所述存储设备中的所有ssd的guid、总线号、设备号、及功能号;根据所述存储设备中的所有ssd的guid、总线号、设备号、及功能号和所述第一映射表更新所述第一映射表;根据更新后的第一映射表恢复所述存储设备中的raid关系。应理解,在本发明实施例中,该控制器701可以是cpu,该控制器701还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器702可以包括只读存储器和随机存取存储器,并向控制器701提供指令和数据。存储器702的一部分还可以包括非易失性随机存取存储器。例如,存储器702还可以存储设备类型的信息。该系统总线704除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线704。应理解,根据本发明实施例的设备700对应于本发明实施例图1a和图1b所示的nvme存储设备,该设备700用于实现图2至图3b中所示方法的相应流程,为了简洁,在此不再赘述。应理解,根据本发明实施例的处理磁盘漫游的设备700可对应于本发明实施例中的nvme存储设备中处理磁盘漫游的装置400,并可以对应于执行根据本发明实施例的图3中的相应主体,并且设备700中的各个模块的上述和其它操作和/或功能分别为了实现图2至图3b中的各个方法的相应流程,为了简洁,在此不再赘述。图8为本发明实施例提供的另一种设备800的示意图,如图所示,设备800中包括控制器801、存储器802、通信接口803、总线807、raid卡804,所述至少一个控制器801,控制器801、存储器802、通信接口803、raid卡804之间通过所述总线807连接并完成相互间通信,所述raid卡804中包括raid控制器805、存储器806、总线808,所述raid控制器805和所述raid卡804的所述存储器806通过总线808连接并完成相互间的通信,所述raid卡804的所述存储器806中用于存储计算机执行指令,所述设备800运行时,所述raid控制器805执行所述raid卡804的所述存储器806中的计算机执行指令以利用所述设备800中的硬件资源执行以下操作:当所述存储设备重新上电时,获取所述存储设备中的所有ssd的guid、总线号、设备号、及功能号;根据所述存储设备中的所有ssd的guid、总线号、设备号、及功能号和所述第一映射表更新所述第一映射表;根据更新后的第一映射表恢复所述存储设备中的raid关系。可选地,存储器802也可以用于存储计算机执行指令,在设备800运行时,raid控制器805执行存储器802中的计算机执行指令利用设备800的硬件资源执行上述操作。应理解,在本发明实施例中,该处理器801和raid控制器805可以是cpu,还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器802和存储器806可以包括只读存储器和随机存取存储器,并向处理器801或raid控制器805提供指令和数据。存储器802和存储器806的一部分还可以包括非易失性随机存取存储器。例如,存储器802和存储器806还可以存储设备类型的信息。该总线808和总线807除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线807或总线808。应理解,根据本发明实施例的设备800对应于本发明实施例图1a和图1b所示的nvme存储设备,该设备800用于实现图2至图3b中所示方法的相应流程,为了简洁,在此不再赘述。应理解,根据本发明实施例的处理磁盘漫游的设备800可对应于本发明实施例中的nvme存储设备中处理磁盘漫游的装置400,并可以对应于执行根据本发明实施例的图3中的相应主体,并且设备800中的各个模块的上述和其它操作和/或功能分别为了实现图2至图3b中的各个方法的相应流程,为了简洁,在此不再赘述。综上所述,在nvme存储设备在下电状态出现磁盘插拔且重新上电时,raid控制器可以根据其记录的第一映射表确定对应关系发生变化的ssd,并根据更新后的第一映射表对存储设备中的raid关系进行恢复。解决了nvme存储设备中无法利用现有技术的方法识别漫游磁盘的问题,而且,通过记录ssd的guid和bdf对应关系的方式,记录内容简单,可以快速识别nvme存储设备中漫游磁盘,并对其进行处理,提高了nvme存储设备的可靠性。进一步地,通过确定每个ssd的相对bdf,记录相对bdf和guid的对应关系,可以解决由于raid控制器在pcie总线中槽位变更所导致的总线号漂移问题,提高了确定漫游磁盘的准确性。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1