CN114995888A - 一种智能网卡部署方法、装置及介质 - Google Patents

一种智能网卡部署方法、装置及介质 Download PDF

Info

Publication number
CN114995888A
CN114995888A CN202210606768.8A CN202210606768A CN114995888A CN 114995888 A CN114995888 A CN 114995888A CN 202210606768 A CN202210606768 A CN 202210606768A CN 114995888 A CN114995888 A CN 114995888A
Authority
CN
China
Prior art keywords
network card
intelligent network
bare metal
deployment
virtual memory
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.)
Pending
Application number
CN202210606768.8A
Other languages
English (en)
Inventor
刘元锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202210606768.8A priority Critical patent/CN114995888A/zh
Publication of CN114995888A publication Critical patent/CN114995888A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种智能网卡部署方法、装置及介质,涉及计算机技术领域。通过无线通信接收裸金属发送的部署智能网卡的请求,解析所述请求得到所述裸金属的身份标识,从而将虚拟内存文件的位置发送至所述裸金属,裸金属根据位置获取虚拟内存文件;虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,初始化智能网卡的网络配置后完成智能网卡的部署。上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于大规模自动化批量部署,具有更高的部署效率。

Description

一种智能网卡部署方法、装置及介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种智能网卡部署方法、装置及介质。
背景技术
随着云计算领域的快速发展,裸金属服务(Ironic)是一款兼具虚拟机弹性和物理机性能的计算类服务,可以为个人或者企业提供专属的云上物理服务器。可以为关键应用系统、高性能计算、大数据、核心数据库等业务提供卓越的计算性能并保证数据安全。而裸金属(BareMetal)的运行需要进行Overlay的建立。Overlay网络是建立在已有物理网络上的虚拟网络,具有独立的控制和转发平面。对于连接到Overlay的终端设备(例如服务器)来说,物理网络是透明的,从而可以实现承载网络和业务网络的分离。
目前,可以借助于智能网卡实现裸金属Overlay建立。图1为本申请实施例提供的一种基于UBS线传输的智能网卡部署方法的示意图。如图1所示,智能网卡的装机的方法是:通过USB线一端连接到智能网卡,另一端连接到一台Linux服务器,Linux服务器通过USB线将智能网卡的操作系统部署至智能网卡中。这种智能网卡的装机方式很繁琐,需要给每个裸金属上的智能网卡安装USB线,还需要一台专门装机的Linux服务器,资源消耗大且效率低,在大规模应用的场景无法做到智能网卡的批量装机。
鉴于上述问题,设计一种智能网卡部署方法,是该领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种智能网卡部署方法、装置及介质,解决通过USB连接线为裸金属部署智能网卡时资源消耗大且效率低,在大规模应用的场景无法做到智能网卡的批量装机的问题。
为解决上述技术问题,本申请提供一种智能网卡部署方法,应用于控制节点,所述方法包括:
通过无线通信接收裸金属发送的部署智能网卡的请求;
解析所述请求,并得到所述裸金属的身份标识;
根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于所述裸金属根据所述位置获取所述虚拟内存文件;
其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;所述裸金属根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中,并在初始化所述智能网卡的网络配置后完成所述智能网卡的部署。
优选地,在所述通过无线通信接收裸金属发送的部署智能网卡的请求之前,还包括:
通过网卡建立与所述裸金属的无线通信;
启动dnsmasq服务和tftp-server服务,以用于通过所述dnsmasq服务监听所述请求;
其中,所述虚拟内存文件存储于所述tftp-server服务下的目录中。
优选地,所述通过无线通信接收裸金属发送的部署智能网卡的请求包括:
通过无线通信接收从PXE中启动的所述裸金属发送的DHCP请求。
优选地,所述根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属包括:
根据所述DHCP请求发送IP地址和tftp-server地址至所述裸金属,以用于所述裸金属根据所述IP地址和所述tftp-server地址获取所述虚拟内存文件。
为解决上述技术问题,本申请还提供另一种智能网卡部署方法,应用于裸金属,所述方法包括:
通过无线网络发送部署智能网卡的请求至控制节点,以用于所述控制节点解析所述请求得到身份标识;
获取所述控制节点根据所述身份标识发送的虚拟内存文件的位置;其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;
根据所述位置获取所述虚拟内存文件;
根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中;
初始化所述智能网卡的网络配置,以完成所述智能网卡的部署。
优选地,所述根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中包括:
启动所述ofed驱动的rshim service服务,以生成rshim端口;
根据所述部署脚本和所述rshim端口将所述bfb镜像文件写入所述智能网卡的硬盘中。
优选地,所述初始化所述智能网卡的网络配置包括:
在所述虚拟内存文件上执行screen命令登录到所述智能网卡,并对所述网络配置进行初始化。
为解决上述技术问题,本申请还提供一种智能网卡部署装置,应用于控制节点,所述装置包括:
接收模块,用于通过无线通信接收裸金属发送的部署智能网卡的请求;
解析模块,用于解析所述请求,并得到所述裸金属的身份标识;
第一发送模块,用于根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于所述裸金属根据所述位置获取所述虚拟内存文件;
其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;所述裸金属根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中,并在初始化所述智能网卡的网络配置后完成所述智能网卡的部署。
优选地,还包括:
通信模块,用于通过网卡建立与所述裸金属的无线通信;
服务启动模块,用于启动dnsmasq服务和tftp-server服务,以用于通过dnsmasq服务监听所述请求;其中,所述虚拟内存文件存储于所述tftp-server服务下的目录中。
为解决上述技术问题,本申请还提供一种智能网卡部署装置,应用于裸金属,所述装置包括:
第二发送模块,用于通过无线网络发送部署智能网卡的请求至控制节点,以用于所述控制节点解析所述请求得到身份标识;
第一获取模块,用于获取所述控制节点根据所述身份标识发送的虚拟内存文件的位置;其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;
第二获取模块,用于根据所述位置获取所述虚拟内存文件;
写入模块,用于根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中;
初始化模块,用于初始化所述智能网卡的网络配置,以完成所述智能网卡的部署。
为解决上述技术问题,本申请还提供另一种智能网卡部署装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述所述的智能网卡部署方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的智能网卡部署方法的步骤。
本申请所提供的智能网卡部署方法,通过无线通信接收裸金属发送的部署智能网卡的请求,解析所述请求,并得到所述裸金属的身份标识;根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于裸金属根据位置获取虚拟内存文件;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。由此可知,上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,节省了资源消耗;通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于裸金属智能网卡场景下的大规模自动化批量部署,具有更高的部署效率。
此外,本申请还提供了一种智能网卡部署装置及计算机可读存储介质,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于UBS线传输的智能网卡部署方法的示意图;
图2为本申请实施例提供的一种应用于控制节点的智能网卡部署方法的流程图;
图3为本申请实施例提供的另一种应用于控制节点的智能网卡部署方法的流程图;
图4为本申请实施例提供的控制节点与裸金属的无线通信的示意图;
图5为本申请实施例提供的一种应用于裸金属的智能网卡部署方法的流程图;
图6为本申请实施例提供的一种应用于控制节点的智能网卡部署装置的结构示意图;
图7为本申请实施例提供的一种应用于裸金属的智能网卡部署装置的结构示意图;
图8为本申请实施例提供的一种智能网卡部署装置的结构示意图;
图9为本申请实施例提供的智能网卡部署方法在应用场景中的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种智能网卡部署方法、装置及介质。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
裸金属为还没有安装操作系统的物理服务器。目前,裸金属的智能网卡的装机的方法是通过USB线一端连接到智能网卡,另一端连接到一台Linux服务器,Linux服务器通过USB线将智能网卡的操作系统部署至智能网卡中。但是这种智能网卡的装机方式很繁琐,需要给每个裸金属上的智能网卡安装USB线,还需要一台专门装机的Linux服务器,资源消耗大且效率低,在大规模应用的场景无法做到智能网卡的批量装机。因此本申请提出了一种智能网卡部署方法。图2为本申请实施例提供的一种应用于控制节点的智能网卡部署方法的流程图,应用于控制节点,如图2所示,方法包括:
S10:通过无线通信接收裸金属发送的部署智能网卡的请求。
S11:解析请求,并得到裸金属的身份标识。
S12:根据身份标识将与裸金属对应的虚拟内存文件的位置发送至裸金属,以用于裸金属根据位置获取虚拟内存文件。
其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。
可以理解的是,本实施例中智能网卡部署方法应用于控制节点中。控制节点即为控制裸金属部署智能网卡的节点,可以为一台服务器或其他控制终端,在本实施例中不做限制。控制节点能够通过无线通信连接多个裸金属,为这些裸金属部署智能网卡。在本实施例中对于无线连接的裸金属的数量不做限制,根据具体的实施情况而定。
在具体实施中,控制节点通过无线通信接收裸金属发送的部署智能网卡的请求,以得知存在裸金属需要进行智能网卡的部署。控制节点在接收请求之后,解析请求的内容,从而得到裸金属的身份标识;即确认需要进行智能网卡部署的裸金属的具体身份。对于裸金属的身份标识的种类不做限制,可以为裸金属的IP地址,也可以为裸金属独有的身份编号,根据具体的实施情况而定。在得到裸金属的身份标识之后,根据身份标识将与裸金属对应的虚拟内存文件的位置发送至裸金属,从而使裸金属根据位置获取到虚拟内存文件。
需要注意的是,虚拟内存文件即虚拟内存盘(Ramdisk)。虚拟内存盘是通过软件将一部分内存(RAM)模拟为硬盘来使用的一种技术。相对于直接的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后这部分数据将会丢失。但是在一般情况下,传递到RAM盘上的数据都是在硬盘或别处永久贮存的文件的一个拷贝。经由适当的配置,可以实现当系统重启后重新建立虚拟盘。而在本实施例中,虚拟内存文件是需要进行特别定制的。具体地,可以采用DIB制作裸金属的虚拟内存文件。其中,DIB全称Disk image-builder,是Openstack社区用于制作镜像的工具。在用DIB制作的过程中需要打入智能网卡的ofed驱动,还需要打入部署脚本和智能网卡的操作系统的bfb镜像文件,并设置开机自启动。因此,虚拟内存文件中存储了智能网卡的ofed驱动、部署脚本以及bfb镜像文件,在裸金属根据地址获取到虚拟内存文件之后,裸金属将虚拟内存文件作为载体,根据其中的ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。在本实施例中对于智能网卡的具体的写入过程不做限制,对于网络配置的初始化过程不做限制,根据具体的实施情况而定。
如此一来,通过裸金属中的虚拟内存文件引导给智能网卡的操作系统装机,可以解决裸金属内部没有磁盘系统无法连接到智能网卡给智能网卡装机的问题。此外,在本实施例中对于将与裸金属对应的虚拟内存文件的位置发送至裸金属的具体过程不做限制,根据具体的实施情况而定。
本实施例中,通过无线通信接收裸金属发送的部署智能网卡的请求,解析所述请求,并得到所述裸金属的身份标识;根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于裸金属根据位置获取虚拟内存文件;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。由此可知,上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,节省了资源消耗;通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于裸金属智能网卡场景下的大规模自动化批量部署,具有更高的部署效率。
图3为本申请实施例提供的另一种应用于控制节点的智能网卡部署方法的流程图。如图3所示,在通过无线通信接收裸金属发送的部署智能网卡的请求之前,还包括:
S13:通过网卡建立与裸金属的无线通信。
S14:启动dnsmasq服务和tftp-server服务,以用于通过dnsmasq服务监听请求。其中,虚拟内存文件存储于tftp-server服务下的目录中。
可以理解的是,在上述实施例中可知,控制节点与需要部署智能网卡的裸金属是通过无线通信连接。因此在通过无线通信接收裸金属发送的部署智能网卡的请求之前,还需要通过网卡建立与裸金属的无线通信。
图4为本申请实施例提供的控制节点与裸金属的无线通信的示意图。如图4所示,规划裸金属智能网卡部署的智能装机网络,控制节点与裸金属都具有网卡。区别于智能网卡,网卡为普通网卡。将裸金属上的普通网卡通过网络和控制节点的普通网卡二层打通,通过交换机进行信息交互,在控制节点与裸金属之间最终生成了智能装机网络,用于后续控制节点与裸金属的信息交互,包括部署请求的收发、虚拟内存文件位置的收发以及虚拟内存文件的传输。
进一步地,在控制节点上启动dnsmasq服务和tftp-server服务。dnsmasq是一个小巧且方便地用来配置域名系统(Domain Name System,DNS)和动态主机配置协议(DynamicHost Configuration Protocol,DHCP)的工具,本申请中主要用来配置DHCP,用来做DHCPserver,具体为监听控制节点上的普通网卡的网口发送的请求。dmsmasq服务能够为DHCP请求提供IP地址以及tftp-server的地址。
tftp-server是一个多线程tftp服务器,允许任何数量的客户端连接同时进行。它支持tsize,blksize,和间隔的选择,PXE启动,并可以运行独立的或以daemon方式运行的。端口范围可以指定工作跨越防火墙。还有一个单端口版本,主要是适应某些环境下无法打开多个端口的情况。在本申请中,tftp-server将带有ofed驱动及智能网卡的bfb镜像文件的虚拟内存文件存放到tftp-server的/tftpboot/目录下进行存储。
本实施例中,通过网卡建立与裸金属的无线通信,启动dnsmasq服务和tftp-server服务,实现了控制节点与裸金属的无线通信的建立,裸金属请求的监听以及虚拟内存文件的存储。
在上述实施例的基础上:
作为一种优选的实施例,通过无线通信接收裸金属发送的部署智能网卡的请求包括:
通过无线通信接收从PXE中启动的裸金属发送的DHCP请求。
在上述实施例的基础上,由于控制节点的dmsmasq服务监听控制节点上的普通网卡的网口发送的请求,作为一种优选的实施例,通过无线通信接收从PXE中启动的裸金属发送的DHCP请求,从而使控制节点获知存在需要进行智能网卡部署的裸金属。
需要注意的是,裸金属从PXE中启动。PXE(Preboot eXecution Environment)即预执行环境,它提供了一种使用网络接口启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。由于裸金属没有操作系统,通过从PXE中启动能够实现DHCP请求的发送。
具体地,在裸金属PXE启动的过程中,由于裸金属的普通网卡设置了PXE启动,DHCP请求会通过裸金属的智能网卡的网口通过智能装机网络送到控制节点的智能网卡的网口。在上述实施例可知,由于dnsmasq服务在监听控制节点的普通网卡的网口,因此它会捕获到裸金属的PXE下的DHCP请求。在控制节点与裸金属进行DHCP交互过程中确认裸金属的身份标识,然后将虚拟内存文件的位置发送至裸金属,从而使裸金属根据位置获取到虚拟内存文件。
本实施例中,通过无线通信接收从PXE中启动的裸金属发送的DHCP请求,实现了裸金属部署智能网卡的请求的接收。
在上述实施例的基础上:
作为一种优选的实施例,根据身份标识将与裸金属对应的虚拟内存文件的位置发送至裸金属包括:
根据DHCP请求发送IP地址和tftp-server地址至裸金属,以用于裸金属根据IP地址和tftp-server地址获取虚拟内存文件。
在上述实施例中,对于将与裸金属对应的虚拟内存文件的位置发送至裸金属的具体过程不做限制,根据具体的实施情况而定。作为一种优选的实施例,在本实施例中,根据DHCP请求发送IP地址和tftp-server地址至裸金属。
可以理解的是,在上述实施例中可知,虚拟内存文件存储于tftp-server服务下的目录中;且控制节点与裸金属之间进行DHCP交互,则控制节点通过将IP地址和tftp-server的地址在交互过程中传递给裸金属的普通网卡,从而使裸金属明确虚拟内存文件所处的位置。这里的IP地址为控制节点的IP地址,tftp-server的地址为tftp-server服务下存放虚拟内存文件的地址。
需要注意的是,存放虚拟内存文件的tftp-server的地址不一定位于控制节点上;虽然控制节点启动了tftp-server服务,但是存放虚拟内存文件的目录不一定在控制节点上,也可以在其他的存储位置。而裸金属在获取到IP地址和tftp-server地址之后,可以到tftp-server服务下的存储目录中获取到虚拟内存文件。
本实施例中,根据DHCP请求发送IP地址和tftp-server地址至裸金属,裸金属根据IP地址和tftp-server地址获取虚拟内存文件,实现了裸金属对虚拟内存文件的获取。
图5为本申请实施例提供的一种应用于裸金属的智能网卡部署方法的流程图。方法应用于裸金属,如图5所示,方法包括:
S15:通过无线网络发送部署智能网卡的请求至控制节点,以用于控制节点解析请求得到身份标识。
S16:获取控制节点根据身份标识发送的虚拟内存文件的位置;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件。
S17:根据位置获取虚拟内存文件。
S18:根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中。
S19:初始化智能网卡的网络配置,以完成智能网卡的部署。
可以理解的是,本实施例中智能网卡部署方法应用于裸金属。裸金属通过无线网络发送部署智能网卡的请求至控制节点,控制节点解析请求得到裸金属的身份标识,从而发送虚拟内存文件的位置。裸金属获取控制节点根据身份标识发送的虚拟内存文件的位置,根据虚拟内存文件的位置获取虚拟内存文件。其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件。裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,在初始化智能网卡的网络配置,完成智能网卡的部署。
本实施例中,通过无线网络发送部署智能网卡的请求至控制节点,以用于控制节点解析请求得到身份标识;获取控制节点根据身份标识发送的虚拟内存文件的位置;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件。根据位置获取虚拟内存文件。根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中;初始化智能网卡的网络配置,以完成智能网卡的部署。由此可知,上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,节省了资源消耗;通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于裸金属智能网卡场景下的大规模自动化批量部署,具有更高的部署效率。
在上述实施例的基础上:
作为一种优选的实施例,根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中包括:
启动ofed驱动的rshim service服务,以生成rshim端口;
根据部署脚本和rshim端口将bfb镜像文件写入智能网卡的硬盘中。
在上述实施例中,对于智能网卡的具体的写入过程不做限制,根据具体的实施情况而定。作为一种优选的实施例,在裸金属中的虚拟内存文件进行上电之后,其中的ofed驱动中的rshim service会开机自启动,从而生成rshim端口;之后虚拟内存文件中的部署脚本启动。部署脚本具体为install-smart-img。install-smart-img将虚拟内存文件中的智能网卡的bfb镜像系统,利用rshim端口通过cat命令写入到智能网卡的硬盘当中,在完成此操作以后智能网卡的操作系统开始上电运行。
本实施例中,通过启动ofed驱动的rshim service服务,以生成rshim端口;根据部署脚本和rshim端口将bfb镜像文件写入智能网卡的硬盘中,实现了智能网卡镜像文件的写入。而在虚拟内存文件中打入智能网卡的ofed驱动,以及智能网卡的bfb镜像、部署脚本,巧妙的通过ofed驱动生成的rshim端口进行自动装机,解决了之前必须通过USB外接连线写入bfb文件系统装机的问题。
在上述实施例的基础上:
作为一种优选的实施例,初始化智能网卡的网络配置包括:
在虚拟内存文件上执行screen命令登录到智能网卡,并对网络配置进行初始化。
作为一种优选的实施例,在虚拟内存文件执行完cat指令以后,在虚拟内存文件上执行screen命令screen/dev/rshim0/console 115200登录到智能网卡,初始化智能网卡的网络配置,保证智能网卡能够通过管理网连入,最终裸金属中的智能网卡装机部署完成。
在上述实施例中,对于智能网卡部署方法进行了详细描述,本申请还提供智能网卡部署装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件结构的角度。
图6为本申请实施例提供的一种应用于控制节点的智能网卡部署装置的结构示意图。如图6所示,智能网卡部署装置包括:
接收模块10,用于通过无线通信接收裸金属发送的部署智能网卡的请求。
解析模块11,用于解析请求,并得到裸金属的身份标识。
第一发送模块12,用于根据身份标识将与裸金属对应的虚拟内存文件的位置发送至裸金属,以用于裸金属根据位置获取虚拟内存文件。
其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。
作为一种优选的实施例,智能网卡部署装置还包括:
通信模块,用于通过网卡建立与裸金属的无线通信;
服务启动模块,用于启动dnsmasq服务和tftp-server服务,以用于通过dnsmasq服务监听请求;其中,虚拟内存文件存储于tftp-server服务下的目录中。
本实施例所提供的智能网卡部署装置,包括接收模块、解析模块和第一发送模块。通过无线通信接收裸金属发送的部署智能网卡的请求,解析所述请求,并得到所述裸金属的身份标识;根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于裸金属根据位置获取虚拟内存文件;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。由此可知,上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,节省了资源消耗;通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于裸金属智能网卡场景下的大规模自动化批量部署,具有更高的部署效率。
图7为本申请实施例提供的一种应用于裸金属的智能网卡部署装置的结构示意图。如图7所示,智能网卡部署装置包括:
第二发送模块13,用于通过无线网络发送部署智能网卡的请求至控制节点,以用于控制节点解析请求得到身份标识。
第一获取模块14,用于获取控制节点根据身份标识发送的虚拟内存文件的位置;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件。
第二获取模块15,用于根据位置获取虚拟内存文件。
写入模块16,用于根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中。
初始化模块17,用于初始化智能网卡的网络配置,以完成智能网卡的部署。
本实施例所提供的智能网卡部署装置,包括第二发送模块、第一获取模块、第二获取模块、写入模块和初始化模块。通过无线网络发送部署智能网卡的请求至控制节点,以用于控制节点解析请求得到身份标识;获取控制节点根据身份标识发送的虚拟内存文件的位置;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件。根据位置获取虚拟内存文件。根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中;初始化智能网卡的网络配置,以完成智能网卡的部署。由此可知,上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,节省了资源消耗;通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于裸金属智能网卡场景下的大规模自动化批量部署,具有更高的部署效率。
图8为本申请实施例提供的一种智能网卡部署装置的结构示意图,如图8所示,智能网卡部署装置包括:
存储器20,用于存储计算机程序。
处理器21,用于执行计算机程序时实现如上述实施例中所提到的智能网卡部署方法的步骤。
本实施例提供的智能网卡部署装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图形处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的智能网卡部署方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于智能网卡部署方法涉及到的数据。
在一些实施例中,智能网卡部署装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图8中示出的结构并不构成对智能网卡部署装置的限定,可以包括比图示更多或更少的组件。
本申请所提供的智能网卡部署装置,包括存储器和处理器。处理器用于执行计算机程序时实现如上述实施例中所提到的智能网卡部署方法的步骤。通过无线通信接收裸金属发送的部署智能网卡的请求,解析所述请求,并得到所述裸金属的身份标识;根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于裸金属根据位置获取虚拟内存文件;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。由此可知,上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,节省了资源消耗;通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于裸金属智能网卡场景下的大规模自动化批量部署,具有更高的部署效率。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例(可以是控制节点侧对应的方法、也可以是裸金属侧对应的方法,还可以是控制节点侧和裸金属侧对应的方法)中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤,通过无线通信接收裸金属发送的部署智能网卡的请求,解析所述请求,并得到所述裸金属的身份标识;根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于裸金属根据位置获取虚拟内存文件;其中,虚拟内存文件中包含智能网卡的ofed驱动、部署脚本以及bfb镜像文件;裸金属根据ofed驱动和部署脚本将bfb镜像文件写入智能网卡的硬盘中,并在初始化智能网卡的网络配置后完成智能网卡的部署。由此可知,上述方案在裸金属部署智能网卡时不再依赖USB物理连接线,节省了资源消耗;通过无线传输包含智能网卡部署文件的虚拟内存文件实现裸金属中智能网卡的自动装机,能够应用于裸金属智能网卡场景下的大规模自动化批量部署,具有更高的部署效率。
为了使本领域的技术人员更好的理解本申请的技术方案,下面结合附图9对上述本申请作进一步的详细说明。图9为本申请实施例提供的智能网卡部署方法在应用场景中的流程图。如图9所示,该方法包括:
S20:规划控制节点与裸金属之间的智能装机网络;
S21:控制节点将虚拟内存文件的位置发送至裸金属;
S22:裸金属根据虚拟内存文件的位置获取虚拟内存文件;
S23:裸金属根据虚拟内存文件中的智能网卡部署的文件进行智能网卡的部署。
该应用场景具体为:首先规划控制节点与裸金属之间的智能装机网络,建立起控制节点与裸金属之间的无线通信。在通信过程中,控制节点将虚拟内存文件的位置发送给裸金属,从而使裸金属根据虚拟内存文件的位置获取虚拟内存文件。虚拟内存文件中包含智能网卡部署的文件,裸金属根据该文件进行智能网卡的部署。
如首先在控制节点上启动dnsmasq服务以及tftp-server服务,带有ofed驱动、部署脚本以及bfb镜像文件的虚拟内存文件存放到tftp-server的/tftpboot/目录下。将裸金属节点上的普通网卡通过网络和控制节点的普通网卡二层打通,建立起智能装机网络。控制节点上的dnsmasq服务监听控制节点的普通网卡网口。当捕获到裸金属的DHCP请求之后,将IP地址、tftp-server地址发送至裸金属。裸金属根据IP地址和tftp-server地址获取到虚拟内存文件。裸金属中在虚拟内存文件进行上电之后,ofed驱动中的rshim service会开机自启动,之后虚拟内存文件中的部署脚本install-smart-img开机自启动,install-smart-img将之前打入到虚拟内存文件的bfb镜像文件,通过rshim service生成的rshim端口写入智能网卡的硬盘当中去。在完成此操作以后智能网卡的操作系统开始上电,在虚拟内存文件上执行screen命令screen/dev/rshim0/console 115200登录到智能网卡,初始化智能网卡的网络配置,保证智能网卡能够通过管理网连入,至此裸金属中的智能网卡装机部署完成。
以上对本申请所提供的一种智能网卡部署方法、装置及介质。进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (11)

1.一种智能网卡部署方法,其特征在于,应用于控制节点,所述方法包括:
通过无线通信接收裸金属发送的部署智能网卡的请求;
解析所述请求,并得到所述裸金属的身份标识;
根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于所述裸金属根据所述位置获取所述虚拟内存文件;
其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;所述裸金属根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中,并在初始化所述智能网卡的网络配置后完成所述智能网卡的部署。
2.根据权利要求1所述的智能网卡部署方法,其特征在于,在所述通过无线通信接收裸金属发送的部署智能网卡的请求之前,还包括:
通过网卡建立与所述裸金属的无线通信;
启动dnsmasq服务和tftp-server服务,以用于通过所述dnsmasq服务监听所述请求;
其中,所述虚拟内存文件存储于所述tftp-server服务下的目录中。
3.根据权利要求2所述的智能网卡部署方法,其特征在于,所述通过无线通信接收裸金属发送的部署智能网卡的请求包括:
通过无线通信接收从PXE中启动的所述裸金属发送的DHCP请求。
4.根据权利要求3所述的智能网卡部署方法,其特征在于,所述根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属包括:
根据所述DHCP请求发送IP地址和tftp-server地址至所述裸金属,以用于所述裸金属根据所述IP地址和所述tftp-server地址获取所述虚拟内存文件。
5.一种智能网卡部署方法,其特征在于,应用于裸金属,所述方法包括:
通过无线网络发送部署智能网卡的请求至控制节点,以用于所述控制节点解析所述请求得到身份标识;
获取所述控制节点根据所述身份标识发送的虚拟内存文件的位置;其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;
根据所述位置获取所述虚拟内存文件;
根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中;
初始化所述智能网卡的网络配置,以完成所述智能网卡的部署。
6.根据权利要求5所述的智能网卡部署方法,其特征在于,所述根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中包括:
启动所述ofed驱动的rshim service服务,以生成rshim端口;
根据所述部署脚本和所述rshim端口将所述bfb镜像文件写入所述智能网卡的硬盘中。
7.根据权利要求5或6所述的智能网卡部署方法,其特征在于,所述初始化所述智能网卡的网络配置包括:
在所述虚拟内存文件上执行screen命令登录到所述智能网卡,并对所述网络配置进行初始化。
8.一种智能网卡部署装置,其特征在于,应用于控制节点,所述装置包括:
接收模块,用于通过无线通信接收裸金属发送的部署智能网卡的请求;
解析模块,用于解析所述请求,并得到所述裸金属的身份标识;
第一发送模块,用于根据所述身份标识将与所述裸金属对应的虚拟内存文件的位置发送至所述裸金属,以用于所述裸金属根据所述位置获取所述虚拟内存文件;
其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;所述裸金属根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中,并在初始化所述智能网卡的网络配置后完成所述智能网卡的部署。
9.一种智能网卡部署装置,其特征在于,应用于裸金属,所述装置包括:
第二发送模块,用于通过无线网络发送部署智能网卡的请求至控制节点,以用于所述控制节点解析所述请求得到身份标识;
第一获取模块,用于获取所述控制节点根据所述身份标识发送的虚拟内存文件的位置;其中,所述虚拟内存文件中包含所述智能网卡的ofed驱动、部署脚本以及bfb镜像文件;
第二获取模块,用于根据所述位置获取所述虚拟内存文件;
写入模块,用于根据所述ofed驱动和所述部署脚本将所述bfb镜像文件写入所述智能网卡的硬盘中;
初始化模块,用于初始化所述智能网卡的网络配置,以完成所述智能网卡的部署。
10.一种智能网卡部署装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的智能网卡部署方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的智能网卡部署方法的步骤。
CN202210606768.8A 2022-05-31 2022-05-31 一种智能网卡部署方法、装置及介质 Pending CN114995888A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210606768.8A CN114995888A (zh) 2022-05-31 2022-05-31 一种智能网卡部署方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210606768.8A CN114995888A (zh) 2022-05-31 2022-05-31 一种智能网卡部署方法、装置及介质

Publications (1)

Publication Number Publication Date
CN114995888A true CN114995888A (zh) 2022-09-02

Family

ID=83031950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210606768.8A Pending CN114995888A (zh) 2022-05-31 2022-05-31 一种智能网卡部署方法、装置及介质

Country Status (1)

Country Link
CN (1) CN114995888A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115509563A (zh) * 2022-11-15 2022-12-23 济南浪潮数据技术有限公司 镜像文件制作方法、装置、设备及介质
CN115720181A (zh) * 2022-11-18 2023-02-28 济南浪潮数据技术有限公司 裸金属节点的控制方法、系统、电子设备及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115509563A (zh) * 2022-11-15 2022-12-23 济南浪潮数据技术有限公司 镜像文件制作方法、装置、设备及介质
CN115509563B (zh) * 2022-11-15 2023-02-28 济南浪潮数据技术有限公司 镜像文件制作方法、装置、设备及介质
WO2024103840A1 (zh) * 2022-11-15 2024-05-23 济南浪潮数据技术有限公司 镜像文件制作方法、装置、设备及非易失性可读存储介质
CN115720181A (zh) * 2022-11-18 2023-02-28 济南浪潮数据技术有限公司 裸金属节点的控制方法、系统、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN114995888A (zh) 一种智能网卡部署方法、装置及介质
US20190007369A1 (en) Assigning ip addresses and configuration parameters in hyper-converged infrastructure
US20080209199A1 (en) Boot negotiation among multiple boot-capable devices
US20060155838A1 (en) Program installation system and method using the same
CN113419815B (zh) 一种预启动运行环境装机的方法、系统、设备及介质
CN109240754B (zh) 一种配置bios启动项的逻辑器件及方法、系统
US11418566B2 (en) Adding and removing virtual disks remotely to a streaming machine
CN104572372A (zh) 一种服务器性能测试环境搭建系统及方法
US20040254978A1 (en) System and method of remotely accessing a computer system to initiate remote mainteneance and management accesses on network computer systems
EP3567483B1 (en) Method for processing service data, and network device
CN107666493B (zh) 一种数据库配置方法及其设备
KR101587994B1 (ko) 하드디스크 가상화 방식의 클라우드 컴퓨팅 서비스 시스템
CN107391193A (zh) 一种客户端、配置服务器的系统和方法
CN111416853B (zh) 一种idv云桌面远程开机的方法及系统
CN106648838B (zh) 一种资源池管理的配置方法及装置
CN105183529A (zh) 刷新服务器固件的方法、目标服务器、源服务器及系统
CN114024853B (zh) 一种裸金属节点的硬件信息收集方法、系统及相关组件
US20240155023A1 (en) Method and system for implementing bare metal inspection process, device, and storage medium
CN109600439B (zh) 基于微服务的PaaS平台的部署方法及PaaS平台
CN111124437A (zh) 一种基于OpenStack的裸机资源配置信息获取方法、系统及设备
EP3193253B1 (en) Method, apparatus and system for displaying names of virtual machine
CN113419813A (zh) 一种基于容器平台部署裸机管理服务的方法及装置
CN111209125B (zh) 一种多进程的命令行实现方法
US9059919B1 (en) Systems and methods for preserving network settings for use in a pre-boot environment
CN107659621B (zh) 一种raid控制卡配置方法及装置

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