@gaoxiaoyunwei2017
2018-01-15T11:53:23.000000Z
字数 5536
阅读 624
白凡
讲师 | 柳东
编辑 | 白凡
今天柳东是OpenStack的架构师,分享金融云当中X86裸机怎么运维。
大家好!我叫柳东,来自恒丰银行。我今天给大家介绍一下恒丰银行X86裸机服务的实践。
首先我们先来看一下云平台为什么需要裸机的服务?我们通常所知道比较知名的云平台AWS和阿里云大部分的云储都是虚拟化的。恒丰银行内部对于X86服务器使用的统计上看到占比最大的就是OpenStack整个平台占比大概是X86服务器的一半左右。另外就是大数据业务的平台,大数据使用了整个X86服务器1/5的量,后面有一些桌面云和Paas平台,客服系统和一些其他的应用。
可以看到从统计上,桌面云和Paas平台使用量正在逐年的增长。同时还有一部分应用,例如指出占比很高的客服系统和其他的占比也有一定的应用。由于各种原因不能使用虚拟化的云储机,所以需要使用裸机服务。
根据经验总结出来虚拟机在云里边不适用的场景:
例如有些应用需要使用基于USBK加密的设备,如果使用虚拟化的云储机会和固定的物理设备绑定,就会丧失云储机迁移弹性的灵活性,所以使用了物理机。
要求我们的应用不可能部署在虚拟化的平台上,不需要有独立物理隔离的服务器承载,这也是我们使用裸机的场景。
同时我们看到最早业界在2013年就率先提出提供裸机的服务,随后AWS也提出了专有云储机服务。专有云储机只是云储机是由AWS给每个租户专有,但是所提供的云储机还是虚拟化的。前两年腾讯开始推出了黑石物理服务器CTM服务,它的物理服务器大体上是三种,一种是X86裸机服务,一种是基于RM的裸机服务,还有小机裸机服务。华为的裸机云储服务和业界其他平台最大的区别是支持挂载共享的基础。
为什么还要开发一个裸机的服务?什么是裸机的服务?首先裸机服务就是提供了对裸机服务器的管理,我们使用云平台上虚拟机上管理和使用我们的裸机服务器。裸机服务在云里不同于传统的服务器托管业务主要特点,云裸机服务器是由云服务提供商提供裸机的供应和运维的。裸机和其他云储机一样,我们云的裸机可以使用云中其他服务的,例如云存储、云网络、云安全等等其他的云安全服务。
这是当前恒丰银行内部裸机服务主要的服务,我们分成两部分:
面向用户首先有云服务器生命周期的管理,包括供应、起停、删除、销毁。同时基于云的特点我们对云服务器当然是可计量的,所以会有计量计费服务,还有云的监控、配置和故障报告服务。
对于云提供商提供了资源池管理服务,规格管理、进项目管理、主机维护,还有响应用户故障报告进行故障处理的服务。
我们看一下云储机服务的特点,云储机服务器和传统的虚拟化服务器比较的优缺点,因为我们云储机,裸机是物理服务器,可能要丧失一些跟虚拟化服务器相比的弹性、可用性。因为虚拟机有HA的能力,快速恢复是很好的,但是物理服务器一旦出现故障运维可能需要人工的介入。所以可用性我们认为是基于虚拟化的云储机降低一些的。
物理服务器有固定的硬件规格,不像虚拟机可以动态的调整规格,所以我也希望是规格的灵活性。但是相比这些缺点,物理服务器有很多优点,也是应对刚才我们所提到的几种场景,高性能、高吞吐,这是虚拟机所不能比的。然后还有安全性。因为我是基于物理隔离,和虚拟隔离相比安全性更高。
还有更高的成本效益,主要是指面向用户的视角,用户使用基于虚拟化的云储机,云服务厂商一般都会做一些资源的共享,例如网络带宽的共享,甚至是CPU和内存的共享。但是一旦使用物理服务器,物理服务器归用户独立使用的,所以用户的角度来说成本效益是更高的。然后还有就是用户可以对物理服务器有独立的控制权。
恒丰银行实现X86裸机服务的步骤,首先就是四化的过程:标准化、自动化、服务化和自助化。
标准化是自动化、服务化的前提,首先我们要对服务器型号的标准化,包括服务器所使用的卡、磁盘,这些东西的标准化都有利于后续减少自动化过程中的工作量。
3. 裸机服务的自动化。我们比较注重的几点:最基本的要去供应就要要操作系统安装的自动化,在这个过程中就可以摆脱出传统的,涉及到机房等等人工的操作。还有硬件检测的自动化,主要是指硬件服务器的信息收集和上报,这样我可以实现裸机服务器的自发现和自动归类到不同的裸机规格集群里。然后就是维护操作的自动化,可能是一般裸机的启动、停止、重启、销毁之类的。
对于操作系统内基本配置,例如主机、DNS基本的操作系统配置要去实现自动化。然后租户网络自动化配置,主要是结合了SBN的产品,然后能够动态的配置每台物理服务器的租户网络,通过租户网络的隔离达到物理服务器的网络安全性。
前面几个场景里边有一部分场景不需要用到共享存储的,例如大数据平台只需要容量很大的本地磁盘,但是有些场景数据库的运行,这些是需要使用到传统共享存储的。在应对这种场景的时候我们需要用裸机实现自动存储的能力。这是华为BMS裸机服务所标榜的在业界独特的创新点。
标准化和自动化实现以后就可以进行服务化的封装,首先我们就要把裸机先根据不同的规格,或者物理位置,或者连接存储设备的特点定义成不同裸机服务的资源池。这也是云的特点,云的特点就是池化。对裸机里边提供服务固定对象模型的建立,主要涉及到裸机的模型,所挂载的网卡。这个网卡的模型就是租户使用网卡的模型。
建立起了资源池,定义出来模型以后就可以通过服务封装把我们的服务API定义出来,对外提供API服务。之后我们还要和云中其他的云服务进行服务编排,例如和存储服务,使用云存储。当然这个时候云存储主要指的是后端FC3(音)共享云存储。例如我们和网络里的租户网络,租户的弹性IP服务的编排。
实现服务化以后就是自助化,自助化和服务化主要的区别,如果想要用户自助的使用裸机服务,你的服务产品首先要是一个很标准,要有一个服务产品的管理。同时系统里边要有一个用户管理,做到多租户的隔离,主要指的用户权限上的隔离。然后就是服务对外提供,给用户提供能量管理,用户可以知道服务器已经使用的量,用户可以根据服务器的量去申请、调整服务器的配额。然后你要定义一个服务对外提供SLA,和用户签署SLA的协议,这是用户自助服务实现的必要条件。
首先上层有一个服务目录,实现应用服务的自助化的封装,服务目录里边主要定义了各种服务的FLA这种东西。裸机服务主要是第一列,上层是一个magan应用,底下是实现自动化管理的裸机应用,控制X86的服务器。同时使用smith协议,还有运营管理系统,主要是给SP提供运维服务。
着重介绍一下Mogan这个项目,大家如果了解OpenStack,大家知道OpenStack有一个Ironic,作为执行层管理裸机。Mogan是一个专注于去做裸机服务化封装的项目,它在社区里边,从应用架构上面是平行的位置,然后提供裸机服务。
在云储机服务里边虚拟机和裸机有差异,虚拟机可以实现暂停、迁移,但是裸机很难实现这些东西。裸机有些特定应用场景的需求,例如我要根据用户的需求去自助配置本地磁盘。这些东西是虚拟机所需要设置的。
为什么社区里边会推出Mogan服务的原因。Mogan服务到现在为止已经开发了两个多版本,持续一年多的时间,主要是由华为和英特尔共同发起,随后加入了其他公司,一起去贡献Mogan服务。当然目前来讲主要还是国内的厂商参与这个项目。
这是Mogan这个项目的架构,Mogan服务和OpenStack大部分的服务一样都有一个APM,为了插件化的能力有一个执行层。恒丰银行对Mogan的贡献,插件层这部分,让它实现对下驱动可插件化,同时我们对它贡献了一个Drivers。
这里是OpenStack周期里边贡献的统计。可以看到贡献里边最主要来自华为和英特尔两家。
首先裸机服务器供应出来以后我们就要涉及到如何安全的访问裸机服务,在我们行内的实践里边在裸机发放流程里边就会和行业的4A服务集成,把裸机服务器加入到资源里边。用户可以通过VPN介入到网络,通过4A系统提供的SSH工具登陆。对于运维管理员通过行内4A使用带外console登陆。
主要通过几个方面对裸机进行监控,一个是Zabbix监控裸机服务状态。同时还会根据基于SMTP裸机所爆出来的硬件指标对物理服务器的硬件进行监控。同时我们在网络里边对服务器的流量进行镜像,对网络状态进行监控。
我们现在使用的裸机技术方案里边是通过镜像的方式对裸机操作系统进行加载。我们要定期的维护、更新我们的镜像,主要是指镜像里边可能会打入安全所需要特定的代理,或者打入一些发布出来的安全补丁。同时对于已经发放出来的裸机我们要定时的提供裸机操作系统的安全补丁,可以保持系统的安全性和实时更新。
行内有一套PBU系统,里边会根据我们所总结出来的一些场景自动规划出来裸机上架时候的联线图给施工人员使用。同时会根据裸机服务器的规格组成不同X86裸机资源池,用于供应。
因为我们的裸机服务器资源池的规模不是特别大,为了节约成本的考虑我们会动态的通过容量的统计调整不同规格里边裸机的数量。
例如在某一个高规格的服务器里边,内存很大的服务器,后来发现这种服务器的使用量不是很多的时候我们会通过人工拔内存,修改规格,动态的调整到低规格的资源池。可以达到节约成本的效果。
首先就是刚才所介绍基于PPU裸机资源池的管理,裸机服务规格的管理,还有裸机生命周期的管理,还有就是裸机组的管理。裸机组的管理应用的场景,对于银行的应用系统我们会有一个高可用的架构,我们会要求同一个应用不同的服务器,位于不同的机房,还可以位于不同的机柜,或者不同的交换机。这个时候把应用的一组服务器组成一个裸机组,在Mogan项目对它进行动态调动的时候,会根据切换性和反切换性的策略,将同一组裸机里边不同服务器调用到不同的位置。
同时根据用户需求,动态本地磁盘配置的能力,和SDN集成动态的开通租户网络,服务器在资源池上架的时候是没有租户网络的,根据调度最终结果配置到服务器的交换机上面。同时我们也实现的挂载和卸载的存储自动化,能够让裸机自动的挂载云存储的服务。
我们的发放时间对外承诺小于一小时,我们实际使用效果,一般操作系统和规格的服务器我们可以做到每台裸机发放时间大概在5—10分钟左右。同时我们服务可用性要达到99.9%,主要就是通过刚才我们所介绍的裸机组对裸机有一个高可用切换性的调度实现的。
同时还通过服务封装和产品化的方式达到用户自助服务的能力。对于用户自助服务,行内会把所有可以标准化用户自助服务的变更作为一个标准变更,这种标准变更就会减少用户去申请服务器时候的变更流程,让用户实际端到端服务器申请的时间缩短。
主要是通过提前制定裸机景象,镜像方式的缺点不能坐落到动态灵活配置的能力,但是镜像的方式速度会快很多。所以我们在这一层面会做两种方式的结合,使裸机供应速度、发放速度会更快一些。
裸机服务器跟虚拟机云储机服务器相比主要区别,云储机是基于虚拟化的,服务器都是有一个使用周期的,一般3—5年就到时间了,对于虚拟化的云储机我们可以在资源池内迁移到不同的位置,将过池的服务器下架,替换到新的服务器。一旦租户使用物理的裸机服务器,三到五年时间一到的时候,相当于租户裸机服务器的生命周期就结果了。
如果云裸机服务器使用共享存储的,或者即使使用本地存储我们做到对服务器关机以后迁移的能力,由用户发起,动态的在短时间内将用户的裸机服务器保留所有服务器的属性,例如说网络、操作系统配置等等各种东西,然后迁移到一台新的服务器上,应对物理服务器生命周期截止的情况。同时也可以在物理服务器故障的时候提供更快服务器恢复速度。
操作系统重装,也就是说操作系统重加载的能力。这也是用户操作系统损害,或者说用户由人为误操作导致操作系统故障无法恢复的场景,我们会通过操作系统重装的功能把用户所有动态配置、数据重新加载到服务器内部,对用户操作系统进行重装,恢复物理服务器。
给用户提供一种基于web端的能力,这是为了和虚拟机运维拉平,主要应用场景,可能用户的租户网络损害,把操作系统内部网络接口误删除掉,或者配了一些错误的路由,通过传统的协议再去登陆和运维服务器。当前用户只能够通过故障报告报告给SP的运维人员,由运维人员对服务器进行修复。未来通过wbe端由用户自己维护。