CN117234437B - 一种存储设备、磁盘重启的控制方法及装置 - Google Patents
一种存储设备、磁盘重启的控制方法及装置 Download PDFInfo
- Publication number
- CN117234437B CN117234437B CN202311518251.4A CN202311518251A CN117234437B CN 117234437 B CN117234437 B CN 117234437B CN 202311518251 A CN202311518251 A CN 202311518251A CN 117234437 B CN117234437 B CN 117234437B
- Authority
- CN
- China
- Prior art keywords
- restarting
- disk
- command
- restart
- custom
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013507 mapping Methods 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 34
- 230000002159 abnormal effect Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 6
- 230000009977 dual effect Effects 0.000 claims description 3
- 238000011144 upstream manufacturing Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明涉及存储扩展技术领域,公开了一种存储设备、磁盘重启的控制方法及装置,一种磁盘重启的控制方法包括:构建自定义重启命令;基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置;基于重启磁盘位置重启对应的磁盘。本发明实现了对扩展卡挂载的单个或者少量磁盘单独重启,而不影响其他正常的磁盘继续接收读写命令。
Description
技术领域
本发明涉及存储扩展技术领域,具体涉及一种存储设备、磁盘重启的控制方法及装置。
背景技术
在存储领域,随着大数据、云计算、物联网等信息技术发展,对数据中心服务器的数据传输和存储性能要求越来越高,为了提高数据传输和存储性能,扩展卡技术的出现满足了主机对海量存储的支持,同时对可靠性方面也提出了更高的要求。
当对扩展卡挂载的单个或少量磁盘重启之后再进行重试操作时,需要对整个扩展卡进行重启,在重启过程中扩展卡挂载的其他磁盘也无法进行正常的IO操作(Input/Output,输入/输出操作,即读写操作)。
发明内容
有鉴于此,本发明提供了一种存储设备、磁盘重启的控制方法及装置,以解决对扩展卡挂载的单个或少量磁盘重启时,其他磁盘无法进行正常的IO操作的问题。
第一方面,本发明提供了一种磁盘重启的控制方法,应用于当前扩展芯片,当前扩展芯片和磁盘连接,该方法包括:
构建自定义重启命令;
基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置;
基于重启磁盘位置重启对应的磁盘。
本实施例提供的一种磁盘重启的控制方法,基于原始读写命令生成自定义重启命令,增加了存储设备的通用性,并且利用命名空间与磁盘信息映射表确定重启磁盘位置,进而基于重启磁盘位置重启对应的磁盘,实现了对需重启磁盘的快速定位,以针对原始读写命令对应磁盘的进行重启操作,无需将扩展芯片进行重启,实现了对扩展卡挂载的单个或者少量磁盘单独重启,而不影响其他正常的磁盘继续接收读写命令。
在一种可选的实施方式中,构建自定义重启命令,包括:
获取读写异常反馈数据,基于读写异常反馈数据确定原始读写命令;
基于原始读写命令构建自定义重启命令。
在一种可选的实施方式中,基于原始读写命令构建自定义重启命令,包括:
对原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小;
获取重启操作码和命令标识符,基于命名空间标识符、目的地起始地址、空间大小、重启操作码和命令标识符生成自定义重启命令。
本实施例提供的一种磁盘重启的控制方法,通过对原始读写命令的字段识别,实现了对自定义重启命令相关字段的准确定义,为后续重启磁盘的定位奠定了基础。
在一种可选的实施方式中,对原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小,包括:
对原始读写命令进行字段识别,确定命名空间标识符、起始逻辑块地址和逻辑块数;
将起始逻辑块地址作为目的地起始地址,将逻辑块数作为空间大小。
本实施例提供的一种磁盘重启的控制方法,通过将原始读写命令中的起始逻辑块地址作为目的地起始地址,将逻辑块数作为空间大小,增加了自定义重启命令的通用性,为后续重启磁盘的定位奠定了基础。
在一种可选的实施方式中,基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置,包括:
分别将命名空间标识符、目的地起始地址和空间大小和命名空间与磁盘信息映射表中的命名空间信息进行匹配,确定当前命名空间,并基于当前命名空间确定重启磁盘信息。
本实施例提供的一种磁盘重启的控制方法,将命名空间标识符、目的地起始地址和空间大小和命名空间与磁盘信息映射表中的命名空间信息进行匹配,快速且准确地对重启磁盘信息进行了定位。
在一种可选的实施方式中,构建自定义重启命令,包括:
获取网络管理异常反馈数据,基于网络管理异常反馈数据确定原始网络管理命令;
基于原始网络管理命令构建自定义重启命令。
在一种可选的实施方式中,基于重启磁盘位置重启对应的磁盘,包括:
当重启磁盘位置对应的磁盘信息为多个磁盘时,则对自定义重启命令进行拆分,生成多个重启命令;
当磁盘类型为SATA HDD盘时,则将重启命令转换为串行协议,并基于串行协议调用串行接口,利用串行接口重启SATA HDD盘;
当磁盘类型为NVMe SSD盘时,则基于重启命令调用逻辑接口,利用逻辑接口重启NVMe SSD盘;
当重启磁盘位置为下一级联扩展芯片时,则将重启命令透传给下一级联扩展芯片进行重启处理。
本实施例提供的一种磁盘重启的控制方法,涉及多个磁盘时,通过将自定义重启命令进行拆分,进而利用拆分后的多个重启命令对不同磁盘重启的控制,实现了对不同类型磁盘或下一级联扩展芯片的针对性重启,无需将整个扩展卡进行重启,实现了对扩展卡挂载的单个或者少量磁盘单独重启,而不影响其他正常的磁盘继续接收读写命令。
在一种可选的实施方式中,基于重启磁盘位置重启对应的磁盘,还包括:
当重启磁盘位置对应的磁盘信息为单个磁盘时,则基于自定义重启命令重启对应磁盘。
在一种可选的实施方式中,当重启磁盘位置为下一级联扩展芯片时,则将重启命令透传给下一级联扩展芯片进行重启处理,包括:
当重启磁盘位置为下一级联扩展芯片时,则获取下一级联扩展芯片对应的命名空间信息;
基于命名空间信息修改重启命令,将修改后的重启命令发送给下一级联扩展芯片挂载的磁盘,以重启下一级联扩展芯片挂载的磁盘。
本实施例提供的一种磁盘重启的控制方法,通过利用扩展卡对应的命名空间信息对重启命令进行修改,实现了对多级扩展卡挂载磁盘的管理以及重启处理。
在一种可选的实施方式中,基于重启磁盘位置重启对应的磁盘,还包括:
基于多个重启命令生成重启链表,并将重启链表进行存储。
本实施例提供的一种磁盘重启的控制方法,通过重启链表为后续命令执行反馈数据的准确检查奠定了基础。
在一种可选的实施方式中,当前扩展芯片与主机连接,该方法还包括:
异步接收多个磁盘发送的命令执行反馈数据,将命令执行反馈数据发送给主机。
本实施例提供的一种磁盘重启的控制方法,通过异步接收命令执行反馈数据,避免了反馈数据与读写命令的冲突,使得磁盘在执行自定义重启命令时,其他磁盘对读写命令的执行不受影响。
在一种可选的实施方式中,异步接收多个磁盘发送的命令执行反馈数据,将命令执行反馈数据发送给主机,包括:
异步接收多个磁盘发送的命令执行反馈数据,并将命令执行反馈数据进行组合,生成自定义重启命令执行结果;
将自定义重启命令执行结果与重启链表进行对比,基于对比结果将自定义重启命令执行结果发送给主机。
本实施例提供的一种磁盘重启的控制方法,通过将自定义重启命令执行结果与重启链表进行对比,实现了对自定义重启指令执行过程的准确掌握。
第二方面,本发明提供了一种磁盘重启的控制装置,该装置包括:
构建模块,用于构建自定义重启命令;
确定模块,用于基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置;
重启模块,用于基于重启磁盘位置重启对应的磁盘。
第三方面,本发明提供了一种存储设备,存储设备包括当前扩展芯片和多个磁盘,当前扩展芯片和多个磁盘连接;其中,
扩展芯片,用于构建自定义重启命令,并基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置,基于重启磁盘位置将自定义重启命令发送给多个磁盘;
磁盘,用于基于自定义重启命令进行重启操作。
本实施例提供的一种存储设备,通过扩展芯片与磁盘卡扩展了主机的存储空间,并且,当读写命令异常时,扩展芯片基于读写命令生成自定义重启命令,磁盘基于自定义重启命令进行重启操作,实现了异常磁盘的读写命令解析,且基于自定义重启命令对原始读写命令对应磁盘的重启操作,实现了对扩展卡挂载的单个或者少量磁盘单独重启,而不影响其他正常的磁盘继续接收读写命令。
在一种可选的实施方式中,存储设备还包括:下一级联扩展芯片;
下一级联扩展芯片与当前扩展芯片连接,并挂载有多个磁盘,用于扩展存储设备的存储空间。
在一种可选的实施方式中,当前扩展芯片的下行端口通过NVMe/SATA双模PHY分别与多个磁盘和下一级联扩展芯片连接。
在一种可选的实施方式中,当前扩展芯片的上行端口通过PCIe与主机连接。
在一种可选的实施方式中,多个磁盘包括SATA HDD盘和NVMe SSD盘。
第四方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的磁盘重启的控制方法。
第五方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的磁盘重启的控制方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的磁盘扩展方式的结构框图;
图2是根据本发明实施例的一种磁盘重启的控制方法的流程示意图;
图3是根据本发明实施例的磁盘读写异常触发磁盘重启的控制方法的流程示意图;
图4是根据本发明实施例的磁盘重启过程中IO处理示意图;
图5是根据本发明实施例的自定义重启命令格式携带信息的示意图;
图6是根据本发明实施例的网络管理异常触发磁盘重启的控制方法的流程示意图;
图7是根据本发明实施例的又一种磁盘重启的控制方法的流程示意图;
图8是根据本发明实施例的再一种磁盘重启的控制方法的流程示意图;
图9是根据本发明实施例的磁盘重启的控制的具体步骤的流程示意图;
图10是根据本发明实施例的自定义重启命令处理模块示意图;
图11是根据本发明实施例的自定义重启命令的处理流程示意图;
图12是根据本发明实施例的一种磁盘重启的控制装置的结构框图;
图13是根据本发明实施例的一种存储设备的结构框图;
图14是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高数据传输和存储性能,基于NVMe(Non-Volatile Memory Express,非易失性存储器标准)协议研发了高速数据存储设备,基于PCIe(Peripheral ComponentInterconnect Express,一种高速串行计算机扩展总线标准)的NVMe接口不断走强,尤其在闪存领域不断蚕食SAS(Serial Attached SCSI,串行接入计算机系统接口)和SATA(SerialAdvanced Technology Attachment,串口硬盘)接口的份额,但在磁介质存储(Hard DiskDrive,简称HDD)方面,SAS和SATA仍占据主导。
在扩展方面,NVMe可以通过本地PCIe交换芯片或者专用网络(NVMe over Fabric,简称NVMe-oF)进行容量扩展,相关的容量扩展方式包括使用SAS接口,如图1所示,首先需要通过一张RAID(Redundant Arrays of Independent Disks,独立冗余磁盘阵列)卡或者HBA(Host Bus Adapter,主机总线适配器)卡将PCIe总线转换为SAS总线协议,然后再通过SASexpander(SAS扩展)连接更多的盘;另一种是SATA接口,通过专用的port multiplier(端口倍增)器件实现扩盘。
RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。
通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(Cyclic Redundancy Check,循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。
扩展卡技术更加灵活的满足了主机对海量存储的支持,同时对可靠性方面也提出了更高的要求。当主机下发一次IO操作返回失败时,需要对磁盘重启之后再进行重试操作时,如果磁盘是挂在扩展卡下面,目前的做法只能对整个扩展卡进行重启,在重启过程中扩展卡下面扩展的其他磁盘也无法进行正常的IO操作。
为解决上述技术问题,本发明实施例提供了一种存储设备、磁盘重启的控制方法及装置,以避免重启整个扩展卡导致影响扩大。
根据本发明实施例,提供了一种磁盘重启的控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种磁盘重启的控制方法,可用于当前扩展芯片,当前扩展芯片与多个磁盘连接,图2是根据本发明实施例的一种磁盘重启的控制方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,构建自定义重启命令。
具体地,主机可以采用服务器或上一级扩展卡,扩展芯片分别与主机和多个磁盘连接,下一级联扩展芯片与扩展芯片连接,并挂载有多个磁盘(包括SATA HDD盘和NVME SSD盘);其中,磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。
其中,自定义重启命令由命名空间标识符、目的地起始地址、空间大小、重启操作码和命令标识符构成。
步骤S202,基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置。
具体地,命名空间与磁盘信息映射表包含命名空间和空间大小与磁盘标识和磁盘类型等信息之间的映射信息。
进一步地,将扩展芯片挂载的磁盘与命名空间信息进行一一对应预存储在扩展芯片中,其中,磁盘信息包括磁盘ID、磁盘类型等信息,命名空间信息包括命名空间标识符、目的地起始地址和空间大小等信息。
步骤S203,基于重启磁盘位置重启对应的磁盘。
本实施例提供的一种磁盘重启的控制方法,基于原始读写命令生成自定义重启命令,增加了存储设备的通用性,并且利用命名空间与磁盘信息映射表确定重启磁盘位置,进而基于重启磁盘位置重启对应的磁盘,实现了对需重启磁盘的快速定位,以针对原始读写命令对应磁盘的进行重启操作,无需将扩展芯片进行重启,实现了对扩展卡挂载的单个或者少量磁盘单独重启,而不影响其他正常的磁盘继续接收读写命令。
在本实施例中提供了一种磁盘重启的控制方法,可用于当前扩展芯片,图3是根据本发明实施例的一种磁盘重启的控制方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,构建自定义重启命令。
具体地,上述步骤S301包括:
步骤S3011,获取读写异常反馈数据,基于读写异常反馈数据确定原始读写命令。
具体地,如图4所示,扩展芯片对于主机来说就是一个NVMe设备,扩展卡挂载的一个SATA HDD盘IO执行超时,即主机发给扩展芯片的某一个读写命令超时,则判定该读写命令为原始读写命令,该SATA HDD盘无法处理读写命令,进而需要基于原始读写命令生成自定义重启命令,利用自定义重启命令对原始读写命令对应的磁盘进行重启,但是扩展卡下挂其他设备可以正常接收IO命令(即读写命令),不受重启的影响。
进一步地,输入/输出(I/O)操作指的是主机与存储设备之间交换数据的操作。它包括从存储设备读取数据到内存以及从内存向存储设备写入数据两个方向;I/O操作与主机的其他操作不同之处在于,它需要与存储设备进行交互;不同的设备类型有不同的物理接口、控制器和协议,需要使用不同的I/O接口进行通信;I/O操作通常会使主机停止当前的任务,等待输入/输出操作完成;在这期间,主机将不再执行任何其他操作,并且可能会浪费大量时间在等待I/O操作上;进而为了最大化利用主机时间,主机使用中断来处理I/O操作,当存储设备完成操作时,它会向主机发出一个硬件中断信号,表示数据已经准备好了;主机会暂停当前任务并处理中断,从而处理I/O操作,这种方式可以使CPU在I/O操作进行期间继续执行其他任务。
进一步地,常见的I/O操作包括:(1)读取文件:从文件中读取数据并将其存储到内存中;(2)写入文件:将内存中的数据写入到文件中;(3)网络I/O:通过网络接口进行数据传输。例如,使用Socket库进行TCP或UDP的通信;(4)串口I/O:使用串口接口进行数据传输;(5)设备I/O:使用特定设备的API进行I/O操作;例如,使用硬盘接口读取磁盘数据。
进一步地,扩展芯片收到输入输出(IO)错误的信息是由于其无法在磁盘上存取或写入数据,通常是由于电缆松动或电缆故障导致的;首先,应该检查SATA或SAS电缆是否均匀插入到硬盘和主板插槽中,如果电缆插头没有插好,就会出现收到IO设备错误的情况,如果电缆没有问题,则用其他电缆连接硬盘;扩展芯片显示进程或IO设备错误可能会因为硬盘自身的故障而导致;另一个使扩展芯片显示IO设备错误的常见原因是设备驱动程序的问题;硬盘驱动可能会因为太旧、过时或错误的安装而产生问题。
进一步地,NVMe是一个逻辑设备接口规范,用于连接计算机主板上的NVMe存储设备,如固态硬盘(SSD)、PCIe存储卡和U.2存储设备,NVMe也可以提供更快的数据传输速度和更高的I/O吞吐量,以满足高性能存储的需求;NVMe与传统的SATA和SAS接口相比,具有更高的数据传输速度和更低的延迟。NVMe的优势在于它可以提供更高的I/O吞吐量和更低的延迟,使得数据传输更加快速,可以满足现代应用的高性能存储需求。
进一步地,NVMe标准支持多路I/O,可以支持多个命令队列,每个队列可以支持多个I/O请求。
步骤S3012,基于原始读写命令构建自定义重启命令。
在一些可选的实施方式中,上述步骤S3012包括:
步骤a1,对原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小。
具体地,对原始读写命令进行字段识别,确定命名空间标识符、起始逻辑块地址和逻辑块数;将起始逻辑块地址作为目的地起始地址,将逻辑块数作为空间大小。
进一步地,一般使用场景为,当一条IO命令出错时,想要单独复位这条出错IO所涉及的具体磁盘,需要根据出错的IO命令,自定义重启命令所需要的后三个值(即目的地起始地址、空间大小和命令标识符)可以根据这条IO的信息构造。
本实施例提供的一种磁盘重启的控制方法,通过将原始读写命令中的起始逻辑块地址作为目的地起始地址,将逻辑块数作为空间大小,增加了自定义重启命令的通用性,为后续重启磁盘的定位奠定了基础。
步骤a2,获取重启操作码和命令标识符,基于命名空间标识符、目的地起始地址、空间大小、重启操作码和命令标识符生成自定义重启命令。
具体地,如图5所示,将自定义重启命令定义为基于namespace(命名空间)的reset命令(即重启命令),具体由以下信息构成:1)基于NS(即namespace)的reset命令操作码,即重启操作码;2)命令标识符,类似标准SQE(Submission Queue Entry,提交队列项)中的字段Command Identifier(CID,命名标识符),代表一个命令的唯一编号;3)Namespace标识符,类似标准SQE中的字段Namespace Identifier(NSID,命名域标识符);4)目的地起始地址,类似标准SQE中的字段Starting LBA(SLBA,起始逻辑块地址);5)空间大小,类似标准SQE中的字段Number of Logical Block(NLB,逻辑块数)。
进一步地,假设定义重启操作码为0xFC,如下表1所示。
表1:
进一步地,重启操作码是固定的,命令标识符需要与其他命令不冲突。
进一步地,分别将命名空间标识符、目的地起始地址和空间大小和命名空间与磁盘信息映射表中的命名空间信息进行匹配,确定当前命名空间,并基于当前命名空间确定重启磁盘信息。
本实施例提供的一种磁盘重启的控制方法,通过对原始读写命令的字段识别,实现了对自定义重启命令相关字段的准确定义,为后续重启磁盘的定位奠定了基础。
步骤S302,基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S303,基于重启磁盘位置重启对应的磁盘。详细请参见图2所示实施例的步骤S203,在此不再赘述。
本实施例提供的一种磁盘重启的控制方法,通过对原始读写命令的字段识别,实现了对自定义重启命令相关字段的准确定义,且将命名空间标识符、目的地起始地址和空间大小和命名空间与磁盘信息映射表中的命名空间信息进行匹配,快速且准确地对重启磁盘信息进行了定位。
在本实施例中提供了一种磁盘重启的控制方法,可用于当前扩展芯片,图6是根据本发明实施例的一种磁盘重启的控制方法的流程图,如图6所示,该流程包括如下步骤:
步骤S601,构建自定义重启命令。
具体地,上述步骤S601包括:
步骤S6011,获取网络管理异常反馈数据,基于网络管理异常反馈数据确定原始网络管理命令。
具体地,NVME命令分为两种,一种是数据类的IO命令,一种是管理类的ADMIN命令(网络管理命令)。
进一步地,主机向当前扩展芯片下发原始网络管理命令,当前扩展芯片将原始网络管理命令下发给磁盘或下一级联扩展芯片,进而当前扩展芯片接收网络管理反馈数据,当网络管理反馈数据出现错误时,则基于该网络管理反馈数据确定其对应的原始网络管理命令。
步骤S6012,基于原始网络管理命令构建自定义重启命令。
具体地,基于原始网络管理命令构建自定义重启命令的步骤与上述步骤S301中构建自定义重启命令的步骤相同。
步骤S602,基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置。详细请参见图3所示实施例的步骤S302,在此不再赘述。
步骤S603,基于重启磁盘位置重启对应的磁盘。详细请参见图3所示实施例的步骤S303,在此不再赘述。
本实施例提供的一种磁盘重启的控制方法,将网络管理异常作为构建自定义重启命令的触发条件,利用原始网络管理命令构建自定义重启命令,进而利用自定义重启命令实现了快速且准确地对重启磁盘的定位。
在本实施例中提供了一种磁盘重启的控制方法,可用于当前扩展芯片,图7是根据本发明实施例的一种磁盘重启的控制方法的流程图,如图7所示,该流程包括如下步骤:
步骤S701,构建自定义重启命令。详细请参见图6所示实施例的步骤S601,在此不再赘述。
步骤S702,基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置。详细请参见图6所示实施例的步骤S602,在此不再赘述。
步骤S703,基于重启磁盘位置重启对应的磁盘。
具体地,上述步骤S703包括:
步骤S7031,当重启磁盘位置对应的磁盘信息为多个磁盘时,则对自定义重启命令进行拆分,生成多个重启命令。
具体地,当重启磁盘位置对应的磁盘信息为单个磁盘时,则基于自定义重启命令重启对应磁盘。
进一步地,基于多个重启命令生成重启链表,并将重启链表进行存储。
进一步地,也可以通过重启队列记录存储多个重启命令。
步骤S7032,当磁盘类型为SATA HDD盘时,则将重启命令转换为串行协议,并基于串行协议调用串行接口,利用串行接口重启SATA HDD盘。
具体地,针对SATA HDD盘,将重启命令转换为SATA协议,调用SATA标准驱动进行重启动作。
步骤S7033,当磁盘类型为NVMe SSD盘时,则基于重启命令调用逻辑接口,利用逻辑接口重启NVMe SSD盘。
具体地,针对NVMe SSD盘,调用NVMe标准驱动进行重启动作。
步骤S7034,当重启磁盘位置为下一级联扩展芯片时,则将重启命令透传给下一级联扩展芯片进行重启处理。
在一些可选的实施方式中,上述步骤S7034包括:
步骤b1,当重启磁盘位置为下一级联扩展芯片时,则获取下一级联扩展芯片对应的命名空间信息。
步骤b2,基于命名空间信息修改重启命令,将修改后的重启命令发送给下一级联扩展芯片挂载的磁盘,以重启下一级联扩展芯片挂载的磁盘。
具体地,修改namespace,NLB,SLBA信息之后,将修改后的重启命令下发给扩展卡,由下一级扩展卡处理。
本实施例提供的一种磁盘重启的控制方法,涉及多个磁盘时,通过将自定义重启命令进行拆分,进而利用拆分后的多个重启命令对不同磁盘重启的控制,实现了对不同类型磁盘或下一级联扩展芯片的针对性重启,无需将整个扩展卡进行重启,实现了对扩展卡挂载的单个或者少量磁盘单独重启,而不影响其他正常的磁盘继续接收读写命令。
在本实施例中提供了一种磁盘重启的控制方法,可用于当前扩展芯片,当前扩展芯片与主机连接,图8是根据本发明实施例的一种磁盘重启的控制方法的流程图,如图8所示,该流程包括如下步骤:
步骤S801,构建自定义重启命令。详细请参见图7所示实施例的步骤S701,在此不再赘述。
步骤S802,基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置。详细请参见图7所示实施例的步骤S702,在此不再赘述。
步骤S803,基于重启磁盘位置重启对应的磁盘。详细请参见图7所示实施例的步骤S703,在此不再赘述。
步骤S804,异步接收多个磁盘发送的命令执行反馈数据,将命令执行反馈数据发送给主机。
具体地,上述步骤S804包括:
步骤S8041,异步接收多个磁盘发送的命令执行反馈数据,并将命令执行反馈数据进行组合,生成自定义重启命令执行结果。
具体地,重启命令的返回与重启命令执行与其他NVMe命令是异步的,在重启命令执行过程中,其他磁盘的IO命令正常执行不受影响。
步骤S8042,将自定义重启命令执行结果与重启链表进行对比,基于对比结果将自定义重启命令执行结果发送给主机。
具体地,通过将自定义重启命令执行结果与重启链表进行对比,进而判断重启链表中所涉及的磁盘是否均执行自定义重启命令,若重启链表中所涉及的磁盘均执行自定义重启命令,则将自定义重启命令执行结果发送给主机或上一级扩展卡;若重启链表中所涉及的磁盘未执行自定义重启命令,则等待所有磁盘均执行自定义重启命令后,将自定义重启命令执行结果发送给主机或上一级扩展卡。
进一步地,当涉及多级扩展芯片时,则按照级别自下而上地将自定义重启命令执行结果传输给上一级扩展芯片或主机。
进一步地,如果在自定义重启命令执行过程中重启的磁盘接收到新的IO命令时,将新的IO命令在本地进行缓存,直至自定义重启命令执行完成之后再下发新的IO命令。
本实施例提供的一种磁盘重启的控制方法,通过异步接收命令执行反馈数据,避免了反馈数据与读写命令的冲突,使得磁盘在执行自定义重启命令时,其他磁盘对读写命令的执行不受影响。
下面通过具体实施例来说明一种磁盘重启的控制方法的具体步骤。
实施例1:
如图9所示,一种磁盘重启的控制方法的具体步骤包括:
接收符合SQE标准的IO命令,并对IO命令进行解析;
当一条IO命令出错时,主机可以给扩展芯片下发一个自定义的重启命令,在扩展芯片配套的对自定义重启命令的处理;
扩展卡中处理器进行自定义重启命令处理的相关模块如图10所示,如图11所示,自定义重启命令处理步骤为:
1.自定义reset命令解析,解析来自上层下发的自定义基于namespace的reset命令。
2.Namespace与磁盘信息映射表,映射namespace、空间大小、磁盘ID、磁盘类型等信息。
3.命令拆分模块,根据自定义重启命令中携带的NSID,NLB,SLBA等信息以及namespace与磁盘信息映射表计算出需要reset的磁盘位置。分三种情况:直连SATA HDD盘、直连NVMe SSD盘、扩展卡。如果出错的IO涉及多个磁盘,在这里需要拆分成对每一个涉及的磁盘的reset动作。
4.直连SATA HDD盘reset处理模块,通过调用SATA相关接口实现对SATA HDD盘的reset功能。
5.直连NVMe SSD盘reset处理模块,通过调用NVMe相关接口实现对NVMe SSD盘的reset功能。
6.扩展卡reset自定义命令透传模块,修改namespace,NLB,SLBA信息之后将命令下发给扩展卡,由下一级扩展卡处理。
7.命令结果组合模块,等待自定义命令中需要reset的所有磁盘都返回结果之后汇总成自定义命令的执行结果返回上一级扩展卡或者HOST(主机)。
上述实施例中,通过一个自定义命令实现对基于Namespace的reset方法。基于标准的NVMe命令处理流程,可以增加方案及设备的通用性,基于Namespace的reset命令使用映射表存储结构快速的定位需要reset的磁盘信息,以及涉及多个磁盘时将命令进行拆分方法;对基于Namespace的reset命令执行结果汇总统一回复上一级扩展芯片/Host的方案。
在本实施例中还提供了一种磁盘重启的控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种磁盘重启的控制装置,如图12所示,包括:
构建模块1201,用于构建自定义重启命令;
确定模块1202,用于基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置;
重启模块1203,用于基于重启磁盘位置重启对应的磁盘。
在一些可选的实施方式中,构建模块1201包括:
第一确定单元,用于获取读写异常反馈数据,基于读写异常反馈数据确定原始读写命令;
第一构建单元,用于基于原始读写命令构建自定义重启命令。
在一些可选的实施方式中,第一构建单元包括:
识别子单元,用于对原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小;
生成子单元,用于获取重启操作码和命令标识符,基于命名空间标识符、目的地起始地址、空间大小、重启操作码和命令标识符生成自定义重启命令。
在一些可选的实施方式中,识别子单元具体用于对原始读写命令进行字段识别,确定命名空间标识符、起始逻辑块地址和逻辑块数;将起始逻辑块地址作为目的地起始地址,将逻辑块数作为空间大小。
在一些可选的实施方式中,确定模块1202具体用于分别将命名空间标识符、目的地起始地址和空间大小和命名空间与磁盘信息映射表中的命名空间信息进行匹配,确定当前命名空间,并基于当前命名空间确定重启磁盘信息。
在一些可选的实施方式中,构建模块1201包括:
第二确定单元,用于获取网络管理异常反馈数据,基于网络管理异常反馈数据确定原始网络管理命令;
第二构建单元,用于基于原始网络管理命令构建自定义重启命令。
在一些可选的实施方式中,重启模块1203包括:
拆分单元,用于当重启磁盘位置对应的磁盘信息为多个磁盘时,则对自定义重启命令进行拆分,生成多个重启命令;
第一重启单元,用于当磁盘类型为SATA HDD盘时,则将重启命令转换为串行协议,并基于串行协议调用串行接口,利用串行接口重启SATA HDD盘;
第二重启单元,用于当磁盘类型为NVMe SSD盘时,则基于重启命令调用逻辑接口,利用逻辑接口重启NVMe SSD盘;
第三重启单元,用于当重启磁盘位置为下一级联扩展芯片时,则将重启命令透传给下一级联扩展芯片进行重启处理。
在一些可选的实施方式中,重启模块1203还包括:
第四重启单元,用于当重启磁盘位置对应的磁盘信息为单个磁盘时,则基于自定义重启命令重启对应磁盘。
在一些可选的实施方式中,第三重启单元包括:
获取子单元,用于当重启磁盘位置为下一级联扩展芯片时,则获取下一级联扩展芯片对应的命名空间信息;
重启子单元,用于基于命名空间信息修改重启命令,将修改后的重启命令发送给下一级联扩展芯片挂载的磁盘,以重启下一级联扩展芯片挂载的磁盘。
在一些可选的实施方式中,重启模块1203还包括:
存储单元,用于基于多个重启命令生成重启链表,并将重启链表进行存储。
在一些可选的实施方式中,还包括:
反馈模块,用于异步接收多个磁盘发送的命令执行反馈数据,将命令执行反馈数据发送给主机。
在一些可选的实施方式中,反馈模块包括:
组合单元,用于异步接收多个磁盘发送的命令执行反馈数据,并将命令执行反馈数据进行组合,生成自定义重启命令执行结果;
对比单元,用于将自定义重启命令执行结果与重启链表进行对比,基于对比结果将自定义重启命令执行结果发送给主机。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的磁盘重启的控制装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
在本实施例中还提供了一种存储设备,如图13所示,存储设备包括:当前扩展芯片1301和多个磁盘1302,当前扩展芯片1301和多个磁盘1302连接;其中,
当前扩展芯片1301,用于构建自定义重启命令,并基于自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置,基于重启磁盘位置将自定义重启命令发送给多个磁盘1302;
具体地,将自定义重启命令定义为基于namespace(命名空间)的reset命令(即重启命令),具体由以下信息构成:1)基于NS(即namespace)的reset命令操作码,即重启操作码;2)命令标识符,类似标准SQE(Submission Queue Entry,提交队列项)中的字段CommandIdentifier(CID,命名标识符),代表一个命令的唯一编号;3)Namespace标识符,类似标准SQE中的字段Namespace Identifier(NSID,命名域标识符);4)目的地起始地址,类似标准SQE中的字段Starting LBA(SLBA,起始逻辑块地址);5)空间大小,类似标准SQE中的字段Number of Logical Block(NLB,逻辑块数)。
进一步地,存储设备包含多级扩展芯片,每级扩展芯片之间通过PCIe连接;主机挂载有SATA HDD(Hard Disk Drive,硬盘驱动器)盘和NVMe SSD(Solid State Drive,固态硬盘)盘,同时与当前扩展芯片1301连接。
进一步地,重启操作码是固定的,命令标识符需要与其他命令不冲突。
进一步地,当前扩展芯片1301可以采用PCIe卡,PCIe卡(又名PCI Express卡,即基于PCIe的卡)是指一种具有PCIe接口的网络适配器,在主板级连接中用作扩展卡接口;具体而言,基于PCIe的扩展卡设计用于安装在主机、服务器和网络交换机等设备主板中基于PCIe的插槽中;大多数PC(Personal Computer,个人计算机)的主板都有PCIe插槽,仅用于将PCIe卡安装在相应的PCIe插槽中;PCI Express卡不同于处理来自多个源的数据的总线的执行步骤,而是可以通过开关实现一系列点对点连接,以控制数据需要去哪里;插入PCIe网卡后,将在插槽和卡之间形成逻辑连接以进行通信,称为互连或链路,从而在两个PCIe端口之间启用点对点通信通道,并允许它们都发送和接收普通的PCI请求和中断。
进一步地,扩展芯片收到输入输出(IO)错误的信息是由于其无法在磁盘上存取或写入数据,通常是由于电缆松动或电缆故障导致的;首先,应该检查SATA或SAS电缆是否均匀插入到硬盘和主板插槽中,如果电缆插头没有插好,就会出现收到IO设备错误的情况,如果电缆没有问题,则利用其他电缆连接硬盘;扩展芯片显示进程或IO设备错误可能会因为硬盘自身的故障而导致;另一个使扩展芯片显示IO设备错误的常见原因是设备驱动程序的问题;硬盘驱动可能会因为太旧、过时或错误的安装而产生问题。
进一步地,分别将命名空间标识符、目的地起始地址和空间大小和命名空间与磁盘信息映射表中的命名空间信息进行匹配,确定当前命名空间,并基于当前命名空间确定重启磁盘信息。
磁盘1302,用于基于自定义重启命令进行重启操作。
具体地,利用命名空间与磁盘信息映射表确定重启磁盘位置。
进一步地,当重启磁盘位置对应的磁盘信息为单个磁盘1302时,则基于自定义重启命令重启对应磁盘1302;当重启磁盘位置对应的磁盘信息为多个磁盘1302时,则对自定义重启命令进行拆分,生成多个重启命令。
进一步地,当磁盘类型为SATA HDD盘时,则将重启命令转换为串行协议,并基于串行协议调用串行接口,利用串行接口重启SATA HDD盘;针对SATA HDD盘,将重启命令转换为SATA协议,调用SATA标准驱动进行重启动作。
进一步地,当磁盘类型为NVMe SSD盘时,则基于重启命令调用逻辑接口,利用逻辑接口重启NVMe SSD盘。
进一步地,当重启磁盘位置为下一级联扩展芯片时,则将重启命令透传给下一级联扩展芯片进行重启处理:当重启磁盘位置为下一级联扩展芯片时,则获取下一级联扩展芯片对应的命名空间信息;基于命名空间信息修改重启命令,将修改后的重启命令发送给下一级联扩展芯片挂载的磁盘1302,以重启下一级联扩展芯片挂载的磁盘1302,即修改namespace,NLB,SLBA信息之后,将修改后的重启命令下发给扩展卡,由下一级扩展卡处理。
进一步地,异步接收多个磁盘1302发送的命令执行反馈数据,并将命令执行反馈数据进行组合,生成自定义重启命令执行结果:将自定义重启命令执行结果与重启链表进行对比,基于对比结果将自定义重启命令执行结果发送给主机。
进一步地,通过将自定义重启命令执行结果与重启链表进行对比,进而判断重启链表中所涉及的磁盘1302是否均执行自定义重启命令,若重启链表中所涉及的磁盘1302均执行自定义重启命令,则将自定义重启命令执行结果发送给主机或上一级扩展卡;若重启链表中所涉及的磁盘1302未执行自定义重启命令,则等待所有磁盘1302均执行自定义重启命令后,将自定义重启命令执行结果发送给主机或上一级扩展卡。
进一步地,当涉及多级当前扩展芯片1301时,则按照级别自下而上地将自定义重启命令执行结果传输给上一级当前扩展芯片1301或主机。
进一步地,如果在自定义重启命令执行过程中重启的磁盘1302接收到新的IO命令时,将新的IO命令在本地进行缓存,直至自定义重启命令执行完成之后再下发新的IO命令。
本实施例提供的一种存储设备,通过扩展芯片与磁盘卡扩展了主机的存储空间,并且,当读写命令异常时,扩展芯片基于读写命令生成自定义重启命令,磁盘基于自定义重启命令进行重启操作,实现了异常磁盘的读写命令解析,且基于自定义重启命令对原始读写命令对应磁盘的重启操作,实现了对扩展卡挂载的单个或者少量磁盘单独重启,而不影响其他正常的磁盘继续接收读写命令。
在一些可选的实施方式中,还包括:下一级联扩展芯片1303;
下一级联扩展芯片1303与当前扩展芯片1301连接,并挂载有多个磁盘1302,用于扩展存储设备1301的存储空间。
在一些可选的实施方式中,当前扩展芯片1301的下行端口通过NVMe/SATA双模PHY(Physical Layer,端口物理层)1304分别与多个磁盘1302和下一级联扩展芯片1303连接。
具体地,下行端口使用NVMe/SATA双模PHY1304实现对SATA和NVMe同时扩展,还可以继续连接EXP(Expander,扩展器)对盘的数量进行扩展。
进一步地,NVMe是一个逻辑设备接口规范,用于连接计算机主板上的NVMe存储设备,如固态硬盘(SSD)、PCIe存储卡和U.2存储设备,NVMe也可以提供更快的数据传输速度和更高的I/O吞吐量,以满足高性能存储的需求;NVMe与传统的SATA和SAS接口相比,具有更高的数据传输速度和更低的延迟。NVMe的优势在于它可以提供更高的I/O吞吐量和更低的延迟,使得数据传输更加快速,可以满足现代应用的高性能存储需求。
进一步地,NVMe标准支持多路I/O,可以支持多个命令队列,每个队列可以支持多个I/O请求。
在一些可选的实施方式中,当前扩展芯片1301的上行端口通过PCIe与主机连接。
在一些可选的实施方式中,多个磁盘1302包括SATA HDD盘和NVMe SSD盘。
具体地,当与下行端口通信的磁盘1302为SATA HDD盘时,则需要将NVMe转换为SATA协议,进而将转换后的数据通过NVMe/SATA双模PHY1304传输给SATA HDD盘。
进一步地,串口硬盘与固态硬盘包括磁盘阵列,磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上;磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真:外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵;内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作;利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。
本发明实施例还提供一种计算机设备,具有上述图12所示的磁盘重启的控制装置。
请参阅图14,图14是本发明可选实施例提供的一种计算机设备的结构示意图,如图14所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图14中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图14中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (18)
1.一种磁盘重启的控制方法,其特征在于,应用于当前扩展芯片,所述当前扩展芯片和磁盘连接,所述方法包括:
构建自定义重启命令;
基于所述自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置;
基于所述重启磁盘位置重启对应的磁盘;
所述构建自定义重启命令,包括:
获取读写异常反馈数据,基于所述读写异常反馈数据确定原始读写命令;
基于所述原始读写命令构建自定义重启命令;
所述基于所述原始读写命令构建自定义重启命令,包括:
对所述原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小;
获取重启操作码和命令标识符,基于所述命名空间标识符、所述目的地起始地址、所述空间大小、所述重启操作码和所述命令标识符生成所述自定义重启命令。
2.根据权利要求1所述的方法,其特征在于,所述对所述原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小,包括:
对所述原始读写命令进行字段识别,确定命名空间标识符、起始逻辑块地址和逻辑块数;
将所述起始逻辑块地址作为所述目的地起始地址,将所述逻辑块数作为所述空间大小。
3.根据权利要求1所述的方法,其特征在于,所述基于所述自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置,包括:
分别将所述命名空间标识符、所述目的地起始地址和所述空间大小和所述命名空间与磁盘信息映射表中的命名空间信息进行匹配,确定当前命名空间,并基于所述当前命名空间确定所述重启磁盘信息。
4.根据权利要求1所述的方法,其特征在于,所述构建自定义重启命令,包括:
获取网络管理异常反馈数据,基于所述网络管理异常反馈数据确定原始网络管理命令;
基于所述原始网络管理命令构建自定义重启命令。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述基于所述重启磁盘位置重启对应的磁盘,包括:
当所述重启磁盘位置对应的磁盘信息为多个磁盘时,则对所述自定义重启命令进行拆分,生成多个重启命令;
当磁盘类型为SATA HDD盘时,则将所述重启命令转换为串行协议,并基于所述串行协议调用串行接口,利用所述串行接口重启所述SATA HDD盘;
当磁盘类型为NVMe SSD盘时,则基于所述重启命令调用逻辑接口,利用所述逻辑接口重启所述NVMe SSD盘;
当所述重启磁盘位置为下一级联扩展芯片时,则将所述重启命令透传给所述下一级联扩展芯片进行重启处理。
6.根据权利要求5所述的方法,其特征在于,所述基于所述重启磁盘位置重启对应的磁盘,还包括:
当所述重启磁盘位置对应的磁盘信息为单个磁盘时,则基于所述自定义重启命令重启对应磁盘。
7.根据权利要求5所述的方法,其特征在于,所述当所述重启磁盘位置为下一级联扩展芯片时,则将所述重启命令透传给所述下一级联扩展芯片进行重启处理,包括:
当所述重启磁盘位置为下一级联扩展芯片时,则获取所述下一级联扩展芯片对应的命名空间信息;
基于所述命名空间信息修改所述重启命令,将修改后的重启命令发送给所述下一级联扩展芯片挂载的磁盘,以重启下一级联扩展芯片挂载的磁盘。
8.根据权利要求5所述的方法,其特征在于,所述基于所述重启磁盘位置重启对应的磁盘,还包括:
基于多个所述重启命令生成重启链表,并将所述重启链表进行存储。
9.根据权利要求8所述的方法,其特征在于,所述当前扩展芯片与主机连接,所述方法还包括:
异步接收多个磁盘发送的命令执行反馈数据,将所述命令执行反馈数据发送给所述主机。
10.根据权利要求9所述的方法,其特征在于,所述异步接收多个磁盘发送的命令执行反馈数据,将所述命令执行反馈数据发送给所述主机,包括:
异步接收多个磁盘发送的命令执行反馈数据,并将所述命令执行反馈数据进行组合,生成自定义重启命令执行结果;
将所述自定义重启命令执行结果与所述重启链表进行对比,基于对比结果将所述自定义重启命令执行结果发送给所述主机。
11.一种磁盘重启的控制装置,其特征在于,所述装置包括:
构建模块,用于构建自定义重启命令;
确定模块,用于基于所述自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置;
重启模块,用于基于所述重启磁盘位置重启对应的磁盘;
构建模块包括:
第一确定单元,用于获取读写异常反馈数据,基于读写异常反馈数据确定原始读写命令;
第一构建单元,用于基于原始读写命令构建自定义重启命令;
第一构建单元包括:
识别子单元,用于对原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小;
生成子单元,用于获取重启操作码和命令标识符,基于命名空间标识符、目的地起始地址、空间大小、重启操作码和命令标识符生成自定义重启命令。
12.一种存储设备,其特征在于,所述存储设备包括当前扩展芯片和多个磁盘,所述当前扩展芯片和所述多个磁盘连接;其中,
所述扩展芯片,用于构建自定义重启命令,并基于所述自定义重启命令,利用命名空间与磁盘信息映射表确定重启磁盘位置,基于所述重启磁盘位置将所述自定义重启命令发送给所述多个磁盘;其中,获取读写异常反馈数据,基于读写异常反馈数据确定原始读写命令;对原始读写命令进行字段识别,并基于字段识别结果分别确定命名空间标识符、目的地起始地址和空间大小;获取重启操作码和命令标识符,基于命名空间标识符、目的地起始地址、空间大小、重启操作码和命令标识符生成自定义重启命令;
所述磁盘,用于基于所述自定义重启命令进行重启操作。
13.根据权利要求12所述的存储设备,其特征在于,所述存储设备还包括:下一级联扩展芯片;
所述下一级联扩展芯片与所述当前扩展芯片连接,并挂载有多个磁盘,用于扩展存储设备的存储空间。
14.根据权利要求13所述的存储设备,其特征在于,所述当前扩展芯片的下行端口通过NVMe/SATA双模PHY分别与所述多个磁盘和所述下一级联扩展芯片连接。
15.根据权利要求12所述的存储设备,其特征在于,所述当前扩展芯片的上行端口通过PCIe与主机连接。
16.根据权利要求12所述的存储设备,其特征在于,所述多个磁盘包括SATA HDD盘和NVMe SSD盘。
17.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至10中任一项所述的磁盘重启的控制方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至10中任一项所述的磁盘重启的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311518251.4A CN117234437B (zh) | 2023-11-15 | 2023-11-15 | 一种存储设备、磁盘重启的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311518251.4A CN117234437B (zh) | 2023-11-15 | 2023-11-15 | 一种存储设备、磁盘重启的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117234437A CN117234437A (zh) | 2023-12-15 |
CN117234437B true CN117234437B (zh) | 2024-02-13 |
Family
ID=89083047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311518251.4A Active CN117234437B (zh) | 2023-11-15 | 2023-11-15 | 一种存储设备、磁盘重启的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234437B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885686A (zh) * | 2017-12-01 | 2018-04-06 | 郑州云海信息技术有限公司 | 一种采用bmc控制单个硬盘重启的系统及方法 |
CN115757207A (zh) * | 2022-11-18 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 缓存状态管理方法、装置、通信设备及存储介质 |
CN116414616A (zh) * | 2021-12-31 | 2023-07-11 | 华为技术有限公司 | 一种固态硬盘ssd故障恢复方法、ssd及系统 |
-
2023
- 2023-11-15 CN CN202311518251.4A patent/CN117234437B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885686A (zh) * | 2017-12-01 | 2018-04-06 | 郑州云海信息技术有限公司 | 一种采用bmc控制单个硬盘重启的系统及方法 |
CN116414616A (zh) * | 2021-12-31 | 2023-07-11 | 华为技术有限公司 | 一种固态硬盘ssd故障恢复方法、ssd及系统 |
CN115757207A (zh) * | 2022-11-18 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 缓存状态管理方法、装置、通信设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117234437A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI594600B (zh) | 網路交換器與使用網路交換器更新裝置的方法 | |
US9798682B2 (en) | Completion notification for a storage device | |
TWI616758B (zh) | 遠端多電腦切換技術之儲存裝置、系統及方法 | |
US10936295B2 (en) | Software update system | |
US9195483B2 (en) | Systems and methods for mirroring virtual functions in a chassis configured to receive a plurality of modular information handling systems and a plurality of modular information handling resources | |
US20150149815A1 (en) | Bios failover update with service processor having direct serial peripheral interface (spi) access | |
US20140289462A9 (en) | Processor agnostic data storage in a pcie based shared storage environment | |
US10949307B2 (en) | Executing computer instruction including asynchronous operation | |
US10482049B2 (en) | Configuring NVMe devices for redundancy and scaling | |
US10558453B1 (en) | System and method to achieve shared drive firmware version consistency via ESRT update | |
US9239807B2 (en) | Providing bus resiliency in a hybrid memory system | |
US11093175B1 (en) | Raid data storage device direct communication system | |
US11106607B1 (en) | NUMA-aware storage system | |
US11163644B2 (en) | Storage boost | |
CN117234437B (zh) | 一种存储设备、磁盘重启的控制方法及装置 | |
US10452464B1 (en) | Automatic human configuration error detection for reoccurring events | |
US11334261B2 (en) | Scalable raid storage controller device system | |
US11093180B2 (en) | RAID storage multi-operation command system | |
US20140316539A1 (en) | Drivers and controllers | |
US12045159B2 (en) | Automation test accelerator | |
US11782726B1 (en) | Serial bootstrap | |
CN117931097B (zh) | 应用于边缘计算集群的服务器的信息提供方法及装置 | |
US11461054B2 (en) | Concurrent tape access | |
WO2018125031A1 (en) | Cross-component health monitoring and improved repair for self-healing platforms | |
CN109391327B (zh) | 自动组合数据中心数据的方法及系统 |
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 |