记得10年前,我和当时的同事在做服务器选型测试工作时,就不止一次谈到这样问题——当我们使用来自多家(主板/准系统)供应商的产品时,就会面临管理方案不同的问题。
举个例子,比如SuperMicro、Intel(EPSD)和Tyan这3家服务器ODM,在主板的管理上就有着不同的设计,包括BMC硬件以及与之配合的软件。那么做为一家OEM厂商,如果只是简单地组装销售,用户将无法获得统一的管理体验,很难从产品技术上形成品牌黏性。
至于较大一些的服务器品牌,为了解决这个问题会投入相应的研发,但只要您使用对比过,就会发现不同厂商在管理功能方面的差距不小。也就是说,除了硬件的品质之外,这也是一个能够体现出Dell坚持国际领先技术和让用户“最简单”宗旨的品牌优势的地方。
那么服务器管理都能做些什么呢?相信不少读者朋友对此都已经熟悉了。本文我们想以戴尔iDRAC生命周期控制器为例,带大家简单回顾BMC/IPMI的基本功能,并介绍一下怎么实现分钟级部署千台服务器,以及“无状态服务器池“对云计算IaaS的意义。
戴尔iDRAC with Lifecycle Controller被称为智能嵌入式生命周期管理,它的功能可以分为4个方面:
部署:(服务器)发现/编目,设置和操作系统部署;
维护:重新分配,修复,更换配件;
监控:电源,性能,告警/健康状况;
更新:BIOS,Firmware和驱动程序。
根据我们的理解,基础的部署、维护和监控功能由硬件来实现;而高级部署功能和更新则通过管理软件来协助提供。服务器按管理方式又可分为带外(out-of-band)和带内(in-band)两种,带内管理可以通过安装在OS中的代理执行;而带外管理则基于下面要介绍的BMC硬件。
上面的照片是在数年前拍摄于戴尔PowerEdge R910服务器主板,可以看到一颗NUVOTON(前身为Winbond)BMC底板管理控制器和旁边的DRAM显存芯片。现在主流的服务器BMC一般集成基本的显卡功能。
上图中用红圈标出的部分,是R910服务器的管理网口,它是以一个子卡的形式安装在戴尔专用的NDC网卡上,四路服务器在设计上与双路有一些不同。BMC/IPMI硬件管理的网口可以共用板载以太网卡,也可采用独立设计。
现在比较流行的是主板提供单独的管理网口,受控于BMC芯片所在的嵌入式系统。这部分电路与主板上其它单元相独立,只要+5Vsb/+3.3Vsb电源供应正常、管理网络/串口连通,哪怕CPU、内存等损坏都可以进行iDRAC带外管理操作。
这两个截图也是来自当年Dell R910上的iDRAC6
如上图,除了远程开关机、重新启动等之外,iDRAC的一大基本功能就是远程控制,或者说KVM(键盘、鼠标、显示输出)重定向。由于在操作系统完成安装之前,通常无法使用远程桌面这样的工具,因此KVM更多是用在系统配置、OS安装的阶段。
就像当年我的一位朋友指着PowerEdge R710的管理网口说:“插根网线,不用接显示器就能装系统了。”这时可能还需要本地光驱,如果支持vMedia(虚拟介质)则会更方便。
有些用户在网络环境中有PXE引导服务器,并通过FTP/NFS将操作系统安装介质映射给待安装的服务器。不过在简单环境中,使用USB重定向技术的虚拟介质用起来更加方便。如上图,除了物理光驱/软驱之外,我们还可以将客户端的ISO镜像映射为服务器上的“光盘”。
注:虚拟介质功能需要iDRAC Enterprise版本的License,相对基础的iDRAC Express不提供支持。
以上功能主要涉及操作系统部署,以及在此之前的单机设置。当年我还测过有的IPMI远程管理卡,提供类似的功能动辄要上千元,而现在服务器嵌入的高级管理特性已经不只于此。下面我们重点介绍一个——批量配置服务器来进一步提高部署效率。
让我们来看看iDRAC8的自动化服务器配置是怎么工作的。如上图中的5个步骤:配置、采集、克隆、重新分配和维护基准。在服务器配置文件中,包括BIOS、PERC(PowerEdge RAID卡)、网卡/HBA和iDRAC/生命周期控制器的设置。
此外它还有多种使用模式,可以整合到已有的进程中,使用U盘对现场对服务器“应用配置”,或者在网络设置中应用。使用OpenManage Essentials软件来采集、设置和检测配置的一到多漂移。
带有生命周期控制器的iDRAC嵌入式服务器自动化特性,宣称分钟级部署数千台服务器(应该是理想情况下)。对于一台尚未配置管理IP和权限的戴尔13G服务器而言,只需要标准的网络资源——DHCP服务器和标准网络共享,然后上架、连线即可。
我们再看一下自动设置的工作流:
1. iDRAC发送DHCP请求到DHCP服务器;
2. DHCP服务器响应(给出)IP地址以及选择字段;
3. iDRAC检查选择字段并恢复来自远程共享的服务器配置文件;
4. iDRAC应用配置文件到服务器,根据变化的需要服务器可能会重启。