> 文档中心 > 【重识云原生】计算第2.6节——裸金属方案

【重识云原生】计算第2.6节——裸金属方案

接上一节《【重识云原生】第2.5节——商用云主机方案》

        裸金属方案知识地图:

1 裸金属概念简介

1.1 什么是裸金属服务器

        裸金属服务器(Bare Metal Server)类似云上的专属物理服务器,在拥有弹性灵活的基础上,具有高性能的计算能力。计算性能与传统物理机无差别,具有安全物理隔离的特点。裸金属,是英文 Bare Metal 的直译,就是指没有操作系统的计算机硬件。

 云厂商的裸金属服务

1.2 裸金属的特点和优势

        这里直接借用阿里云裸金属产品页的特性介绍,主要包括 4 个方面:

1.2.1 安全方面

        裸金属服务器具有安全物理隔离的特性,裸金属服务器与其他租户物理隔离。

        对安全性要求比较高的用户,例如金融类用户,他们对服务器的安全合规是有硬性要求的,裸金属服务器具有物理机级别的隔离。

1.2.2 性能方面

        裸金属资源完全独占,完全没有性能损耗,能够胜任高 IO 应用、高性能计算等业务,例如海量数据采集和挖掘,高性能数据库,大型在线游戏等。

        特别的,裸金属服务器还可以支持虚拟化,用户可以在裸金属上搭建自己的虚拟化平台,打造独占的私有云或容器云,实现「在公有云上搭建专有云」这样灵活的架构。

1.2.3 弹性和自动化

        除了裸金属的固有特性,裸金属云完全继承了虚拟化云服务器的 云 特性,例如一键自动化快速部署交付、弹性伸缩等,并且整个过程都是自动化管理,无需人工参与即可自动完成镜像安装、网络配置、超级云硬盘挂载等。

        唯一的差距在于相对于虚机和容器的秒级响应,裸金属是分钟级别的响应。

1.2.4 带外批量运维

        支持在线批量管理物理服务器生命周期,如开关机、重启、挂卷、删除、监控、远程登录、状态查询等。

1.2.5 VPC网络+自定义网络

        支持多种方式与虚拟机互联,可以建立虚拟私有网络(VPC),也可以通过自定义网络,以满足不同网络安全需求。VPC网络构建出一个安全隔离的网络环境,可以灵活自定义IP地址范围、配置路由表和网关、 创建子网等,实现弹性IP、弹性带宽、共享带宽等功能。

1.2.6 兼容其它云产品

        裸金属作为云中居民,可以和其它云产品如云主机、云网络、云存储、云数据库直接打通,方便业务使用,构建更加灵活的整体架构和方案。

1.2.7 镜像与备份

        支持云主机镜像创建裸金属主机,支持裸金属主机创建镜像、克隆,支持裸金属主机镜像备份以及恢复。支持配置超高速本地NVMe SSD硬盘及超高速超级云硬盘,并采用大规模分布式存储系统,数据多副本冗余,永不丢失。

1.2.8 管理节点提供部署服务

        小规模部署服务如DHCP服务、TFTP服务、PXE服务等可以由管理节点提供,而不需要单独配置一台部署服务器,造成资源浪费;当然,达到一定规模,单独配置部署服务器十分有必要的,可以减轻管理节点压力,专机专用。

1.2.9 细分场景多种实例

        针对站群、数据库场景、大数据场景、高性能计算和异构计算场景等地方,提供定制化解决方案。

2 裸金属上云实现原理

2.1 裸金属上云实现原理

        裸金属云服务器产品要真正落地,需要形成三个闭环:

2.1.1 技术闭环

        裸金属云服务器技术层面要解决两个问题,第一是物理服务器在云上的自动化管理,第二是管理功能封装成API,方便云管理平台和租户用户调用。

        从专注裸金属云的PACKET公司流露出的一张技术架构图上,可以清晰的看到裸金属使用的技术和解决方案。

        从PACKET的架构图看,PACKET的裸金属云服务主要分为以下几个模块:

  • Magnum IP模块的功能是多租户的IP地址管理,IPAM是IP Address Management的缩写。
  • PB&J模块的功能是电源和启动管理。
  • Tinkerbell模块的作用是iPXE服务器和镜像管理。
  • Soren模块的功能是流量管理和分析。
  • Narwhal模块的功能是物理交换机和SDN的管理。
  • SOS模块的功能是串口和远程登录的管理。

        另外,在网上找到了CRAY的一个分享,对OpenStack Ironic项目的流程画的非常清晰,也分享下。Ironic项目是OpenStack裸金属管理项目,最近随着裸金属云的潮流,发展也很快。

        这里特别说明下一项关键技术iPXE,iPXE是预引导执行环境(PXE)客户端固件和引导程序的开源实现,可用于启用没有内置PXE支持的计算机从网络引导。虽然标准化PXE客户端使用TFTP传输数据,但非标准化iPXE客户端固件增加了通过其他协议检索数据的功能,包括HTTP,iSCSI,以太网ATA(AoE)和以太网光纤通道(FCoE)。

        为什么在有的云厂商裸金属云服务介绍上,能看到分钟级的裸金属服务器交付,就是使用了iPXE的技术,服务器启动,通过iPXE引导已经制作好的iSCSI系统镜像,这样就免去了安装操作系统的过程,并且服务器也不需要系统硬盘,节省了成本。并且这样更为灵活,通过这样的技术,可以实现用户根据需要制定自己的系统镜像,而且方便镜像虚实转换,镜像即可以用于启动云主机,也可以启动物理机! 

2.1.2 网络闭环

        网络方面,裸金属服务器本质上是运行在Underlay网络的,如果要和云上已有的云主机、云存储等云产品打通,需要为其封装成overlay网络,如此才能够和云主机一样的配置ACL、VPC、负载均衡等网络功能。

        对于网络打通,一方面现有头部云厂商均基于智能网卡方案,在一张PCI扩展卡上实现了基于VirtIO的网络半虚拟化能力,以此完成Overlay网络封装;另一方,对于裸金属集群,会有专有裸金属网关来负责VPC网络打通(例如腾讯云的就叫XGW)。

 2.1.3 云产品闭环

        对于云厂商商来说,裸金属产品需要内嵌到自己的产品体系,形成闭环,和已有的产品打通,也要和已有的API兼容。这一方面基于技术闭环与网络闭环方案,其实已经不难实现。

2.2 阿里云神龙裸金属方案

(特别备注:此节主要基于阿里云公开内容“阿里云弹性裸金属服务器-神龙架构(X-Dragon)揭秘”一文,结合笔者近半年的调研了解内容整理而成。)

        神龙(X-Dragon)又名弹性裸金属服务器,是阿里云真正从云计算的角度去设计的一款服务器,除了CPU有定制外,主板也是其自研,另外最大亮点某过于添加了智能网卡——神龙Moc卡。

 神龙Moc卡实物图

2.2.1 X-Dragon架构自研硬件体系

         整个神龙的软硬件体系都是阿里完全通过自研模式去实现的。先是神龙芯片,通过它可以是宿主机完完全全具有虚拟机的特性,包括虚拟机的接口。然后是基于神龙芯片扩展而成的神龙MOC卡,它有比较丰富的网络接口、IO接口、管理接口,可以帮助我们实现弹性裸金属服务器所需具备的所有功能。

2.2.2 X-Dragon MOC卡架构详解

        从上图可以清晰的看出X-Dragon MOC卡的关键架构:

  1. 上面是弹性裸金属的一个实例,包含CPU、内存、网卡等资源,并且这些资源都是物理的。
  2. 中间的VirtlO-NIC,从名字推断,应该就是基于KVM的I/O虚拟化通用框架Virtio实现的定制化网卡驱动,用于配合网卡的DPDK特性来大幅加速网络转发性能;
  3. VirtlO-Blk,应该就是基于KVM的I/O虚拟化通用框架Virtio实现的定制化存储驱动,用于结合SPDK特性提升对块设备的访问性能;
  4. 因VirtlO-NIC、VirtlO-Blk其实均是KVM通用I/O框架的实现,与云主机KVM技术同宗同源,所以神龙裸金属便能与云上的所有镜像、云上的所有系统、虚拟机和物理机之间完全兼容;
  5. 除了上述功能,其他外部设备,例如键盘、鼠标、显示器等,基本可以判断也是基于KVM的I/O虚拟化框架来实现的后端驱动虚拟实现。这样就可以实现和KVM虚拟机一样的对外接口,使得运营的操作系统不需要做任何的修改,在虚拟机上拿过来在X-Dragon MOC卡上直接用。
  6. 最下面的整个X-Dragon Hypervisor层,基本也可以判断,应该也是基于KVM来实现的,完完全全运行在这张Moc卡上;
  7. 由此,Moc可以无缝支持阿里云的云盘、VPC网络、存储/网络设备热插拔、32块弹性物理网卡,同时对X86、ARM、Power等CPU兼容。

2.2.3 X-Dragon 自研软件体系

         依照2.2.2节所言,其实X-Dragon Hypervisor也是遵照KVM的通用框架规范做的定制化实现,故其与云上云下所有的软件和硬件都能做到深度融合,也即X-Dragon芯片能向上提供标准化的Virtio 网络驱动接口、Virtio 存储驱动接口、交互IO层驱动接口,从而能让上边的实例具备KVM虚拟机一样的体验。

2.2.4 X-Dragon架构支持第三方虚拟化

        这是X-Dragon Hypervisor 的一个系统软件示意图,可以从三个部分来讲:

  • 第三方虚拟化:基于Moc卡的能力增强,显然能比普通物理机更好的支持运行第三方虚拟化软件,因为存储的虚拟化、网络的虚拟化均在神龙卡中完成了,并与阿里云基础设施完全打通。
  • AnyStack:整个阿里云的Stack是基于飞天的Stack,能够更好的在公有云上和专有云上提供服务。以前OpenStack和ZStack是一种并列的关系,但是在有了神龙技术架构之后无论是OpenStack、ZStack、CloudStack 都能更好的和阿里云的基础设施连在一起。他们可以基于神龙云服务器去搭建自己的Stack,也可以使用阿里云的弹性裸金属服务器进行扩展。
  • 容器:在容器这一块列举了三个容器,这些容器都可以无缝的运行在上边。容器运行在云平台上的时候,传统方法是把容器运行在虚拟机里,但运行在虚拟机里容器的很多体验就会受到限制。而X-Dragon裸金属云服务器不仅能提供像物理机一样的体验,还可以支持云盘、VPC网络,故裸机容器的运行便成为了可能。

2.3 腾讯云裸金属方案

        腾讯云黑石物理服务器2.0(Cloud Physical Machine,CPM)提供云端独享高性能、无虚拟化、安全隔离的物理服务器集群,支持包年包月方式购买,用户根据业务特性几分钟即可弹性伸缩物理服务器数量。

2.3.1 CPM特性优势

极致计算和网络性能:

        黑石物理服务器2.0兼具了虚拟机弹性与物理机性能的优势,实现了物理机极致的计算性能,并且可以支持再次虚拟化,而无需额外的嵌套虚拟化性能开销。网络层面通过独有的网络转发技术实现了高达千万级pps的转发性能。

一键式交付:

        用户无需关心机房、网络和部署、监控等基础设施和软件环境,可在分钟级一键式获得标准的物理服务器集群。操作系统、磁盘分区、本地RAID都将自动化部署和划分,监控和安全能力都将直接具备,内外网服务都将直接配置。

费用低廉:

        具备虚拟机弹性的黑石物理服务器2.0让用户无需一次性投入大量现金流购置机房和网络等基础设备。完善、快捷的监控、故障维修等服务,极大降低了维护的人力和金钱成本。

完全兼容 VPC 网络:

        黑石物理服务器2.0完全运行在公有云VPC网络里,用户可以根据业务需求规划VPC网络,和腾讯云产品体系在网络上完全无缝互通,切实保证用户云上资源的使用便捷性和安全性。

免运维:

        腾讯云提供7*24小时的运维服务,借助先进的监控与故障诊断技术,能自动发现服务器的主流故障,并在及时地自动触发修复流程,通过远程管控平台,自动调度IDC现场以及厂商资源,恢复服务器至可用状态。

服务集成:

        完全融入腾讯云产品体系,比如对象存储COS、云数据库TencentDB等;还可以和PaaS服务结合,比如EMR和TKE等,为用户提供满足不同工作负载的完整的解决方案。

2.3.2 黑石裸金属实现方案

        黑石服务器至今发展了两代,如上图所示,第1代服务器的服务器管控逻辑依然在云端,且CVM控制器与裸金属控制器是分开部署,配置分开下发。而且基于普通网卡来实现交互,因此需要利用宿主机普通网卡与CPU来实现网络转发,并且路由网络策略依赖人工配置,故当时(2017年前后)前后腾讯云对外宣称的黑石服务器1.0,从用户申请到交付,需要4小时以上,其中应该就包括服务器OS安装、网络手工配置等工作。

         而到了2.0时代,随着vSwitch功能下沉到智能网卡上,并彻底打通云上网络、云存储,网络策略配置可以实现自动下发,OS可直接使用云存储中已经制作好的iSCSI系统镜像(如上2.1节所述),故裸金属服务器的交付能来到分钟级。

2.3.3 腾讯智能网卡实现方案演进

2.4 华为云裸金属方案

2.4.1 裸金属服务技术概述

        云计算场景下,虚拟化技术不可避免的会带来一些性能上的损耗,而对于一些安全和监管高要求高的场景、高性能计算不希望有任何虚拟化性能损耗的场景、核心数据库等重载应用场景以及需要直接使用物理硬件信息、接口的场景,则需要使用裸金属服务器来实现这些应用的部署运行。

        裸金属服务提供了一种物理服务器的使用形态,支持通过OpenStack Nova接口指定裸金属服务器的镜像和规格进行自动化创建、查询、修改、开机、关机、重启等操作。还可以将Cinder创建的云硬盘通过和虚拟机相同的接口挂载给裸金属服务器。并且通过Neutron自动配置网络,实现裸金属服务器和虚拟机的VPC网络互通。

2.4.2 裸金属服务技术方案

2.4.2.1 裸金属服务实现原理

        裸金属服务基于开源社区OpenStack的Ironic组件能力,通过华为自研增强实现裸金属服务器的发放功能。裸金属服务通过PXE技术从服务器自动下载并加载操作系统,调用IPMI带外管理接口实现裸金属服务器的上电、下电、重启等操作,通过调用Nova组件的接口实现计算资源管理,调用Neutron组件的接口实现网络的发放和配置,调用Cinder组件的接口为裸金属服务器提供基于远端存储的云硬盘。通过Cloud-init从metadata服务等数据源获取数据并对裸金属服务器进行配置,包括:主机名、用户名、密码等。

2.4.2.1.1 功能架构

        裸金属服务的开通是自助完成的,用户可以在裸金属服务页面,通过选择相应的参数,在向导式流程指引下完成裸金属服务器的创建,以及相关联的VPC网络的绑定和云硬盘的创建与挂载。

裸金属服务提供如下功能:

  • 支持管理裸金属服务器的生命周期,包括创建、删除、查询、开启、关闭和重启裸金属服务器。
  • 支持裸金属服务器之间,以及裸金属服务器与虚拟机之间的网络互通。
  • 支持通过公共镜像创建裸金属服务器。
  • 创建裸金属服务器时,支持选择虚拟私有云、添加网卡、绑定弹性IP(SDN场景)、挂载云硬盘,并选择是否共享该硬盘,同时也支持本地盘等。
  • 创建裸金属服务器后,支持绑定与解绑弹性IP、挂载与卸载云硬盘。

        裸金属服务特性和虚拟机特性功能相互独立,但创建接口相同,在发放裸金属服务时可以指定不同的AZ、镜像、规格等。

        裸金属服务提供了和虚拟机功能类似的虚拟网络和虚拟存储特性,裸金属服务可以像虚拟机一样挂载云硬盘和连接VXLAN(Virtual Extensible LAN,可扩展虚拟局域网)网络,并支持同一VPC内物理机和虚拟机的网络互通和隔离。

2.4.2.1.2 系统架构

        裸金属服务分为Console层和基础设施层,其中Console层对外提供操作的UI页面,是用户请求的入口;基础设施层包括OpenStack管理服务和裸金属服务器资源池。在OpenStack系统中,裸金属服务的核心组件是Ironic,通过Ironic与Nova、Neutron等组件的配合,可以对用户提供与虚拟机相同体验的使用方式。

 Ironic在FusionSphere中的位置

  Ironic裸金属服务架构

        Ironic 是OpenStack中的裸金属服务器管理组件,在FusionSphere中,裸金属服务以Ironic为核心,包含以下组件:

  • ironic-api:Ironic提供的REST API服务。

        ironic-api用于注册裸金属硬件信息到裸金属管理框架,用户注册时需要指定硬件信息、IPMI管理信息和物理网卡mac地址到Ironic。ironic-api服务在系统中是多实例负载均衡模式部署。

  • ironic-provision:Ironic tftp服务,为裸金属服务器安装部署过程提供tftp服务。
  • ironic-condutor:Ironic功能处理主体服务,接收Ironic API下发的命令,进行具体的操作。

        ironic-conductor服务是裸金属管理服务的最主要部件,绝大多数的裸金属服务器节点管理动作都是由ironic-conductor服务完成的,它通过IPMI命令对裸金属服务器节点进行上下电、设置启动方式等管理操作。 ironic-conductor服务在系统中是多实例负载均衡模式部署,其所在节点需要与物理服务器的IPMI控制平面进行通信。

  • nova-compute-ironic:对接Ironic Driver实现裸金属服务器的发放等生命周期管理。
  • ironic-db:Ironic服务的数据库实例,与OpenStack其他服务的database共用。
  • ironic-mq:Ironic服务内部rpc通讯的消息队列,与OpenStack其他服务的MQ共用。
  • ironic-python-agent:集成于deploy ramdisk中,通过与Ironic管理服务的交互完成裸金属OS加载等操作,临时存在于裸金属服务器加载启动的内存中,裸金属OS完成安装并启动后消失。
  • ironic-agent:代理脚本,通过metadata获取参数,自动完成网络trunk配置、云硬盘挂载、卸载操作。用户镜像制作时可选择集成到裸金属镜像中。

Ironic组件的逻辑组网图如下图所示。

 Ironic组件逻辑组网图

  •  BMC:IPMI带外管理裸金属服务器使用的网络平面,部署ironic-conductor服务的管理主机,所有的裸金属服务器都接入该网络。
  • provision:裸金属服务器发放时,需要通过neutron借助SDN控制器自动将之前的PXE网口网络切换到provision网络上,支撑裸金属服务器的OS加载安装;完成裸金属OS加载后,Ironic会通知neutron切换裸金属网络到tenant network;PXE加载网口与租户网络使用的网口共用,裸金属不需要单独的管理网口。BMS当前支持从provision网络进行硬件信息采集,完成扩容操作。
  • tenant networks:租户网络,可以接入多个。
  • ironic_dummy:裸金属服务器未使用的端口临时挂载的网络,需要在neutron中创建该网络,配置网络id给Ironic使用,所有挂载端口的状态为down;当租户申请的裸金属仅接通了部分网口时,裸金属上其他未使用的网口通过挂载在该网络上,并设置状态为down来隔离物理网络的通畅,避免初始工程部署时的配置误导致网络放通,引起安全问题。

2.4.2.1.3 关键技术

        裸金属服务基于开源社区OpenStack的Ironic组件能力,并通过华为自研增强实现裸金属服务器的发放功能。裸金属服务通过PXE技术从服务器自动下载并加载操作系统,调用IPMI带外管理接口实现裸金属服务器的上电、下电、重启等操作,通过调用Nova组件的接口实现计算资源管理,调用Neutron组件的接口实现网络的发放和配置,调用Cinder组件的接口为裸金属服务器提供基于远端存储的云硬盘。通过Cloud-init从metadata服务等数据源获取数据并对裸金属服务器进行配置,包括:主机名、用户名、密码等。

2.4.2.1.3.1 PXE技术

        PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的网络启动技术,工作于C/S模式。PXE客户端存在于网卡的ROM中,计算机启动时,BIOS把PXE客户端加载到内存中执行,并显示出命令菜单。用户选择后,PXE客户端通过网络从远端PXE服务器下载镜像,并由此支持通过网络启动操作系统。

        在此过程中,PXE客户端请求服务器分配IP地址,再用TFTP(Trivial File Transfer Protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成客户机基本软件设置,从而引导安装从PXE服务器下载的终端操作系统。PXE可以引导多种操作系统,如:Windows和Linux系列操作系统。

        PXE方式安装操作系统的步骤:

1. PXE客户端通过支持PXE的网卡向网络中发送DHCP信息(UDP)请求IP地址。

2. DHCP服务器收到请求,验证通过后恢复“提供”响应,这个响应中包含为客户端分配的IP地址和启动程序的网络地址。

3. PXE客户端请求下载启动程序。

4. PXE服务器响应PXE客户端请求并传送文件。

5. PXE客户端请求下载系统镜像文件。

6. PXE服务器响应PXE客户端请求并传送文件。

7. 客户端开始安装操作系统。

2.4.2.1.3.2 IPMI带外管理

        IPMI(Intelligent Platform Management Interface,智能型平台管理接口)能够横跨不同的操作系统、固件和硬件平台,可以智能的监视、控制和自动报告服务器的运作状况。即使服务器本身的运作不正常,或是由于某种原因而无法提供服务,IPMI仍可正常工作。

        IPMI接口使用服务器BMC网口的IP进行通信,使用用户名和密码的方式进行认证,通过IPMI接口可以实现裸金属服务器的电源开启、关闭、硬重启以及启动方式修改功能。

        利用IPMI可以实现以下功能:

  • 可以在服务器通电(没有启动操作系统)情况下,对它进行远程管理:开机、关机和重启。
  • 基于文本的控制台重定向,可以远程查看和修改BIOS设置、系统启动过程和登入系统等。
  • 可以通过SOL远程连接服务器,支持远程安装系统,解决SSH服务无法访问、查看系统启动故障等问题。
  • 可以通过系统的串行端口进行访问。
  • 故障日志记录和SNMP警报发送,访问系统事件日志(System Event Log,SEL)和传感器状况。

2.4.2.1.3.3 Cloud-init云平台配置

        Cloud-init是一个云平台系统配置工具,包括OpenStack在内的大部分云平台软件都在使用Cloud-init,已经成为虚拟机(或裸金属服务器)元数据管理和OS系统配置初始化的事实标准。Cloud-init主要思想是当用户首次创建虚拟机(或裸金属服务器)时,将前台设置的主机名、密码或者密钥等存入metadata server(元数据服务器)。在OpenStack环境下当Cloud-init随虚拟机(或裸金属服务器)启动而运行时,通过HTTP协议访问metadata server,获取元数据信息并修改主机配置,完成系统的环境初始化。Windows场景对应的是Cloudbase-init。

2.4.2.2 裸金属服务技术优势

        裸金属服务可以为用户提供独享的物理服务器(如Oracle数据库应用),减少虚拟化层带来的性能损失。基于FusionSphere OpenStack平台,提供类似虚拟机的快速发放体验。用户可以自助进行裸金属服务器创建,方便的进行信息查询、修改,在Console上控制裸金属服务器的启动、关闭、重启等操作。

以下是方案特点的详细描述:

  • 裸金属服务器和虚拟机的发放接口统一,通过指定AZ或是主机组实现。
  • 自动化的GuestOS安装和网络配置,快速的裸金属服务器发放能力。
  • 裸金属服务器能够自动进行Cinder创建云硬盘的挂载和卸载,也可通过nova的接口进行。
  • 裸金属服务器能够连接虚拟网络,支持VXLAN网络,支持与虚拟机互通。
  • 裸金属服务器发放过程与FusionSphere管理网络隔离,安全性增强。
  • 裸金属服务器支持多租户网络,租户间网络隔离。
  • 裸金属服务器支持通过web界面远程Console访问控制,租户可以在裸金属启动异常的情况下通过Console功能访问裸金属服务器,进行裸金属服务器GuestOS故障检测。
  • 使用和虚拟机相似的镜像技术,发放流程与虚拟机镜像使用方式相同。

        裸金属服务和物理机、虚拟机在能力上的对比优势如下:

各类服务器特性对比

功能分类

功能描述

裸金属服务器

物理机

虚拟机

发放方式

自动化发放

Y

N

Y

计算

无特性损失

Y

Y

N

无性能损失

Y

Y

N

资源无争抢

Y

Y

N

存储

拥有本地盘

Y

Y

Y

使用云硬盘

Y

N

Y

使用镜像,免操作系统安装

Y

N

Y

网络

使用虚拟私有云网络

Y

N

Y

物理机集群和虚拟机集群之间通过VPC通信

Y

N

Y

管控

云平台远程登录

Y

N

Y

支持监控以及关键操作审计

Y

N

Y

2.4.2.3 裸金属服务业务工作流程

2.4.2.3.1 准备工作

        在发放裸金属服务器前,需要做以下准备工作:

  • 裸金属服务已部署。
  • OpenStack控制节点需要配置provision(裸金属专用的安装部署)网络平面,裸金属服务器自动化安装GuestOS和自动进行节点清理操作需要在此网络内进行。
  • OpenStack控制节点需要配置IPMI网络平面,将其和待管理的裸金属服务器BMC控制平面连通,使其能够通过IPMI协议控制裸金属服务器的电源和启动方式。
  • 硬件信息采集完成,硬件信息包括网卡接入交换机信息,HBA卡信息,CPU、磁盘、内存信息等。
  • ServiceOM上批量配置完成。
  • 初始化完成。

2.4.2.3.2 裸金属服务器发放管理

        裸金属服务器通过nova接口发放,并只能在已经注册且未经发放过的裸金属服务器中发放:

1. 用户通过nova申请裸金属服务器实例,需要指定flavor等信息,nova-api收到请求后传递消息到nova-scheduler。

2. nova-scheduler使用过滤器找到符合条件的裸金属服务器节点列表,再通过flavor和硬件信息匹配合适的目标节点,调度成功后将请求发放到nova-compute-ironic上。

3. nova-compute-ironic启动创建任务,包含从哪个镜像启动等信息。

4. 裸金属服务器节点的信息从Ironic数据库中检索出来,该裸金属服务器节点被锁定。

5. ironic-conductor从glance下载minios到本地,并上传到软件仓库,生成裸金属服务器节点的PXE配置。

6. neutron提供DHCP服务更新虚拟端口以支持裸金属服务器节点的PXE配置。

7. nova-compute-ironic通过ironic-api向ironic-conductor发出裸金属部署请求。

8. PXE驱动程序准备tftp引导加载程序。

9. 通过IPMI发出命令使裸金属服务器节点上电。

10. 从PXE引导部署minios,minios启动后加载ironic-python-agent,ironic-python-agent与ironic-conductor通信并下载GuestOS镜像,将GuestOS镜像写入到裸金属服务器节点本地磁盘。GuestOS镜像部署完成后,ironic-conductor会通知ironic-python-agent部署成功。

11. IPMI重新引导裸金属服务器节点,裸金属服务器从本地磁盘启动。裸金属发放完成,更新裸金属服务器节点的状态为active。

2.4.3 关键特性

裸金属服务主要提供以下功能:

  • 支持管理裸金属服务器的生命周期,包括创建、删除、查询、开启、关闭和重启裸金属服务器。
  • 支持通过镜像为裸金属服务器自动安装操作系统。
  • 创建裸金属服务器时,支持选择虚拟私有云、添加网卡、绑定弹性IP。
  • 裸金属服务器支持挂载云硬盘,并选择是否共享该硬盘等。

2.4.3.1 生命周期管理

        裸金属服务器需要先在Ironic数据库中进行注册,将裸金属服务器创建到资源池。再调用Nova接口创建、删除、查询、修改、启动、停止一台裸金属服务器,创建过程中指定镜像和规格,由nova scheduler根据用户指定的裸金属flavor进行调度和裸金属服务器节点筛选。

2.4.3.2 镜像管理

        华为云Stack随版本提供自动引导安装用户镜像的一套minios镜像,并为裸金属服务所使用的用户镜像提供了制作指导书。裸金属镜像里面不植入任何管理软件,如果用户有自动化挂载云硬盘和组Bond的高级特性需求,可选择在裸金属服务里面安装华为提供的Agent完成挂载云硬盘和组Bond功能。制作出来的用户镜像只需通过ManageOne运维面上传至glance镜像服务器。发放裸金属服务器时,ironic-conductor与minios中的ironic-python-agent(只存在于minios节点)交互自动完成镜像的安装和写入。

2.4.3.3 安装操作系统

        创建裸金属服务器时,调用Nova接口启动实例,调用时指定创建的规格、镜像等信息。Nova调度器通过规格匹配已注册的裸金属服务器节点信息,选择合适的计算节点。Nova将调用信息传递到Ironic管理程序,Ironic管理程序通过IPMI接口启动裸金属服务器,裸金属服务器开始PXE MiniOS,MiniOS是个迷你型操作系统,运行时只加载到内存中。MiniOS加载后会运行Ironic Python Agent(简称IPA),IPA通过心跳与Ironic管理程序通讯,并根据选择的镜像从Glance下载镜像文件,写到裸金属服务器的硬盘上,然后从硬盘重启裸金属服务器,自动化完成客户操作系统的安装。

2.4.3.4 配置网络

        裸金属服务通过Nova通知Neutron创建裸金属服务器使用的Port。为裸金属服务器配置网络可以通过两种途径,一种是在创建裸金属服务器时指定网络信息添加Port,另一种是在裸金属服务器创建后添加Port。

        创建裸金属时添加Port的流程如下:

1. 调用Nova接口创建裸金属实例,并指定创建网络所处的VPC、子网,可以指定IP地址,也可以不指定IP地址而自动获取。

2. Nova通知Neutron创建裸金属服务器使用的Port,并设置Port关联的主机ID为裸金属实例所处的裸金属服务器节点ID。

3. Neutron中的SDN插件会接收到Port创建和更新的消息,通过SDN设置TOR交换机上的VLAN,自动化完成网络配置工作,无需手动配置交换机。

2.4.3.5 配置云硬盘

        EVS服务通过Cinder提供的接口从共享存储申请云硬盘,并调用Nova接口挂载云硬盘给裸金属服务器。为裸金属服务器配置云硬盘可以通过两种途径,一种是在创建裸金属服务器时创建并挂载云硬盘,另一种是在裸金属服务器创建后挂载云硬盘。裸金属服务器在OpenStack平台挂载云硬盘成功后,如果制作镜像时选择了在用户操作系统预装挂载云硬盘的Agent,Agent会从Nova元数据服务查询云硬盘的挂载信息,完成扫盘动作。

2.4.4 依赖及约束

  • 裸金属服务对物理服务器和操作系统有兼容性要求,可通过“华为云Stack兼容性查询服务”查询。
  • 已经申请的裸金属服务器目前只能进行现有的操作系统的升级或打补丁操作,不支持对已有的裸金属服务器重新安装操作系统。
  • 裸金属实例发放过程中不允许删除,强行在裸金属实例发放过程中删除裸金属实例会导致删除失败。

2.4.5 裸金属服务应用场景

2.4.5.1 主要应用场景

        裸金属服务有如下多个应用场景:

场景

诉求描述

关键指标

应用类型

安全和监管高要求场景

金融、证券等行业对业务部署的合规性要求,以及某些客户对数据安全的苛刻要求,只能采用物理服务器部署,确保资源独享、数据隔离和可监管可追溯。

独享计算、存储资源

VPC网络隔离

数据物理隔离

l 金融系统(带USB)

l 中间件

l 核心企业应用

高性能计算场景

超算中心、基因测序、图形渲染等高性能计算场景,处理数据量大,对计算性能、稳定性、实时性等性能要求很高,不愿意接受虚拟化带来的性能损耗和超线程等影响。

无虚拟化损耗

低网络时延

显卡最佳性能

l 终端仿真

l 游戏云

l 异构计算

核心数据库场景

有些客户要求其关键的数据库业务不能部署在虚拟机上,而是必须通过资源专享、网络隔离、性能有保障的物理服务器承载。

集群共享云硬盘

高I/O保证

超大内存

l Oracle RAC

l Hadoop

l 容器

         裸金属服务器结合了传统托管服务器带来的高稳定性与云中资源高度弹性的优势,为用户提供专属的物理服务器、网络和存储和满足核心应用场景对高性能及稳定性需求的云服务。

2.4.5.2 最佳实践一:Oracle RAC部署

        裸金属服务为用户提供自服务式安装Oracle RAC所需的基础设施资源,用户可以完全控制基础设施与数据库的配置。在华为云Stack中,用户通过发放裸金属服务器,申请EVS提供的共享盘,配置虚拟私有云(VPC)等一系列云服务功能来部署和配置Oracle RAC数据库。

        同时,用户对于申请的裸金属服务器拥有操作系统级别的访问权限,能够完全控制和操作数据库。

         裸金属服务为Oracle RAC提供以下能力:

  • 无虚拟化开销,专有的物理服务器和网络提供超高性能体验。
  • 按需部署物理服务器和存储磁盘,弹性容量扩展。
  • 通过VPC提供如路由、弹性IP、VPN等高级网络特性,支持裸金属服务器与虚拟机之间的网络互通。
  • 通过EVS提供的共享云硬盘服务,允许多个裸金属服务器共享磁盘。
  • 为客户提供租户间资源隔离,保证数据安全,数据一致性。

2.4.5.3 最佳实践二:核心业务快速上云

        某运营商计费系统核心业务和客户关系管理系统采用华为云Stack裸金属服务,实现核心业务上云,通过30+裸金属服务器,支持200万用户的计费业务。

        通过裸金属服务提供多业务自动部署,支持OCS/CBS新业务在一周内上线。

通过裸金属服务为业务提供如下能力:

  • 采用硬件SDN,基于TOR交换机为裸金属服务器提供VXLAN网络,并提供自动网络配置能力,支持与虚拟机网络互通。
  • 通过给裸金属服务器自动化挂载云硬盘,实现通过FCSAN/IPSAN共享存储提供裸金属数据盘。
  • 提供不同的裸金属规格,满足业务对硬件资源的不同要求。
  • 根据业务诉求和使用习惯制作镜像,提供自动的操作系统部署能力,促进核心业务快速上线。
  • 无虚拟化开销,保证核心业务系统的高性能体验。

2.4.6 缩略语

缩略语

描述

ECS

Elastic Cloud Server,弹性云服务器

BMS

Bare Metal Server,裸金属服务器

EVS

Elastic Volume Service,云硬盘

IaaS

Infrastructure as a Service,基础设施即服务

OS

Operating System,操作系统

VPC

Virtual Private Cloud,虚拟私有云

EIP

Elastic IP,弹性IP

PXE

Pre-boot Execution Environment,预启动执行环境

IPMI

Intelligent Platform Management Interface,智能型平台管理接口

DHCP

Dynamic Host Configuration Protocol,动态主机配置协议

BIOS

Basic Input Output System,基本输入输出系统

VXLAN

Virtual Extensible LAN,可扩展虚拟局域网

参考链接

什么是裸金属服务器?_鲜枣课堂的博客-CSDN博客

什么是裸金属

什么是裸金属 - DavyCloud - 博客园

阿里云弹性裸金属服务器-神龙架构(X-Dragon)揭秘-阿里云开发者社区

一文解读裸金属云 (转) - 朱志勇 - 博客园

中信银行:裸金属云服务建设实践_配置

私有云的裸金属_weixin_34220963的博客-CSDN博客

基于OpenStack Ironic与DPU的网易数帆裸金属方案实践 - 脉脉

私有云裸金属服务器的这7大功能,对用户来说意义何在

腾讯云裸金属黑石物理服务器CPM详解 - 哔哩哔哩