IRONIC的网络方案系列(一)

前 言

裸金属服务器特指没有部署操作系统的物理服务器,当云平台收到用户的资源创建请求后自动安装部署操作系统。相对于虚拟机,物理服务器具有计算能力强、资源独占、安全隔离等优点。与此同时,物理服务器也依赖高效、灵活的网络。在实际应用时,我们需选择合适的网络方案以满足不同客户场景的需求。而使用OpenStack Ironic提供物理机服务是开源业界常见的做法。本文结合已有的项目经验,总结介绍Ironic的网络方案。

裸金属服务器的生命周期

Ironic是OpenStack社区的子项目,专门用于提供裸机服务。它既可以独立使用也可以与nova、neutron等组件集成使用。对于被Ironic管理的物理服务器而言,主要有上架、部署、回收这三个阶段。

上架阶段指的是,当物理服务器完成硬件安装、网络连线等工作后。由管理员将机器的信息注册到Ironic中进行纳管。这个阶段,需要使用Ironic inspect功能以实现物理服务器硬件配置信息以及上联接入交换机信息的自动采集。

部署阶段指的是,当物理服务器完成上架后,处于可用状态。租(用)户根据业务需要指定镜像、网络等信息创建物理服务器实例。云平台执行资源调度、操作系统安装、网络配置等工作。有别于传统的人工部署和预先部署,租户可以在任意时刻按需选择不同的镜像、网络等信息。这个阶段,需要使用Ironic provision功能以实现配置信息的下发与自动化部署。一旦实例创建成功后,租(用)户可以使用物理服务器运行业务。

回收阶段指的是,当物理服务器完成使用,由租(用)户申请释放资源。这个阶段,可以使用Ironic clean功能清理物理服务器上的残留数据。

术语表

在展开描述之前,本文中使用的术语如下表所示。

名词

缩写

说明

动态主机配置协议

DHCP

给局域网内的主机分配IP地址。

简单文件传输协议

TFTP

客户机与服务器之间进行简单文件传输的协议。相比FTP,简单且开销小。

智能平台管理接口

IPMI

一种开放标准的硬件管理接口规格,通过IPMI 消息可以控制电源、配置启动顺序、查看kvm console等。

预启动执行环境

PXE

支持服务器通过网络从tftp server下载映像,并由此支持通过网络启动操作系统。

网络启动程序

NBP

自动加载并运行操作系统。

裸金属服务器

BM

提供给租户使用的物理服务器,区别于基础设施层使用用于部署管理、控制组件的物理服务器。分配之前,无需安装操作系统。

管理网络

MGMT NETWORK

承载管理流量和OpenStack控制流量,不受OpenStack控制。

业务网络

DATA NETWORK

承载业务流量,对OpenStack而言,其作为underlying 网络。

inspection网络

INSPECTION NETWORK

执行ironic inspect时,BM通过该网络与控制节点通信。通常和业务网络复用。不受neutron管理。

provision 网络

PROVISION NETWORK

执行ironic provision时,BM通过该网络与控制节点通信。该网络由neutron创建并管理,承载于业务网络之上。

clean网络

CLEANNETWORK

执行ironic clean时,BM通过该网络与控制节点通信。,该网络由neutron创建并管理,承载于业务网络之上。

tenant 网络

TENANT NETWORK

承载租户业务流量,该网络由neutron创建并管理,承载于业务网络之上。

裸金属服务器的组网图

由于不同厂商的物理服务器所配置的网卡型号存在较大差异,为了描述方便,以双口1Gbe RJ45网卡(简称电口),双口10Gbe SFP+光纤网卡(简称光口)为例。

首先来看下面的拓扑图,该图简要描述物理服务器使用的三张网络。分别为IPMI网络、管理网以及业务网。限于篇幅,这里不单独划分存储网,默认复用业务网。

如上图所示:

物理服务器BMC管理网卡连接到IPMI网接入交换机,该网卡为带外管理,不受操作系统控制。

物理服务器的电口连接到管理网接入交换机,管理网使用传统的网络技术,由管理员预先配置好路由、子网和VLAN。

物理服务器的光口连接到业务网接入交换机,业务网使用SDN网络技术,由租户创建网络、子网、虚拟路由器等。注,业务网也支持VLAN网络,后续进行描述。

不论是管理网还是业务网,从物理服务器的操作系统层面来看,需要使用Bond/Teaming技术以实现网卡的高可用和负载均衡,以免网卡出现故障而影响业务的稳定运行。从接入交换机层面来看,需要使用堆叠或者MLAG(多交换机链路聚合)技术将一对交换机组合成一个逻辑的交换机以实现接入网络的高可用和负载均衡。

Ironic使用的技术

在描述完物理服务器的组网图之后,接着简单概述下Ironic部署需要用到的技术。

1):Ironic使用IPMI控制物理服务器的上下电、设置开机启动顺序(PXE启动或DISK启动)、获取电源状态、获取传感器状态、控制台重定向等。

2):Ironic 使用PXE引导启动用于部署的ramdisk,且这个ramdisk内包含一个agent。它与Ironic交互,执行Ironic下发的命令。注,虽然Ironic支持iScsi和PXE等多种部署方式,本文以agent部署方式为例说明。

3):cloud-init, 与虚拟机镜像一样,Ironic通过集成在镜像中的cloud-init初始化操作系统。包括创建用户、修改密码、配置网络等。

IPMI的使用较为简单,只需在上架阶段配置物理服务器的BMC,包括IP地址、掩码、网关、用户名和密码。然后将IPMI的IP地址、用户名和密码注册到Ironic。这样Ironic就可以获取物理服务器的电源状态,执行开关机,设置开机启动顺序。

PXE的使用需要借助于DHCP服务器和tftp服务器。DHCP服务器主要给物理服务器的PXE网卡分配IP地址,并传递tftp 服务器的IP地址, NBP文件位置信息。PXE从tftp 服务器下载并执行NBP文件,根据NBP文件的执行结果,从tftp服务器下载内核和系统文件并加载。这样,物理服务器就进入了ramdisk系统,agent自启动后,会与ironic取得联系并定期交互。Ironic控制agent进行镜像的下载与安装。当镜像安装后,Ironic设置物理服务器从磁盘启动,并重启进入用户的操作系统。

cloud-init作为一个通用的框架,既可执行预置在镜像中的通用配置,也可执行通过config driver传入的user-data。后者包含了租(用)户和物理服务器的自定义配置。

Ironic在OpenStack中的位置

在实际的项目实践中,我们不会单独使用Ironic,而是将Ironic集成到OpenStack云中。与认证鉴权、计算、网络、镜像、块存储服务等一起提供完整的解决方案。

Ironic依赖的组件和软件如下:

ironic-api

ironic-conductor (包含tftp server)

ironic-inspector

glance-api

ironic-api

nova-api

nova-conductor

nova-scheduler

nova-compute

neutron-server

neutron-dhcp-agent

dhcp server

(standalone, 或者由SDN vendor提供,或者由neutron-dhcp-agent替代)

tftp server

(standalone,专供ironic inspection 流程使用)

注:下文中为了简化描述,将nova-*组件统称为nova-manager

注:

1)根据通常做法,因为INSPECTION NETWORK/PROVISION NETWORK需要复用DATANETWORK,所以上图不用详细区分。

2)虽然各个物理服务器的MGMT NETWORK都使用bond技术,但该网络在本文不做重点介绍与描述,所以在上图中未予突出。

裸金属服务器部署流程状态

裸金属服务器在部署前后有不同的状态,在此需要明确一下。

Initialization

硬件安装到位,可以使用,尚未被ironic接管。

Registration

管理员注册该BM成为ironic可见的一个ironic node。

Inspection

管理员执行inspect操作,获取BM的硬件信息。

Provision

用户执行创建操作,BM安装操作系统及配置网络。

Active

BM创建完成,可供用户使用。

基础设施层的网络要求

在实际的环境中需要具备一定的网络条件才能保证Ironic的正常工作。

Pre-inspection

所有的BM都处于Initialization或Registration状态。

除了BM外所有的节点都需要保证MGMT NETWORK连通性, 且该要求贯穿所有阶段。

Inspection

BM处于Inspection状态。

BM、ironic-inspector、DHCP server、tftp server需要保证 INSPECTION NETWORK连通性。其中,BM需要从DHCP server获取地址,从tftp server下载image,以及需要调用ironic-inspector 服务的API。

注:

1)BM与DHCP server尽可能在一个二层网络内,虽然可以使用DHCP relay技术穿过路由器。

2)BM与tftp server只需三层网络可达即可。

Provision

BM处于Provision状态。

BM、glance-api、ironic-api、ironic-conductor、neutron-dhcp-agent需要保证PROVISION NETWORK连通性。访问方式,参照下表。

NO

方向

网络

原因

1

BM -> ironic-api

PROVISON NETWORK

BM发送lookup报文及heartbeat报文

2

ironic-conductor -> BM

PROVISON NETWORK

发送部署指令及监测部署状态

3

BM -> neutron-dhcp-agent

PROVISON NETWORK

获取IP地址

4

BM -> ironic-conductor上的tftp server

PROVISON NETWORK

获取deploy image

5

BM -> glance-api

PROVISON NETWORK

获取用户镜像

After-provision

BM处于Active状态。

BM、neutron-dhcp-agent需要保证TENANT NETWORK连通性,且BM可以根据用户配置而使用不同的TENANT NETWORK。

方向

网络

原因

BM -> neutron-dhcp-agent

TENANT NETWORK

获取IP地址

裸金属服务器的网络要求

Pre-inspection

需要保证ironic-conductor与BM之间IPMI网络连通性。

Inspection

1)BM的PXE网卡需要连接到INSPECTION NETWORK, 只使用一块网卡,不使用bond技术。

2)TOR需要周期性发送LLDP PDU, 发送间隔不得超过30秒,且LLDP PDU中需要包含chassis id, port id信息。

3)BM不支持任何封装技术,例如VLAN, VXLAN,这个阶段BM发送的报文为untag报文。

Provision

1)BM的PXE网卡需要连接到PROVISION NETWORK, 只使用一块网卡,不使用bond技术。

2)BM不支持任何封装技术,例如VLAN, VXLAN,这个阶段BM发送的报文为untag报文。

After-provision

BM使用bond技术 ,一个bond网卡包含两块物理网卡, 需要支持的bond mode:active-backup、802.3ad。

注:

通常情况下,BM内部不需要使用VLAN/VXLAN等封装技术, 但依赖于SDN厂商的方案。比如说,BM内通过增加VLAN子接口的方式以承载其它的业务网络。但受限于操作系统兼容性以及用户具有物理服务器的管理员权限,运行于BM内部的vTEP方案并不常见。

未完待续,敬请期待系列二,接下来将描述Ironic各个阶段的详细流程~~

参考资料

[1] https://wiki.openstack.org/wiki/Ironic

[2] http://networkboot.org/fundamentals/

[3] https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface

END

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180327G1BBNS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券