CN110321172A - 网络块设备的分区识别方法、装置、设备和存储介质 - Google Patents
网络块设备的分区识别方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110321172A CN110321172A CN201910484891.5A CN201910484891A CN110321172A CN 110321172 A CN110321172 A CN 110321172A CN 201910484891 A CN201910484891 A CN 201910484891A CN 110321172 A CN110321172 A CN 110321172A
- Authority
- CN
- China
- Prior art keywords
- network control
- control techology
- subregion
- techology
- identification
- 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
- 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
-
- 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/4416—Network booting; Remote initial program loading [RIPL]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种网络块设备的分区识别方法,包括:在客户端检测到rbd‑nbd进程启动时,客户端的内核向网络块设备驱动发送网络块设备创建指令;在网络块设备创建完成时,rbd‑nbd进程建立网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接;在网络块设备协议对接完成时,在rbd‑nbd进程中创建分区识别线程;通过分区识别线程触发分区识别指令,并根据分区识别指令执行扫描操作,得到网络块设备的分区信息并输出。本发明还公开了一种网络块设备的分区识别装置、设备和存储介质。本发明中有效地避免了分区识别的时限性,使得分区识别时间更加灵活。
Description
技术领域
本发明涉及网络块设备领域,尤其涉及网络块设备的分区识别方法、装置、设备和存储介质。
背景技术
网络块设备(network block device简称nbd设备),是linux系统广泛使用的一种块设备。
根据当前的网络块设备协议,只有在网络块设备和存储集群中的镜像设备通过网络块设备协议对接以后,才可以进行I/O请求(输入/输出(input/output)的缩写)。而网络块设备协议对接的前提是网络块设备已经就绪,网络块设备就绪之前,就会读取该网络块设备的分区信息。如果错过这个时间,要读取网络设备的分区就需要进行人工干预,即,当前网络块设备的分区识别会受到时间限制,如何更加灵活的进行网络块设备分区识别成为了当前亟待解决的技术问题。
发明内容
本发明的主要目的在于提供一种网络块设备的分区识别方法、装置、设备和存储介质,旨在有效地避免了分区识别的时限性,使得分区识别时间更加灵活。
为实现上述目的,本发明提供网络块设备的分区识别方法,所述网络块设备的分区识别方法包括以下步骤:
在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令;
在所述网络块设备创建完成时,所述rbd-nbd进程建立所述网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接;
在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程;
通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出。
可选地,所述在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令的步骤,包括:
在客户端检测到rbd-nbd进程启动时,判断所述客户端的内核中是否已加载网络块设备驱动;
在所述内核中已加载网络块设备驱动时,所述内核遍历网络块设备驱动已创建的各网络块设备,以判断是否存在空闲状态的网络块设备;
在存在空闲状态的网络块设备时,所述rbd-nbd进程获取空闲状态的网络块设备,并建立所述网络块设备与预设存储集群中镜像设备,以进行网络块设备协议对接;
在不存在空闲状态的网络块设备时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令。
可选地,所述在客户端检测到rbd-nbd进程启动时,判断所述客户端的内核中是否已加载网络块设备驱动的步骤之后,包括:
在所述内核中没有加载网络块设备驱动时,所述内核动态申请主设备块标识,并注册所述主设备块标识对应的设备总线接口;
在所述设备总线接口注册完成时,所述内核将预定义的属性添加至所述设备总线接口对应的系统文件中,以加载网络块设备驱动;
在所述网络块设备驱动加载完成时,所述内核向所述网络块设备驱动对应的设备总线接口发送创建指令;
通过所述设备总线接口执行所述创建指令,在所述内核中创建网络块设备。
可选地,所述在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程的步骤,包括:
在所述网络块设备协议对接完成时,获取所述网络块设备对应的连接建立时刻和初始分区识别时刻,并判断所述连接建立时刻和所述初始分区识别时刻是否匹配;
在所述连接建立时刻和所述初始分区识别时刻匹配时,识别所述网络块设备的分区信息并输出;
在所述连接建立时刻和所述初始分区识别时刻不匹配时,在所述rbd-nbd进程中创建分区识别线程。
可选地,所述通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出的步骤,包括:
所述分区识别线程触发分区识别指令,并将所述分区识别指令转发至所述镜像设备,以使所述镜像设备根据所述分区识别指令反馈对应的分区信息;
在所述分区识别线程接收到所述镜像设备反馈的分区信息时,将所述分区信息作为网络块设备的分区信息并输出。
可选地,所述通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出的步骤之后,包括:
在所述内核接收到挂载命令时,获取所述挂载命令对应的网络块设备,并为所述网络块设备添加对应的设备标识;
在所述设备标识添加完成时,所述内核为所述网络块设备创建对应的挂载目录,并将所述网络块设备挂载到所述挂载目录。
可选地,所述在所述设备标识添加完成时,所述内核为所述网络块设备创建对应的挂载目录,并将所述网络块设备挂载到所述挂载目录的步骤之后,包括:
所述内核将网络块设备的设备标识添加到所述内核的etc/fstab文件中,并设置自动加载指令,以在所述客户端开机时进行自动加载。
此外,为实现上述目的,本发明还提供一种网络块设备的分区识别装置,所述网络块设备的分区识别装置包括:
设备创建模块,用于在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令;
连接建立模块,用于在所述网络块设备创建完成时,所述rbd-nbd进程建立所述网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接;
线程启动模块,用于在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程;
分区识别模块,用于通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出。
此外,为实现上述目的,本发明还提供一种网络块设备的分区识别设备;
所述网络块设备的分区识别设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中:
所述计算机程序被所述处理器执行时实现如上所述的网络块设备的分区识别方法的步骤。
此外,为实现上述目的,本发明还提供计算机存储介质;
所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的网络块设备的分区识别方法的步骤。
本发明实施例提出的一种网络块设备的分区识别方法、装置、设备和存储介质,在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令;在所述网络块设备创建完成时,所述rbd-nbd进程建立所述网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接;在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程;通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出,本发明中在网络块设备创建完成时,rbd-nbd进程建立网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接,在网络块设备协议对接完成时,在rbd-nbd进程中创建分区识别线程,并通过分区识别线程自动触发分区识别指令,有效地避免了分区识别的时限性,使得分区识别时间更加灵活、便捷。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;
图2为本发明网络块设备的分区识别方法第一实施例的流程示意图;
图3为本发明网络块设备的分区识别装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端(又叫客户端或者网络块设备的分区识别设备,其中,网络块设备的分区识别设备可以是由单独的网络块设备的分区识别装置构成,也可以是由其他装置与网络块设备的分区识别装置组合形成)结构示意图。
本发明实施例终端可以固定终端,也可以是移动终端,如,带联网功能的智能空调、智能电灯、智能电源、智能音箱、自动驾驶汽车、PC(personal computer)个人计算机、智能手机、平板电脑、电子书阅读器、便携计算机等。
如图1所示,该终端可以包括:处理器1001,例如,中央处理器Central ProcessingUnit,CPU),网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真WIreless-FIdelity,WIFI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如,磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块;输入单元,比显示屏,触摸屏;网络接口可选除无线接口中除WiFi外,蓝牙、探针等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,该计算机软件产品存储在一个存储介质(存储介质:又叫计算机存储介质、计算机介质、可读介质、可读存储介质、计算机可读存储介质或者直接叫介质等,存储介质可以是非易失性可读存储介质,如RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的计算机程序,并执行本发明以下实施例提供的网络块设备的分区识别方法中的步骤。
本实施例提供一种网络块设备的分区识别方法,应用于如图1所示的客户端,本实施例中在rbd-nbd进程中设置一个分区识别线程,网络块设备协议对接完成以后,在rbd-nbd进程中创建分区识别线程,通过该分区识别线程对网络块设备发起一个分区的读请求,让客户端的内核可以获取这个网络块设备的分区信息并输出,具体地,包括:
参照图2,在本发明网络块设备的分区识别方法的第一实施例中,所述网络块设备的分区识别方法包括:
步骤S10,在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令。
客户端中设置有监听模块对客户端的各个应用程序进行监听,通过监听模块对rbd-nbd进程是否启动进行检测,在客户端中监听模块监听到应用程序rbd-nbd进程启动时,客户端内核遍历已创建的各网络块设备,判断客户端的内核中是否存在空闲状态的网络块设备;在客户端的内核中存在空闲状态的网络块设备,客户端的内核获取空闲状态的网络块设备,并建立该网络块设备与预设存储集群中镜像设备之间建立连接关系。
在客户端的内核中不存在空闲状态的网络块设备时,客户端的内核向网络块设备驱动发送网络块设备创建指令,以通过网络块设备驱动创建网络块设备。
步骤S20,在所述网络块设备创建完成时,所述rbd-nbd进程建立所述网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接。
在客户端的内核中检测到生成新的网络块设备时,内核确定网络块设备创建完成,进行网络块设备协议对接,即,客户端内核中的rbd-nbd进程建立网络块设备与预设存储集群中镜像设备之间的连接;其中,预设存储集群是指预先设置的与网络块设备通信连接的分布式集群。
步骤S30,在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程。
在网络块设备协议对接完成时,客户端内核判断是否在rbd-nbd进程中创建分区识别线程,其中,分区识别线程是指为了支持网络块设备分区的自动识别,在rbd-nbd进程中设计的线程,分区识别线程在对接网络块设备协议的时候创建,当对接完成以后,该分区识别线程第一时间对网络块设备发起一个分区的读请求,具体地,包括:
步骤a,在所述网络块设备协议对接完成时,获取所述网络块设备对应的连接建立时刻和初始分区识别时刻,并判断所述连接建立时刻和所述初始分区识别时刻是否匹配;
步骤b,在所述连接建立时刻和所述初始分区识别时刻匹配时,识别所述网络块设备的分区信息并输出;
步骤c,在所述连接建立时刻和所述初始分区识别时刻不匹配时,在所述rbd-nbd进程中创建分区识别线程。
即,在网络块设备协议对接完成时,内核获取网络块设备对应的连接建立时刻(连接建立时刻是指网络块设备与镜像设备的连接建立的时刻)和初始分区识别时刻(初始分区识别时刻是指内核按照网络块协议第一次读取分区的时刻),客户端判断连接建立时刻和初始分区识别时刻是否匹配;在连接建立时刻和初始分区识别时刻匹配时,客户端内核可以识别网络块设备的分区信息并输出;
在连接建立时刻和初始分区识别时刻不匹配时,在rbd-nbd进程中创建分区识别线程,以进行网络块设备分区识别;即,根据网络块设备协议,只有当网络块设备和镜像设备通过网络块设备协议对接以后,才可以进行I/O请求读取分区信息;但是如果连接建立时刻和初始分区识别时刻没有同时,也就是没有办法识别分区信息,因此,需要rbd-nbd进程中创建分区识别线程,进行分区识别,具体地:
步骤S40,通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出。
通过分区识别线程触发分区识别指令,识别网络块设备的分区信息,具体地,包括:
步骤S41,所述分区识别线程触发分区识别指令,并将所述分区识别指令转发至所述镜像设备,以使所述镜像设备根据所述分区识别指令反馈对应的分区信息。
分区识别线程触发分区识别指令,并将分区识别指令转发至与网络块设备连接的镜像设备,以使镜像设备按照分区识别指令进行扫描,得到镜像设备对应的分区信息,镜像设备将分区信息反馈至分区识别线程。
步骤S42,在所述分区识别线程接收到所述镜像设备反馈的分区信息时,将所述分区信息作为网络块设备的分区信息并输出。
在分区识别线程接收到镜像设备反馈的分区信息时,分区识别线程将分区信息发送至内核,内核接收分区信息并将该分区信息作为网络块设备的分区信息并输出;以按照分区信息对网络块设备的读写操作。
在本实施例中网络块设备创建完成时,rbd-nbd进程建立网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接,在网络块设备协议对接完成时,在rbd-nbd进程中创建分区识别线程,并通过分区识别线程自动触发分区识别指令,有效地避免了分区识别的时限性,使得分区识别时间更加灵活、便捷。
进一步地,在本发明第一实施例的基础上,提出了本发明网络块设备的分区识别方法的第二实施例。
本实施例是本发明中第一实施例中步骤S10的细化,本实施例中客户端判断内核中是否已加载网络块设备驱动,然后确定后续步骤,具体地,所述网络块设备的分区识别方法包括:
步骤S11,在客户端检测到rbd-nbd进程启动时,判断所述客户端的内核中是否已加载网络块设备驱动。
在客户端检测到rbd-nbd进程启动时,客户端内核检测已安装的各个驱动程序,判断已安装的驱动程序中是否包含网络块设备驱动。在已安装的驱动程序中包含网络块设备驱动,客户端内核确定已加载网络块设备驱动;在已安装的驱动程序中不包含网络块设备驱动,客户端内核确定没有加载网络块设备驱动。
步骤S12,在所述内核中已加载网络块设备驱动时,所述内核遍历网络块设备驱动已创建的各网络块设备,以判断是否存在空闲状态的网络块设备。
即,在客户端已加载网络块设备驱动时,客户端的内核遍历网络块设备驱动已创建的各网络块设备,以判断已创建的各网络块设备中是否存在空闲状态的网络块设备。
步骤S13,在存在空闲状态的网络块设备时,所述rbd-nbd进程获取空闲状态的网络块设备,并建立所述网络块设备与预设存储集群中镜像设备,以进行网络块设备协议对接。
在存在空闲状态的网络块设备时,rbd-nbd进程获取空闲状态的网络块设备,并建立网络块设备与预设存储集群中镜像设备之间的连接,以实现网络块设备协议对接;即,客户端将空闲状态的网络块设备用于该rbd-nbd进程,实现客户端网络块设备的充分利用。
步骤S14,在不存在空闲状态的网络块设备时,所述内核向所述网络块设备驱动发送网络块设备创建指令。
在不存在空闲状态的网络块设备时,内核向所述网络块设备驱动发送网络块设备创建指令,创建指令中包含创建信息,其中,创建信息为设备块标识、设备块大小和服务器标识(其中,服务器标识是指与创建网络块设备连接的服务器的标识信息,例如,服务器号码,或者主机IP);以使网络块设备驱动按照创建指令,进行网络块设备的创建。本实施例中充分利用客户端中的已创建网络块设备,提高了网络块设备的资源利用率。
进一步地,在本发明上述实施例的基础上,提出了本发明网络块设备的分区识别方法的第三实施例。
本实施例是第二实施例中步骤S11之后的细化步骤,本实施例中说明了客户端没有加载网络块设备驱动时,内核创建网络块设备的方案,具体地,包括:
步骤S15,在所述内核中没有加载网络块设备驱动时,所述内核动态申请主设备块标识,并注册所述主设备块标识对应的设备总线接口。
在内核中没有加载网络块设备驱动时,客户端动态申请主设备块标识,其中,主设备块标识是指设备总线接口对应的标识信息,例如,设备总线接口编号,客户端注册主设备块标识对应的设备总线接口。
步骤S16,在所述设备总线接口注册完成时,所述内核将预定义的属性添加至所述设备总线接口对应的系统文件中,以加载网络块设备驱动。
在设备总线接口注册完成时,客户端将预定义的属性添加至设备总线接口对应的系统文件中,具体地,客户端初始化系统并获取注册的主设备块标识,注册一个主设备块标识对应的设备总线接口,设备总线接口中预先定义了需要的属性,名字,以及添加接口、删除接口,在添加接口、删除接口里面,可以获取参数,执行创建或删除网络块设备。客户端将设备总线接口和设备总线接口对应的系统文件作为网络块设备驱动;以完成网络块设备驱动的加载。
需要补充说明的是,系统文件与设备总线接口关联,系统文件中预先定义了需要的属性、添加接口、删除接口等。设备总线接口中的添加接口、删除接口通过接收rbd-nbd的创建、删除nbd设备的命令,执行创建或删除网络块设备的操作。
步骤S17,在所述网络块设备驱动加载完成时,所述内核向所述网络块设备驱动对应的设备总线接口发送创建指令,通过所述设备总线接口执行所述创建指令,在所述内核中创建网络块设备。
在客户端网络块设备驱动加载完成时,客户端的内核向网络块设备驱动对应的设备总线接口发送创建指令,设备总线接口获取创建指令中的创建信息,其中,创建信息包括:设备块标识、设备块大小和服务器标识(其中,服务器标识是指与创建网络块设备连接的服务器的标识信息,例如,服务器号码,或者主机IP);客户端将创建信息写入到设备总线接口对应系统文件中,客户端执行包含创建信息的系统文件,在客户端的内核创建得到网络块设备。
在本实施例中客户端进行网络块驱动加载时注册设备总线接口,并通过网络块驱动对应的设备总线接口动态、灵活地创建网络块设备。
进一步地,在上述实施例的基础上,提出了本发明网络块设备的分区识别方法的第四实施例。
本实施例是第一实施例中步骤S40之后的步骤,本实施例中客户端可以根据分区信息进行挂载,具体地,所述网络块设备的分区识别方法包括:
步骤S50,在所述内核接收到挂载命令时,获取所述挂载命令对应的网络块设备,并为所述网络块设备添加对应的设备标识。
在内核接收到挂载命令时,内核获取挂载命令对应的网络块设备,并为该网络块设备添加对应的设备标识;其中,设备标识是用于识别网络块设备的标识信息,即,设备标识是挂载目录的完整路径名,例如,挂载命令#e2label/dev/sdb1/extdsk进行操作,命令中的/extdsk就是设备标识。
步骤S60,在所述设备标识添加完成时,所述内核为所述网络块设备创建对应的挂载目录,并将所述网络块设备挂载到所述挂载目录。
在设备标识添加完成时,内核为网络块设备创建对应的挂载目录;即,内核可以在网络块设备总接口的mnt目录(即:/mnt)下建立挂载目录,也可以在其他位置建立挂载目录,例如,在络块设备总接口的mnt目录下建立新的挂载目录(如:/extdsk),使用命令#mkdir/extdsk(目录名称可自定),使用挂载命令将网络块设备挂载到挂载目录。
例如,挂载命令将网络块设备/dev/sdb1挂载到挂载目录/extdsk,命令格式为:#mount–t ext3/dev/sdb1/extdsk在此步骤中应该说明:如果在/etc/filesystems文件中包含了ext3文件系统格式,命令中的“-t ext3”参数可以省略不写,命令会自动找出与/dev/sdb1分区相应的格式。另外需要说明的是,此步骤操作后,就可以用df或du命令查看网络块设备/dev/sdb1的相关信息,并且可以通过进入挂载目录/extdsk使用网络块设备。
步骤S70,所述内核将网络块设备的设备标识添加到所述内核的etc/fstab文件中,并设置自动加载指令,以在所述客户端开机时进行自动加载。
为了避免在重新启动Linux系统时,还需要在重新挂载网络块设备,本实施例中将网络块设备的设备标识加入到/etc/fstab文件中,并设置成开机自动加载,可以免去每次重启系统都手动加载该文件系统的麻烦。在本实施例中客户端可以按照识别得到的分区信息,进行网络块设备的自动加载,使得网络块设备分区加载更加便捷。
此外,参照图3,本发明实施例还提出一种网络块设备的分区识别装置,所述网络块设备的分区识别装置包括:
设备创建模块10,用于在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令;
连接建立模块20,用于在所述网络块设备创建完成时,所述rbd-nbd进程建立所述网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接;
线程启动模块30,用于在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程;
分区识别模块40,用于通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出。
可选地,所述设备创建模块10,包括:
驱动判断单元,用于在客户端检测到rbd-nbd进程启动时,判断所述客户端的内核中是否已加载网络块设备驱动;
状态判断单元,用于在所述内核中已加载网络块设备驱动时,所述内核遍历网络块设备驱动已创建的各网络块设备,以判断是否存在空闲状态的网络块设备;
连接建立单元,用于在存在空闲状态的网络块设备时,所述rbd-nbd进程获取空闲状态的网络块设备,并建立所述网络块设备与预设存储集群中镜像设备,以进行网络块设备协议对接;
第一创建单元,用于在不存在空闲状态的网络块设备时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令。
可选地,所述设备创建模块10,包括:
接口注册单元,用于在所述内核中没有加载网络块设备驱动时,所述内核动态申请主设备块标识,并注册所述主设备块标识对应的设备总线接口;
驱动加载单元,用于在所述设备总线接口注册完成时,所述内核将预定义的属性添加至所述设备总线接口对应的系统文件中,以加载网络块设备驱动;
指令发送单元,用于在所述网络块设备驱动加载完成时,所述内核向所述网络块设备驱动对应的设备总线接口发送创建指令;
第二创建单元,用于通过所述设备总线接口执行所述创建指令,在所述内核中创建网络块设备。
可选地,所述线程启动模块20,包括:
事件获取单元,用于在所述网络块设备协议对接完成时,获取所述网络块设备对应的连接建立时刻和初始分区识别时刻,并判断所述连接建立时刻和所述初始分区识别时刻是否匹配;
分区识别单元,用于在所述连接建立时刻和所述初始分区识别时刻匹配时,识别所述网络块设备的分区信息并输出;
线程启动单元,用于在所述连接建立时刻和所述初始分区识别时刻不匹配时,在所述rbd-nbd进程中创建分区识别线程。
可选地,所述分区识别模块40,包括:
指令发送单元,用于所述分区识别线程触发分区识别指令,并将所述分区识别指令转发至所述镜像设备,以使所述镜像设备根据所述分区识别指令反馈对应的分区信息;
信息识别单元,用于在所述分区识别线程接收到所述镜像设备反馈的分区信息时,将所述分区信息作为网络块设备的分区信息并输出。
可选地,所述的网络块设备的分区识别装置,包括:
指令接收模块,用于在所述内核接收到挂载命令时,获取所述挂载命令对应的网络块设备,并为所述网络块设备添加对应的设备标识;
自动挂载模块,用于在所述设备标识添加完成时,所述内核为所述网络块设备创建对应的挂载目录,并将所述网络块设备挂载到所述挂载目录。
可选地,所述的网络块设备的分区识别装置,包括:
挂载设置模块,用于所述内核将网络块设备的设备标识添加到所述内核的etc/fstab文件中,并设置自动加载指令,以在所述客户端开机时进行自动加载。
其中,网络块设备的分区识别装置的各个功能模块实现的步骤可参照本发明网络块设备的分区识别方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机存储介质。
所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例提供的网络块设备的分区识别方法中的操作。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种网络块设备的分区识别方法,其特征在于,所述网络块设备的分区识别方法包括以下步骤:
在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令;
在所述网络块设备创建完成时,所述rbd-nbd进程建立所述网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接;
在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程;
通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出。
2.如权利要求1所述的网络块设备的分区识别方法,其特征在于,所述在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令的步骤,包括:
在客户端检测到rbd-nbd进程启动时,判断所述客户端的内核中是否已加载网络块设备驱动;
在所述内核中已加载网络块设备驱动时,所述内核遍历网络块设备驱动已创建的各网络块设备,以判断是否存在空闲状态的网络块设备;
在存在空闲状态的网络块设备时,所述rbd-nbd进程获取空闲状态的网络块设备,并建立所述网络块设备与预设存储集群中镜像设备,以进行网络块设备协议对接;
在不存在空闲状态的网络块设备时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令。
3.如权利要求2所述的网络块设备的分区识别方法,其特征在于,所述在客户端检测到rbd-nbd进程启动时,判断所述客户端的内核中是否已加载网络块设备驱动的步骤之后,包括:
在所述内核中没有加载网络块设备驱动时,所述内核动态申请主设备块标识,并注册所述主设备块标识对应的设备总线接口;
在所述设备总线接口注册完成时,所述内核将预定义的属性添加至所述设备总线接口对应的系统文件中,以加载网络块设备驱动;
在所述网络块设备驱动加载完成时,所述内核向所述网络块设备驱动对应的设备总线接口发送创建指令;
通过所述设备总线接口执行所述创建指令,在所述内核中创建网络块设备。
4.如权利要求1所述的网络块设备的分区识别方法,其特征在于,所述在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程的步骤,包括:
在所述网络块设备协议对接完成时,获取所述网络块设备对应的连接建立时刻和初始分区识别时刻,并判断所述连接建立时刻和所述初始分区识别时刻是否匹配;
在所述连接建立时刻和所述初始分区识别时刻匹配时,识别所述网络块设备的分区信息并输出;
在所述连接建立时刻和所述初始分区识别时刻不匹配时,在所述rbd-nbd进程中创建分区识别线程。
5.如权利要求1所述的网络块设备的分区识别方法,其特征在于,所述通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出的步骤,包括:
所述分区识别线程触发分区识别指令,并将所述分区识别指令转发至所述镜像设备,以使所述镜像设备根据所述分区识别指令反馈对应的分区信息;
在所述分区识别线程接收到所述镜像设备反馈的分区信息时,将所述分区信息作为网络块设备的分区信息并输出。
6.如权利要求1所述的网络块设备的分区识别方法,其特征在于,所述通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出的步骤之后,包括:
在所述内核接收到挂载命令时,获取所述挂载命令对应的网络块设备,并为所述网络块设备添加对应的设备标识;
在所述设备标识添加完成时,所述内核为所述网络块设备创建对应的挂载目录,并将所述网络块设备挂载到所述挂载目录。
7.如权利要求6所述的网络块设备的分区识别方法,其特征在于,所述在所述设备标识添加完成时,所述内核为所述网络块设备创建对应的挂载目录,并将所述网络块设备挂载到所述挂载目录的步骤之后,包括:
所述内核将网络块设备的设备标识添加到所述内核的etc/fstab文件中,并设置自动加载指令,以在所述客户端开机时进行自动加载。
8.一种网络块设备的分区识别装置,其特征在于,所述网络块设备的分区识别装置包括:
设备创建模块,用于在客户端检测到rbd-nbd进程启动时,所述客户端的内核向网络块设备驱动发送网络块设备创建指令;
连接建立模块,用于在所述网络块设备创建完成时,所述rbd-nbd进程建立所述网络块设备与预设存储集群中镜像设备之间的连接,以进行网络块设备协议对接;
线程启动模块,用于在所述网络块设备协议对接完成时,在所述rbd-nbd进程中创建分区识别线程;
分区识别模块,用于通过所述分区识别线程触发分区识别指令,并根据所述分区识别指令执行扫描操作,得到所述网络块设备的分区信息并输出。
9.一种网络块设备的分区识别设备,其特征在于,所述网络块设备的分区识别设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中:
所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的网络块设备的分区识别方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的网络块设备的分区识别方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910484891.5A CN110321172B (zh) | 2019-06-03 | 2019-06-03 | 网络块设备的分区识别方法、装置、设备和存储介质 |
PCT/CN2019/118546 WO2020244156A1 (zh) | 2019-06-03 | 2019-11-14 | 网络块设备的分区识别方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910484891.5A CN110321172B (zh) | 2019-06-03 | 2019-06-03 | 网络块设备的分区识别方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110321172A true CN110321172A (zh) | 2019-10-11 |
CN110321172B CN110321172B (zh) | 2022-04-19 |
Family
ID=68120784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910484891.5A Active CN110321172B (zh) | 2019-06-03 | 2019-06-03 | 网络块设备的分区识别方法、装置、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110321172B (zh) |
WO (1) | WO2020244156A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020244156A1 (zh) * | 2019-06-03 | 2020-12-10 | 平安科技(深圳)有限公司 | 网络块设备的分区识别方法、装置、设备和存储介质 |
CN112351112A (zh) * | 2021-01-05 | 2021-02-09 | 智道网联科技(北京)有限公司 | 确定车载设备类型的方法、车载系统、电子设备和车辆 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101370009A (zh) * | 2008-03-12 | 2009-02-18 | 武汉理工大学 | 基于Linux内核网络子系统的虚拟网络块框架的构建方法 |
CN101847101A (zh) * | 2009-03-24 | 2010-09-29 | Tcl集团股份有限公司 | 一种嵌入式linux下USB存储设备自动挂载的方法 |
CN104699839A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇艺世纪科技有限公司 | 一种文件查找方法及装置 |
CN104731633A (zh) * | 2015-04-15 | 2015-06-24 | 上海斐讯数据通信技术有限公司 | 一种Linux系统下多分区存储设备卸载失败后回滚方法及系统 |
WO2016108987A1 (en) * | 2014-10-23 | 2016-07-07 | Northrop Grumman Systems Corporation | Multi-level security system for enabling secure file sharing across multiple security levels and method thereof |
CN106354486A (zh) * | 2016-08-08 | 2017-01-25 | 珠海全志科技股份有限公司 | nand flash设备管理的方法和系统 |
CN106681812A (zh) * | 2016-12-14 | 2017-05-17 | 西北工业大学 | 一种分区调度方法 |
CN107193506A (zh) * | 2017-06-22 | 2017-09-22 | 山东超越数控电子有限公司 | 一种中标麒麟系统根分区扩容的实现方法 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN107493204A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种镜像检测的方法以及装置 |
CN107544864A (zh) * | 2016-06-24 | 2018-01-05 | 深圳市深信服电子科技有限公司 | 一种虚拟机数据拷贝方法及虚拟机数据拷贝系统 |
US20180343213A1 (en) * | 2017-05-24 | 2018-11-29 | Sap Se | Preventing reader starvation during order preserving data stream consumption |
CN109634687A (zh) * | 2018-12-19 | 2019-04-16 | 恒为科技(上海)股份有限公司 | 一种嵌入式Linux系统中应用软件的启动方法和装置 |
CN109710317A (zh) * | 2018-11-16 | 2019-05-03 | 华为技术有限公司 | 系统启动方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321172B (zh) * | 2019-06-03 | 2022-04-19 | 平安科技(深圳)有限公司 | 网络块设备的分区识别方法、装置、设备和存储介质 |
-
2019
- 2019-06-03 CN CN201910484891.5A patent/CN110321172B/zh active Active
- 2019-11-14 WO PCT/CN2019/118546 patent/WO2020244156A1/zh active Application Filing
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101370009A (zh) * | 2008-03-12 | 2009-02-18 | 武汉理工大学 | 基于Linux内核网络子系统的虚拟网络块框架的构建方法 |
CN101847101A (zh) * | 2009-03-24 | 2010-09-29 | Tcl集团股份有限公司 | 一种嵌入式linux下USB存储设备自动挂载的方法 |
WO2016108987A1 (en) * | 2014-10-23 | 2016-07-07 | Northrop Grumman Systems Corporation | Multi-level security system for enabling secure file sharing across multiple security levels and method thereof |
CN104699839A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇艺世纪科技有限公司 | 一种文件查找方法及装置 |
CN104731633A (zh) * | 2015-04-15 | 2015-06-24 | 上海斐讯数据通信技术有限公司 | 一种Linux系统下多分区存储设备卸载失败后回滚方法及系统 |
CN107493204A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种镜像检测的方法以及装置 |
CN107544864A (zh) * | 2016-06-24 | 2018-01-05 | 深圳市深信服电子科技有限公司 | 一种虚拟机数据拷贝方法及虚拟机数据拷贝系统 |
CN106354486A (zh) * | 2016-08-08 | 2017-01-25 | 珠海全志科技股份有限公司 | nand flash设备管理的方法和系统 |
CN106681812A (zh) * | 2016-12-14 | 2017-05-17 | 西北工业大学 | 一种分区调度方法 |
US20180343213A1 (en) * | 2017-05-24 | 2018-11-29 | Sap Se | Preventing reader starvation during order preserving data stream consumption |
CN107193506A (zh) * | 2017-06-22 | 2017-09-22 | 山东超越数控电子有限公司 | 一种中标麒麟系统根分区扩容的实现方法 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN109710317A (zh) * | 2018-11-16 | 2019-05-03 | 华为技术有限公司 | 系统启动方法、装置、电子设备及存储介质 |
CN109634687A (zh) * | 2018-12-19 | 2019-04-16 | 恒为科技(上海)股份有限公司 | 一种嵌入式Linux系统中应用软件的启动方法和装置 |
Non-Patent Citations (1)
Title |
---|
陈晓: "基于LinuxContainer的Android移动终端虚拟化", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020244156A1 (zh) * | 2019-06-03 | 2020-12-10 | 平安科技(深圳)有限公司 | 网络块设备的分区识别方法、装置、设备和存储介质 |
CN112351112A (zh) * | 2021-01-05 | 2021-02-09 | 智道网联科技(北京)有限公司 | 确定车载设备类型的方法、车载系统、电子设备和车辆 |
CN112351112B (zh) * | 2021-01-05 | 2021-08-17 | 智道网联科技(北京)有限公司 | 确定车载设备类型的方法、车载系统、电子设备和车辆 |
Also Published As
Publication number | Publication date |
---|---|
WO2020244156A1 (zh) | 2020-12-10 |
CN110321172B (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188044B (zh) | 软件错误的处理方法、装置、存储介质以及设备 | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
CN109683967B (zh) | 固件支持方法、装置、移动终端及可读存储介质 | |
EP2784661B1 (en) | Computer program product, information processing method, and information processing apparatus | |
CN108874653B (zh) | 任务测试方法、测试机、共享服务器和可读存储介质 | |
US20170163787A1 (en) | Method and electronic device for upgrading or downgrading system | |
WO2022042233A1 (zh) | 应用界面迁移系统、方法及相关设备 | |
CN110020293A (zh) | 多媒体数据展示方法、装置及存储介质 | |
CN106980694B (zh) | 浏览器页面信息交互方法、装置及移动终端 | |
CN110321172A (zh) | 网络块设备的分区识别方法、装置、设备和存储介质 | |
CN111930565B (zh) | 分布式管理系统中组件的进程故障自愈方法、装置及设备 | |
CN111813625B (zh) | 分布式服务器集群的健康检查方法及装置 | |
CN114565070A (zh) | 一种标签绑定方法、装置及移动终端 | |
CN104794117B (zh) | 图片数据迁移方法及装置 | |
CN111538608A (zh) | 预防终端设备宕机的方法、终端设备及存储介质 | |
CN113849379B (zh) | 一种服务器资产信息收集的方法、装置、设备及可读介质 | |
CN112905209A (zh) | 应用程序更新方法及装置 | |
US10833939B2 (en) | Providing positive confirmation of a mobile or portable computer wipe | |
CN110321251B (zh) | 基于网络块设备的数据备份方法、装置、设备和存储介质 | |
CN114095533B (zh) | 云游戏账号登录方法、装置、计算机设备及存储介质 | |
CN110336693A (zh) | 网络块设备的管理方法、装置、设备和存储介质 | |
CN114253781B (zh) | 测试方法、装置、设备及存储介质 | |
CN115766429A (zh) | 系统的匹配方法和装置、边缘计算网关 | |
WO2017096889A1 (zh) | 系统升降级的方法和装置 | |
CN114265714A (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 |