一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

Linux系统盘符分配方法、装置、设备及存储介质与流程

2022-12-07 00:31:02 来源:中国专利 TAG:

linux系统盘符分配方法、装置、设备及存储介质
技术领域
1.本技术涉及计算机技术领域,特别是涉及一种linux系统盘符分配方法、装置、设备及存储介质。


背景技术:

2.linux系统会为扫描到的小型计算机系统接口上的磁盘设备分配盘符名称,小型计算机系统接口上的磁盘盘符空间是全局的,磁盘接口固件将所连接的磁盘设备上报给linux系统的顺序存在随机性,linux系统中的磁盘管理子系统会依据磁盘接口固件扫描所发现的磁盘顺序分配盘符。因此,磁盘接口固件(例如raid卡、sas卡固件)上报磁盘的顺序会决定磁盘被赋予的盘符,每次启动linux系统上报磁盘的顺序是随机的,磁盘设备分配的盘符名称因而也是随机的。
3.以现有的linux系统所采用的采用动态分配盘符的方式为例,linux系统向小型计算机系统接口上的磁盘分配盘符之前,linux系统在系统内核中维护了一棵管理设备盘符名称的盘符树,当系统的磁盘接口固件每扫描到一个新的磁盘设备之后,都会从盘符树中按顺序查找一个空闲节点,并且获取该空闲节点的id号,作为盘符的索引名称。例如,系统第一个扫描到小型计算机系统接口槽位2的磁盘设备,将空闲的盘符sda分配给该磁盘设备,第二个扫描到小型计算机系统接口槽位1的磁盘设备,将下一个空闲盘符sdb分配给该磁盘设备。虽然这种盘符分配方式较为简单,但是每个磁盘设备的盘符依然取决于该磁盘设备被磁盘接口设备所扫描到的顺序。同时,这种方式需要考虑到有部分盘符被占用,再次分配时,这部分的盘符若不再被占用,磁盘设备的盘符必然发生变化。因此,现有的盘符分配方式存在较大的随机性,而有些上层应用系统中的应用程序的运行依赖于盘符名称,随机分配的盘符会给应用程序运行带来较大不确定性。


技术实现要素:

4.本技术的目的在于提供一种linux系统盘符分配方法、装置、设备及存储介质,旨在解决传统的linux系统向磁盘设备分配盘符存在的随机性较大的问题。
5.本技术实施例的第一方面提了一种linux系统盘符分配方法,该方法包括以下步骤:
6.linux系统扫描计算机系统接口,获取磁盘设备所连接的计算机系统接口对应的槽位号;
7.linux系统根据盘符绑定信息,查询槽位号对应的盘符,其中,盘符绑定信息为槽位号与盘符的预设对应关系;
8.linux系统将槽位号对应的盘符确定为磁盘设备的盘符数据,并将磁盘设备注册至linux系统。
9.进一步的,在本技术实施例中,上述方法还包括以下步骤:
10.linux系统根据用户指令生成盘符绑定信息,用户指令包括命令行或用户配置文
件。
11.进一步的,在本技术实施例中,linux系统根据用户指令生成盘符绑定信息,包括:
12.linux系统响应用户设置的系统启动命令行,指定槽位号与盘符的对应关系;
13.linux系统根据槽位号与盘符的对应关系生成盘符绑定信息。
14.进一步的,命令行包括第一命令参数和第二命令参数,其中,第一命令参数用于指示linux系统以预设模式或指定模式确定槽位号与盘符的对应关系,第二命令参数用于当linux系统以指定模式确定槽位号与盘符的对应关系时,对槽位号与盘符的对应关系进行指定。
15.进一步的,linux系统扫描计算机系统接口,获取磁盘设备所连接的计算机系统接口对应的槽位号,包括:
16.当磁盘设备为独立磁盘冗余磁盘阵列时,linux系统获取独立磁盘冗余磁盘阵列中的物理磁盘所连接的计算机系统接口中的任一槽位号。
17.进一步的,linux系统将槽位号对应的盘符确定为磁盘设备的盘符数据,包括:
18.linux系统根据槽位号对应的盘符修改系统盘符;
19.linux系统将系统盘符与磁盘设备绑定。
20.进一步的,将磁盘设备注册至linux系统,包括:
21.linux系统将计算机系统接口的磁盘驱动与磁盘设备匹配;
22.linux系统向磁盘驱动发送磁盘设备的盘符数据;
23.linux系统通过磁盘驱动确认磁盘设备的盘符数据的合法性;
24.linux系统柜通过磁盘驱动将具有合法性的盘符分配给磁盘设备,并使磁盘设备根据磁盘设备的盘符数据注册至linux系统。
25.本技术实施例的第二方面提供了一种linux系统盘符分配装置,包括:
26.计算机系统接口扫描模块,用于扫描计算机系统接口,获取磁盘设备所连接的计算机系统接口对应的槽位号;
27.盘符查询模块,用于根据盘符绑定信息,查询槽位号对应的盘符,其中,盘符绑定信息为槽位号与盘符的预设对应关系;
28.盘符分配模块,用于将槽位号对应的盘符确定为磁盘设备的盘符数据,并将磁盘设备注册至linux系统。
29.本技术实施例的第三方面提供了一种linux系统盘符分配设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
30.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
31.本技术实施例与现有技术相比存在的有益效果是:
32.本技术实施例通过盘符绑定信息确定槽位号与盘符之间的对应关系,使linux系统能够对固定槽位上的硬盘设备提供相同的盘符,解决了linux系统盘符分配随机性较大的问题,同时,通过命令行等形式生成盘符绑定信息,能简单快捷地向用户提供需求较为广泛的盘符顺序绑定选项。
33.本技术实施例对内核代码更改较少,只增加了计算机系统接口设备端磁盘槽位号
的读取和小型计算机系统接口驱动端对盘符表的管理,因此本技术实现机制、逻辑简单,可维护性高,保证了linux系统的稳定性、完整性。同时,避免了用户空间及内核空间的不断交互,有效提高盘符绑定效率,同时也明显降低由于盘符绑定带来额外的系统开销。
附图说明
34.图1为本技术一实施例提供的一种linux系统盘符分配方法的流程示意图;
35.图2为本技术一实施例中linux系统与磁盘设备的连接结构示意图;
36.图3为本技术一实施例中磁盘设备在scsi总线设备侧注册至linux系统的流程示意图;
37.图4为本技术一实施例中磁盘设备在scsi总线驱动侧添加至linux系统的流程示意图;
38.图5是本技术一实施例提供的一种linux系统盘符分配装置的结构示意图;
39.图6是本技术实施例提供的一种linux系统盘符分配终端设备的示意图。
具体实施方式
40.为了使本技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
41.需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
42.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
43.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
44.图1示出了本技术一个实施例提供的一种linux系统盘符分配方法的流程示意图,作为示例而非限定,该方法可以应用于使用linux系统的服务器中:
45.s101.linux系统扫描计算机系统接口,获取磁盘设备所连接的计算机系统接口对应的槽位号。
46.具体的,linux系统通过小微型计算机系统接口(small computer system interface scsi)总线,与独立冗余磁盘阵列(redundant array of independent disk raid)或是采用串行scsi技术(serial attached scsi sas)的磁盘设备连接,linux系统内核通过探针检测scsi总线上每个槽位是否连接了磁盘设备,并获取连接了磁盘设备的槽位在scsi总线中对应的槽位号。
47.其中,当磁盘设备为raid卡时,scsi总线上会有多个槽位与raid卡连接。此时,linux系统内核仅需要获取该raid卡对应的若干个槽位号中的任意一个槽位号即可,在一般情况下,linux系统内核会获取raid卡对应的若干槽位号中的最小槽位号作为该raid卡对应的槽位号。而当磁盘设备为sas磁盘设备时,linux系统可以直接获取该sas磁盘设备对应的槽位号。
48.s102.linux系统根据盘符绑定信息,查询所述槽位号对应的盘符,其中,所述盘符绑定信息为槽位号与盘符的预设对应关系。
49.具体的,linux系统通过用户输入的命令行,或是预存的用户配置文件生成盘符绑定信息。若通过预存的用户配置文件生成盘符绑定信息,则用户需要在用户配置文件中,预设linux系统的盘符与scsi总线上的槽位号之间的对应关系,例如:用户a可以在用户配置文件中,预先指定盘符a对应槽位号1,盘符b对应槽位号2;而用户b可以在用户配置文件中,预先指定盘符a对应槽位号5,盘符b对应槽位号3。这样,在linux系统中,针对不同的用户,可以根据客户的具体需求,生成不同的盘符绑定信息,使得每个用户在使用计算机系统时,能够稳定的运行相应的应用程序。
50.用户也可以通过对linux系统设置系统启动命令行的方式,生成盘符绑定信息,系统启动命令行由用户进行具体设置,当用户设置完成后,在每一次linux系统重新启动时,都会被linux系统自动读取,上述系统启动命令行中包括了用于指示linux系统以预设模式或指定模式确定所述槽位号与所述盘符的对应关系的第一命令参数,以及用于当linux系统以指定模式确定所述槽位号与所述盘符的对应关系时,对槽位号与盘符的对应关系进行指定的第二命令参数。例如,用户可以通过输入命令行sd_binding=《type》[,param],其中,参数type即为第一命令参数,用于指示linux系统以预设模式或指定模式确定槽位号与盘符之间的对应关系,其中预设模式包括顺序递增对应模式,参数param即为第二命令参数,用于当所述linux系统以指定模式确定所述槽位号与所述盘符的对应关系时,对所述槽位号与所述盘符的对应关系进行指定。
[0051]
在一个实施例中,在linux系统重启时,会自动读取系统启动命令行sd_binding,当sd_binding中的第一命令参数type为1时,盘符与槽位号之间的对应关系为预设的顺序递增对应模式,如表1所示。
[0052][0053]
表1
[0054]
当第一命令参数type为2时,盘符与槽位号之间的对应关系为指定对应模式,此时,linux系统需要调用命令行中的参数param对盘符和槽位号之间的关系进行指定,如1-b,2-a,则说明将槽位号1指定与盘符b对应,槽位号2指定与盘符a对应。
[0055]
需要说明的是,上述参数type可以不仅仅限于将盘符和槽位号以顺序递增的模式一一对应,还可以包括以任何预设的关系使盘符和槽位号一一对应,例如以倒序的模式一一对应,在此不再赘述。
[0056]
linux系统通过解析用户设置的系统启动命令行,或是对用户配置文件解析后,生
成槽位号与盘符之间的对应关系表,该对应关系表即为盘符绑定信息,当linux系统每次重启,linux系统内核扫描计算机接口,获取了连接有磁盘设备的槽位的槽位号后,可以根据盘符绑定信息,快速的查询到槽位号对应的盘符。
[0057]
s103.linux系统将槽位号对应的盘符确定为磁盘设备的盘符数据,并将所述磁盘设备注册至所述linux系统。
[0058]
linux系统根据槽位号对应的盘符修改系统盘符;例如,现有的槽位号对应的盘符为c、d和f,而系统盘符一般根据顺序生成,即c、d、e,那么就需要将系统自动生成的系统盘符e修改为f。之后,linux系统将修改后的系统盘符与槽位号上对应的磁盘设备绑定。
[0059]
本技术通过linux系统将计算机系统接口的磁盘驱动与所述磁盘设备匹配之后,向磁盘驱动发送磁盘设备的盘符数据。linux系统为了避免单个盘符同时绑定多个磁盘设备,通过所述磁盘驱动确认所述磁盘设备的盘符数据的合法性,再通过所述磁盘驱动将具有合法性的盘符数据分配给所述磁盘设备,并使磁盘设备根据磁盘设备的盘符数据注册至linux系统。
[0060]
图2提供了本技术一实施例中linux系统与磁盘设备的连接结构示意图。参见图2,linux系统通过磁盘驱动模块经scsi总线与scsi接口上连接的磁盘设备连接。linux系统通过scsi总线注册所述scsi接口上连接的磁盘设备。
[0061]
图3提供了本技术一实施例中磁盘设备在scsi总线设备侧注册至linux系统的流程示意图。参见图3,本实施例在scsi总线设备侧注册的实现过程包括以下步骤:
[0062]
s201、linux系统解析系统命令行(cmd line)的盘符绑定参数sd_binding。
[0063]
s202、linux系统生成槽位号(slot id)与盘符(sdx)对应表binding_tab。
[0064]
s203、linux系统通过scsi总线扫描scsi接口上连接的磁盘设备,获取磁盘设备对应的槽位号,并通过槽位号查找binding_tab中槽位号对应的盘符填充磁盘设备的盘符数据。
[0065]
s204、linux系统根据磁盘设备的盘符数据向scsi总线注册磁盘设备。
[0066]
当linux系统将槽位号对应的盘符确定为磁盘设备的盘符数据后,磁盘驱动程序根据获取的盘符数据,将对应的磁盘设备注册至linux系统上。
[0067]
图4提供本技术上述实施例中磁盘设备在scsi总线驱动侧添加至linux系统的流程示意图。参见图4,本实施例在scsi驱动的添加过程包括以下步骤:
[0068]
s301、linux系统将磁盘驱动注册到scsi总线。
[0069]
s302、linux系统通过scsi总线将连接的磁盘设备与磁盘驱动匹配。
[0070]
s302、磁盘驱动获取磁盘设备需要绑定的盘符。
[0071]
s304、linux系统判断磁盘驱动获取的盘符合法性。
[0072]
s305、linux系统运行具备合法性的盘符的磁盘驱动,以添加其对应的磁盘设备。
[0073]
作为举例,例如linux系统将盘符a确定为槽位号1连接的磁盘设备的盘符数据sda,盘符b确定为槽位号2连接的磁盘设备的盘符数据sdb,盘符x确定为槽位号x连接的盘符数据sdx。linux系统将磁盘设备的盘符数据添加至磁盘设备对应的磁盘驱动程序中,磁盘驱动程序通过scsi总线与scsi接口槽位上连接的对应磁盘设备匹配,即sda与槽位号1连接的磁盘设备disk0匹配,sdb与槽位号2连接的磁盘设备disk1匹配,sdx与槽位号x连接的磁盘设备diskx匹配。
[0074]
需要说明的是,在磁盘驱动程序根据获取的盘符数据,将对应的磁盘设备注册至linux系统上之前,linux系统会对磁盘驱动程序获取的盘符数据的合法性进行验证,以避免多个盘符同时对应同一个磁盘设备的情况出现。
[0075]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0076]
图5是本技术一实施例提供的一种linux系统盘符分配装置的结构示意图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0077]
参照图5,该分配装置500可以包括:计算机系统接口扫描模块510、盘符查询模块520和盘符分配模块530。
[0078]
其中,计算机系统接口扫描模块510,用于扫描计算机系统接口,获取磁盘设备所连接的计算机系统接口对应的槽位号;
[0079]
盘符查询模块520,用于根据盘符绑定信息,查询所述槽位号对应的盘符,其中,所述盘符绑定信息为槽位号与盘符的预设对应关系;
[0080]
盘符分配模块530,用于将所述槽位号对应的盘符确定为所述磁盘设备的盘符数据,并将所述磁盘设备注册至所述linux系统。
[0081]
在一种可能的实施方式中,该装置还可以包括盘符绑定信息生成模块540,用于生成盘符绑定信息。其中,盘符绑定信息生成模块540包括用户指令接收模块541和用户指令解析模块542,其中,用户指令接收模块541用于接收用户发送的命令行或经过用户编辑生成的用户配置文件,用户指令解析模块542用于对用户指令接收模块541收到的命令行或用户配置文件进行解析,将其转化为盘符绑定信息。
[0082]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0083]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0084]
图6是本技术一实施例提供的一种linux系统盘符分配终端设备的示意图。如图5所示,该实施例的linux系统盘符分配终端设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述各个方法实施例中的步骤,例如图1所示的步骤s101至s103。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块510至540的功能。
[0085]
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者
多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在终端设备6中的执行过程。
[0086]
本领域技术人员可以理解,图6仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等.
[0087]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述linux系统盘符分配方法各个实施例中的步骤。
[0088]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0089]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0090]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0091]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0092]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0093]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0094]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施
例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0095]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献