CN108647169B - 一种热插拔处理方法及装置 - Google Patents
一种热插拔处理方法及装置 Download PDFInfo
- Publication number
- CN108647169B CN108647169B CN201810453926.4A CN201810453926A CN108647169B CN 108647169 B CN108647169 B CN 108647169B CN 201810453926 A CN201810453926 A CN 201810453926A CN 108647169 B CN108647169 B CN 108647169B
- Authority
- CN
- China
- Prior art keywords
- slot position
- hot plug
- slot
- distinguishing
- hot
- 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种热插拔处理方法及装置,该方法包括:根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据;根据所述槽位号寄存器上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。解决槽位号冲突而导致的热插拔出现误动作的问题,且扩展性及可维护性更强。
Description
技术领域
本申请涉及热插拔处理技术,尤其涉及的是一种热插拔处理方法及装置。
背景技术
存储系统运行过程中不可避免会出现硬件损坏的情况,需要更换故障模块以便恢复正常功能。为减小故障模块更换对系统业务的影响,存储系统应具备热插拔功能,即在不重启系统情况下更换故障模块,更换后的模块能够继续承载之前因故障而中断的业务。
热插拔功能需要通过专用的热插拔控制器来实现,处理器和交换芯片厂商通常将热插拔控制器集成到芯片内部,以Native Hotplug(本地热插拔)方式出现在PCIExpress能力集的Slot Capability项(槽位能力项)中,该能力项中有Physical Slot Number寄存器(物理槽位号寄存器),用以标识物理槽位的编号,该槽位号寄存器目前的定义是用于指示连接到PCIe接口的槽位的槽位号并由BIOS(一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息)初始化,该字段共有13bit,为bit31-bit19,共可表示8192个插槽。
在热插拔控制器的协助下,PCIe设备支持暴力拔插,但通常为将热插拔动作对系统的影响降到最低,通常对PCIe设备进行热插拔前需要通知操作系统,由操作系统执行一系列软硬件安全操作后方可移除PCIe设备。Linux操作系统中通过对用户态power文件(安全操作文件)的操作来实现所需的一系列安全操作,该power文件由热插拔驱动创建,位于/sys/bus/pci/slots/X/目录下,X即为支持热插拔的PCIe设备所在的槽位号。
然而,基于目前的物理槽位号寄存器的定义,由于不同类型的PCIe设备热插拔槽位编号均是从1开始的,这样就会在系统中出现重名的热插拔槽位,而操作系统中不允许出现同名的目录或文件,所以操作系统会将第二个出现的槽位号重命名为X-0,这种情况下无法通过直观方式确定X及X-0分别指向何种热插拔设备类型,进行热插拔操作时很可能会造成误动作。
为了避免上述可能造成误动作的问题,现有技术做出的改进是,在每种热插拔控制器上都设置一个ID来标明厂商、型号,不同热插拔设备类型使用不同的热插拔控制器,热插拔驱动中通过判断控制器的ID来确定所控制的是何种热插拔设备类型,这样在创建power文件时,对于一类热插拔设备可使用X来命名,对于另一类热插拔设备则可使用X-0来命名。
但是,不同的产品可能使用不同厂家的芯片来实现热插拔功能,甚至同一厂家实现相同功能的芯片也有不同的型号,上述技术方案中,每引入一种芯片都要对热插拔驱动进行修改,限制了软件的扩展性,并且在代码中添加大量的厂商、型号ID也不利于软件的维护。
发明内容
有鉴于此,本申请提供一种热插拔处理方法及装置,解决槽位号冲突而导致的热插拔出现误动作的问题,且扩展性及可维护性更强。
具体地,本申请是通过如下技术方案实现的:
根据本发明的一个实施例,一种热插拔处理方法,包括:
根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据;
根据所述槽位号寄存器上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。
根据本发明的一个实施例,所述槽位号寄存器的指定位设置为区分标记位,所述区分标记位上的数据标记热插拔槽位类型;
所述将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内包括:
将所述区分槽位号对应记录至所述热插拔槽位对应的槽位号寄存器,且所述区分槽位号中的热插拔槽位类型数据记录至所述槽位号寄存器的区分标记位。
根据本发明的一个实施例,所述根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,包括:
BIOS根据热插拔槽位类型,修改或保留所述物理槽位号对应于槽位号寄存器的区分标记位的数据,而得到所述区分槽位号。
根据本发明的一个实施例,所述槽位号寄存器的最前端的数据位设置为区分标记位。
根据本发明的一个实施例,还包括:
操作系统响应于外部输入的安全操作指令,获取对应的安全操作文件进行热插拔的安全操作,其中,所述安全操作指令包括所述安全操作文件的名称。
根据本发明的一个实施例,所述安全操作指令的确定方式为:
根据热插拔槽位类型,对热插拔槽位的物理槽位号进行处理得到;
其中,所述安全操作指令与所述热插拔槽位的区分槽位号对应。
根据本发明的一个实施例,热插拔槽位类型包括IO模块槽位和存储介质槽位,可插接的热插拔设备包括IO模块和存储介质,所述IO模块和存储介质在热插拔时,均作为PCIe设备。
根据本发明的一个实施例,一种热插拔处理装置,包括:
区分写入模块,用以根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据;
文件命名模块,用以根据所述槽位号寄存器上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。
根据本发明的一个实施例,所述槽位号寄存器的指定位设置为区分标记位,所述区分标记位上的数据可标记热插拔槽位类型;
所述区分写入模块将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内包括:
将所述区分槽位号对应记录至所述热插拔槽位对应的槽位号寄存器,且所述区分槽位号中的热插拔槽位类型数据记录至所述槽位号寄存器的区分标记位。
根据本发明的一个实施例,还包括:
输入控制模块,用以输入安全操作指令,控制操作系统响应于所述安全操作指令,而获取对应的安全操作文件进行热插拔的安全操作,其中,所述安全操作指令包括所述安全操作文件的名称。
本发明实施例具有以下有益效果:
通过对物理槽位号进行依类别不同的处理,得到的区分槽位号写入热插拔控制器的槽位号寄存器后,热插拔驱动模块在创建安全操作文件时以槽位号寄存器中的区分槽位号作为命名依据,由于不同类型的物理槽位号做了类型的区分处理,对物理槽位号相同、而设备类型不同情况下的安全操作文件作了不同的命名,因而不会发生冲突而导致热插拔误动作的问题,避免误操作给用户造成损失;而且不需要使用传统的通过不断追加新的厂商、设备ID方式来支持新产品的方式,提高了软件的可扩展性及可维护性;
通过修改原有槽位号寄存器的字段定义,将其中的指定位设置为区分标记位,可据此位上的数据区分出物理槽位号对应的热插拔槽位类型,由于区分标记位的位置指定,处理物理槽位号的数据位也相应确定,处理方式更简单统一,处理效率更高。
附图说明
图1是本申请一示例性实施例示出的一种热插拔处理方法的流程示意图;
图2是本申请一示例性实施例示出的一种热插拔存储系统的结构框图;
图3是本申请另一示例性实施例示出的一种热插拔处理方法的流程示意图;
图4是本申请另一示例性实施例示出的一种热插拔处理装置的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种器件,但这些信息不应限于这些术语。这些术语仅用来将同一类型的器件彼此区分开。例如,在不脱离本申请范围的情况下,第一器件也可以被称为第二器件,类似地,第二器件也可以被称为第一器件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
技术缩略词说明:
PCI(Peripheral Component Interconnect):外设部件互连标准,是由PCISIG(PCI SpecialInterest Group)推出的一种局部并行总线标准。
PCIe(PCI-Express):PCI基础上的一种新总线技术,实现高速串行点对点可靠传输,支持主动电源管理、错误报告、热插拔及服务质量(QOS)等功能。
IO模块:输入、输出模块,通过不同的传输协议及介质承载流入、流出存储系统中的数据流,通常作为PCIe设备存在。
NVM(Non Volatile Memory):非易失存储器,具有非易失、按字节存取、存储密度高、低能耗、读写性能接近DRAM,但读写速度不对称,寿命有限的特点。
NVMe(Non Volatile Memory Express):一种主机软件与NVM通信的接口,NVMe规范定义了通过PCIe和Fabrics这两种途径访问NVMe。
SSD(Solid State Drives):固态硬盘,通常指采用NVM制成的硬盘,相比传统的机械硬盘具有随机读写速度快、功耗低、抗震性好、功耗低等优点。
NVMe SSD(Non Volatile Memory Express Solid State Drive):基于NVMe接口实现的固态硬盘。
参看图1,在一个实施例中,一种热插拔处理方法可以包括以下步骤:
S1:根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据;
S2:根据所述槽位号寄存器上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。
下面对本发明实施例的热插拔处理方法进行更详细的描述,但不应以此为限。
本发明实施例的热插拔处理方法,可适用于具有若干热插拔槽位的存储系统上,当然也可以用在其他支持热插拔的系统中。存储系统的数据通道上有前端的IO模块及后端的存储介质,IO模块可以直接连接到CPU上。存储系统若需要连接多个存储介质,可以通过专用扩展芯片扩展相应的接口来实现。
图2示出了一种简单的存储系统的框架。后端存储介质可以采用NVMe SSD,包括第一存储介质51、第二存储介质52……第n存储介质5n。IO模块可以是任意承载业务流量的模块,例如可以是以太网模块、FC模块等不限,图2中的前端热插拔设备可包括第一IO模块41和第二IO模块42。IO模块及存储介质在整个存储系统中可都作为PCIe设备存在。
图2的存储系统中还包括内存3、处理器1和交换芯片2。第一存储介质51、第二存储介质52……第n存储介质5n通过交换芯片2与处理器1连接,交换芯片2实现数据的交换,使得数据的上行链路只有一条,而下行链路与存储介质的数量对应,使得各个存储介质均可与处理器实现数据交换。内存3可以暂时存放处理器1运行所需的数据,在系统启动时,可以将BIOS及热插拔驱动载入到内存中,通过处理器1的执行来实现相应的功能。
继续参看图1,在步骤S1中,根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据。
在系统启动过程中,BIOS会进行槽位号的写入操作,本发明实施例中,BIOS会根据热插拔槽位类型来对热插拔槽位的物理槽位号进行一定的处理,使得不同类型的热插拔槽位号在写入到热插拔控制器的槽位号寄存器时,可以有所区分,区分槽位号可以包括该热插拔槽位的物理槽位号和热插拔槽位类型数据。
此处所说的处理,可以是对全部类型的热插拔槽位的物理槽位号均做修改,再写入到热插拔控制器的槽位号寄存器内,此时,各个区分槽位号均为虚拟槽位号;也可以是对部分类型的热插拔槽位的物理槽位号做修改,而部分类型的热插拔槽位的物理槽位号则不做修改,此时,做修改得到的区分槽位号为虚拟槽位号,而不做修改得到的区分槽位号为原物理槽位号。具体不限,只要能够使得处理后得到的区分槽位号可以指示对应类型的热插拔槽位即可。
优选来说,因为IO模块的热插拔技术出现早于NVMe设备,所以为保证原有的IO模块热插拔程序无缝兼容,可以将IO模块的热插拔槽位类型数据标记为0,将NVMe设备的热插拔槽位类型数据标记为1。
可以理解,对物理槽位号的修改可以是对应于槽位号寄存器中的一位或两位以上的数据。也就是说,将物理槽位号写入槽位号寄存器中,与区分槽位号写入槽位号寄存器中,两者对比,槽位号寄存器内可能有一位或两位以上的数据是变化的(区分标记位修改的情况),也可能相同(区分标记位保持的情况)。
每个热插拔槽位对应一个热插拔控制器,每个热插拔控制器均对应有一槽位号寄存器,BIOS确定区分槽位号后,将区分槽位号写入对应热插拔槽位的热插拔控制器的槽位号寄存器。该槽位号寄存器即背景技术中所说的物理槽位号寄存器,只是在本发明实施例中,写入槽位号寄存器中的数据是区分槽位号,而不再是直接将物理槽位号写入到槽位号寄存器内。
在步骤S1执行完之后,执行步骤S2,根据所述槽位号寄存器上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。
在系统启动过程中,热插拔驱动模块会读取槽位号寄存器中的数据,进行热插拔槽位所对应的安全操作文件(power文件)的创建。由于槽位号寄存器中的区分槽位号已然能体现热插拔槽位类型的差异,因而热插拔驱动模块根据槽位号寄存器中的数据对相应热插拔槽位的安全操作文件进行命名,便可使得系统中不会存在重名的安全操作文件,而且可以明确安全操作文件所指向的热插拔槽位类型(或者说热插拔设备类型)。
以图2中的存储系统为例进行说明,假使第一IO模块41的物理槽位号和第一存储介质51的物理槽位号相同,BIOS在写热插拔控制器之前,先根据是第一IO模块41还是第一存储介质来对物理槽位号进行处理,例如若为第一存储介质51则将其物理槽位号对应于槽位号寄存器中的一位或两位以上的数据进行修改,再写入到槽位号寄存器中,而若为第一IO模块41则不做修改直接将物理槽位号写入到槽位号寄存器中,从而根据对应数据位上的数据便可区分是第一IO模块41还是第一存储介质51,进而在热插拔驱动模块创建安全操作文件时,根据槽位号寄存器中的区分槽位号进行命名,便可使得安全操作文件所对应的热插拔槽位(或者说热插拔设备)是确定的。那么在热插拔时,根据安全操作文件的名称便可找到正确的安全操作文件,避免误动作。
不同类型的热插拔槽位结构可有不同,一般不具通用性,例如IO模块的槽位不适合于插接存储介质。可以预先将热插拔槽位对应的类型设置在BIOS中,那么在BIOS执行时,便可根据热插拔槽位的物理槽位号来确定该热插拔槽位的类型,从而进行后续的处理及写入操作。
通过对物理槽位号进行依类别不同的处理,得到的区分槽位号写入热插拔控制器的槽位号寄存器后,热插拔驱动模块在创建安全操作文件时以槽位号寄存器中的区分槽位号作为命名依据,由于不同类型的物理槽位号做了类型的区分处理,对物理槽位号相同、而设备类型不同情况下的安全操作文件作了不同的命名,因而不会发生冲突而导致热插拔误动作的问题,避免误操作给用户造成损失;而且不需要使用传统的通过不断追加新的厂商、设备ID方式来支持新产品的方式,提高了软件的可扩展性及可维护性。
在一个实施例中,所述槽位号寄存器的指定位设置为区分标记位,所述区分标记位上的数据用来标记热插拔槽位类型。槽位号寄存器具有13位,分别为bit31-bit19,区分标记位可以是其中的任意一位或几位。当然优选来说,是最高位bit31作为区分标记位。
所述将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内包括:
将所述区分槽位号对应记录至所述热插拔槽位对应的槽位号寄存器,且所述区分槽位号中的热插拔槽位类型数据记录至所述槽位号寄存器的区分标记位。
当然,由于槽位号寄存器的字段原本是都用于记录槽位号的,而本发明实施例修改了槽位号寄存器的字段定义,将其中的区分标记位用来标记热插拔槽位的类型,一定程度上会减少可记录的槽位数量,例如,若区分标记位为一位时,支持的槽位数会从原来的8192个降低到4096个。虽然支持的槽位数从8192降到了4096,但前、后端热插拔设备的速度也在不断提升,并且存储设备的性能不是靠单个节点的无限扩容来实现,可以预见到4096个槽位在很长一段时间内足够使用。
通过修改原有槽位号寄存器的字段定义,将其中的指定位设置为区分标记位,可据此位上的数据区分出物理槽位号对应的热插拔槽位类型,由于区分标记位的位置指定,处理物理槽位号的数据位也相应确定,处理方式更简单统一,处理效率更高。
优选的,槽位号寄存器的最前端的数据位设置为区分标记位。也即,将bit31作为区分标记位来区分是热插拔槽位类型(或者说热插拔设备),例如,在bit31为1时表示为NVMe SSD,而在bit31为0时表示为IO模块。将槽位号寄存器的最前端的数据位设置为区分标记位,可使得本发明实施例的热插拔处理方法可兼容早期IO模块热插拔程序(位数少)。
所述根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,包括:
BIOS根据热插拔槽位类型,修改或保留所述物理槽位号对应于槽位号寄存器的区分标记位的数据,而得到所述区分槽位号。
BIOS可以先判断热插拔槽位类型,根据类型确定对各热插拔槽位的物理槽位号的处理方式。例如,在bit31为区分标记位时,处理方式可以是:如果该热插拔槽位接IO模块则保持物理槽位号不变写入槽位号寄存器中,如果该热插拔槽位接存储介质则将物理槽位号加上十六进制数1000后的值写入槽位号寄存器中(修改的是物理槽位号对应于槽位号寄存器的区分标记位的数据),当然,反之亦可。
接着,BIOS可以根据所确定的处理方式对相应的热插拔槽位的物理槽位号进行处理得到区分槽位号。例如,接着前述的在bit31为区分标记位时的实施例内容,若热插拔槽位为存储介质,则将对应的物理槽位号加上十六进制数1000(与二进制数1000000000000相同)。
将所述区分槽位号写入至槽位号寄存器后,不同热插拔槽位类型所对应的所述槽位号寄存器的区分标记位上的数据不同。例如,接着前述的在bit31为区分标记位时的实施例内容,物理槽位号修改后写入槽位号寄存器中,其bit31便会从默认的0修改为1,通过0和1来判断热插拔槽位类型。
可以理解,当区分标记位为其他位时,例如bit19时,则对于物理槽位号的处理便会相应的修改,使得bit19上的位可以用来区分类型,当然,在此情况下,物理槽位号需要往前移位一位后寄存,处理方式相对较麻烦。
BIOS所确定对各热插拔槽位的物理槽位号的处理方式中,不同热插拔槽位类型所对应的处理方式不同,相同热插拔槽位类型所对应的处理方式相同。仅做热插拔类型的区分,可以尽可能节省所需占用的区分标记位的位数,也就尽可能地保留更多可记录的槽位数量。
在对物理槽位号进行处理时,尽可能地保留原物理槽位号的逻辑结构,只对写入到区分标记位的数据位进行处理,便于上层应用时的处理。
优选的,步骤S2中,热插拔驱动模块在创建安全操作文件时,直接以热插拔控制器的槽位号寄存器中存储的区分槽位号来命名安全操作文件,处理方式简单,且用户下发指令时,通过处理得到安全操作文件的名称也更为方便。
在一个实施例中,参看图3,热插拔处理方法还可以包括以下步骤:
S3:操作系统响应于外部输入的安全操作指令,获取对应的安全操作文件进行热插拔的安全操作,其中,所述安全操作指令包括所述安全操作文件的名称。
安全操作指令可以由用户输入并下发,例如,在linux系统中,用户通过输入安全操作文件的名称下发安全操作指令给linux操作系统,linux操作系统收到该安全操作指令后,获取对应名称的安全操作文件,通过对用户态的安全操作文件操作来实现所需的一系列安全操作,在安全操作结束后系统可以进行提示,而后用户便可将热插拔设备拔出,或者可针对热插拔设备进行需要的读写操作。
将安全操作文件的名称作为安全操作指令,可以快速地找到对应的安全操作文件进行处理,且对于用户来说,便于安全操作指令的编辑。
优选的,所述安全操作指令的确定方式为:根据热插拔槽位类型,对热插拔槽位的物理槽位号进行处理得到。
其中,所述安全操作指令与BIOS根据热插拔槽位类型对热插拔槽位的物理槽位号进行处理得到的区分槽位号对应。例如可以是,安全操作指令为所需热插拔操作的安全操作文件的名称,也即安全操作指令与区分槽位号是相同的。
安全操作指令通常是用户来确定并输入下发的,下发的时机是在用户需要对热插拔设备进行热插拔操作时,对安全操作指令的处理方式与BIOS对物理槽位号的处理方式一致,可以使得操作系统可以快速地找到对应的安全操作文件,无需对操作指令进行解析、修改等。
例如,接着前述的在bit31为区分标记位时的实施例内容,安全操作文件的名称是相应的槽位号寄存器中的数值。在步骤S3中,当用户对IO模块进行热插拔操作时,则直接以物理槽位号作为安全操作文件的名称下发安全操作指令,而当用户对存储介质进行热插拔操作时,则将物理槽位号加上十六进制数1000作为安全操作文件的名称来下发安全操作指令。
安全操作包括两种,第一种是热插拔设备插入到热插拔槽位上后的安全操作,第二种是热插拔设备需要从热插拔槽位上拔下时的安全操作。
先说第一种安全操作,安全操作指令为上电命令,操作系统获取到安全操作文件后,先对热插拔设备进行上电,接入时序,进行释放复位,将其复位管脚接无效信号,从而使得热插拔设备处于可工作的状态,完成后可以进行系统提示,而后可以进行后续的操作,例如控制CPU对热插拔设备进行访问等。
再说第二种安全操作,安全操作指令为下电命令,操作系统获取到安全操作文件后,先判断热插拔设备上是否还有数据在传输(正在读或写数据),若还有则等待数据传输完成,在数据传输完成之后,对热插拔设备进行掉电处理,之后将槽位置于复位状态,完成后可以进行系统提示,而后用户便可将热插拔设备拔出。
当然,安全操作具体也不限于此。
优选的,热插拔槽位类型包括IO模块槽位和存储介质槽位,可插接的热插拔设备包括IO模块和存储介质,所述IO模块和存储介质在热插拔时,均作为PCIe设备。
与前述热插拔处理方法的实施例相对应,本申请还提供了热插拔处理装置的实施例。
本申请热插拔处理装置的实施例可以应用在存储系统上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在存储系统的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请热插拔处理装置所在存储系统的一种硬件结构图,除了图2所示的处理器、内存、交换芯片、IO模块以及存储介质之外,实施例中装置所在的存储系统通常根据该存储系统的实际功能,还可以包括其他硬件,对此不再赘述。
请参看图4,在一个实施例中,一种热插拔处理装置可以包括:
区分写入模块10,用以根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器100内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据;
文件命名模块20,用以根据所述槽位号寄存器100上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。
所述区分写入模块10可设置在BIOS中,通过修改BIOS来实现。所述文件命名模块20可以设置在热插拔驱动模块中,通过修改热插拔驱动程序实现。
在一个实施例中,各个所述槽位号寄存器的指定位设置为区分标记位,所述区分标记位上的数据用于标记热插拔槽位类型。
进一步的,所述区分写入模块10,还进一步用以:将所述区分槽位号对应记录至所述热插拔槽位对应的槽位号寄存器,且所述区分槽位号中的热插拔槽位类型数据记录至所述槽位号寄存器的区分标记位。
优选的,所述区分写入模块10,还进一步用以:根据热插拔槽位类型,修改或保留所述物理槽位号对应于槽位号寄存器的区分标记位的数据,而得到所述区分槽位号。
优选的,所述槽位号寄存器的最前端的数据位设置为区分标记位。
在一个实施例中,继续参看图4,热插拔处理装置还可以包括:
输入控制模块30,用以输入安全操作指令,控制操作系统响应于所述安全操作指令,而获取对应的安全操作文件进行热插拔的安全操作,其中,所述安全操作指令包括所述安全操作文件的名称。安全操作指令可由用户进行输入。
优选的,所述安全操作指令的确定方式为:
根据热插拔槽位类型,对热插拔槽位的物理槽位号进行处理得到;
其中,所述安全操作指令与所述热插拔槽位的区分槽位号对应。
优选的,热插拔槽位类型包括IO模块槽位和存储介质槽位,可插接的热插拔设备包括IO模块和存储介质,所述IO模块和存储介质在热插拔时,均作为PCIe设备。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种热插拔处理方法,其特征在于,包括:
根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据;
根据所述槽位号寄存器上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。
2.如权利要求1所述的热插拔处理方法,其特征在于,所述槽位号寄存器的指定位设置为区分标记位,所述区分标记位上的数据标记热插拔槽位类型;
所述将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内包括:
将所述区分槽位号对应记录至所述热插拔槽位对应的槽位号寄存器,且所述区分槽位号中的热插拔槽位类型数据记录至所述槽位号寄存器的区分标记位。
3.如权利要求2所述的热插拔处理方法,其特征在于,所述根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,包括:
BIOS根据热插拔槽位类型,修改或保留所述物理槽位号对应于槽位号寄存器的区分标记位的数据,而得到所述区分槽位号。
4.如权利要求2所述的热插拔处理方法,其特征在于,所述槽位号寄存器的最前端的数据位设置为区分标记位。
5.如权利要求1所述的热插拔处理方法,其特征在于,还包括:
操作系统响应于外部输入的安全操作指令,获取对应的安全操作文件进行热插拔的安全操作,其中,所述安全操作指令包括所述安全操作文件的名称。
6.如权利要求5所述的热插拔处理方法,其特征在于,所述安全操作指令的确定方式为:
根据热插拔槽位类型,对热插拔槽位的物理槽位号进行处理得到;
其中,所述安全操作指令与所述热插拔槽位的区分槽位号对应。
7.如权利要求1所述的热插拔处理方法,其特征在于,热插拔槽位类型包括IO模块槽位和存储介质槽位,可插接的热插拔设备包括IO模块和存储介质,所述IO模块和存储介质在热插拔时,均作为PCIe设备。
8.一种热插拔处理装置,其特征在于,包括:
区分写入模块,用以根据热插拔槽位类型,为热插拔槽位的物理槽位号确定对应的区分槽位号,将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内;其中,所述区分槽位号包括该热插拔槽位的物理槽位号和热插拔槽位类型数据;
文件命名模块,用以根据所述槽位号寄存器上的区分槽位号命名对应热插拔槽位的安全操作文件,使得不同热插拔槽位类型所对应的安全操作文件的名称不同。
9.如权利要求8所述的热插拔处理装置,其特征在于,所述槽位号寄存器的指定位设置为区分标记位,所述区分标记位上的数据可标记热插拔槽位类型;
所述区分写入模块将所述区分槽位号写入至热插拔槽位对应的槽位号寄存器内包括:
将所述区分槽位号对应记录至所述热插拔槽位对应的槽位号寄存器,且所述区分槽位号中的热插拔槽位类型数据记录至所述槽位号寄存器的区分标记位。
10.如权利要求8所述的热插拔处理装置,其特征在于,还包括:
输入控制模块,用以输入安全操作指令,控制操作系统响应于所述安全操作指令,而获取对应的安全操作文件进行热插拔的安全操作,其中,所述安全操作指令包括所述安全操作文件的名称。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810453926.4A CN108647169B (zh) | 2018-05-14 | 2018-05-14 | 一种热插拔处理方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810453926.4A CN108647169B (zh) | 2018-05-14 | 2018-05-14 | 一种热插拔处理方法及装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN108647169A CN108647169A (zh) | 2018-10-12 |
| CN108647169B true CN108647169B (zh) | 2020-11-06 |
Family
ID=63754893
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810453926.4A Active CN108647169B (zh) | 2018-05-14 | 2018-05-14 | 一种热插拔处理方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN108647169B (zh) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111124970B (zh) * | 2018-10-31 | 2021-11-23 | 杭州海康威视数字技术股份有限公司 | 子板热插拔方法及装置 |
| CN109960678B (zh) * | 2019-03-31 | 2021-08-17 | 联想(北京)有限公司 | 一种命名处理方法及计算机处理装置 |
| CN114356668A (zh) * | 2021-03-26 | 2022-04-15 | 山东英信计算机技术有限公司 | 一种物理插槽号处理方法、装置、设备及可读存储介质 |
| CN115878529A (zh) * | 2021-09-26 | 2023-03-31 | 华为技术有限公司 | 分配pcie设备标识的方法、装置及相关设备 |
| CN114185720B (zh) * | 2022-02-17 | 2022-05-10 | 浪潮(山东)计算机科技有限公司 | 服务器动态热备份的方法、装置、设备及存储介质 |
| CN114385537A (zh) * | 2022-03-24 | 2022-04-22 | 浪潮(山东)计算机科技有限公司 | 一种页槽号动态分配方法、装置、设备及介质 |
| CN117591458B (zh) * | 2024-01-18 | 2024-04-09 | 四川惟芯科技有限公司 | 一种固态硬盘热插拔管理系统及方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8214541B2 (en) * | 2006-06-07 | 2012-07-03 | Dell Products L.P. | Method and system for uniquely identifying peripheral component devices |
| CN100459503C (zh) * | 2006-08-25 | 2009-02-04 | 华为技术有限公司 | 一种获取单板的物理槽位号和槽位类型的方法及系统 |
| WO2014115257A1 (ja) * | 2013-01-23 | 2014-07-31 | 株式会社 日立製作所 | PCI-Express接続ソリッドステートドライブを適用したストレージ装置 |
| CN105159811B (zh) * | 2015-07-16 | 2018-03-06 | 中国电子科技集团公司第四十一研究所 | 一种同类pxi测试模块识别方法 |
| CN106354541A (zh) * | 2016-10-25 | 2017-01-25 | 杭州迪普科技有限公司 | 一种加载逻辑文件的方法及装置 |
-
2018
- 2018-05-14 CN CN201810453926.4A patent/CN108647169B/zh active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN108647169A (zh) | 2018-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108647169B (zh) | 一种热插拔处理方法及装置 | |
| TWI631470B (zh) | 透過一管理控制器動態重新配置一系統之至少一週邊匯流排交換器之方法及系統 | |
| CN101452369B (zh) | 用于控制usb大容量存储设备的逻辑单元的方法和系统 | |
| US8296521B2 (en) | Method of configuring non-volatile memory for a hybrid disk drive | |
| JP2691140B2 (ja) | 情報処理装置及びその制御方法 | |
| JP2010160809A (ja) | 多機能半導体記憶装置 | |
| JPH0812651B2 (ja) | データ処理システム及びデータ処理システムを動作させる方法 | |
| US9164703B2 (en) | Solid state drive interface controller and method selectively activating and deactivating interfaces and allocating storage capacity to the interfaces | |
| KR20080098511A (ko) | 두 가지 형태의 저장매체를 이용한 데이터 저장장치 | |
| JPH07113907B2 (ja) | カード | |
| US20050041459A1 (en) | Interface for removable storage devices | |
| US8677084B2 (en) | Method of configuring non-volatile memory for a hybrid disk drive | |
| CN116150064A (zh) | 一种nvme存储设备的热插拔方法、背板及计算设备 | |
| CN112417802B (zh) | 一种模拟存储芯片的方法、系统、设备及存储介质 | |
| JP2008537219A (ja) | ホストコントローラで独立および同時データ転送を行う方法および装置 | |
| CN115729629B (zh) | Usb设备的识别方法、终端设备及系统 | |
| US20050198425A1 (en) | Combined optical storage and flash card reader using single ide or sata port and method thereof | |
| CN115756619A (zh) | 硬盘启动方法、装置、设备、介质及程序产品 | |
| US8380911B2 (en) | Peripheral device, program and methods for responding to a warm reboot condition | |
| US7447853B2 (en) | Data copy device | |
| US7437503B2 (en) | Method and apparatus for handling data transfers | |
| KR20030032177A (ko) | 직렬 이이피롬을 이용하여 인터페이스용 카드를초기화하는 반도체 장치 및 초기화 방법 | |
| CN100498710C (zh) | 自储存装置上读取选择只读存储器程序代码的方法 | |
| US20260030357A1 (en) | Electronic system, controller, operating method and memory system | |
| US12443557B2 (en) | Reservation of PCIe slots for management by a raid driver |
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 |