CN109257955B - 操作硬盘的方法和硬盘管理器 - Google Patents
操作硬盘的方法和硬盘管理器 Download PDFInfo
- Publication number
- CN109257955B CN109257955B CN201780002696.3A CN201780002696A CN109257955B CN 109257955 B CN109257955 B CN 109257955B CN 201780002696 A CN201780002696 A CN 201780002696A CN 109257955 B CN109257955 B CN 109257955B
- Authority
- CN
- China
- Prior art keywords
- hard disk
- mctp
- controller
- manager
- instruction
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了一种操作硬盘的方法和硬盘管理器。在该方法中,硬盘管理器生成指令;该硬盘管理器将所述指令封装到管理组件传输协议(英文:Management Component Transport Protocol,MCTP)包中,并向硬盘控制器发送所述MCTP包。所述硬盘控制器将所述指令向所述硬盘转发。所述硬盘根据所述指令执行动作。这样,硬盘管理器可以基于MCTP操作硬盘。如果硬盘管理器为计算机设备中的带外管理设备,则本方法可以从带外基于MCTP操作硬盘,实现从带外对硬盘的管理。如果硬盘管理器为计算机设备中的处理器,则本方法可以从带内(处理器运行的OS)基于MCTP操作硬盘。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种操作硬盘的方法和硬盘管理器。
背景技术
参见图1,在计算机设备(例如服务器)中,该计算机设备具有中央处理单元(英文:central processing unit,CPU),该CPU运行操作系统(英文:operating system,OS)。该计算机设备还具有平台控制中心(英文:Platform Controller Hub,PCH),该PCH部署有SAS(英文:serial attached SCSI,即serial attached small computer system interface)控制器和/或SATA(英文:serial ATA,即serial advanced technology attachment)控制器。图1中的SAS/SATA控制器是指SAS控制器或者SATA控制器。图1中的SAS/SATA硬盘是指SAS硬盘或者SATA硬盘。该SAS控制器支持对SAS硬盘或者SATA硬盘的操作,该SATA/SATA控制器支持对SATA硬盘的操作。
对于图1所示的计算机设备,该OS可以识别SAS/SATA控制器,并通过SAS/SATA控制器提供的接口操作SAS/SATA硬盘。但是,带外管理设备(例如基板管理控制器(英文:Baseboard Management Controller,BMC))无法操作SAS/SATA硬盘。
发明内容
有鉴于此,本申请提供了一种操作硬盘的方法和硬盘管理器,实现基于管理组件传输协议(英文:Management Component Transport Protocol,MCTP)操作硬盘。
本申请的第一方面提供一种操作硬盘的方法。在该方法中,硬盘管理器生成指令。该硬盘管理器将所述指令封装到第一管理组件传输协议(英文:Management ComponentTransport Protocol,MCTP)包中,并向硬盘控制器发送所述第一MCTP包。所述硬盘控制器将所述指令向所述硬盘转发。所述硬盘根据所述指令执行动作。这样,硬盘管理器可以基于MCTP操作硬盘。
如果硬盘管理器为计算机设备中的带外管理设备(例如基板管理控制器(英文:Baseboard Management Controller,BMC)),则本方法可以从带外基于MCTP操作硬盘,实现从带外对硬盘的管理,例如基于MCTP查询硬盘相关的信息。
如果硬盘管理器为计算机设备中的处理器,则本方法可以从带内(处理器运行的OS)基于MCTP操作硬盘,例如基于MCTP访问硬盘中的数据,例如基于MCTP查询硬盘相关的信息。
结合第一方面,在第一种可能实施方式中,所述硬盘将根据所述指令执行动作所得的执行结果发送至硬盘控制器;所述硬盘控制器将该执行结果封装到第二MCTP包中,并向所述硬盘管理器发送第二MCTP包;所述硬盘管理器接收所述硬盘控制器发送的第二MCTP包,并从所述第二MCTP包中解析出所述执行结果。
所述硬盘管理器通过所述指令指示硬盘动作,并接收硬盘反馈的执行结果;从而实现所述硬盘管理器操作硬盘,例如所述硬盘管理器通过所述指令指示硬盘读数据,该硬盘向硬盘管理器反馈读取的数据。
结合第一方面或第一方面的第一种实施方式,在第二种可能实施方式中,所述硬盘管理器基于MCTP与所述硬盘控制器建立通信连接。
所述硬盘管理器与所述硬盘控制器之间基于MCTP建立通信连接,这样所述硬盘管理器与所述硬盘控制器之间可以相互传输MCTP包。该MCTP包可以携带所述硬盘管理器向硬盘发送的指令,还可以携带该硬盘向所述硬盘管理器反馈的执行结果。
结合第一方面或第一方面的第一种实施方式或第一方面的第二种实施方式,在一种可能实施方式中,计算机设备包括带外管理设备和平台控制中心(英文:PlatformController Hub,PCH);其中,所述带外管理设备为所述硬盘管理器,所述硬盘控制器在所述PCH中部署或者独立于所述PCH部署;所述带外管理设备基于MCTP与所述硬盘控制器建立通信连接。这样,所述带外管理设备与所述硬盘控制器之间可以相互传输MCTP包,所述带外管理设备可以通过与所述硬盘控制器交互的MCTP包操作硬盘。
结合第一方面或第一方面的第一种实施方式或第一方面的第二种实施方式,在一种可能实施方式中,计算机设备包括CPU集合和PCH,所述CPU集合包括至少一个CPU;所述CPU集合为所述硬盘管理器,所述硬盘控制器在所述PCH中部署或者独立于所述PCH部署;CPU集合基于MCTP与所述硬盘控制器建立通信连接。这样,所述CPU集合与所述硬盘控制器之间可以相互传输MCTP包,所述CPU集合可以通过与所述硬盘控制器交互的MCTP包操作硬盘。
如果操作硬盘的指令被封装成接口提供给CPU上运行的OS,CPU调用接口访问硬盘时所述硬盘控制器从该接口解析出指令。并且,硬盘支持的所有操作对应的指令中,只有被封装成了供所述OS调用的接口的指令才能被CPU调用,因此,CPU集合只能指示硬盘执行部分操作。相对地,上述实施方式中,所述CPU集合生成硬盘支持的所有操作对应的指令,再通过MCTP包将该指令发送至所述硬盘控制器。所述硬盘控制器再从该MCTP包中解析出指令,将该指令发送给硬盘。这样,对于硬盘支持的所有操作,所述CPU集合都可以通过该指令操作该硬盘。
结合第一方面或第一方面的第一种实施方式或第一方面的第二种实施方式,在一种可能实施方式中,计算机设备包括带外管理设备、PCH、CPU集合和独立硬盘冗余阵列(英文:redundant array of independent disks,RAID)控制器,所述CPU集合包括至少一个CPU;所述带外管理设备为所述硬盘管理器,所述硬盘控制器为所述RAID控制器;所述带外管理设备基于MCTP,经过所述PCH、所述CPU集合与所述硬盘控制器建立通信连接。这样,所述带外管理设备与所述RAID控制器之间可以经过所述PCH和所述CPU集合中的电路相互传输MCTP包,所述带外管理设备可以通过与所述RAID控制器交互的MCTP包操作硬盘。
结合第一方面或第一方面的第一种实施方式或第一方面的第二种实施方式,在一种可能实施方式中,计算机设备包括CPU集合和RAID控制器,所述CPU集合包括至少一个CPU;所述CPU集合为所述硬盘管理器,所述硬盘控制器为所述RAID控制器。这样,所述CPU集合与所述RAID控制器之间可以基于MCTP建立通信连接,进而可以相互传输MCTP包,所述CPU集合可以通过与所述RAID控制器交互的MCTP包操作硬盘。相对于通过接口(硬盘支持的部分指令被封装成的接口)访问硬盘,对于硬盘支持的所有操作,所述CPU集合都可以直接通过指令(携带在MCTP包中)操作该硬盘。
结合第一方面或第一方面的第一种实施方式或第一方面的第二种实施方式,在一种可能实施方式中,计算机设备包括带外管理设备和高级精简指令集机器(英文:AdvancedRISC Machine,ARM)处理器;所述带外管理设备为所述硬盘管理器,所述硬盘控制器在所述ARM处理器中部署或者独立于所述ARM处理器部署;所述带外管理设备基于MCTP与所述硬盘控制器建立通信连接。这样,所述带外管理设备与所述硬盘管理器之间可以相互传输MCTP包,所述带外管理设备可以通过与所述硬盘管理器交互的MCTP包操作硬盘。
结合第一方面或第一方面的第一种实施方式或第一方面的第二种实施方式,在一种可能实施方式中,计算机设备包括带外管理设备、ARM处理器和RAID控制器;所述带外管理设备为所述硬盘管理器,所述硬盘控制器为所述RAID控制器;所述带外管理设备基于MCTP经过所述ARM处理器与所述RAID控制器建立通信连接。这样,所述带外管理设备与所述RAID控制器之间可以相互传输MCTP包,所述带外管理设备可以通过与所述RAID控制器交互的MCTP包操作硬盘。
结合第一方面或第一方面的第一种实施方式或第一方面的第二种实施方式,在一种可能实施方式中,计算机设备包括ARM处理器和RAID控制器;所述ARM处理器为所述硬盘管理器,所述硬盘控制器为所述RAID控制器。所述ARM处理器与所述RAID控制器之间可以基于MCTP建立通信连接,进而可以相互传输MCTP包,所述ARM处理器可以通过与所述RAID控制器交互的MCTP包操作硬盘。
本申请的第二方面提供一种硬盘管理器,该硬盘管理器包括实现第一方面或者第一方面的各种可能实施方式之一提供的操作硬盘的方法的各功能单元。
本申请的第三方面提供一种带外管理设备或者处理器,该带外管理设备或者该处理器部署有实现第一方面或者第一方面的各种可能实施方式之一提供的操作硬盘的方法的各功能单元。
本申请的第四方面提供一种计算机可读存储介质。计算机可读存储介质中存储有指令。当计算机设备中的硬盘管理器执行该指令时,硬盘管理器执行上述第一方面或者第一方面的各种可能实施方式之一提供的操作硬盘的方法。
本申请的第五方面提供一种计算机程序产品,该计算机程序产品包括指令,该指令存储在计算机可读存储介质中。硬盘管理器可以从计算机可读存储介质读取该指令,并执行该指令,从而实施上述第一方面或者第一方面的各种可能实施方式之一提供的操作硬盘的方法。
本申请的第五方面提供一种计算机设备,该计算机设备包括上述第一方面或者第一方面的各种可能实施方式之一所述的硬盘管理器。
附图说明
图1为计算机设备的一种系统架构示意图;
图2为本发明实施例提供的计算机设备的一种系统架构示意图;
图3A为本发明实施例提供的操作硬盘的方法的一种流程示意图;
图3B为本发明实施例提供的操作硬盘的方法的一种流程示意图;
图4A为本发明实施例提供的计算机设备的一种系统架构示意图;
图4B为本发明实施例提供的计算机设备的一种系统架构示意图;
图4C为本发明实施例提供的计算机设备的一种系统架构示意图;
图5为本发明实施例提供的硬盘管理器的一种逻辑结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例提供的技术方案进行描述。
在本发明实施例中,基于MCTP建立的通信连接是指:该通信连接的两个器件可以可以相互识别,并且可以相互发送MCTP包。举例说明,基于MCTP建立通信连接的硬盘管理器与硬盘控制器,可以相互识别,并且可以相互发送MCTP包。
计算机设备实施例
参见图2,计算机设备具有硬盘管理器211、硬盘控制器212和硬盘214。
硬盘214用于存储数据。计算机设备中的处理器(例如中央处理单元(英文:central processing unit,CPU),例如高级精简指令集机器(英文:Advanced RISCMachine,ARM)处理器)可以通过硬盘控制器212访问硬盘214中的数据,例如从硬盘214读取数据或者写入数据。图2示意了一个硬盘214,但硬盘控制器212可以同时连接多个硬盘214。
可选地,硬盘214可以是硬盘驱动(英文:hard disk drive,HDD),或者可以是SAS(英文:serial attached SCSI,即serial attached small computer system interface)硬盘,或者可以是SATA(英文:serial ATA,即serial advanced technology attachment)硬盘,或者可以是固态硬盘(英语:solid state drive,简称SSD),或者可以是其它用于存储数据的存储介质。
硬盘214与硬盘控制器212之间总线连接。例如硬盘214为SAS硬盘,在该总线可以是支持SAS协议的总线;再例如,硬盘214为SATA硬盘,在该总线可以是支持SATA协议的总线。
硬盘控制器212也可以称为硬盘214的适配器;例如,如果硬盘214为HDD或者SSD,硬盘控制器212为独立硬盘冗余阵列(英文:redundant array of independent disks,RAID)控制器;再例如,如果硬盘214为SAS硬盘,硬盘控制器212为SAS控制器;再例如,如果硬盘214为SATA硬盘,硬盘控制器212为SATA控制器。
硬盘控制器212可以支持管理组件传输协议(英文:Management ComponentTransport Protocol,MCTP),进而支持解析MCTP包和封装MCTP包。
硬盘控制器212具有MCTP解/封包器213。该MCTP解/封包器213支持从MCTP包解析出数据,还支持将数据封装到MCTP包中。举例说明,该MCTP解/封包器213可以将操作硬盘214的指令封装到MCTP包,以及可以从该MCTP包解析出该指令。举例说明,该MCTP解/封包器213还可以将硬盘214向硬盘控制器212反馈的数据封装到MCTP包,该数据可以包括硬盘214根据该指令执行相应动作所反馈的执行结果。
该MCTP解/封包器213可以通过电路实现,或者可以通过电路和软件结合实现。可选地,在MCTP解/封包器213通过电路实现或者可以通过电路和软件结合实现时,该MCTP解/封包器213可以部署在硬盘控制器212内部(如图2所示),或者该MCTP解/封包器213独立于硬盘控制器212部署(未在图2中示意出)。如果MCTP解/封包器213独立于硬盘控制器212之外部署,硬盘控制器212具有访问MCTP解/封包器213的能力,例如硬盘控制器212可以指示MCTP解/封包器213从MCTP包解析出数据或者指示MCTP解/封包器213将数据封装到MCTP包中。
应知,无论在硬盘控制器212内部部署MCTP解/封包器213或独立部署MCTP解/封包器213,硬盘控制器212均可以利用该MCTP解/封包器213来解析/封装MCTP包。
本发明实施例中,硬盘控制器212记录每个硬盘214的标识,例如硬盘214会在硬盘控制器212注册该硬盘214的标识。这样,硬盘控制器212可以根据MCTP包中携带的硬盘214的标识,将该MCTP包中的指令发送至该标识指定的硬盘214;在硬盘214反馈数据时,硬盘控制器212可以根据硬盘214的标识确定是哪个硬盘214反馈的数据。
硬盘控制器212与硬盘管理器211之间直接或间接通过总线连接;此处对该总线的具体类型或者支持的协议不做限定,只要满足在该总线之上可以基于MCTP建立硬盘控制器212与硬盘管理器211之间的通信连接这一条件的总线均可;例如该总线可以是支持I2C(英文:Inter-Integrated Circuit)协议的总线,或者可以是支持PCIE(英文:PeripheralComponent Interconnect Express)协议的总线;例如,该总线可以是支持系统管理总线(英文:System Management Bus,SMBus)。
硬盘管理器211可以操作硬盘214。具体地,硬盘管理器211具有处理MCTP包的功能,还具有基于MCTP操作硬盘214的功能,例如通过指令操作硬盘214。在发明实施例中,对于硬盘214支持的所有操作,硬盘管理器211均可以通过指令操作硬盘214,不管该操作是否被硬盘控制器212支持。
硬盘管理器211支持MCTP,并且具有处理MCTP包的功能,例如支持将数据封装到MCTP包,再例如支持从MCTP包解析出数据。可选地,硬盘管理器211具有处理MCTP包的功能的实现,可以是利用MCTP解/封包器,该MCTP解/封包器可以部署在硬盘管理器211内部或者独立于硬盘管理器211部署;部署供硬盘管理器211使用的该MCTP解/封包器,与部署供硬盘控制器212使用的MCTP解/封包器213类似,在此不再赘述。
在硬盘管理器211操作硬盘214的场景下,硬盘管理器211生成指令,将该指令封装到MCTP包中,以及向硬盘控制器212发送该MCTP包;硬盘控制器212通过MCTP解/封包器213从该MCTP包解析得到该指令,然后将该指令转发至硬盘214;硬盘214根据该指令执行相应动作。这样,硬盘管理器211可以通过该指令操作硬盘214。另外,由于硬盘控制器212仅是做该指令的转发,不要求硬盘控制器212能够识别该指令;因此,对于硬盘214支持的动作,硬盘管理器211均可指令硬盘214执行该动作,不管该动作是否被硬盘控制器212支持。
举例说明硬盘管理器211可以指令硬盘214执行的动作,该动作可以包括以下二类中的任一类。
第一类动作,查询硬盘214相关的信息,例如查询硬盘214的分区信息,例如查询硬盘214的故障信息,指令硬盘214进行指定检测。
第二类动作,访问硬盘214中存储的数据,例如向硬盘214中写数据,例如从硬盘214读取数据。
可选地,如果带外管理设备(例如基板管理控制器(英文:Baseboard ManagementController,BMC))作为硬盘管理器211,该带外管理设备支持指令硬盘214执行第一类动作,但不支持指令硬盘214执行第二类动作。
可选地,如果计算机设备中的处理器(例如CPU或者ARM处理器)作为硬盘管理器211,在该处理器运行的OS中增加支持基于MCTP操作硬盘214的功能,例如该处理器运行的OS支持指令硬盘214执行第一类动作和/或支持指令硬盘214执行第二类动作。
可选地,硬盘管理器211可以由计算机设备中的带外管理设备或者处理器或者其它具有指令处理功能的模块实现。例如,在BMC或者处理器中增加处理MCTP包的功能和增加基于MCTP操作硬盘214的功能来实现硬盘管理器211。
在图2所示的计算机设备上,本发明实施例提供一种基于MCTP操作硬盘的方法,下面在方法实施例中详述。
方法实施例
基于图2所示的计算机设备,本发明实施例提供一种基于MCTP操作硬盘214的方法,参见图3,该方法包括步骤S311、步骤S312、步骤S313、步骤S314、步骤S315和步骤S316。
步骤S311,硬盘管理器211与硬盘控制器212基于MCTP建立通信连接。
硬盘管理器211与硬盘控制器212均部署在计算机设备中,硬盘管理器211与硬盘控制器212之间直接或间接通过总线连接。本发明实施例是在满足该总线的协议的基础上,再利用MCTP建立硬盘管理器211与硬盘控制器212之间的通信连接。
本发明实施例在满足该总线的协议的基础上利用MCTP建立该通信连接的具体实现方式,可以是利用MCTP进行握手来建立硬盘管理器211与硬盘控制器212之间的通信连接。
如果硬盘管理器211与硬盘控制器212之间已经基于MCTP建立了通信连接,则省去执行本方法中的步骤S311。
如果硬盘管理器211与硬盘控制器212之间未基于MCTP建立通信连接,则在执行步骤S313之前执行步骤S311。应知,本方法对步骤S311和步骤S312的执行先后顺序不做限定,例如步骤S311和步骤S312也可以同时执行。
硬盘管理器211与硬盘控制器212基于MCTP建立通信连接之后,硬盘管理器211和硬盘控制器212可以相互识别,并且可以相互发送MCTP包。
步骤S312,硬盘管理器211生成指令,并将该指令封装到MCTP包中。
该指令可以被硬盘214识别。该指令用于指定硬盘214执行相应动作,例如指定硬盘214进行自检,再例如指定硬盘214根据该指令携带的地址读取数据。
在该指令可以被硬盘214识别的基础上,本发明实施例对该指令的具体格式不做限定。可选地,该指令可以是硬盘214支持的小型计算机系统接口(英文:small computersystem interface,SCSI)指令。
硬盘管理器211按照可以被硬盘214识别的格式生成指令,然后将该指令封装到MCTP包中。可选地,根据该指令的数据量大小,确定MCTP包的数量;如果数量为1,代表通过一个MCTP包携带该指令已足够,则直接将该指令封装到该个MCTP包中,该个MCTP包组成一个MCTP消息;如果数量为N,该N大于或等于2,代表需要通过N个MCTP包才能完整携带该指令,则将该指令拆成N个部分,将N个部分封装到N个MCTP包中,该N个MCTP包组成一个MCTP消息。
应知,MCTP包的格式不同,将该指令封装到MCTP包中的实现方法不同;只要能够实现将指令携带到MCTP包中,在此不限定MCTP包的格式。
表1举例提供MCTP包的一种格式,“RSVD”字段为保留字段,“Header”字段表示MCTP包的头部,“Destination ID”字段表示目的设备的标识,“Source ID”字段表示源设备的标识,“SOM”字段表示当前的MCTP包是否为MCTP消息的第一个MCTP包,“EOM”字段表示当前的MCTP包是否为MCTP消息的最后一个MCTP包,“seq”字段表示MCTP消息中当前的MCTP包的序号,“TO”字段表示标签的拥有者(即标签所属的设备),“Tag”字段表示MCTP消息的标签,“IC”字段表示是否校验MCTP消息的完整性,“Type”字段表示MCTP消息的类型,“SCSICommand”字段表示MCTP包中的指令,“Designed by MCTP”字段可以由MCTP自定义设计。
表1
如果以表1所示格式将指令封装到MCTP包中,该MCTP包的“Source ID”字段记录硬盘管理器211的标识,该MCTP包的“Destination ID”字段记录硬盘控制器212的标识,该MCTP包的“Command”字段记录指令。
步骤S313,硬盘管理器211向硬盘控制器212发送MCTP包。
该MCTP包携带硬盘管理器211生成的指令;具体在表1中,该指令存储在“Command”字段。
硬盘管理器211是利用在硬盘管理器211与硬盘控制器212之间基于MCTP建立的通信连接,向硬盘控制器212发送MCTP包的。
步骤S314,硬盘控制器212解析MCTP包以得到指令。
具体地,硬盘控制器212是利用MCTP解/封包器213解析该MCTP包、从该MCTP包中解析得到指令。举例说明,MCTP解/封包器213解析表1所示的MCTP包,从“Command”字段获取该指令。
可选地,硬盘控制器212利用MCTP解/封包器213从MCTP包中解析得到的指令,进而还从该指令中获取硬盘214的标识。
步骤S315,硬盘控制器212向硬盘214发送指令。
硬盘控制器212在从MCTP包解析得到指令之后,可以根据该指令携带的硬盘214的标识,向该标识指定的硬盘214发送该指令。
可选地,硬盘控制器212与硬盘214通过总线连接,硬盘控制器212通过该总线向硬盘214发送该指令。
步骤S316,硬盘214执行指令指定的动作。
硬盘214接收到指令,执行该指令指定的动作;例如该指令指定从硬盘214读取数据,则硬盘根据该指令读取数据;例如该指令指定获取硬盘214的分区信息,则硬盘214根据该硬盘214的分区情况向硬盘控制器212反馈分区信息。
上述步骤S311、步骤S312、步骤S313、步骤S314、步骤S315和步骤S316用于基于MCTP实现硬盘管理器211指令硬盘214执行动作。
在步骤S316中硬盘214执行指令指定的动作,如果执行该动作会生成执行结果,则可以将该执行结果向硬盘控制器212反馈,当然也可以不向硬盘控制器212反馈;另外,如果执行该动作不会生成执行结果,则可以不向硬盘控制器212反馈,或者可以向硬盘控制器212反馈该动作的其它相关信息。例如,硬盘214根据指令读取数据,读取到的数据为执行结果;例如硬盘214根据指令获取硬盘214的分区信息,该分区信息为执行结果;例如,硬盘214根据指令下电,则可能不会生成下电的执行结果。
如果硬盘214根据指令执行动作会生成执行结果,并且硬盘214需要向硬盘管理器211反馈该动作的执行结果,则可以执行本方法提供的如下步骤:步骤S321、步骤S322、步骤S323、步骤S324、步骤S325和步骤S326。
步骤S321,硬盘214将动作的执行结果向硬盘控制器212发送。
硬盘214向硬盘控制器212发送该执行结果,该执行结果包括硬盘214的标识。这样,硬盘控制器212可以根据该标识确定该执行结果为哪个硬盘214反馈的执行结果。
步骤S321中硬盘214向硬盘控制器212发送执行结果,与步骤S315中硬盘控制器212向硬盘214发送指令是同原理实现,在此不再赘述,可参照对步骤S315的相关描述。
步骤S322,硬盘控制器212将执行结果封装到MCTP包中。
具体地,硬盘控制器212是利用MCTP解/封包器213将该执行结果封装到MCTP包中。由于该执行结果记录有硬盘214的标识,从而硬盘管理器211可以根据该标识确定是该执行结果来自哪个硬盘214。
举例说明,MCTP解/封包器213利用表1所示格式进行MCTP包的封装;具体地,在该MCTP包的“Command”字段封装该执行结果,在该MCTP包的“Source ID”字段记录硬盘控制器212的标识,在该MCTP包的“Destination ID”字段记录硬盘管理器211的标识;这样,硬盘控制器212根据硬盘管理器211的标识将封装后的MCTP包向硬盘管理器211发送。
另外,在封装MCTP包时,除了“Command”字段、“Source ID”字段、“DestinationID”字段以外的其他字段不属于本发明实施例重点关注的部分,可参见MCTP填写;其中,有些字段可以用户自定义,例如表1中的“Designed by MCTP”字段。
步骤S323,硬盘控制器212将MCTP包向硬盘管理器211发送。
其中,该MCTP包携带有执行结果。
硬盘控制器212是利用在硬盘管理器211与硬盘控制器212之间基于MCTP建立的通信连接,向硬盘管理器211发送MCTP包的。如果在执行步骤S323之前,硬盘管理器211与硬盘控制器212之间未基于MCTP建立该通信连接,则本方法在执行步骤S323之前需要执行步骤S311。
步骤S324,硬盘管理器211从MCTP包中解析出执行结果。
具体地,硬盘管理器211从MCTP包解析得到该执行结果,以及从该执行结果获取硬盘214的标识;这样,硬盘管理器211可以根据该硬盘214的标识确定是该执行结果来自哪个硬盘214。
硬盘管理器211具有处理MCTP包的功能,可以支持解析MCTP包,从MCTP包解析得到该执行结果。
可选地,硬盘管理器211可以是利用MCTP解/封包器实现处理MCTP包的功能。此种情况下,硬盘管理器211利用MCTP解/封包器从MCTP包解析得到该执行结果的实现方式,与硬盘控制器212利用MCTP解/封包器213从MCTP包中解析得到指令的实现方式类似,在此不再赘述,可参照对步骤S314的相关描述。
上述步骤S321、步骤S322、步骤S323和步骤S324用于基于MCTP实现硬盘214向硬盘管理器211反馈根据指令执行动作所得的执行结果。
下面结合图2所示计算机设备的几种具体架构(如图4A、4B和4C所示),举例详述下在几种具体架构下如何实现本方法。
图4A为图2所示计算机设备的一种具体架构。如图4A所示,该计算机设备包括中央处理器(英文:central processing unit,CPU)集合,带外管理设备412,平台控制中心(英文:Platform Controller Hub,PCH)413,SAS/SATA控制器414,MCTP解/封包器415和SAS/SATA硬盘416。该CPU集合包括至少一个CPU411,至少一个CPU411中的部分CPU或者全部CPU与PCH413连接,与PCH413连接的CPU可以访问PCH413。
其中,SAS/SATA控制器414对应为图2中的硬盘控制器212,MCTP解/封包器415对应为图2中的MCTP解/封包器213,SAS/SATA硬盘416对应为图2中的硬盘214。
另外,SAS/SATA控制器414可以部署在PCH413中,或者独立于PCH413之外部署;如果SAS/SATA控制器414独立于PCH413之外部署,PCH413具有访问SAS/SATA控制器414的能力,例如PCH413可以向SAS/SATA控制器414转发MCTP包。
一种应用场景,带外管理设备412作为图2中的硬盘管理器211;具体地,在带外管理设备412增加硬盘管理器211所具有的相关功能,例如增加操作SAS/SATA硬盘416的功能(包括生成操作SAS/SATA硬盘416的指令),再例如增加处理MCTP包的功能(包括从MCTP包解析出数据或者将数据封装到MCTP包)。
在本应用场景中,带外管理设备412支持指令SAS/SATA硬盘416执行第一类动作,例如指令SAS/SATA硬盘416查询SAS/SATA硬盘416相关的信息。因此,带外管理设备412在步骤S312中可以生成指示SAS/SATA硬盘416执行第一类动作的指令。这样可以实现带外管理设备412对SAS/SATA硬盘416的管理。
可选地,带外管理设备412不支持指令SAS/SATA硬盘416执行第二类动作,例如访问SAS/SATA硬盘416中存储的数据。具体地,禁止带外管理设备412在步骤S312中生成指示SAS/SATA硬盘416执行第二类动作的指令,或者带外管理设备412不具有生成指示SAS/SATA硬盘416执行第二类动作的指令的功能;这样可以避免通过带外管理设备412非法串改SAS/SATA硬盘416中存储的数据,提高了数据安全性。
在本应用场景中执行操作硬盘的方法时,可以对该方法中的如下步骤做如下细化:
在步骤S311中,带外管理设备412与SAS/SATA控制器414建立通信连接。具体地,带外管理设备412与PCH413之间通过总线(例如PCIE总线或者SMBus)连接,带外管理设备412在该总线上基于MCTP建立带外管理设备412与SAS/SATA控制器414之间的通信连接。
举例说明一种建立通信连接的实现方式,如果PCH413中用于基于MCTP建立通信连接的模块集成在SAS/SATA控制器414,则带外管理设备412与SAS/SATA控制器414之间基于MCTP直接建立通信连接。可选地,PCH413存储有带外管理设备412的标识与SAS/SATA控制器414的标识,在建立带外管理设备412与SAS/SATA控制器414之间的通信连接时,对于带外管理设备412与SAS/SATA控制器414之间交互的用于建立该通信连接所需的数据,PCH413根据带外管理设备412的标识与SAS/SATA控制器414的标识在带外管理设备412与SAS/SATA控制器414之间进行该数据转发。
举例说明一种建立通信连接的实现方式,如果PCH413中用于基于MCTP建立通信连接的模块独立于SAS/SATA控制器414,则本方法是基于MCTP建立带外管理设备412与该模块的通信连接。后续,带外管理设备412与SAS/SATA控制器414之间交互的MCTP包,均需要PCH413中的该模块转发;这样,通过该模块建立起带外管理设备412与SAS/SATA控制器414之间交互MCTP包的通信连接。
在步骤S313中,带外管理设备412基于在带外管理设备412与SAS/SATA控制器414之间的通信连接,向SAS/SATA控制器414发送携带指令的MCTP包。
在步骤S323中,SAS/SATA控制器414基于在带外管理设备412与SAS/SATA控制器414之间的通信连接,向带外管理设备412发送携带执行结果的MCTP包。
在本应用场景中执行操作硬盘的方法,可以从带外实现对SAS/SATA硬盘416的管理,例如指示SAS/SATA硬盘416查询SAS/SATA硬盘41的分区信息,或者指示SAS/SATA硬盘416进行故障检测等。
又一种应用场景,CPU411作为图2中的硬盘管理器211;具体地,在该CPU411运行的OS中增加硬盘管理器211所具有的相关功能,例如增加操作SAS/SATA硬盘416的功能(包括生成操作SAS/SATA硬盘416的指令),增加处理MCTP包的功能(包括从MCTP包解析出数据或者将数据封装到MCTP包)。
在本应用场景中,CPU411运行的OS可以支持指令SAS/SATA硬盘416执行第一类动作。这样,该CPU411在步骤S312中可以生成指示SAS/SATA硬盘416执行第一类动作的指令。
在本应用场景中,CPU411运行的OS还可以支持指令SAS/SATA硬盘416执行第二类动作。这样,该CPU411在步骤S312中可以生成指示SAS/SATA硬盘416执行第二类动作的指令。
在本应用场景中执行操作硬盘的方法时,可以对该方法中的如下步骤做细化:
在步骤S311中,CPU411与SAS/SATA控制器414建立通信连接。具体地,CPU411与PCH413之间通过总线(例如直接媒体接口(Direct Media Interface,DMI)总线)连接,CPU411在该总线上基于MCTP建立CPU411与SAS/SATA控制器414之间的通信连接。
举例说明一种建立通信连接的实现方式,如果PCH413中用于基于MCTP建立通信连接的模块集成在SAS/SATA控制器414,则CPU411与SAS/SATA控制器414之间基于MCTP直接建立通信连接。可选地,在建立CPU411与SAS/SATA控制器414之间的通信连接时,PCH413在CPU411与SAS/SATA控制器414之间进行建立该通信连接所需数据的转发;具体地,PCH413存储有CPU411的标识与SAS/SATA控制器414的标识,PCH413根据CPU411的标识与SAS/SATA控制器414的标识在CPU411与SAS/SATA控制器414之间进行数据转发。
举例说明一种建立通信连接的实现方式,如果PCH413中用于基于MCTP建立通信连接的模块独立于SAS/SATA控制器414,则本方法是基于MCTP建立CPU411与该模块的通信连接。后续,CPU411与SAS/SATA控制器414之间交互的MCTP包,均需要PCH413中的该模块转发;这样,通过该模块建立起CPU411与SAS/SATA控制器414之间交互MCTP包的通信连接。
在步骤S313中,CPU411基于在CPU411与SAS/SATA控制器414之间的通信连接,向SAS/SATA控制器414发送携带指令的MCTP包。
在步骤S323中,SAS/SATA控制器414基于在CPU411与SAS/SATA控制器414之间的通信连接,向CPU411发送携带执行结果的MCTP包。
在本应用场景中执行操作硬盘的方法,可以从带内(具体是CPU411运行的OS)实现对SAS/SATA硬盘416的管理,例如指示SAS/SATA硬盘416查询SAS/SATA硬盘416的分区信息,或者指示SAS/SATA硬盘416进行故障检测等;还可以基于MCTP访问SAS/SATA硬盘416中的数据,例如利用MCTP报文传输向SAS/SATA硬盘416写入的数据,或者利用MCTP报文传输从SAS/SATA硬盘416读取的数据。
图4B为图2所示计算机设备的一种具体架构。如图4B所示,该计算机设备包括CPU421集合,带外管理设备422,PCH423,RAID控制器424,MCTP解/封包器425和硬盘426。
RAID控制器424对应为图2中的硬盘控制器212,MCTP解/封包器425对应为图2中的MCTP解/封包器213,硬盘426对应为图2中的硬盘214。
该CPU421集合包括至少一个CPU421,如果CPU421集合包括多个CPU421,多个CPU421之间通过总线(例如快速通道互联(英文:Intel QuickPath Interconnect,QPI)总线)互联。另外,该CPU421集合中的一个或多个CPU421与PCH423之间通过总线(例如DMI总线)连接;该CPU421集合中的一个或多个CPU421与RAID控制器424之间通过总线(例如例如PCIE总线或者SMBus)连接。
可选地,CPU421集合中可以存在同时连接PCH423和RAID控制器424的CPU421,则在PCH423和RAID控制器424之间基于MCTP传输数据时直接经过该CPU421。
可选地,如果CPU421集合包括多个CPU421,多个CPU421中的两个CPU421分别连接PCH423和RAID控制器424,则在PCH423和RAID控制器424之间基于MCTP传输数据时会经过该两个CPU421及该两个CPU421之间的总线。
一种应用场景,带外管理设备422作为图2中的硬盘管理器211;具体地,在带外管理设备412增加硬盘管理器211所具有的相关功能,例如增加操作硬盘426的功能,再例如增加处理MCTP包的功能。
在本应用场景中,带外管理设备422支持指令硬盘426执行第一类动作,例如指令硬盘426查询硬盘426相关的信息。因此,带外管理设备422在步骤S312中可以生成指示硬盘426执行第一类动作的指令。
可选地,带外管理设备422不支持指令硬盘426执行第二类动作,例如访问硬盘426中存储的数据。具体地,禁止带外管理设备422在步骤S312中生成指示硬盘426执行第二类动作的指令,或者带外管理设备422不具有生成指示硬盘426执行第二类动作的指令的功能;这样可以避免通过带外管理设备422非法串改SAS/SATA硬盘426中存储的数据,提高了数据安全性。
在本应用场景中执行操作硬盘的方法时,可以对该方法中的如下步骤做如下细化:
在步骤S311中,带外管理设备422是通过PCH423、CPU421集合与RAID控制器424建立通信连接。
具体地,带外管理设备422与PCH423通过总线(例如PCIE总线或者SMBus)连接,带外管理设备422与PCH423在该总线上基于MCTP建立通信连接。PCH423与CPU421集合通过总线(例如DMI总线)连接,PCH423与CPU421集合在该总线上基于MCTP建立通信连接。CPU421集合与RAID控制器424通过总线(例如PCIE总线或者SMBus)连接,CPU421集合与RAID控制器424在该总线上基于MCTP建立通信连接。带外管理设备422基于在带外管理设备422与PCH423之间的通信连接、PCH423与CPU421集合之间的通信连接、CPU421集合与RAID控制器424之间的通信连接上,建立带外管理设备422与RAID控制器424之间的通信连接。
可选地,在经过CPU421集合传输数据(例如建立带外管理设备422与RAID控制器424之间的通信连接所需的数据,例如带外管理设备422与RAID控制器424之间交互的MCTP包)时,不需要CPU421集合上运行的OS参与数据转发,只会经过CPU421集合的内部电路或者CPU421集合之间的总线(例如QPI总线)传输该数据。
在步骤S313中,带外管理设备422基于在带外管理设备422与RAID控制器424之间的通信连接,经PCH423和CPU421集合向RAID控制器424发送携带指令的MCTP包。
在步骤S323中,RAID控制器424基于在带外管理设备422与RAID控制器424之间的通信连接,经PCH423和CPU421集合向带外管理设备422发送携带执行结果的MCTP包。
在本应用场景中执行操作硬盘的方法,可以从带外实现对硬盘426的管理,例如指示硬盘426查询硬盘426的分区信息,或者指示硬盘426进行故障检测等。
又一种应用场景,CPU421集合作为图2中的硬盘管理器211;具体地,在CPU421集合运行的OS中增加硬盘管理器211所具有的相关功能,例如增加操作硬盘426的功能,再例如增加处理MCTP包的功能。
在本应用场景中,CPU421集合运行的OS可以支持指令硬盘426执行第一类动作,例如指令硬盘426查询硬盘426相关的信息。这样,CPU421集合在步骤S312中可以生成指示硬盘426执行第一类动作的指令。
在本应用场景中,CPU421集合运行的OS还可以支持指令硬盘426执行第二类动作,例如访问硬盘426中存储的数据。这样,CPU421集合在步骤S312中可以生成指示硬盘426执行第二类动作的指令。
在本应用场景中执行操作硬盘的方法时,可以对该方法中的如下步骤做如下细化:
在步骤S311中,CPU421集合与RAID控制器424建立通信连接。
具体地,CPU421集合与PCH423之间通过总线(例如PCIE总线或者SMBus)连接;CPU421集合在该总线上基于MCTP建立CPU421集合与RAID控制器424之间的通信连接。
在步骤S313中,CPU421集合基于在CPU421集合与RAID控制器424之间的通信连接,向RAID控制器424发送携带指令的MCTP包。
在步骤S323中,RAID控制器424基于在CPU421集合与RAID控制器424之间的通信连接,向CPU421集合发送携带执行结果的MCTP包。
在本应用场景中执行操作硬盘的方法,可以从带内(具体是CPU421集合运行的OS)实现对硬盘426的操作,例如指示硬盘426查询硬盘426的分区信息,或者指示硬盘426进行故障检测等;还可以基于MCTP访问硬盘426中的数据,例如利用MCTP报文传输向硬盘426写入的数据,或者利用MCTP报文传输从硬盘426读取的数据。
图4C为图2所示计算机设备的一种具体架构。如图4C所示,该计算机设备包括:ARM处理器431、带外管理设备432、SAS/SATA控制器433、MCTP解/封包器434、SAS/SATA硬盘435、RAID控制器436、MCTP解/封包器437和硬盘438。
其中,SAS/SATA控制器433和RAID控制器436分别对应为图2中的硬盘控制器212;MCTP解/封包器434和MCTP解/封包器437分别对应为图2中的MCTP解/封包器213,该MCTP解/封包器434供SAS/SATA控制器433使用,MCTP解/封包器437供RAID控制器436使用;SAS/SATA硬盘435和硬盘438分别对应为图2中的硬盘214。
另外,SAS/SATA控制器433可以部署在ARM处理器431中,或者独立于ARM处理器431之外部署;如果SAS/SATA控制器433独立于ARM处理器431之外部署,ARM处理器431具有访问SAS/SATA控制器433的能力,例如ARM处理器431指示SAS/SATA控制器433封装MCTP包或者解析MCTP包。
一种应用场景,带外管理设备432作为图2中的硬盘管理器211;具体地,在带外管理设备432增加硬盘管理器211所具有的相关功能,例如增加操作SAS/SATA硬盘435和硬盘438的功能,再例如增加处理MCTP包的功能。
在本应用场景中,带外管理设备432支持指令SAS/SATA硬盘435和/或硬盘438执行第一类动作,例如指令SAS/SATA硬盘435查询SAS/SATA硬盘435相关的信息。因此,带外管理设备432在步骤S312中可以生成指示SAS/SATA硬盘435和/或硬盘438执行第一类动作的指令。
可选地,带外管理设备432不支持指令SAS/SATA硬盘435和/或硬盘438执行第二类动作,例如访问SAS/SATA硬盘435和/或硬盘438中存储的数据。具体地,禁止带外管理设备432在步骤S312中生成指示SAS/SATA硬盘435和/或硬盘438执行第二类动作的指令,或者带外管理设备432不具有生成指示SAS/SATA硬盘435和/或硬盘438执行第二类动作的指令的功能;这样可以避免通过带外管理设备422非法串改SAS/SATA硬盘426中存储的数据,提高了数据安全性。
在本应用场景中执行操作硬盘的方法来管理SAS/SATA硬盘435时,可以对该方法中的如下步骤做如下细化:
在步骤S311中,带外管理设备432与SAS/SATA控制器433建立通信连接。具体地,带外管理设备432与ARM处理器431之间通过总线(例如PCIE总线或者SMBus)连接,带外管理设备432在该总线上基于MCTP建立带外管理设备432与SAS/SATA控制器433之间的通信连接。
举例说明一种建立通信连接的实现方式,如果ARM处理器431中用于基于MCTP建立通信连接的模块集成在SAS/SATA控制器433,则带外管理设备432与SAS/SATA控制器433之间基于MCTP直接建立通信连接。可选地,ARM处理器431存储有带外管理设备432的标识与SAS/SATA控制器433的标识,在建立带外管理设备432与SAS/SATA控制器433之间的通信连接时,对于带外管理设备432与SAS/SATA控制器433之间交互的用于建立该通信连接所需的数据,ARM处理器431根据带外管理设备432的标识与SAS/SATA控制器433的标识在带外管理设备432与SAS/SATA控制器433之间进行该数据转发。
举例说明一种建立通信连接的实现方式,如果ARM处理器431中用于基于MCTP建立通信连接的模块独立于SAS/SATA控制器433,则本方法是基于MCTP建立带外管理设备432与该模块的通信连接。后续,带外管理设备432与SAS/SATA控制器433之间交互的MCTP包,均需要ARM处理器431中的该模块转发;这样,通过该模块建立起带外管理设备432与SAS/SATA控制器433之间交互MCTP包的通信连接。
在步骤S313中,带外管理设备432基于在带外管理设备432与SAS/SATA控制器433之间的通信连接,向SAS/SATA控制器433发送携带指令(指定SAS/SATA硬盘435动作的指令)的MCTP包。
在步骤S323中,SAS/SATA控制器433基于在带外管理设备432与SAS/SATA控制器433之间的通信连接,向带外管理设备432发送携带执行结果(SAS/SATA硬盘435根据指令执行动作的执行结果)的MCTP包。
在本应用场景中执行操作硬盘的方法,可以从带外实现对SAS/SATA硬盘435的管理,例如指示SAS/SATA硬盘435查询SAS/SATA硬盘435的分区信息,或者指示SAS/SATA硬盘435进行故障检测等。
在本应用场景中执行操作硬盘的方法来管理硬盘438时,可以对该方法中的如下步骤做如下细化:
在步骤S311中,带外管理设备432通过ARM处理器431与RAID控制器436建立通信连接。
具体地,带外管理设备432与ARM处理器431之间通过总线连接,带外管理设备432与ARM处理器431在该总线上基于MCTP建立带通信连接。ARM处理器431与RAID控制器436之间通过总线连接,ARM处理器431与RAID控制器436在该总线上基于MCTP建立通信连接。带外管理设备432基于在带外管理设备432与ARM处理器431之间的通信连接、在ARM处理器431与RAID控制器436之间的通信连接,建立起带外管理设备432与RAID控制器436之间的通信连接。
可选地,在经过ARM处理器431传输数据(例如建立带外管理设备432与RAID控制器436之间的通信连接所需的数据,例如带外管理设备432与RAID控制器436之间交互的MCTP包)时,不需要ARM处理器431上运行的OS参与数据转发,只会经过ARM处理器431的内部电路传输该数据。
在步骤S313中,带外管理设备432基于在带外管理设备432与RAID控制器436之间的通信连接,经ARM处理器431向RAID控制器436发送携带指令(指定硬盘438动作的指令)的MCTP包。
在步骤S323中,RAID控制器436基于在带外管理设备432与RAID控制器436之间的通信连接,经ARM处理器431向带外管理设备432发送携带执行结果(硬盘438根据指令执行动作的执行结果)的MCTP包。
在本应用场景中执行操作硬盘的方法,可以从带外实现对硬盘438的管理,例如指示硬盘438查询硬盘438的分区信息,或者指示硬盘438进行故障检测等。
又一种应用场景,ARM处理器431作为图2中的硬盘管理器211;具体地,在该ARM处理器431运行的OS中增加硬盘管理器211所具有的相关功能,例如增加操作硬盘438的功能,增加处理MCTP包的功能。
在本应用场景中,ARM处理器431运行的OS可以支持指令硬盘438执行第一类动作;因此,ARM处理器431在步骤S312中可以生成指示硬盘438执行第一类动作的指令。
在本应用场景中,ARM处理器431运行的OS还可以支持指令硬盘438执行第二类动作;因此,在步骤S312中可以生成指示硬盘438执行第二类动作的指令。
在本应用场景中,在ARM处理器431通过RAID控制器436操作硬盘438时可以对图3(包括图3A和图3B)所示步骤所做的细化,与在CPU421集合通过RAID控制器424操作硬盘426时可以对图3(包括图3A和图3B)所示步骤所做的细化类似,在此不再赘述,可以参见上述对CPU421集合通过RAID控制器424操作硬盘426的相关描述。
在本应用场景中执行操作硬盘438的方法,可以从带内实现对硬盘438的管理,例如指示硬盘438查询硬盘438的分区信息,或者指示硬盘438进行故障检测等;还可以基于MCTP访问硬盘438中的数据,例如利用MCTP报文传输向硬盘438写入的数据,或者利用MCTP报文传输从硬盘438读取的数据。
硬盘管理器实施例
硬盘管理器实施例一
本申请实施例提供一种硬盘管理器,该硬盘管理器包括实现上述方法实施例提供的操作硬盘的方法的各功能单元,在此不对各功能单元的划分方式做限定。图5示例性地提供硬盘管理器500包括的各功能单元。
参见图5,硬盘管理器500包括:
封装单元501,用于生成指令,并将所述指令封装到第一管理组件传输协议MCTP包中,所述指令用于指定硬盘执行动作;
通信单元502,用于向硬盘控制器发送所述第一MCTP包,使得所述硬盘控制器将所述指令向所述硬盘转发。
可选地,所述硬盘管理器500还包括:
通信单元502,用于接收所述硬盘控制器发送的第二MCTP包,所述第二MCTP包携带所述硬盘根据所述指令执行动作所得的执行结果;
解析单元504,用于从所述第二MCTP包中解析出所述执行结果。
可选地,所述通信单元502,用于基于MCTP与所述硬盘控制器建立通信连接。
可选地,计算机设备包括带外管理设备和PCH;所述带外管理设备为所述硬盘管理器500,所述硬盘控制器在所述PCH中部署或者独立于所述PCH部署;
所述通信单元502,用于基于MCTP,通过所述PCH与所述硬盘控制器建立通信连接。
可选地,计算机设备包括CPU集合和PCH,所述CPU集合包括至少一个CPU;所述CPU集合为所述硬盘管理器500,所述硬盘控制器在所述PCH中部署或者独立于所述PCH部署;
所述通信单元502,用于基于MCTP,通过所述PCH与所述硬盘控制器建立通信连接。
可选地,计算机设备包括带外管理设备、PCH、CPU集合和独立硬盘冗余阵列RAID控制器,所述CPU集合包括至少一个CPU;所述带外管理设备为所述硬盘管理器500,所述硬盘控制器为所述RAID控制器;
所述通信单元502,用于基于MCTP,经过所述PCH、所述CPU集合与所述硬盘控制器建立通信连接。
可选地,计算机设备包括带外管理设备和ARM处理器;所述带外管理设备为所述硬盘管理器500,所述硬盘控制器在所述ARM处理器中部署或者独立于所述ARM处理器部署;
所述通信单元502,用于基于MCTP,通过所述ARM处理器与所述硬盘控制器建立通信连接。
可选地,计算机设备包括带外管理设备、ARM处理器和RAID控制器;所述带外管理设备为所述硬盘管理器500,所述硬盘控制器为所述RAID控制器;
所述通信单元502,用于基于MCTP经过所述ARM处理器与所述硬盘控制器建立通信连接。
硬盘管理器实施例二
本申请实施例提供一种带外管理设备,该带外管理设备部署有实现上述方法实施例的操作硬盘的方法的各功能单元。
硬盘管理器实施例三
本申请实施例提供一种处理器(例如CPU或者ARM处理器),该处理器部署有实现上述方法实施例提供的操作硬盘的方法的各功能单元。
存储介质实施例
本申请实施例提供一种计算机可读存储介质。计算机可读存储介质中存储有指令。当该指令在硬盘管理器上运行时,使得硬盘管理器(例如可以是带外管理设备或处理器)执行上述方法实施例的操作硬盘的方法。
软件产品实施例
本申请实施例提供一种计算机程序产品,该计算机程序产品包括指令,当该指令在硬盘管理器上运行时,使得硬盘管理器(例如可以是带外管理设备或处理器)执行上述方法实施例的操作硬盘的方法。
计算机设备实施例
本申请实施例提供一种计算机设备,该计算机设备包括上述的硬盘管理器。
可选地,该计算机设备可以是服务器。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改;而这些修改或者替换,并不使相应技术方案的本质脱离权利要求的保护范围。
Claims (12)
1.一种操作硬盘的方法,其特征在于,所述方法包括:
硬盘管理器的操作系统OS生成指令,所述硬盘管理器将所述指令封装到第一管理组件传输协议MCTP包中,所述指令用于指定硬盘执行动作;
所述硬盘管理器向硬盘控制器发送所述第一MCTP包,使得所述硬盘控制器将所述指令向所述硬盘转发;
其中,所述硬盘管理器和所述硬盘控制器属于同一计算设备,所述硬盘管理器为CPU集合或者高级精简指令集机器ARM处理器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述硬盘管理器接收所述硬盘控制器发送的第二MCTP包,所述第二MCTP包携带所述硬盘根据所述指令执行动作所得的执行结果;
所述硬盘管理器从所述第二MCTP包中解析出所述执行结果。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述硬盘管理器基于MCTP与所述硬盘控制器建立通信连接。
4.根据权利要求3所述的方法,其特征在于,计算机设备包括CPU集合和平台控制中心PCH,所述CPU集合包括至少一个CPU;所述CPU集合为所述硬盘管理器,所述硬盘控制器在所述PCH中部署或者独立于所述PCH部署;
所述硬盘管理器基于MCTP与所述硬盘控制器建立通信连接,具体为:
所述硬盘管理器基于MCTP,通过所述PCH与所述硬盘控制器建立通信连接。
5.根据权利要求3所述的方法,其特征在于,计算机设备包括CPU集合和独立硬盘冗余阵列RAID控制器,所述CPU集合包括至少一个CPU;所述CPU集合为所述硬盘管理器,所述硬盘控制器为所述RAID控制器。
6.根据权利要求3所述的方法,其特征在于,计算机设备包括ARM处理器和独立硬盘冗余阵列RAID控制器;所述ARM处理器为所述硬盘管理器,所述硬盘控制器为所述RAID控制器。
7.一种硬盘管理器,其特征在于,所述硬盘管理器和硬盘控制器属于同一计算设备,所述硬盘管理器为CPU集合或者高级精简指令集机器ARM处理器;所述硬盘管理器包括:
封装单元,用于生成指令,并将所述指令封装到第一管理组件传输协议MCTP包中,所述指令用于指定硬盘执行动作,其中,所述指令是由硬盘管理器的操作系统OS生成的;
通信单元,用于向所述硬盘控制器发送所述第一MCTP包,使得所述硬盘控制器将所述指令向所述硬盘转发。
8.根据权利要求7所述的硬盘管理器,其特征在于,所述硬盘管理器还包括:
通信单元,用于接收所述硬盘控制器发送的第二MCTP包,所述第二MCTP包携带所述硬盘根据所述指令执行动作所得的执行结果;
解析单元,用于从所述第二MCTP包中解析出所述执行结果。
9.根据权利要求7或8所述的硬盘管理器,其特征在于,所述通信单元,用于基于MCTP与所述硬盘控制器建立通信连接。
10.根据权利要求9所述的硬盘管理器,其特征在于,计算机设备包括CPU集合和平台控制中心PCH,所述CPU集合包括至少一个CPU;所述CPU集合为所述硬盘管理器,所述硬盘控制器在所述PCH中部署或者独立于所述PCH部署;
所述通信单元,用于基于MCTP,通过所述PCH与所述硬盘控制器建立通信连接。
11.根据权利要求9所述的硬盘管理器,其特征在于,计算机设备包括CPU集合和独立硬盘冗余阵列RAID控制器,所述CPU集合包括至少一个CPU;所述CPU集合为所述硬盘管理器,所述硬盘控制器为所述RAID控制器。
12.根据权利要求9所述的硬盘管理器,其特征在于,计算机设备包括ARM处理器和独立硬盘冗余阵列RAID控制器;所述ARM处理器为所述硬盘管理器,所述硬盘控制器为所述RAID控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/084372 WO2018209513A1 (zh) | 2017-05-15 | 2017-05-15 | 操作硬盘的方法和硬盘管理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109257955A CN109257955A (zh) | 2019-01-22 |
CN109257955B true CN109257955B (zh) | 2021-08-20 |
Family
ID=64273168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780002696.3A Active CN109257955B (zh) | 2017-05-15 | 2017-05-15 | 操作硬盘的方法和硬盘管理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190042161A1 (zh) |
EP (1) | EP3429128B1 (zh) |
CN (1) | CN109257955B (zh) |
WO (1) | WO2018209513A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111179981A (zh) * | 2019-12-31 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列连接机构 |
CN111459863B (zh) * | 2020-03-08 | 2021-09-28 | 苏州浪潮智能科技有限公司 | 一种基于nvme-mi的机箱管理系统及方法 |
US11803332B2 (en) * | 2021-03-29 | 2023-10-31 | Micron Technology, Inc. | Sideband communication management |
CN114691586B (zh) * | 2022-05-26 | 2022-10-04 | 阿里巴巴(中国)有限公司 | 服务器、传输数据的方法以及带外管理芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202197A (zh) * | 2014-09-12 | 2014-12-10 | 华为技术有限公司 | 设备管理的方法和装置 |
CN204046631U (zh) * | 2014-08-06 | 2014-12-24 | 浪潮电子信息产业股份有限公司 | 一种基于mctp技术的bmc快速管理系统 |
WO2015016882A1 (en) * | 2013-07-31 | 2015-02-05 | Intel Corporation | A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device |
CN104484205A (zh) * | 2014-12-17 | 2015-04-01 | 华为技术有限公司 | 一种io设备固件的升级装置及方法 |
CN106648440A (zh) * | 2015-10-28 | 2017-05-10 | 杭州华为数字技术有限公司 | 操作存储设备的控制方法和存储设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4371739B2 (ja) * | 2003-09-02 | 2009-11-25 | 株式会社東芝 | シリアルataインタフェースを持つ電子機器及びシリアルataバスのパワーセーブ方法 |
US7847801B2 (en) * | 2006-09-29 | 2010-12-07 | Lsi Corporation | Method for reporting redundant controllers as independent storage entities |
US8776080B2 (en) * | 2007-09-25 | 2014-07-08 | Intel Corporationa | Management component transport protocol interconnect filtering and routing |
US8423690B2 (en) * | 2007-12-31 | 2013-04-16 | Intel Corporation | Methods and apparatus for media redirection |
US9377967B2 (en) * | 2009-05-27 | 2016-06-28 | Dell Products L.P. | Systems and methods for scalable storage management |
US8370534B2 (en) * | 2009-12-03 | 2013-02-05 | Dell Products, Lp | Host-based messaging framework for PCIe device management |
US8949565B2 (en) * | 2009-12-27 | 2015-02-03 | Intel Corporation | Virtual and hidden service partition and dynamic enhanced third party data store |
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
WO2012055070A1 (en) * | 2010-10-28 | 2012-05-03 | Intel Corporation | Cooperated approach to network packet filtering |
US9411762B2 (en) * | 2013-03-15 | 2016-08-09 | Intel Corporation | Method and system for platform management messages across peripheral component interconnect express (PCIe) segments |
US9298524B2 (en) * | 2013-03-22 | 2016-03-29 | Insyde Software Corp. | Virtual baseboard management controller |
US9218301B2 (en) * | 2013-10-24 | 2015-12-22 | Dell Products L.P. | Storage device security system |
US20170102952A1 (en) * | 2015-10-07 | 2017-04-13 | Dell Products, L.P. | Accessing data stored in a remote target using a baseboard management controler (bmc) independently of the status of the remote target's operating system (os) |
-
2017
- 2017-05-15 WO PCT/CN2017/084372 patent/WO2018209513A1/zh active Application Filing
- 2017-05-15 EP EP17904359.1A patent/EP3429128B1/en active Active
- 2017-05-15 CN CN201780002696.3A patent/CN109257955B/zh active Active
-
2018
- 2018-10-09 US US16/155,221 patent/US20190042161A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015016882A1 (en) * | 2013-07-31 | 2015-02-05 | Intel Corporation | A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device |
CN204046631U (zh) * | 2014-08-06 | 2014-12-24 | 浪潮电子信息产业股份有限公司 | 一种基于mctp技术的bmc快速管理系统 |
CN104202197A (zh) * | 2014-09-12 | 2014-12-10 | 华为技术有限公司 | 设备管理的方法和装置 |
CN104484205A (zh) * | 2014-12-17 | 2015-04-01 | 华为技术有限公司 | 一种io设备固件的升级装置及方法 |
CN106648440A (zh) * | 2015-10-28 | 2017-05-10 | 杭州华为数字技术有限公司 | 操作存储设备的控制方法和存储设备 |
Also Published As
Publication number | Publication date |
---|---|
US20190042161A1 (en) | 2019-02-07 |
EP3429128A4 (en) | 2019-03-27 |
CN109257955A (zh) | 2019-01-22 |
WO2018209513A1 (zh) | 2018-11-22 |
EP3429128B1 (en) | 2022-04-06 |
EP3429128A1 (en) | 2019-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6871957B2 (ja) | エミュレートされたエンドポイントコンフィグレーション | |
US10079889B1 (en) | Remotely accessible solid state drive | |
US10348830B1 (en) | Virtual non-volatile memory express drive | |
US10372648B2 (en) | Device management method and apparatus | |
CN109257955B (zh) | 操作硬盘的方法和硬盘管理器 | |
US8312189B2 (en) | Processing of data to monitor input/output operations | |
US9767067B2 (en) | Baseboard management systems and methods with distributed intelligence for multi-node platforms | |
US8099274B2 (en) | Facilitating input/output processing of one or more guest processing systems | |
CN105868149B (zh) | 一种串口信息的传输方法和装置 | |
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
WO2017054454A1 (zh) | 对usb设备的访问方法、装置、终端、服务器及系统 | |
CN104704478B (zh) | 输入/输出错误遏制事件后的恢复 | |
WO2017032112A1 (zh) | 一种与无中央处理器单板通讯的方法及通讯设备 | |
CN104021069A (zh) | 基于分布式虚拟机系统的软件性能测试的管理方法和系统 | |
WO2019072111A1 (zh) | Fpga设备、基于fpga设备的云系统 | |
CN115277348A (zh) | 一种服务器管理方法、服务器及服务器管理系统 | |
US11868799B2 (en) | Command information transmission method, system, and apparatus, and readable storage medium | |
US10261937B2 (en) | Method and system for communication of device information | |
US10795846B1 (en) | Scalable NVMe storage management over system management bus | |
US9904654B2 (en) | Providing I2C bus over ethernet | |
CN114880266B (zh) | 故障处理的方法、装置、计算机设备和存储介质 | |
JP2014048810A (ja) | ホストシステム、ストレージデバイス、および通信方法 | |
CN112579507A (zh) | 宿主机与bmc通信的方法、bios、操作系统、bmc和服务器 | |
US9836364B2 (en) | In-band recovery mechanism for I/O modules in a data storage system | |
WO2023060928A1 (zh) | 一种与PCIe设备通信的方法、装置及系统 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211221 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |