掌桥专利:专业的专利平台
掌桥专利
首页

一种裸金属服务器自动发现和注册的方法及系统

文献发布时间:2023-06-19 18:37:28


一种裸金属服务器自动发现和注册的方法及系统

技术领域

本发明涉及裸金属服务器技术领域,具体为一种裸金属服务器自动发现和注册的方法及系统。

背景技术

Openstack:OpenStack是一个开源的云计算管理平台项目。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。

现有技术中,物理机从PXE启动后,会从网络上下载一个内核和一个根文件系统,这个根文件系统里面安装有IronicPythonAgent,物理机会使用这个内核和根文件系统启动操作系统,操作系统启动后,IronicPythonAgent会自动运行;IronicPythonAgent采集到物理机和网卡的信息后,通过部署网络将这些数据发送到IronicInspector,IronicInspector将这些数据处理完成之后,使用这些数据调用IronicConductor的接口,将物理机注册为Node,将网卡注册为Port。之后Ironic根据这些Node和Port上保留的硬件的相关数据,管理对应的物理机网卡。

但是,目前流程注册生成的Node和Port缺少许多关键的数据,同时缺少对物理机的配置,需要运维人员手动配置补充才能在生产环境中使用;裸金属服务器在上架连线完成之后,需要再Ironic里面注册物理机和网卡,这个步骤需要运维人员手动操作,不仅操作步骤繁琐,还有出错的风险。

发明内容

本发明的目的在于提供一种裸金属服务器自动发现和注册的方法及系统,以解决上述背景技术中提出的裸金属服务器在上架连线完成之后,需要再Ironic里面注册物理机和网卡,这个步骤需要运维人员手动操作,不仅操作步骤繁琐,还有出错的风险的问题。

为实现上述目的,本发明提供如下技术方案:一种裸金属服务器自动发现和注册的方法,该方法包括以下步骤:

配置模块,设置物理机的RAID;

注册模块,在node上面设置物理机的ipmi用户名和密码;

标识生成模块,在Port上面设置交换机的标识;

区别模块,在Node上面设置resource_class属性;

端口号生成模块,设置Node的ipmi_terminal_port属性。

优选的,在Ironic自动发现使用的文件系统内,添加上Raid卡厂商的Raid卡驱动和命令行工具,当IronicPythonAgent启动后,检测当前物理机上RAID卡的型号,调用对应RAID卡厂商的RAID制作功能,制作系统盘RAID。

优选的,在物理机对应的Node上面,配置上ipmi的相关信息,包括Ipmi的地址,ipmi的用户名和对应的密码,ironic通过上述信息,使用ipmitool下方指令给物理机,实现物理机的管理。

优选的,IronicInspector在注册Port的时候,自动添加switch_info属性;

修改IronicInspector的代码,让Ironic在注册node的时候,设置node的resource_class属性,resource_class命名规则为CPS_STD_CPU数目内存数目。

优选的,IronicInspector查询目前平台内已经使用的端口号,从比10000大且未被使用的端口号中选择一个,设置node的ipmi_terminal_port属性,IronicInspector设置完Node和Port的所有属性后,更新Node的状态。

一种裸金属服务器自动发现和注册的系统,该系统由配置模块、注册模块、标识生成模块、区别模块以及端口号生成模块构成;

配置模块用于设置物理机的RAID;

注册模块用于在node上面设置物理机的ipmi用户名和密码;

标识生成模块用于在Port上面设置交换机的标识;

区别模块用于在Node上面设置resource_class属性;

端口号生成模块用于设置Node的ipmi_terminal_port属性。

优选的,所述配置模块中,在Ironic自动发现使用的文件系统内,添加上Raid卡厂商的Raid卡驱动和命令行工具,当IronicPythonAgent启动后,检测当前物理机上RAID卡的型号,调用对应RAID卡厂商的RAID制作功能,制作系统盘RAID。

优选的,所述注册模块中,在物理机对应的Node上面,配置上ipmi的相关信息,包括Ipmi的地址,ipmi的用户名和对应的密码,ironic通过上述信息,使用ipmitool下方指令给物理机,实现物理机的管理。

优选的,所述标识生成模块中,IronicInspector在注册Port的时候,自动添加switch_info属性;

区别模块,修改IronicInspector的代码,让Ironic在注册node的时候,设置node的resource_class属性,resource_class命名规则为CPS_STD_CPU数目内存数目。

优选的,所述端口号生成模块中,IronicInspector查询目前平台内已经使用的端口号,从比10000大且未被使用的端口号中选择一个,设置node的ipmi_terminal_port属性,IronicInspector设置完Node和Port的所有属性后,更新Node的状态。

与现有技术相比,本发明的有益效果是:

本发明提出的裸金属服务器自动发现和注册的方法及系统实现裸金属服务器的自动发现和注册,减少物理机注册过程中需要人工设置的内容,减少了裸金属服务器上架需要进行的运维步骤。

附图说明

图1为物理机自动发现和注册流程图;

图2为本发明流程图。

具体实施方式

为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

出于简明和说明的目的,实施例的原理主要通过参考例子来描述。在以下描述中,很多具体细节被提出用以提供对实施例的彻底理解。然而明显的是,对于本领域普通技术人员,这些实施例在实践中可以不限于这些具体细节。在一些实例中,没有详细地描述公知方法和结构,以避免无必要地使这些实施例变得难以理解。另外,所有实施例可以互相结合使用。

实施例一

请参阅图2,本发明提供一种技术方案:一种裸金属服务器自动发现和注册的方法,该方法包括以下步骤:。

1.物理机配置RAID。

RAID(redundant array of independent disks),即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说,RAID是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。RAID有多种形式,其中RAID0,RAID1,RAID5比较常用。RAID0是将多块磁盘当作一个磁盘,在读写文件的时候,将读写并发在多个磁盘上进行,提高了速写速度,没有提供可靠性。RAID1,是在成对的独立磁盘上产生互为备份的数据,可靠性较高,但是磁盘的利用率较低。RAID5,可以理解为RAID0和RAID1的折中方案,兼顾存储性能、数据安全和存储成本等各方面因素。

浪潮云物理主机使用的物理机配置有两块ssd磁盘,通过制作raid1作为操作系统的系统盘,保证数据的可靠性。我们修改IronicPythonAgent,让IronicPythonAgent启动后检查物理机磁盘的配置,如果物理机原来的磁盘有设置RAID,则保留原来的RAID设置,否则将两块磁盘制作RAID1作为系统盘。

在Ironic自动发现使用的文件系统内,添加上Raid卡厂商的Raid卡驱动和命令行工具,目前适配了大多数服务器使用的LSI和Adaptec这两个厂商的RAID卡。当IronicPythonAgent启动后,检测当前物理机上RAID卡的型号,调用对应RAID卡厂商的RAID制作功能,制作系统盘RAID。

2.创建新的Ipmi用户名和密码

Ironic通过ipmi对物理机进行开机关机重启等管理,为了实现Ironic对物理机的管理,需要在物理机对应的Node上面,配置上ipmi的相关信息,包括Ipmi的地址,ipmi的用户名和对应的密码。ironic通过这些信息,使用ipmitool下方指令给物理机,实现物理机的管理。物理机注册的时候,每台物理机的ipmi用户名密码可能不一样,需要运维人员手动设置,增加了失误的风险。在物理机注册的过程中,添加步骤,通过IronicPythonAgent创建统一的ipmi用户,设置一致的ipmi用户的密码,方便在后面更新node信息的时候,将ipmi的用户名密码一起设置,减少运维人员的操作。

对于浪潮生产的NF5280M5型号物理机,使用ipmitool通过下面的命令创建ipmi用户

(1)设置用户名

ipmitool user set name 4inspur

4为用户的id,inspur是用户名,用户名长度不大于15,用户id不能大于17,admin的用户id是1,这条命令是新建一个用户用户名inspur用户id为4

(2)设置密码

ipmitool user set password 4inspur_pass

将用户inspur的密码设置为inspur_pass

(3)设置用户权限

ipmitool channel setaccess 1 4callin=on ipmi=on link=on privilege=4

on为开启、off为关闭,是该用户对于通道的权限

1代表ipmi使用的通道

privilege的值代表不同的权限:1callback 2user 3operator 4administrator5OEM

给inspur用户设置administrator权限

(4)启用用户

ipmitool user enable 4

通过以上几个命令,设置物理机新的用户名和密码,设置完成后将新设置的用户名和密码传输给IronicInspector服务,在注册Node的时候,同时设置ipmi的用户名和密码。

3.在Port上面设置交换机的标识switch_info

之前IronicInspector在注册Port的时候,生成的Port上缺少的交换机的标识,这个标识的作用的区分网卡连接的是哪一个交换机,在配置网卡VLAN的时候,需要通过这个交换机标识,查询到对应的交换机,向网卡连接的交换机下发指令,完成网卡的配置。

IronicInspector在处理IronicPythonAgent发送的物理机网卡的数据时,只在网卡对应生成的Port上添加了两个属性,switch_id和port_id。管理网卡需要手动添加一个属性switch_info,这个属性一般配置为交换机的系统名称。我们拓展了IronicInspector的功能,让IronicInspector在注册Port的时候,自动添加switch_info属性。

4.Node上面设置resource_class属性

resource_class是Node上面需要配置的属性,这个属性云物理主机用来区分不同的物理机型号,划分产品类型。之前这个属性需要手动配置。

修改IronicInspector的代码,让Ironic在注册node的时候,设置node的resource_class属性,resource_class命名规则为CPS_STD_CPU数目_内存数目,CPU数目和内存数目依照实际设置,比如CPS_STD_48C256G,48为CPU数目256为内存大小(单位G)。当物理机的硬件规格不同的时候,云物理主机根据Node的resource_class来划分产品型号。

5.设置Node的ipmi_terminal_port属性

在之前物理机注册的流程中,IronicInspector注册完node后,需要手动设置node的ipmi_terminal_port属性。这个属性是裸金属服务提供远程登陆使用的端口号,由于端口号的唯一性,不同的服务必须使用不同的端口号,所以每个Node上ipmi_terminal_port这个属性必须不同。为了不与其他服务使用的端口号冲突,计划使用10000之后的端口号,IronicInspector查询目前平台内已经使用的端口号,从比10000大且未被使用的端口号中选择一个,设置node的ipmi_terminal_port属性。

IronicInspector设置完Node和Port的所有属性后,更新Node的状态,表明这个Node已经可以用来部署裸金属服务器,物理机的自动发现和注册完成。

实施例二

一种所述的裸金属服务器自动发现和注册的系统,该系统由配置模块、注册模块、标识生成模块、区别模块以及端口号生成模块构成;

配置模块用于设置物理机的RAID;在Ironic自动发现使用的文件系统内,添加上Raid卡厂商的Raid卡驱动和命令行工具,当IronicPythonAgent启动后,检测当前物理机上RAID卡的型号,调用对应RAID卡厂商的RAID制作功能,制作系统盘RAID;

注册模块用于在node上面设置物理机的ipmi用户名和密码;在物理机对应的Node上面,配置上ipmi的相关信息,包括Ipmi的地址,ipmi的用户名和对应的密码,ironic通过上述信息,使用ipmitool下方指令给物理机,实现物理机的管理;

标识生成模块用于在Port上面设置交换机的标识;IronicInspector在注册Port的时候,自动添加switch_info属性;

区别模块用于在Node上面设置resource_class属性;修改IronicInspector的代码,让Ironic在注册node的时候,设置node的resource_class属性,resource_class命名规则为CPS_STD_CPU数目内存数目;

端口号生成模块用于设置Node的ipmi_terminal_port属性,IronicInspector查询目前平台内已经使用的端口号,从比10000大且未被使用的端口号中选择一个,设置node的ipmi_terminal_port属性,IronicInspector设置完Node和Port的所有属性后,更新Node的状态。

对比例一

参照附图1所示,一种物理机自动发现和注册方法,包括以下步骤:

IronicInspector注册物理机的步骤如下:

在管理平台上部署Ironic的相关服务,包括IronicConductor服务,IronicInspector服务,TFTP服务和DHCP服务等。创建部署网络,通过这个网络,物理机可以访问到以上各个服务。IronicInspector服务用来进行物理机的自动发现和注册,IronicConductor是管理物理机注册后的生成的Node和Port的服务,负责的操作包括更新设置Node和Port的各种属性,更新Node的状态。TFTP和DHCP服务,是物理机从pxe启动操作系统,启动Ironic Python Agent需要的服务。

ipmitool是一种可用在linux系统下的命令行方式的ipmi平台管理工具,通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。可以通过ipmitool提供的命令行管理本地或者远端的IPMI。Ironic的服务也是通过ipmitool给物理机下发命令,操作物理机。在ubuntu系统下可以通过apt-y install ipmitool安装ipmitool软件。

将物理机的网卡接入到部署网络中,通过ipmitool命令操作物理机从pxe启动,使用ipmitool开关机物理机的命令如下:

ipmitool-Ilanplus-H${IPMI_ADDR}-U${IPMI_USER}-P${IPMI_PASS}power off

ipmitool-Ilanplus-H${IPMI_ADDR}-U${IPMI_USER}-P${IPMI_PASS}chassisbootdev pxe

ipmitool-Ilanplus-H${IPMI_ADDR}-U${IPMI_USER}-P${IPMI_PASS}power on

IPMI_ADDR是物理机的IPMI的ip地址,IPMI_USER是ipmi的用户名,IPMI_PASS是ipmi的密码。

power off命令是让物理机关机。

chassis bootdev pxe命令是设置物理机下一次启动的时候从pxe启动。

power on命令是让物理机开机。

物理机从PXE启动后,会从网络上下载一个内核和一个根文件系统,这个根文件系统里面安装有IronicPythonAgent,物理机会使用这个内核和根文件系统启动操作系统,操作系统启动后,IronicPythonAgent会自动运行。

PXE的工作过程如图示1所示,包含以下步骤

1.PXE Client从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;

2.DHCP服务器返回分配给客户机的IP以及PXE引导文件(文件名通常为pxelinux.0)的放置位置(该文件一般是放在一台TFTP服务器上);

3.PXE Client向本网络中的TFTP服务器索取引导文件;

4.PXE Client取得引导文件后之执行该文件;

5.根据引导文件的执行结果,通过TFTP服务器加载内核和文件系统;

6.启动操作系统。

操作系统启动后,安装在操作系统内的IronicPythonAgent自动启动,开始自动发现的流程。

IronicPythonAgent启动后对物理机收集物理机的各类信息,将物理机的各类信息发送给IronicInspector服务。收集的物理机信息包括:CPU核心数,内存大小,磁盘数量和大小。IronicPythonAgent收集的网卡信息包括,网卡的MAC地址,网卡连接的交换机端口号等。

为了让IronicPythonAgent可以发现交换机的信息,需要再交换机上面启用lldp服务。浪思交换机开启LLDP服务的命令lldp enable。LLDP(链路层发现协议)是一个二层协议,接入网络的设备可以通过其,将管理地址、设备标识、接口标识等信息发送给同一个局域网络的其它设备。

IronicPythonAgent采集到物理机和网卡的信息后,通过部署网络将这些数据发送到IronicInspector,IronicInspector将这些数据处理完成之后,使用这些数据调用IronicConductor的接口,将物理机注册为Node,将网卡注册为Port。之后Ironic根据这些Node和Port上保留的硬件的相关数据,管理对应的物理机网卡。

但是,目前流程注册生成的Node和Port缺少许多关键的数据,同时缺少对物理机的配置,需要运维人员手动配置补充才能在生产环境中使用。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术分类

06120115630255