《重识云原生系列》专题索引:
裸金属方案知识地图:
裸金属服务器(Bare Metal Server)类似云上的专属物理服务器,在拥有弹性灵活的基础上,具有高性能的计算能力。计算性能与传统物理机无差别,具有安全物理隔离的特点。裸金属,是英文 Bare Metal 的直译,就是指没有操作系统的计算机硬件。
云厂商的裸金属服务
这里直接借用阿里云裸金属产品页的特性介绍,主要包括 4 个方面:
裸金属服务器具有安全物理隔离的特性,裸金属服务器与其他租户物理隔离。
对安全性要求比较高的用户,例如金融类用户,他们对服务器的安全合规是有硬性要求的,裸金属服务器具有物理机级别的隔离。
裸金属资源完全独占,完全没有性能损耗,能够胜任高 IO 应用、高性能计算等业务,例如海量数据采集和挖掘,高性能数据库,大型在线游戏等。
特别的,裸金属服务器还可以支持虚拟化,用户可以在裸金属上搭建自己的虚拟化平台,打造独占的私有云或容器云,实现「在公有云上搭建专有云」这样灵活的架构。
除了裸金属的固有特性,裸金属云完全继承了虚拟化云服务器的 云 特性,例如一键自动化快速部署交付、弹性伸缩等,并且整个过程都是自动化管理,无需人工参与即可自动完成镜像安装、网络配置、超级云硬盘挂载等。
唯一的差距在于相对于虚机和容器的秒级响应,裸金属是分钟级别的响应。
支持在线批量管理物理服务器生命周期,如开关机、重启、挂卷、删除、监控、远程登录、状态查询等。
支持多种方式与虚拟机互联,可以建立虚拟私有网络(VPC),也可以通过自定义网络,以满足不同网络安全需求。VPC网络构建出一个安全隔离的网络环境,可以灵活自定义IP地址范围、配置路由表和网关、 创建子网等,实现弹性IP、弹性带宽、共享带宽等功能。
裸金属作为云中居民,可以和其它云产品如云主机、云网络、云存储、云数据库直接打通,方便业务使用,构建更加灵活的整体架构和方案。
支持云主机镜像创建裸金属主机,支持裸金属主机创建镜像、克隆,支持裸金属主机镜像备份以及恢复。支持配置超高速本地NVMe SSD硬盘及超高速超级云硬盘,并采用大规模分布式存储系统,数据多副本冗余,永不丢失。
小规模部署服务如DHCP服务、TFTP服务、PXE服务等可以由管理节点提供,而不需要单独配置一台部署服务器,造成资源浪费;当然,达到一定规模,单独配置部署服务器十分有必要的,可以减轻管理节点压力,专机专用。
针对站群、数据库场景、大数据场景、高性能计算和异构计算场景等领域,提供定制化解决方案。
裸金属云服务器产品要真正落地,需要形成三个闭环:
裸金属云服务器技术层面要解决两个问题,第一是物理服务器在云上的自动化管理,第二是管理功能封装成API,方便云管理平台和租户用户调用。
从专注裸金属云的PACKET公司流露出的一张技术架构图上,可以清晰的看到裸金属使用的技术和解决方案。
从PACKET的架构图看,PACKET的裸金属云服务主要分为以下几个模块:
另外,在网上找到了CRAY的一个分享,对OpenStack Ironic项目的流程画的非常清晰,也分享下。Ironic项目是OpenStack裸金属管理项目,最近随着裸金属云的潮流,发展也很快。
这里特别说明下一项关键技术iPXE,iPXE是预引导执行环境(PXE)客户端固件和引导程序的开源实现,可用于启用没有内置PXE支持的计算机从网络引导。虽然标准化PXE客户端使用TFTP传输数据,但非标准化iPXE客户端固件增加了通过其他协议检索数据的功能,包括HTTP,iSCSI,以太网ATA(AoE)和以太网光纤通道(FCoE)。
为什么在有的云厂商裸金属云服务介绍上,能看到分钟级的裸金属服务器交付,就是使用了iPXE的技术,服务器启动,通过iPXE引导已经制作好的iSCSI系统镜像,这样就免去了安装操作系统的过程,并且服务器也不需要系统硬盘,节省了成本。并且这样更为灵活,通过这样的技术,可以实现用户根据需要制定自己的系统镜像,而且方便镜像虚实转换,镜像即可以用于启动云主机,也可以启动物理机!
网络方面,裸金属服务器本质上是运行在Underlay网络的,如果要和云上已有的云主机、云存储等云产品打通,需要为其封装成overlay网络,如此才能够和云主机一样的配置ACL、VPC、负载均衡等网络功能。
对于网络打通,一方面现有头部云厂商均基于智能网卡方案,在一张PCI扩展卡上实现了基于VirtIO的网络半虚拟化能力,以此完成Overlay网络封装;另一方,对于裸金属集群,会有专有裸金属网关来负责VPC网络打通(例如腾讯云的就叫XGW)。
对于云厂商商来说,裸金属产品需要内嵌到自己的产品体系,形成闭环,和已有的产品打通,也要和已有的API兼容。这一方面基于技术闭环与网络闭环方案,其实已经不难实现。
(特别备注:此节主要基于阿里云公开内容“阿里云弹性裸金属服务器-神龙架构(X-Dragon)揭秘”一文,结合笔者近半年的调研了解内容整理而成。)
神龙(X-Dragon)又名弹性裸金属服务器,是阿里云真正从云计算的角度去设计的一款服务器,除了CPU有定制外,主板也是其自研,另外最大亮点某过于添加了智能网卡——神龙Moc卡。
神龙Moc卡实物图
整个神龙的软硬件体系都是阿里完全通过自研模式去实现的。先是神龙芯片,通过它可以是宿主机完完全全具有虚拟机的特性,包括虚拟机的接口。然后是基于神龙芯片扩展而成的神龙MOC卡,它有比较丰富的网络接口、IO接口、管理接口,可以帮助我们实现弹性裸金属服务器所需具备的所有功能。
从上图可以清晰的看出X-Dragon MOC卡的关键架构:
依照2.2.2节所言,其实X-Dragon Hypervisor也是遵照KVM的通用框架规范做的定制化实现,故其与云上云下所有的软件和硬件都能做到深度融合,也即X-Dragon芯片能向上提供标准化的Virtio 网络驱动接口、Virtio 存储驱动接口、交互IO层驱动接口,从而能让上边的实例具备KVM虚拟机一样的体验。
这是X-Dragon Hypervisor 的一个系统软件示意图,可以从三个部分来讲:
腾讯云黑石物理服务器2.0(Cloud Physical Machine,CPM)提供云端独享高性能、无虚拟化、安全隔离的物理服务器集群,支持包年包月方式购买,用户根据业务特性几分钟即可弹性伸缩物理服务器数量。
极致计算和网络性能:
黑石物理服务器2.0兼具了虚拟机弹性与物理机性能的优势,实现了物理机极致的计算性能,并且可以支持再次虚拟化,而无需额外的嵌套虚拟化性能开销。网络层面通过独有的网络转发技术实现了高达千万级pps的转发性能。
一键式交付:
用户无需关心机房、网络和部署、监控等基础设施和软件环境,可在分钟级一键式获得标准的物理服务器集群。操作系统、磁盘分区、本地RAID都将自动化部署和划分,监控和安全能力都将直接具备,内外网服务都将直接配置。
费用低廉:
具备虚拟机弹性的黑石物理服务器2.0让用户无需一次性投入大量现金流购置机房和网络等基础设备。完善、快捷的监控、故障维修等服务,极大降低了维护的人力和金钱成本。
完全兼容 VPC 网络:
黑石物理服务器2.0完全运行在公有云VPC网络里,用户可以根据业务需求规划VPC网络,和腾讯云产品体系在网络上完全无缝互通,切实保证用户云上资源的使用便捷性和安全性。
免运维:
腾讯云提供7*24小时的运维服务,借助先进的监控与故障诊断技术,能自动发现服务器的主流故障,并在及时地自动触发修复流程,通过远程管控平台,自动调度IDC现场以及厂商资源,恢复服务器至可用状态。
服务集成:
完全融入腾讯云产品体系,比如对象存储COS、云数据库TencentDB等;还可以和PaaS服务结合,比如EMR和TKE等,为用户提供满足不同工作负载的完整的解决方案。
黑石服务器至今发展了两代,如上图所示,第1代服务器的服务器管控逻辑依然在云端,且CVM控制器与裸金属控制器是分开部署,配置分开下发。而且基于普通网卡来实现交互,因此需要利用宿主机普通网卡与CPU来实现网络转发,并且路由网络策略依赖人工配置,故当时(2017年前后)前后腾讯云对外宣称的黑石服务器1.0,从用户申请到交付,需要4小时以上,其中应该就包括服务器OS安装、网络手工配置等工作。
而到了2.0时代,随着vSwitch功能下沉到智能网卡上,并彻底打通云上网络、云存储,网络策略配置可以实现自动下发,OS可直接使用云存储中已经制作好的iSCSI系统镜像(如上2.1节所述),故裸金属服务器的交付能来到分钟级。
云计算场景下,虚拟化技术不可避免的会带来一些性能上的损耗,而对于一些安全和监管高要求高的场景、高性能计算不希望有任何虚拟化性能损耗的场景、核心数据库等重载应用场景以及需要直接使用物理硬件信息、接口的场景,则需要使用裸金属服务器来实现这些应用的部署运行。
裸金属服务提供了一种物理服务器的使用形态,支持通过OpenStack Nova接口指定裸金属服务器的镜像和规格进行自动化创建、查询、修改、开机、关机、重启等操作。还可以将Cinder创建的云硬盘通过和虚拟机相同的接口挂载给裸金属服务器。并且通过Neutron自动配置网络,实现裸金属服务器和虚拟机的VPC网络互通。
裸金属服务基于开源社区OpenStack的Ironic组件能力,通过华为自研增强实现裸金属服务器的发放功能。裸金属服务通过PXE技术从服务器自动下载并加载操作系统,调用IPMI带外管理接口实现裸金属服务器的上电、下电、重启等操作,通过调用Nova组件的接口实现计算资源管理,调用Neutron组件的接口实现网络的发放和配置,调用Cinder组件的接口为裸金属服务器提供基于远端存储的云硬盘。通过Cloud-init从metadata服务等数据源获取数据并对裸金属服务器进行配置,包括:主机名、用户名、密码等。
2.4.2.1.1 功能架构
裸金属服务的开通是自助完成的,用户可以在裸金属服务页面,通过选择相应的参数,在向导式流程指引下完成裸金属服务器的创建,以及相关联的VPC网络的绑定和云硬盘的创建与挂载。
裸金属服务提供如下功能:
裸金属服务特性和虚拟机特性功能相互独立,但创建接口相同,在发放裸金属服务时可以指定不同的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用于注册裸金属硬件信息到裸金属管理框架,用户注册时需要指定硬件信息、IPMI管理信息和物理网卡mac地址到Ironic。ironic-api服务在系统中是多实例负载均衡模式部署。
ironic-conductor服务是裸金属管理服务的最主要部件,绝大多数的裸金属服务器节点管理动作都是由ironic-conductor服务完成的,它通过IPMI命令对裸金属服务器节点进行上下电、设置启动方式等管理操作。 ironic-conductor服务在系统中是多实例负载均衡模式部署,其所在节点需要与物理服务器的IPMI控制平面进行通信。
Ironic组件的逻辑组网图如下图所示。
Ironic组件逻辑组网图
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可以实现以下功能:
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。
裸金属服务可以为用户提供独享的物理服务器(如Oracle数据库应用),减少虚拟化层带来的性能损失。基于FusionSphere OpenStack平台,提供类似虚拟机的快速发放体验。用户可以自助进行裸金属服务器创建,方便的进行信息查询、修改,在Console上控制裸金属服务器的启动、关闭、重启等操作。
以下是方案特点的详细描述:
裸金属服务和物理机、虚拟机在能力上的对比优势如下:
各类服务器特性对比
功能分类 |
功能描述 |
裸金属服务器 |
物理机 |
虚拟机 |
发放方式 |
自动化发放 |
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.1 准备工作
在发放裸金属服务器前,需要做以下准备工作:
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。
裸金属服务主要提供以下功能:
裸金属服务器需要先在Ironic数据库中进行注册,将裸金属服务器创建到资源池。再调用Nova接口创建、删除、查询、修改、启动、停止一台裸金属服务器,创建过程中指定镜像和规格,由nova scheduler根据用户指定的裸金属flavor进行调度和裸金属服务器节点筛选。
华为云Stack随版本提供自动引导安装用户镜像的一套minios镜像,并为裸金属服务所使用的用户镜像提供了制作指导书。裸金属镜像里面不植入任何管理软件,如果用户有自动化挂载云硬盘和组Bond的高级特性需求,可选择在裸金属服务里面安装华为提供的Agent完成挂载云硬盘和组Bond功能。制作出来的用户镜像只需通过ManageOne运维面上传至glance镜像服务器。发放裸金属服务器时,ironic-conductor与minios中的ironic-python-agent(只存在于minios节点)交互自动完成镜像的安装和写入。
创建裸金属服务器时,调用Nova接口启动实例,调用时指定创建的规格、镜像等信息。Nova调度器通过规格匹配已注册的裸金属服务器节点信息,选择合适的计算节点。Nova将调用信息传递到Ironic管理程序,Ironic管理程序通过IPMI接口启动裸金属服务器,裸金属服务器开始PXE MiniOS,MiniOS是个迷你型操作系统,运行时只加载到内存中。MiniOS加载后会运行Ironic Python Agent(简称IPA),IPA通过心跳与Ironic管理程序通讯,并根据选择的镜像从Glance下载镜像文件,写到裸金属服务器的硬盘上,然后从硬盘重启裸金属服务器,自动化完成客户操作系统的安装。
裸金属服务通过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,自动化完成网络配置工作,无需手动配置交换机。
EVS服务通过Cinder提供的接口从共享存储申请云硬盘,并调用Nova接口挂载云硬盘给裸金属服务器。为裸金属服务器配置云硬盘可以通过两种途径,一种是在创建裸金属服务器时创建并挂载云硬盘,另一种是在裸金属服务器创建后挂载云硬盘。裸金属服务器在OpenStack平台挂载云硬盘成功后,如果制作镜像时选择了在用户操作系统预装挂载云硬盘的Agent,Agent会从Nova元数据服务查询云硬盘的挂载信息,完成扫盘动作。
裸金属服务有如下多个应用场景:
场景 |
诉求描述 |
关键指标 |
应用类型 |
安全和监管高要求场景 |
金融、证券等行业对业务部署的合规性要求,以及某些客户对数据安全的苛刻要求,只能采用物理服务器部署,确保资源独享、数据隔离和可监管可追溯。 |
独享计算、存储资源 VPC网络隔离 数据物理隔离 |
l 金融系统(带USB) l 中间件 l 核心企业应用 |
高性能计算场景 |
超算中心、基因测序、图形渲染等高性能计算场景,处理数据量大,对计算性能、稳定性、实时性等性能要求很高,不愿意接受虚拟化带来的性能损耗和超线程等影响。 |
无虚拟化损耗 低网络时延 显卡最佳性能 |
l 终端仿真 l 游戏云 l 异构计算 |
核心数据库场景 |
有些客户要求其关键的数据库业务不能部署在虚拟机上,而是必须通过资源专享、网络隔离、性能有保障的物理服务器承载。 |
集群共享云硬盘 高I/O保证 超大内存 |
l Oracle RAC l Hadoop l 容器 |
裸金属服务器结合了传统托管服务器带来的高稳定性与云中资源高度弹性的优势,为用户提供专属的物理服务器、网络和存储和满足核心应用场景对高性能及稳定性需求的云服务。
裸金属服务为用户提供自服务式安装Oracle RAC所需的基础设施资源,用户可以完全控制基础设施与数据库的配置。在华为云Stack中,用户通过发放裸金属服务器,申请EVS提供的共享盘,配置虚拟私有云(VPC)等一系列云服务功能来部署和配置Oracle RAC数据库。
同时,用户对于申请的裸金属服务器拥有操作系统级别的访问权限,能够完全控制和操作数据库。
裸金属服务为Oracle RAC提供以下能力:
某运营商计费系统核心业务和客户关系管理系统采用华为云Stack裸金属服务,实现核心业务上云,通过30+裸金属服务器,支持200万用户的计费业务。
通过裸金属服务提供多业务自动部署,支持OCS/CBS新业务在一周内上线。
通过裸金属服务为业务提供如下能力:
缩略语 |
描述 |
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详解 - 哔哩哔哩