CN110399171A - 一种硬盘管理方法、系统及相关组件 - Google Patents
一种硬盘管理方法、系统及相关组件 Download PDFInfo
- Publication number
- CN110399171A CN110399171A CN201910666517.7A CN201910666517A CN110399171A CN 110399171 A CN110399171 A CN 110399171A CN 201910666517 A CN201910666517 A CN 201910666517A CN 110399171 A CN110399171 A CN 110399171A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- target
- expander
- hard
- carry information
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
- G06F9/4413—Plug-and-play [PnP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种硬盘管理方法,所述硬盘管理方法包括当检测到硬盘插拔事件时,获取当前硬盘挂载信息;根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。本申请能够避免因硬盘热插拔到来的读写异常。本申请还公开了一种硬盘管理系统、一种计算机可读存储介质及一种存储设备,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种硬盘管理方法、系统、一种计算机可读存储介质及一种存储设备。
背景技术
网络存储主机是一个计算机系统,包括CPU(Central Processing Unit,中央处理器)、主板、内存、硬盘等,网络存储主机通过网络接收数据,然后把数据存到硬盘。
硬盘是挂接到网络存储主机上的方式为:网络存储主机的PCIE硬件接口外接SAS卡,SAS卡包含2个硬件Port,每个Port接4根PHY,PHY外接Expander,Expander外接多个硬盘。硬件连接好后,网络存储主机会把SAS卡、Expander、硬盘组织起来,建立树形拓扑结构,对Expander、硬盘进行管理,方便上层应用程序进行硬盘访问,进而实现网络存储主机对硬盘的读写访问。
当网络存储主机在工作过程中出现硬盘拔出的情况时,网络存储主机还认为这块硬盘存在仍继续读写,当网络存储主机在工作过程中出现硬盘插入的情况时,网络存储主机无法感知到有硬盘插入,无法对新插入硬盘执行读写操作。
因此,如何避免因硬盘热插拔到来的读写异常是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种硬盘管理方法、系统、一种计算机可读存储介质及一种存储设备,能够避免因硬盘热插拔到来的读写异常。
为解决上述技术问题,本申请提供一种硬盘管理方法,该硬盘管理方法包括:
当检测到硬盘插拔事件时,获取当前硬盘挂载信息;
根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
可选的,当所述目标硬盘为所述被插入硬盘时,根据所述目标硬盘的插拔状态执行对应的硬盘管理操作包括:
向SAS转接卡发送SMP Register协议,以便注册所述目标硬盘;
和/或,向上层应用发送所述目标磁盘被插入的通知信息。
可选的,当所述目标硬盘为所述被拔出硬盘时,根据所述目标硬盘的插拔状态执行对应的硬盘管理操作包括:
删除任务队列中所述目标硬盘对应的SSP命令和/或SMP命令;
和/或,通过SMP Deregister协议将所述目标硬盘从SAS转接卡上注销;
和/或,删除所述目标磁盘在系统中占用的内存;
和/或,向上层应用发送所述目标磁盘被拔出的通知信息。
可选的,所述获取当前硬盘挂载信息包括:
通过调用扩展器发现函数接口启动扩展器搜索状态机,以便利用所述扩展器搜索状态机获取所述当前硬盘挂载信息。
可选的,所述扩展器搜索状态机获取所述当前硬盘挂载信息包括:
向扩展器发送第一SMP命令,以便获取所述扩展器的生产厂家信息;
根据所述生产厂家信息构建第二SMP命令,并向所述扩展器发送所述第二SMP命令;
接收所述扩展器根据所述第二SMP命令返回的扩展器挂载参数,根据所述扩展器挂载参数生成所述当前硬盘挂载信息。
可选的,根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘包括:
将所述原硬盘挂载信息对应的磁盘的状态设置为可疑状态;
将所述当前硬盘挂载信息对应的磁盘的状态设置为信任状态;
将未由所述可疑状态切换为信任状态的磁盘设置为所述目标硬盘。
本申请还提供了一种硬盘管理系统,该硬盘管理系统包括:
当前挂载信息获取模块,用于当检测到硬盘插拔事件时,获取当前硬盘挂载信息;
目标硬盘确定模块,用于根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
管理模块,用于根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述硬盘管理方法执行的步骤。
本申请还提供了一种存储设备,包括:
Port搜索状态机,用于判断是否存在硬盘插拔事件;若是,则启动Domain管理状态机对应的工作流程;
所述Domain管理状态机,用于通过扩展器搜索状态机获取当前硬盘挂载信息,并根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
Driver管理状态机,用于根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
可选的,所述存储设备的PCIE硬件接口外接SAS转接卡,硬盘通过扩展器外接于所述SAS转接卡。
本申请提供了一种硬盘管理方法,包括当检测到硬盘插拔事件时,获取当前硬盘挂载信息;根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
本申请在检测到硬盘插拔事件时,确定当前硬盘挂载信息,并结合原硬盘挂载信息确定硬盘插拔事件对应的目标硬盘。当前硬盘挂载信息指当前时刻已挂载的硬盘,原硬盘挂载信息指历史时刻已挂载的硬盘,由于硬盘插拔事件会引起硬盘挂载状态的变化,通过对比当前信息和历史信息可以确定硬盘挂载信息的变化情况,进而确定硬盘插拔事件对应的目标硬盘。在确定目标磁盘的基础上,本申请根据所述目标硬盘的插拔状态执行对应的硬盘管理操作,能够避免因硬盘热插拔到来的读写异常。本申请同时还提供了一种硬盘管理系统、一种计算机可读存储介质和一种存储设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种硬盘管理方法的流程图;
图2为本申请实施例提供的一种网络存储主机的硬件拓扑结构示意图;
图3为本申请实施例所提供的另一种硬盘管理方法的流程图;
图4为网络存储设备四种状态机的工作转化以及调用关系示意图;
图5为本申请实施例所提供的一种硬盘管理系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
网络存储主机对SAS HDD硬盘的读写访问量能够达到200MBPS,对SAS SSD硬盘的读写访问量能够达到600MBPS,网络存储主机对硬盘的读写访问数据量非常大,如果此时出现某块硬盘被拔出的情况,如果没有方法能够处理硬盘拔出这种情况,网络存储主机还认为这块硬盘存在,还在进行读写,后果不堪设想,也许会引起网络存储主机因为情况不可预见导致宕机,也许会因为这块硬盘被拔出导致数据丢失。
硬盘被拔出的特殊情况,比如某块硬盘出现坏块,性能变差影响系统效率,需要拔出;或者某块硬盘因为其他地方要用,需要拔出;甚至硬盘插入接触不良,导致硬盘意外被拔出。如果把网络存储主机断电,然后拔出硬盘的,然后再给网络存储主机上电,当时上述操作将会打断数据存储业务。本申请通过以下几个实施例提供新的硬盘管理方法,能够达到避免因硬盘热插拔到来的读写异常的目的。
下面请参见图1,图1为本申请实施例所提供的一种硬盘管理方法的流程图。
具体步骤可以包括:
S101:当检测到硬盘插拔事件时,获取当前硬盘挂载信息;
其中,本实施例的执行主体可以为网络存储主机,网络存储主机是一个计算机系统,包括CPU、主板、内存、硬盘等,网络存储主机通过网络(网线、光纤)接收数据,然后把数据存到硬盘。
硬盘是挂接到网络存储主机的方式为:网络存储主机的PCIE硬件接口外接SAS卡,SAS卡包含2个硬件Port,每个Port接4根PHY,PHY外接Expander,Expander外接多个硬盘。硬件拓扑结构如图2所示,图2为本申请实施例提供的一种网络存储主机的硬件拓扑结构示意图。硬件连接好后,网络存储主机会把SAS卡、Expander、硬盘组织起来,建立树形拓扑结构,对Expander、硬盘进行管理,方便上层应用程序进行硬盘访问,进而实现网络存储主机对硬盘的读写访问。
基于上述情况,SAS卡必须能够在不断电的情况下处理硬盘的拔出,本实施例提出一种网络存储主机上SAS卡处理硬盘拔出的技术方法。当硬盘拔出后,网络存储主机会收到中断提示(有硬盘被拔出),通过使用状态机,按照状态变化重新进行硬盘搜索,建立临时硬盘拓扑结构,对比之前硬盘拓扑结构,找出被拔出的硬盘,删除网络存储主机系统中关于这块硬盘的信息,停止使用此块硬盘,并清除对此硬盘缓冲的读写操作。
硬盘插拔事件包括硬盘插入事件和硬盘拔出事件,本实施例不限定硬盘插入事件对应的硬盘数量,也不限定硬盘拔出事件对应的硬盘数量,当然也可以同时存在硬盘插入和硬盘拔出的情况。
本实施例在检测到硬盘拔出事件之后,获取当前硬盘挂载信息,硬盘挂载信息指网络存储主机上各个硬盘挂载端口的挂载情况。根据当前硬盘挂载信息可以确定当前时刻挂载于网络存储主机的硬盘。作为一种可选的实施方式,当前硬盘挂载信息可以包括当前股灾与网络存储主机的硬盘所对应的硬盘ID。
S102:根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;
其中,本实施例可以存在按照预设周期确定硬盘挂载信息的操作,并将距离当前时刻最近的硬盘挂载信息作为原硬盘挂载信息。也就是说,本实施例中当前硬盘挂载信息为出现硬盘插拔事件后的硬盘挂载状况,原硬盘挂载事件为硬盘插拔事件前的硬盘挂载状况,通过对比当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘。
举例说明上述操作,在出现硬盘插拔事件之后得到的当前硬盘挂载信息,并确定出现硬盘挂载事件之前距离当前时间最近的原硬盘挂载信息。根据当前硬盘挂载信息确定当前时刻有A、B和C三个硬盘挂载于网络存储主机,根据原硬盘挂载信息确定在出现硬盘插拔事件之前有A、B、C、D四个硬盘挂载于网络存储主机,由此可知硬盘插拔事件为硬盘D被拔出。进一步的,若根据原硬盘挂载信息确定在出现硬盘插拔事件之前有A和两个硬盘挂载于网络存储主机,由此可知硬盘插拔事件为硬盘C被插入。
本实施例中的目标硬盘为引起硬盘插拔时间的硬盘,具体的目标硬盘可以为被拔出硬盘,可以为被插入硬盘,也可以为被拔出硬盘和被插入硬盘。
S103:根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
其中,本实施例在确定硬盘插拔事件对应的目标硬盘的基础上,若目标硬盘为被插入硬盘可以在后续的业务处理中将数据存储至目标硬盘,若目标永攀为被拔出硬盘则可以取消关于目标硬盘的数据处理操作。
作为一种可行的实施方式,当所述目标硬盘为所述被插入硬盘时,根据所述目标硬盘的插拔状态执行对应的硬盘管理操作包括:向SAS转接卡发送SMP Register协议,以便注册所述目标硬盘;向上层应用发送所述目标磁盘被插入的通知信息。
作为一种可行的实施方式,当所述目标硬盘为所述被拔出硬盘时,根据所述目标硬盘的插拔状态执行对应的硬盘管理操作包括:删除任务队列中所述目标硬盘对应的SSP命令和/或SMP命令;通过SMP Deregister协议将所述目标硬盘从SAS转接卡上注销;删除所述目标磁盘在系统中占用的内存;向上层应用发送所述目标磁盘被拔出的通知信息。
本实施例在检测到硬盘插拔事件时,确定当前硬盘挂载信息,并结合原硬盘挂载信息确定硬盘插拔事件对应的目标硬盘。当前硬盘挂载信息指当前时刻已挂载的硬盘,原硬盘挂载信息指历史时刻已挂载的硬盘,由于硬盘插拔事件会引起硬盘挂载状态的变化,通过对比当前信息和历史信息可以确定硬盘挂载信息的变化情况,进而确定硬盘插拔事件对应的目标硬盘。在确定目标磁盘的基础上,本实施例根据所述目标硬盘的插拔状态执行对应的硬盘管理操作,能够避免因硬盘热插拔到来的读写异常。
下面请参见图3,图3为本申请实施例所提供的另一种硬盘管理方法的流程图,具体步骤可以包括:
S201:当检测到硬盘插拔事件时,通过调用扩展器发现函数接口启动扩展器搜索状态机,以便利用所述扩展器搜索状态机获取所述当前硬盘挂载信息。
S202:将所述原硬盘挂载信息对应的磁盘的状态设置为可疑状态;
S203:将所述当前硬盘挂载信息对应的磁盘的状态设置为信任状态;
S204:将未由所述可疑状态切换为信任状态的磁盘设置为所述目标硬盘。
S205:根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
作为一种可行的实施方式,S201中描述的扩展器搜索状态机获取所述当前硬盘挂载信息可以包括以下步骤:
步骤1:向扩展器发送第一SMP命令,以便获取所述扩展器的生产厂家信息;
步骤2:根据所述生产厂家信息构建第二SMP命令,并向所述扩展器发送所述第二SMP命令;
步骤3:接收所述扩展器根据所述第二SMP命令返回的扩展器挂载参数,根据所述扩展器挂载参数生成所述当前硬盘挂载信息。
下面通过在实际应用中的一种网络存储主机上SAS卡处理硬盘拔出的方法说明上述实施例描述的流程。
首先对下文涉及到的英文进行解释:
Port:端口;
PHY:Port Physical Layer,物理接口;
Expander:扩展器,扩展连接硬盘;
WWID:world wide ID,全球唯一标识ID;
WWNN:world wide node number,全球唯一节点号;
SMP协议:SAS Management Protocol SAS管理协议,用来管理Expander、硬盘,与它们通讯;
Uninitialized:未初始化的;
Initializing:正在初始化;
Manufacturer:生产厂家;
Discovery:搜索、发现;
Domain:域名,可以理解为SAS卡、Expander、硬盘的拓扑结构。
本实施例共使用4个状态机,先分别介绍各个状态机的过程和作用,然后用图形表示状态机之间交互运作关系,最终实现处理硬盘拔出。
(1)Port搜索状态机
Port搜索状态机的作用是开启Port搜索。
Port搜索状态机状态:Discovery Complete:拓扑完成状态,硬盘被拔出前,整个拓扑结构早已被建立是完成状态。Up Discovery:拔盘后,Expander会上报broadcastchange中断事件到SAS卡,通报有硬盘被拔出,系统收到中断事件后,状态机进入此状态。向系统上层报告Port Discovery Start,告知上层应用正在处理硬盘拔出情况,随后启动Domain管理状态机。
(2)Domain管理状态机
Domain管理状态机作用为组织架构关系。
Domain管理状态机状态包括:
Stable:Domain稳定状态,硬盘被拔出前,那时整个Domain已经建立完成,处于稳定状态。
Discovery:搜索状态,把Domain Database中各个硬盘的状态设为可疑的,调用Expander发现函数接口,启动Expander Discovery状态机。
Driver Discovery:硬盘搜索状态,搜索Expander上挂接的硬盘,调用硬盘发现函数接口,登记硬盘信息(包括硬盘WWID、生产厂商等)。直到处理完最后一个硬盘,被重新搜索到的硬盘在Domain Database中被标为信任的,没有被标为信任的就是被拔出的硬盘。开启Driver管理状态机。
(3)Expander Discovery状态机:
Expander Discovery状态机的作用:对Expander进行搜索。
Expander Discovery状态机的状态包括:
Initialize:构造获取Expander Manufacturer信息的SMP命令,通过SAS卡发送给Expander。
Report Manufacturer:Expander把Manufacturer信息通过SMP协议发送给SAS卡,网络存储主机系统获得Expander Manufacturer信息(此Expander制造商是谁、Expander编号等)。然后构造获取Expander一般信息的SMP命令,通过SAS卡发送给Expander。
Report General:Expander把一般信息通过SMP协议发送给SAS卡,网络存储主机系统获得Expander的一般信息(Expander支持的SAS协议版本、Expander一共包含PHY的个数、Expander内Enclosure信息等)。然后构造获取拓扑设备列表的SMP命令(获得Expander上连接的设备个数和信息),通过SAS卡发送给Expander。
Discovery List:Expander分多次把Expander上挂接的设备(包括设备信息)通过SMP协议发送给SAS卡,网络存储主机通过发过来的设备信息中附属的PHY信息,等待所有附属在此Expander上的所有硬盘都上报完毕。回到Domain管理状态机。
(4)Driver管理状态机:
Driver管理状态机的作用为对硬盘进行管理
Driver管理状态机的状态包括:
Remove:删掉被拔出硬盘的信息,清理队列中针对此硬盘的SSP、SMP命令,通知上层应用此硬盘被拔出。发送SMP Deregister协议,从SAS卡上注销掉此硬盘,清理此硬盘在系统中占用的内存。
A表示Port搜索状态机;
B表示Domain管理状态机;
C表示Expander Discovery状态机;
D表示Driver管理状态机。
请参见图4,图4为网络存储设备四种状态机的工作转化以及调用关系示意图,最终通过重新搜索、对比硬盘,找到拔出的硬盘,然后进行删除硬盘信息。
本实施例提出了一种网络存储主机上SAS卡处理硬盘拔出的技术方法。通过4个状态机的交互作用找出被拔掉的硬盘,清除硬盘在系统中的信息,重新建立拓扑结构,停止系统对硬盘的访问,使网络存储主机在不断电的情况下,实现硬盘拔出,而不影响整个系统的运行。本实施例使用状态机进行分层流程控制。整个操作过程,最终处理硬盘拔出情况。采用新旧搜索结果对比的方式,分辨出被拔出硬盘。本实施例提出一种网络存储主机上SAS卡处理硬盘拔出的技术方法。当硬盘拔出后,网络存储主机会收到中断提示,通过使用状态机,按照状态变化,重新进行搜索硬盘,建立临时硬盘拓扑结构,对比之前硬盘拓扑结构,找出被拔出的硬盘,删除网络存储主机系统中关于这块硬盘的信息,停止使用此块硬盘,并清除对此硬盘的读写操作。上述过程中使用状态机,按照状态变化,一步一步找到被拔出的硬盘,去除硬盘拔出对系统的影响。
下面通过在实际应用中的一种网络存储主机上SAS卡处理硬盘插入的方法说明上述实施例描述的流程。
本实施例共使用4个状态机,先分别介绍各个状态机的过程和作用,然后用图形表示状态机之间交互运作关系,最终实现处理硬盘插入。
(1)Port搜索状态机
Port搜索状态机作用是开启Port搜索
Port搜索状态机状态包括:
Discovery Complete:拓扑完成状态,硬盘被插入前,整个拓扑结构早已被建立,是完成状态。
Up Discovery:插盘后,Expander会上报broadcast change中断事件到SAS卡,通报有硬盘被插入,系统收到中断事件后,状态机进入此状态。向系统上层报告PortDiscovery Start,告知上层应用正在处理硬盘插入情况,随后启动Domain管理状态机。
(2)Domain管理状态机
Domain管理状态机作用为组织架构关系
Domain管理状态机状态包括:
Stable:Domain稳定状态,硬盘被插入前,那时整个Domain已经建立完成,处于稳定状态。
Discovery:搜索状态,把Domain Database中各个硬盘的状态设为可疑的,调用Expander发现函数接口,启动Expander Discovery状态机。
Driver Discovery:硬盘搜索状态,搜索Expander上挂接的硬盘,调用硬盘发现函数接口,登记硬盘信息(包括硬盘WWID、生产厂商等)。直到处理完最后一个硬盘,被重新搜索到的硬盘在Domain Database中被标为信任的,没有在Domain Database中而被搜索到的硬盘即为刚插入的新盘。开启Driver管理状态机。
(3)Expander Discovery状态机
Expander Discovery状态机作用为对Expander进行搜索。
Expander Discovery状态机状态包括:
Initialize:构造获取Expander Manufacturer信息的SMP命令,通过SAS卡发送给Expander。
Report Manufacturer:Expander把Manufacturer信息通过SMP协议发送给SAS卡,网络存储主机系统获得Expander Manufacturer信息(此Expander制造商是谁、Expander编号等)。然后构造获取Expander一般信息的SMP命令,通过SAS卡发送给Expander。
Report General:Expander把一般信息通过SMP协议发送给SAS卡,网络存储主机系统获得Expander的一般信息(Expander支持的SAS协议版本、Expander一共包含PHY的个数、Expander内Enclosure信息等)。然后构造获取拓扑设备列表的SMP命令(获得Expander上连接的设备个数和信息),通过SAS卡发送给Expander。
Discovery List:Expander分多次把Expander上挂接的设备(包括设备信息)通过SMP协议发送给SAS卡,网络存储主机通过发过来的设备信息中附属的PHY信息,等待所有附属在此Expander上的所有硬盘都上报完毕。回到Domain管理状态机。
(4)Driver管理状态机
Driver管理状态机作用为对硬盘进行管理
Driver管理状态机状态包括:
Found:发送SMP Register协议,向SAS卡注册这块新盘,向上层应用通知新盘被接入。
本实施例中4个状态机的工作转化以及调用关系请参见图4,最终通过重新搜索、对比硬盘,发现被插入的新硬盘,然后进行注册、管理。
本实施例提出了一种网络存储主机上SAS卡处理硬盘插入的技术方法。通过4个状态机的交互作用发现被插入的硬盘,注册添加新硬盘信息,建立拓扑结构,通知上层应用进行硬盘访问,使网络存储主机在不断电的情况下,实现新硬盘插入,扩大存储总容量。本实施例使用状态机进行分层流程控制。整个操作过程,最终处理硬盘插入。采用新旧搜索结果对比的方式,分辨出新插入硬盘。本实施例提出一种网络存储主机上SAS卡处理硬盘插入的技术方法。当硬盘插入后,网络存储主机会收到中断提示,通过使用状态机,按照状态变化,重新进行搜索硬盘,建立临时硬盘拓扑结构,对比之前硬盘拓扑结构,找出被插入的硬盘,注册新硬盘到SAS卡,添加新硬盘数据结构到拓扑结构中,通知上层进行访问使用。上述过程中使用状态机,按照状态变化,一步一步找到被插入的硬盘,支持对新硬盘的使用,扩大存储总容量。
请参见图5,图5为本申请实施例所提供的一种硬盘管理系统的结构示意图;
该系统可以包括:
当前挂载信息获取模块100,用于当检测到硬盘插拔事件时,获取当前硬盘挂载信息;
目标硬盘确定模块200,用于根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
管理模块300,用于根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
本实施例在检测到硬盘插拔事件时,确定当前硬盘挂载信息,并结合原硬盘挂载信息确定硬盘插拔事件对应的目标硬盘。当前硬盘挂载信息指当前时刻已挂载的硬盘,原硬盘挂载信息指历史时刻已挂载的硬盘,由于硬盘插拔事件会引起硬盘挂载状态的变化,通过对比当前信息和历史信息可以确定硬盘挂载信息的变化情况,进而确定硬盘插拔事件对应的目标硬盘。在确定目标磁盘的基础上,本实施例根据所述目标硬盘的插拔状态执行对应的硬盘管理操作,能够避免因硬盘热插拔到来的读写异常。
进一步的,管理模块300包括:
硬盘插入第一处理单元,用于当所述目标硬盘为所述被插入硬盘时,向SAS转接卡发送SMP Register协议,以便注册所述目标硬盘;
和/或,硬盘插入第二处理单元,用于向上层应用发送所述目标磁盘被插入的通知信息。
进一步的,管理模块300包括:
硬盘拔出第一处理单元,用于当所述目标硬盘为所述被拔出硬盘时,删除任务队列中所述目标硬盘对应的SSP命令和/或SMP命令;
和/或,硬盘拔出第二处理单元,用于通过SMP Deregister协议将所述目标硬盘从SAS转接卡上注销;
和/或,硬盘拔出第三处理单元,用于删除所述目标磁盘在系统中占用的内存;
和/或,硬盘拔出第四处理单元,用于向上层应用发送所述目标磁盘被拔出的通知信息。
进一步的,当前挂载信息获取模块100具体为用于通过调用扩展器发现函数接口启动扩展器搜索状态机,以便利用所述扩展器搜索状态机获取所述当前硬盘挂载信息的模块。
进一步的,目标硬盘确定模块200包括:
第一状态设置单元,用于将所述原硬盘挂载信息对应的磁盘的状态设置为可疑状态;
第二状态设置单元,用于将所述当前硬盘挂载信息对应的磁盘的状态设置为信任状态;
硬盘确定单元,用于将未由所述可疑状态切换为信任状态的磁盘设置为所述目标硬盘。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种存储设备,包括:
Port搜索状态机,用于判断是否存在硬盘插拔事件;若是,则启动Domain管理状态机对应的工作流程;
所述Domain管理状态机,用于通过扩展器搜索状态机获取当前硬盘挂载信息,并根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
Driver管理状态机,用于根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
进一步的,所述存储设备的PCIE硬件接口外接SAS转接卡,硬盘通过扩展器外接于所述SAS转接卡。
当然所述存储设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种硬盘管理方法,其特征在于,包括:
当检测到硬盘插拔事件时,获取当前硬盘挂载信息;
根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
2.根据权利要求1所述硬盘管理方法,其特征在于,当所述目标硬盘为所述被插入硬盘时,根据所述目标硬盘的插拔状态执行对应的硬盘管理操作包括:
向SAS转接卡发送SMP Register协议,以便注册所述目标硬盘;
和/或,向上层应用发送所述目标磁盘被插入的通知信息。
3.根据权利要求1所述硬盘管理方法,其特征在于,当所述目标硬盘为所述被拔出硬盘时,根据所述目标硬盘的插拔状态执行对应的硬盘管理操作包括:
删除任务队列中所述目标硬盘对应的SSP命令和/或SMP命令;
和/或,通过SMP Deregister协议将所述目标硬盘从SAS转接卡上注销;
和/或,删除所述目标磁盘在系统中占用的内存;
和/或,向上层应用发送所述目标磁盘被拔出的通知信息。
4.根据权利要求1所述硬盘管理方法,其特征在于,所述获取当前硬盘挂载信息包括:
通过调用扩展器发现函数接口启动扩展器搜索状态机,以便利用所述扩展器搜索状态机获取所述当前硬盘挂载信息。
5.根据权利要求4所述硬盘管理方法,其特征在于,所述扩展器搜索状态机获取所述当前硬盘挂载信息包括:
向扩展器发送第一SMP命令,以便获取所述扩展器的生产厂家信息;
根据所述生产厂家信息构建第二SMP命令,并向所述扩展器发送所述第二SMP命令;
接收所述扩展器根据所述第二SMP命令返回的扩展器挂载参数,根据所述扩展器挂载参数生成所述当前硬盘挂载信息。
6.根据权利要求1所述硬盘管理方法,其特征在于,根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘包括:
将所述原硬盘挂载信息对应的磁盘的状态设置为可疑状态;
将所述当前硬盘挂载信息对应的磁盘的状态设置为信任状态;
将未由所述可疑状态切换为信任状态的磁盘设置为所述目标硬盘。
7.一种硬盘管理系统,其特征在于,包括:
当前挂载信息获取模块,用于当检测到硬盘插拔事件时,获取当前硬盘挂载信息;
目标硬盘确定模块,用于根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
管理模块,用于根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
8.一种存储设备,其特征在于,包括:
Port搜索状态机,用于判断是否存在硬盘插拔事件;若是,则启动Domain管理状态机对应的工作流程;
所述Domain管理状态机,用于通过扩展器搜索状态机获取当前硬盘挂载信息,并根据所述当前硬盘挂载信息和原硬盘挂载信息确定所述硬盘插拔事件对应的目标硬盘;其中,所述目标硬盘包括被拔出硬盘和/或被插入硬盘;
Driver管理状态机,用于根据所述目标硬盘的插拔状态执行对应的硬盘管理操作。
9.根据权利要求8所述存储设备,其特征在于,所述存储设备的PCIE硬件接口外接SAS转接卡,硬盘通过扩展器外接于所述SAS转接卡。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述硬盘管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910666517.7A CN110399171B (zh) | 2019-07-23 | 2019-07-23 | 一种硬盘管理方法、系统及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910666517.7A CN110399171B (zh) | 2019-07-23 | 2019-07-23 | 一种硬盘管理方法、系统及相关组件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399171A true CN110399171A (zh) | 2019-11-01 |
CN110399171B CN110399171B (zh) | 2022-06-07 |
Family
ID=68325898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910666517.7A Active CN110399171B (zh) | 2019-07-23 | 2019-07-23 | 一种硬盘管理方法、系统及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399171B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857577A (zh) * | 2020-06-29 | 2020-10-30 | 烽火通信科技股份有限公司 | 一种分布式存储系统下物理硬盘的管理方法与装置 |
WO2021159649A1 (zh) * | 2020-02-13 | 2021-08-19 | 苏州浪潮智能科技有限公司 | 一种多路径设备屏蔽系统、方法、设备及可读存储介质 |
CN113672537A (zh) * | 2021-09-03 | 2021-11-19 | 无锡众星微系统技术有限公司 | 一种sata设备热插拔管理方法和装置 |
CN113691649A (zh) * | 2021-09-09 | 2021-11-23 | 无锡众星微系统技术有限公司 | 一种stp sata桥的地址配置方法和装置 |
CN114579036A (zh) * | 2020-11-30 | 2022-06-03 | 北京达佳互联信息技术有限公司 | 存储设备管理方法及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534304A (zh) * | 2009-04-23 | 2009-09-16 | 杭州华三通信技术有限公司 | Sas域变化非全遍历发现过程的方法和系统 |
CN109597582A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种数据处理方法及相关设备 |
-
2019
- 2019-07-23 CN CN201910666517.7A patent/CN110399171B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534304A (zh) * | 2009-04-23 | 2009-09-16 | 杭州华三通信技术有限公司 | Sas域变化非全遍历发现过程的方法和系统 |
CN109597582A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种数据处理方法及相关设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021159649A1 (zh) * | 2020-02-13 | 2021-08-19 | 苏州浪潮智能科技有限公司 | 一种多路径设备屏蔽系统、方法、设备及可读存储介质 |
CN111857577A (zh) * | 2020-06-29 | 2020-10-30 | 烽火通信科技股份有限公司 | 一种分布式存储系统下物理硬盘的管理方法与装置 |
CN114579036A (zh) * | 2020-11-30 | 2022-06-03 | 北京达佳互联信息技术有限公司 | 存储设备管理方法及相关设备 |
CN114579036B (zh) * | 2020-11-30 | 2024-02-13 | 北京达佳互联信息技术有限公司 | 存储设备管理方法及相关设备 |
CN113672537A (zh) * | 2021-09-03 | 2021-11-19 | 无锡众星微系统技术有限公司 | 一种sata设备热插拔管理方法和装置 |
CN113691649A (zh) * | 2021-09-09 | 2021-11-23 | 无锡众星微系统技术有限公司 | 一种stp sata桥的地址配置方法和装置 |
CN113691649B (zh) * | 2021-09-09 | 2022-10-18 | 无锡众星微系统技术有限公司 | 一种stp sata桥的地址配置方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110399171B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399171A (zh) | 一种硬盘管理方法、系统及相关组件 | |
US11687488B2 (en) | Directory deletion method and apparatus, and storage server | |
CN110311831B (zh) | 基于容器云的系统资源监控方法及相关设备 | |
US11886707B2 (en) | Dataset space reclamation | |
CN107911249B (zh) | 一种网络设备的命令行发送方法、装置和设备 | |
CN101452369B (zh) | 用于控制usb大容量存储设备的逻辑单元的方法和系统 | |
CN105635311A (zh) | 一种云管理平台中资源池信息同步的方法 | |
CN109165175A (zh) | 设备标识生成方法和装置 | |
US7792966B2 (en) | Zone control weights | |
CN104951481A (zh) | 一种管理数据库连接的方法和装置 | |
CN108089934A (zh) | 集群管理方法及集群服务器 | |
CN102622315B (zh) | 一种磁盘访问控制方法、装置及系统 | |
CN102298560B (zh) | 设备管理装置、设备管理方法和设备管理系统 | |
CN102866964B (zh) | 一种保护存储设备上数据的方法及装置 | |
US8056052B2 (en) | Populating service requests | |
CN107220146A (zh) | 一种文件扫描恢复方法及装置 | |
CN109857519A (zh) | 虚拟磁盘的处理方法及相关装置 | |
CN106126123B (zh) | 一种宿主机卷分配的方法、装置及系统 | |
CN110837428A (zh) | 存储设备管理方法及装置 | |
CN109299025B (zh) | 一种后端存储设备的管理方法、装置、设备以及存储介质 | |
CN103077337B (zh) | 用户权限校验方法及装置 | |
CN102111446B (zh) | 设备连接处理方法、组合设备和主机设备 | |
CN112835967A (zh) | 基于分布式存储系统的数据处理方法、装置、设备和介质 | |
CN107124438B (zh) | 一种云存储系统中动态接入存储设备的方法及装置 | |
US10108576B2 (en) | Device abstracted zone management of serial attached small computer system interface topologies |
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 |