大家好!我叫柳东,来自恒丰银行。我今天给大家介绍一下恒丰银行X86裸机服务的实践。

一、为什么需要裸机服务?

首先我们先来看一下云平台为什么需要裸机的服务?我们通常所知道比较知名的云平台AWS和阿里云大部分的云主机都是虚拟化的。

恒丰银行内部对于X86服务器使用的统计上看到占比最大的就是OpenStack整个平台,占比大概是X86服务器的一半左右。

另外就是大数据业务的平台,大数据使用了整个X86服务器1/5的量,还有一些桌面云和Paas平台,客服系统和一些其他的应用。

可以看到从统计上,桌面云和Paas平台使用量正在逐年的增长。同时还有一部分应用,例如前面提到的占比很高的客服系统,还有一些其他应用系统,由于各种原因不能使用虚拟化的云主机,所以需要使用裸机服务。

根据经验总结出来虚拟机在云里边不适用的场景

  • 高性能计算场景

  • 核心数据库

  • 对于特定硬件设备的使用

例如有些应用需要使用基于USB Key加密的设备,如果使用虚拟化的云主机会和固定的物理设备绑定,就会丧失云主机迁移弹性的灵活性,所以使用了物理机。

  • 云上面进行第二次的虚拟化,做一些POC测试的时候需要搭建另一套虚拟化平台

  • 在云上面建设我们的平台,这些都是从技术角度考虑虚拟机不是特别适用的场景

  • 另外考虑到监管要求、法律法规约束,也有些应用服务器必须使用x86裸机做物理隔离

要求我们的应用不可能部署在虚拟化的平台上,必须要有独立物理隔离的服务器承载,这也是我们使用裸机的场景。

最早业界在2013年就率先提出提供裸机的服务,随后AWS也提出了专有云主机服务。

专有主机是由AWS提供给每个租户专有使用的云主机的宿主机,租户的云主机允许置放在租户自己的专有主机上,但是所供应出的云主机还是虚拟化的。

前两年腾讯开始推出了黑石物理服务器CPM服务,它的物理服务器大体上是三种,一种是X86裸机服务,一种是基于ARM的裸机服务,还有一种是power小机的裸机服务。华为公有云也提供x86裸机服务,华为的裸机服务和业界其他平台最大的区别是支持挂载共享的存储。

二、什么是裸机服务?

什么是裸机的服务?首先裸机服务就是提供了对x86裸机服务器的管理,我们像使用云平台上的虚拟机一样管理和使用云为我们提供的x86裸机服务器。

裸机服务在云里不同于传统的服务器托管业务主要特点,云裸机服务器是由云服务提供商提供裸机的供应和运维的。云的裸机和其他云主机一样,我们云的裸机可以使用云中其他服务的,例如云存储、云网络、云安全等等其他的云服务。

这是当前恒丰银行内部裸机服务相关的业务服务,我们分成两部分:

  • 一部分是面向用户

  • 另一部分是面向云供应商(SP服务)

面向用户首先有云服务器生命周期的管理,包括供应、起停、删除、销毁。同时基于云的特点我们对云服务器当然是可计量的,所以会有计量计费服务,还有云的监控、配置和故障报告服务。

面向云提供商提供了资源池管理服务,规格管理、进项目管理、主机维护,还有响应用户故障报告进行故障处理的服务。

我们看一下云裸机服务的特点,云裸机服务器和传统的虚拟化服务器比较的优缺点,裸机是物理服务器,可能要丧失一些跟虚拟化服务器相比的弹性、可用性。

因为虚拟机有HA的能力,快速恢复是很好的,但是物理服务器一旦出现故障运维可能需要人工的介入。所以可用性我们认为比基于虚拟化的云主机降低了一些。

物理服务器有固定的硬件规格,不像虚拟机可以动态的调整规格,所以会丧失一些规格的灵活性。但是相比这些缺点,物理服务器有很多优点,也是应对刚才我们所提到的几种场景,高性能、高吞吐,这是虚拟机所不能比的。然后还有安全性。因为我是基于物理隔离,和虚拟隔离相比安全性更高

还有更高的成本效益,这个成本效益主要是从云服务的用户的视角考虑的成本效益,用户使用基于虚拟化的云主机,云服务厂商一般都会做一些资源的共享,例如网络带宽的共享,甚至是CPU和内存的共享。

但是一旦使用物理服务器,物理服务器归用户独立使用的,所以用户的角度来说成本效益是更高的。然后还有就是用户可以对物理服务器有独立的控制权。

三、如何实现裸机服务

恒丰银行实现X86裸机服务的步骤,基本就是四化的过程:标准化、自动化、服务化和自助化。

3.1、标准化

标准化是自动化、服务化的前提,首先我们要对服务器型号的标准化,包括服务器所使用的网卡、磁盘,这些东西的标准化都有利于后续减少自动化过程中的工作量。

1、服务器规格的标准化,作为提供裸机服务我们要有固定规格,不会像虚拟机一样可以很动态、灵活的调整规格。所以我们要对服务器,根据不同的使用场景制定出来不同的规格,然后应对场景的需求。

2、服务器联线落位标准化,带来的好处在上架的过程中,上架的流程里边不需要知道服务器特定使用需求是什么样的,工人可以直接依据我们出来的联线标准化的规范把所有的物理服务器提前上架,组成裸机资源池。

3、裸机服务的自动化。我们比较注重的几点:最基本的要去供应就要要操作系统安装的自动化,在这个过程中就可以摆脱出传统的,涉及到机房等等人工的操作。还有硬件检测的自动化,主要是指硬件服务器的信息收集和上报,这样我可以实现裸机服务器的自发现和自动归类到不同的裸机规格集群里。然后就是维护操作的自动化,可能是一般裸机的启动、停止、重启、销毁之类的。

3.2、自动化

3.2.1、配置的自动化

对于操作系统内基本配置,例如主机、DNS基本的操作系统配置要去实现自动化。然后租户网络自动化配置,主要是结合了SDN的产品,然后能够动态的配置每台物理服务器的租户网络,通过租户网络的隔离达到物理服务器的网络安全性。

3.2.2、存储的自动化

前面几个场景里边有一部分场景不需要用到共享存储的,例如大数据平台只需要容量很大的本地磁盘,但是有些场景例如数据库的运行,这些是需要使用到传统共享存储的。在应对这种场景的时候我们需要用裸机实现自动存储的能力。这是华为公有云BMS裸机服务在业界比较独特的特点。

3.3、服务化

标准化和自动化实现以后就可以进行服务化的封装,首先我们就要把裸机先根据不同的规格,或者物理位置,或者连接存储设备的特点定义成不同裸机服务的资源池。这也是云的特点之一,资源池化。对裸机里边提供服务固定对象模型的建立,主要涉及到裸机的模型,所挂载的网卡。这个网卡的模型就是租户使用网卡的模型。

建立起了资源池,定义出来模型以后基于标准化自动化的流程,通过服务封装把我们的服务API定义出来,对外提供API服务。之后我们还要和云中其他的云服务进行服务编排,例如和存储服务,使用云存储。当然这个时候云存储主要指的是后端FCSAN共享云存储。例如我们和网络里的租户网络,租户的弹性IP服务的编排。

3.4、自助化

实现服务化以后就是自助化,自助化和服务化主要的区别,如果想要用户自助的使用裸机服务,你的服务产品首先要是一个很标准,要有一个服务的管理。同时系统里边要有一个用户管理,系统具备资源层面的多租户隔离。

然后就是服务对外提供,基于配额和计量,为用户提供租户视角的容量管理,用户可以知道服务器已经使用的量,用户可以根据服务器的量去申请、调整服务器的配额。然后你要定义一个服务对外提供SLA,和用户签署SLA的协议,这样一些服务流程的改变是用户自助服务实现的必要条件。

3.5、裸机服务的应用架构

首先上层有一个服务目录,实现应用服务的自助化的封装,服务目录里边主要定义了各种服务的SLA。裸机服务主要是第一列,上层是一个magan应用,mogan下面cloudboot是实现自动化管理的裸机应用,控制X86的服务器。还有运营管理系统,主要是给SP提供运维服务。

着重介绍一下Mogan这个项目,大家如果了解OpenStack,大家知道OpenStack有一个Ironic,作为执行层管理裸机。Mogan是一个专注于去做裸机服务化封装的项目,它在社区里边,从应用架构上面与nova相对于虚拟机是同等作用的,然后提供裸机服务。

在云主机服务里边虚拟机和裸机有差异,虚拟机可以实现暂停、迁移,但是裸机很难实现这些东西。裸机有些特定应用场景的需求,例如我要根据用户的需求去自助配置本地磁盘RAID。这些东西是虚拟机所不需要设置的。

这些也是为什么社区里边会推出Mogan服务的原因。Mogan服务到现在为止已经开发了两个多版本,持续一年多的时间,主要是由华为和英特尔共同发起,随后加入了其他公司,一起去贡献Mogan服务。当然目前来讲主要还是国内的厂商参与这个项目。

这是Mogan这个项目的架构,Mogan服务和OpenStack大部分的服务一样都有一个API模块,为了插件化的能力有一个执行层。恒丰银行对Mogan的贡献,插件层这部分,让它实现对下驱动可插件化,同时我们对它贡献了一个driver。

这里是OpenStack周期里边贡献的统计。可以看到贡献里边最主要来自华为和英特尔两家。

四、裸机服务运维

首先裸机服务器供应出来以后我们就要涉及到如何安全的访问裸机服务,在我们行内的实践里边在裸机发放流程里边就会和行业的4A服务集成,把裸机服务器加入到资源里边。用户可以通过***接入到网络,通过4A系统提供的SSH工具登陆。对于运维管理员通过行内4A使用带外console登陆。

4.1、裸机的监控

主要通过几个方面对裸机进行监控,一个是Zabbix监控裸机服务状态。同时还会根据基于SNMP协议裸机所暴露出来的硬件指标对物理服务器的硬件进行监控。同时我们在网络里边对服务器的流量进行镜像,对网络状态进行监控。

4.2、裸机镜像维护

我们现在使用的裸机技术方案里边是通过镜像的方式对裸机操作系统进行加载。我们要定期的维护、更新我们的镜像,主要是指镜像里边可能会打入安全所需要特定的代理,或者打入一些发布出来的安全补丁。同时对于已经发放出来的裸机我们要定时的提供裸机操作系统的安全补丁,可以保持系统的安全性和实时更新。

4.3、裸机资源池维护

行内有一套PBU系统,里边会根据我们所总结出来的一些场景自动规划出来裸机上架时候的联线图给施工人员使用。同时会根据裸机服务器的规格组成不同X86裸机资源池,用于供应。

因为我们的裸机服务器资源池的规模不是特别大,为了节约成本的考虑我们会动态的通过容量的统计调整不同规格里边裸机的数量。

例如在某一个高规格的服务器里边,内存很大的服务器,后来发现这种服务器的使用量不是很多的时候我们会通过人工拔内存,修改规格,动态的调整到低规格的资源池。可以达到节约成本的效果。

4.4、裸机已经实现的功能

首先就是刚才所介绍基于PBU裸机资源池的管理,裸机服务规格的管理,还有裸机生命周期的管理,还有就是裸机组的管理。

裸机组的管理应用的场景,对于银行的应用系统我们会有一个高可用的架构,我们会要求同一个应用不同的服务器,位于不同的机房,还可以位于不同的机柜,或者不同的TOR交换机下。

这个时候把应用的一组服务器组成一个裸机组,在Mogan项目对它进行动态调动的时候,会根据反亲和性的策略,将同一组裸机里边不同服务器调用到不同的位置。

同时根据用户需求,动态本地磁盘配置的能力,和SDN集成动态的开通租户网络,服务器在资源池上架的时候是没有租户网络的,根据调度最终结果配置到服务器的交换机上面。同时我们也实现的挂载和卸载的存储自动化,能够让裸机自动的挂载使用云存储的服务。

五、裸机服务实现以后的现状

我们的发放时间对外承诺小于一小时,我们实际使用效果,一般操作系统和规格的服务器我们可以做到每台裸机发放时间大概在5—10分钟左右。同时我们服务可用性要达到99.9%,主要就是通过刚才我们所介绍的裸机组对裸机有一个高可用切换性的调度实现的。

同时还通过服务封装和产品化的方式达到用户自助服务的能力。对于用户自助服务,行内会把所有可以标准化用户自助服务的变更作为一个标准变更,这种标准变更就会减少用户去申请服务器时候的变更流程,让用户实际端到端服务器申请的时间缩短。

六、未来的计划

6.1、提高裸机供应速度

主要是通过提前制定裸机磁盘镜像,镜像方式的缺点是不能做到动态灵活配置的能力,但是镜像的方式速度会快很多。所以我们在这一层面会做两种方式的结合,使裸机供应速度、发放速度会更快一些。

6.2、完善裸机生命周期管理

裸机服务器跟虚拟机云主机服务器相比主要区别,通常云主机是基于虚拟化的,服务器都是有一个使用周期的,一般3—5年就到时间了,对于虚拟化的云主机我们可以在资源池内迁移到不同的位置,将过池的服务器下架,替换到新的服务器。一旦租户使用物理的裸机服务器,三到五年时间一到的时候,相当于租户裸机服务器的生命周期就结束了。

6.3、提供快速故障恢复能力

如果云裸机服务器使用共享存储的,或者即使使用本地存储我们做到对服务器关机以后迁移的能力,由用户发起,动态的在短时间内将用户的裸机服务器保留所有服务器的属性,例如说网络、操作系统配置等等各种东西,然后迁移到一台新的服务器上,应对物理服务器生命周期3-5年终止的情况。同时也可以在物理服务器故障的时候提供更快服务器恢复速度。

6.4、提供操作系统重装功能

操作系统重装,也就是说操作系统重加载的能力。这也是用户操作系统损害,或者说用户由人为误操作导致操作系统故障无法恢复的场景,我们会通过操作系统重装的功能把用户所有动态配置、数据重新加载到服务器内部,对用户操作系统进行重装,恢复物理服务器。

6.5、用户web端console接入

给用户提供一种基于web端登陆服务器的的能力,这是为了和虚拟机运维拉平,主要应用场景,可能用户的租户网络损害,把操作系统内部网络接口误删除掉,或者配了一些错误的路由,通过传统的协议再去登陆和运维服务器。当前用户只能够通过故障报告报告给SP的运维人员,由运维人员对服务器进行修复。未来通过web端由用户自己维护。

更多相关文章阅读

青铜到王者:AIOps 平台在腾讯的升级之路

重磅!全世界第一份 AIOps 白皮书(诚意版)独家发布

看云厂商花式作死的九种方法

揭秘!阿里数据中心大幅降低成本的核心技术:混部技术


©著作权归作者所有:来自51CTO博客作者mob604756f0266e的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 新手建站如何挑选云服务器?
  2. nginx负载均衡简单设置
  3. Linux必会技能
  4. 安装SCCM2019独立服务器
  5. 第十四周作业
  6. 流媒体服务器(视频服务器)实现超大并发的解决方案
  7. 搭建NTP时间服务器
  8. 15:VMware Horizon View 8.0-配置RDS服务器
  9. 后台二 项目流程(阅读)

随机推荐

  1. 状态机在移动端项目中的使用
  2. 「一周答疑」2018年的第12周
  3. 良好的 API 设计指南
  4. 【文末福利】Java面试通关要点(一)基础篇
  5. 文件权限管理剖析
  6. 报表导出
  7. 请你介绍下所做的项目
  8. 【文末福利】Java面试通关要点(三)框架篇
  9. 「一周答疑」2018年的第13周
  10. 【文末福利】Java面试通关要点(四)微服务篇