目录
四、自动化管理
(一)自动化管理的特征
云自动化,即按需分配和收回服务器、存储、网络、应用程序。数据中心的管理需要资源的自动化调度和对业务的灵活响应,即需要单个业务能自治管理,也需要一个负责全局控制和协调的中心,对业务和资源进行统一监控、管理和调度。
数据中心自动化管理应具有如下五个主要特征:全面的可视性、自动的控制执行、 多层次的无缝集成、综合与实时的报告和全生命周期支持。
(1)全面的可视性。数据中心自动化软件利用自动发现功能建立对数据中心所有层次的全面可视性,获得数据中心从基础设施层、中间件和数据库层、应用层直到业务服务层跨各个层次的运行时视图,使得数据中心自动化软件能够全面掌握数据中心资产、 配置和各个层次依赖关系的现状,从而奠定自动完成各种功能的基础。
(2)自动的控制执行。将自动化全面实施于数据中心的流程管理,提高实施信息技术基础架构库的成功率。
(3)多层次的无缝集成。消除不同层次、不同组成部分间的各种障碍和间隙,完成连接所有数据中心和组成部分,流畅地自动执行在这些层次和组成部分间的各种处理流程,快速地协调数据中心内外的所有变更,实现端到端的流程管理。
(4)综合与实时的报告。使用自动化管理工具提供具有全面综合和透视依赖关系的报告来提高管理水平。可通过建立集中的配置管理数据库,存储所需信息,简化报告的创建和产生,并确保完整性。
(5)全生命周期支持。IT服务管理每个流程都强调周而复始的“计划一实施一检查一更正”,利用自动化策略和技术来实现支持整个IT流程生命周期,把数据中心自动化从静态的过程转变成动态的螺旋形发展过程。
自动化管理一方面是对环境设备 (如供配电系统、冷却系统、消防系统等) 的智能监控系统,可实时动态呈现设备告警信息及设备参数,快速定位出故障设备,使维护和管理丛人工被动看守的方式向计算机集中控制和管理的模式转变。另一方面数据中心在采用虚拟化技术降低物理成本的同时,会提升运维成本,使IT管理更加复杂,需要使用统一的资源可视化来管理虚拟化网络的相关信息,同时自动化管理能自动监测虚拟机的创建和迁移,并确保网络设置随着迁移,真正把虚拟机的优势发挥出来。所有基础架构实现虚拟化并以服务的形式交付,数据中心的管理和控制由软件驱动,通过数据中心统一管理软件达到对数据中心设备、网络、服务、客户的智能化统一管理。
(二)自动化管理实现阶段
由于资金、效率等问题,实现自动化管理不可能一蹴而就,自动化管理通常须经历三个阶段。
第一阶段:IT服务操作。这一阶段主要是监控和管理IT基础设施的广义集合,如网络、服务器、应用和相关的存储设备。
第二阶段:IT服务管理。这一阶段会制定一系列的设施间的交互和协作处理,确保IT服务符合标准规范。
第三阶段:数据中心自动化。这一阶段的时间和精力主要是维护IT环境,定制、检查和执行服务层协议。
IT服务操作的目标是生成有效的全局IT支撑架构,提高IT服务质量,对活动和过进行协调和执行。活动和过程包括事故管理,事件监控和管理、问题管理。
一旦IT操作机构能监控和管理基础设施,下一步重点就是IT服务管理。通常IT服务管理是处理IT技术部门与其客户间的交互信息。Forrester将IT服务管理定义为根据客户需求的服务层次确保IT服务质量的一系列过程。IT服务管理通常包含了促进服务提高的方法,如IT基础架构库 (Information Technology Infrastructure Library, ITIL) 将配置管理、失效管理、容量和性能管理、安全管理和计费管理流程进行了简化。IT服务管理通常由4个主题范围所组成:服务管理、服务层管理、IT资产管理和财务管理。
目前,IT将75%的预算用在持续经营和维护上,一个主要原因就是缺少自动化工作机制。数据中心混合了硬件、软件和工作处理等各种方法,简化了IT操作。数据中心自动化在概念上位于IT服务操作和IT服务管理流程之间,减少了IT服务操作团队的工作量,因而提高了效率,降低了人为错误。第一个自动化工具是执行配置为中心任务的产品,如服务器配置和软件分发。在这样的自动化工具中,配置管理数据库 (Configuration Management DataBase, CMDB) 的存在是重要的,它能存储配置数据并衡量实时改变。自动化发展的下一个变化就是操作管理流程的自动化,IT流程自动化工具有两种类型:一种提供通用的IT流程自动化,如BMC的RealOps、HP的iConchude;另一种关注具体流程。
数据中心自动化的最关键成功因素是其基础服务和支持流程都已到位。在最低限度上,一个公司想要采用数据中心自动化工具必须具备下列条件。
(1)管理系统。支持各类IT管理软件,能管理、监控、探测、识别和解决IT设施的异常行为。
(2)定义过程。一套基本明确定义的流程并能运作良好,应包括事件管理、变更管理、配置管理和版本管理。
(3)认知非自动化过程的成本。为了计算引入自动化的成本节约,必须知道非自动化过程的成本,避免为了自动化而自动化。
(4)内部流程资源。在初始配置时可使用外部资源,但是在后续的维护中,使用内部资源是更节约且有效的。
(三)Facebook自动化管理
Facebook在OCP项目硬件管理中对设备自动化管理给出了具体规则,硬件管理主要关注四个方面的内容:
- 固件的生命周期:提供一个统一界面独立地对固件的二进制文件和配置进行部署和更新
- 事件告警和日志:对产生的机器事件和日志消息进行格式统一
- 远程管理:远程控制机器配置和执行系统操作,并打开一个远程控制台
- 策略技术:遵循和鼓励有潜在利益的产品和标准,探索未来的开放计算规范
Facebook推出了数据中心基础设施管理 (DCIM) 项目,以及一个全新的集群规划系统用于将所有数据都可视化。这个一体化管理软件能够将温度、湿度等户外信息与整栋建筑的能耗,以及CPU存储和内存方面的数据进行综合分析和管理。该管理软件包含自开发的软件,如CYBORG可自动检测服务器问题进行修复。服务器的设计坚持“可服务性”原则,如在主板的设计上,为了节约能源,像PCIe通道、PCI通道、USB接口、SATA/SAS端口等很少用到的功能都被直接禁用。BIOS同样经过严格调整,以确保系统功耗始终处于最低水平。根据规范要求,BIOS还在设定方面做出了有针对性的修改,进而使各组件以特定的速度及功率运转。主板上配有五个热敏元件,负责监测CPU、PCH、输入接口及输出接口的温度。若侦测到温度过高,这些元件还会自动控制风扇转速,以确保冷却效果与运行状态相吻合。大厅里的一个监视器,就能告诉你数据中心的状态,以及制冷系统是否正常工作,如图所示。一体化管理软件减少了工程师设计数据中心性能优化方案的时间,从过去的12小时缩短到半个小时。
Facebook拥有世界上最大的MySQL数据库集群,其中包含了成千上万台服务器, 这些服务器分布在跨越两个大洲的多个数据中心里。Facebook采用MySQL Pool Scanner (MPS) 系统对MySQL数据库集群进行管理,所有任务几乎全部自动化,MPS是一个大部分用Python写的复杂状态机。它能够代替DBA执行很多例行任务,并且可以很少或不施加人为干预就能执行批量维护工作。
Amazon采用StarCluster实现服务器集群管理自动化,StarCluster开源工具可通过在Amazon弹性云计算 (EC2) 中自动化运行众多的烦琐程序,使服务器集群的创建和管理工作得到显著简化,且耗时更少。StarCluster软件可以让用户使用简单的命令行程序创建服务器集群。服务器集群中包含了一台单个的主服务器、多台工作服务器以及弹性块存储 (EBS) 卷。当你输入一个创建服务器集群的命令时,StarCluster会完成如下工作:
(1)初始化虚拟机实例;
(2)配置一个新的安全组;
(3)定义一个用户友好的主机名(如node001);
(4)创建一个非管理员的用户账号;
(5)为密码登录配置SSH;
(6)定义跨集群的网络文件系统(NFS)文件共享;
(7)配置Oracle网格引擎排队系统以实现跨服务器集群的任务管理。
五、容灾备份
容灾备份是通过在异地建立和维护一个备份存储系统,利用地理上的分离来保证系统和数据对灾难性事件的抵御能力。
数据中心的容灾备份系统主要用两个技术指标来衡量:数据恢复点目标 (Recovery Point Objective, RPO) 和恢复时间目标 (Recovery Time Objective, RTO)。RPO主要指的是业务系统所能容忍的数据丢失量,RTO主要指的是所能容忍的业务停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。
(一)容灾系统的等级标准
数据数据中心容灾与备份主要涉及两个标准:国际标准SHARE78和我国的国家标准GB/T 20988—2007。SHARE78将数据容灾与备份系统的安全等级分为7级,我国的国家标准将其分为6级,其对应关系见下表。
(二)容灾备份的关键技术
备份是容灾的基础,是为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其他的存储介质的过程。在建立容灾备份系统时会涉及多种技术,目前,国际上比较成熟的灾备技术包括SAN/NAS技术、远程镜像技术、虚拟存储、基于IP的SAN的互连技术以及快照技术等。
1. 远程镜像技术
远程镜像技术在主数据中心和备援中心之间的数据备份时用到。镜像是在两个或多个磁盘或磁盘子系统上产生同一个数据的镜像视图的信息存储过程,一个叫主镜像系统,另一个叫从镜像系统。按主从镜像存储系统所处的位置可分为本地镜像和远程镜像。远程镜像又叫远程复制,是容灾备份的核心技术,同时也是保持远程数据同步和实现灾难恢复的基础。
远程的数据复制是以后台同步的方式进行的,这使本地系统性能受到的影响很小,传输距离长 (可达1000km以上),对网络带宽要求小。但是,许多远程的从属存储子系统的写没有得到确认,当某种因素造成数据传输失败,可能出现数据一致性问题。为了解决这个问题,目前大多采用延迟复制的技术 (本地数据复制均在后台日志区进行),即在确保本地数据完好无损后进行远程数据更新。
2. 快照技术
远程镜像技术往往同快照技术结合起来实现远程备份,即通过镜像把数据备份到远程存储系统中,再用快照技术把远程存储系统中的信息备份到远程的磁带库、光盘库中。
快照是通过软件对要备份的磁盘子系统的数据快速扫描,建立一个要备份数据的快照逻辑单元号LUN和快照Cache。在快速扫描时,把备份过程中即将要修改的数据块同时快速复制到快照Cache中。在正常业务进行的同时,利用快照LUN实现对原数据的一个完全的备份,大大增加系统业务的连续性,为实现系统真正的7×24运转提供了保证。快照是通过内存作为缓冲区 (快照Cache),由快照软件提供系统磁盘存储的即时数据映像,它存在缓冲区调度的问题。
3. 基于IP的SAN的远程数据容灾备份技术
它是利用基于IP的SAN的互连协议,将主数据中心SAN中的信息通过现有的TCP/IP网络,远程复制到备援中心SAN中。当备援中心存储的数据量过大时,可利用快照技术将其备份到磁带库或光盘库中。这种基于IP的SAN的远程容灾备份,可以跨越LAN、MAN和WAN,成本低、可扩展性好,具有广阔的发展前景。基于IP的互连协议包括FCIP、iFCP、Infiniband、iSCSI等。
4. 数据库复制技术
如果需要将数据库复制到另外一个地方,必须满足以下重要指标:数据必须实时、数据必须准确、数据必须可在线查询、数据复制具有独立性、数据复制配置简单、数据复制便于监控。Spanner是谷歌公司研发的可扩展、多版本、全球分布式、同步复制数据库。它是第一个把数据分布在全球范围内的系统,并且支持外部一致性的分布式事务。Spanner是一个可扩展、全球分布式的数据库,是在谷歌公司设计、开发和部署的。在最高抽象层面,Spanner就是一个数据库,把数据分片存储在许多Paxos状态机上,这些机器位于遍布全球的数据中心内。复制技术可以用来服务于全球可用性和地理局部性。客户端会自动在副本之间进行失败恢复。随着数据的变化和服务器的变化,Spanner会自动把数据进行重新分片,从而有效应对负载变化和处理失败。Spanner被设计成可以扩展到几百万个机器节点,跨越成百上千个数据中心,具备几万亿数据库行的规模。应用可以借助于Spanner来实现高可用性,通过在一个洲的内部和跨越不同的洲之间复制数据,保证即使面对大范围的自然灾害时数据依然可用。
Spanner的主要工作,就是管理跨越多个数据中心的数据副本。尽管有许多项目可以很好地使用BigTable,但BigTable无法应用到一些特定类型的应用上面,比如具备复杂可变的模式,或者对于在大范围内分布的多个副本数据具有较高的一致性要求。谷歌的许多应用已经选择使用Megastore,主要是因为它的半关系数据模型和对同步复制的支持,尽管Megastore具备较差的写操作吞吐量。由于上述多个方面的因素,Spanner己经从一个类似Big Table的单一版本的键值存储,演化成为一个具有时间属性的多版本的数据库。数据被存储到模式化、半关系的表中,数据被版本化,每个版本都会自动以提交时间作为时间戳,旧版本的数据会更容易被垃圾回收。应用可以读取旧版本的数据。Spanner支持通用的事务,提供了基于SQL的查询语言。作为一个全球分布式数据库,Spanner提供了几个有趣的特性。
第一,在数据的副本配置方面,应用可以在一个很细的粒度上进行动态控制。应用可以详细规定,哪些数据中心包含哪些数据,数据距离用户有多远 (控制用户读取数据的延迟),不同数据副本之间距离有多远 (控制写操作的延迟),以及需要维护多少个副本 (控制可用性和读操作性能)。数据也可以被动态和透明地在数据中心之间进行移动,从而平衡不同数据中心内资源的使用。
第二,Spanner有两个重要的特性,很难在一个分布式数据库上实现,即Spanner提供了读和写操作的外部一致性,以及在一个时间戳下面的跨越数据库的全球一致性的读操作。这些特性使得Spanner可以支持一致的备份、一致的MapReduce执行和原子模式变更,所有都在全球范围内实现,即使存在正在处理中的事务也可以。之所以可以支持这些特性,是因为Spanner可以为事务分配全球范围内有意义的提交时间戳,即使事务可能是分布式的。这些时间戳反映了事务序列化的顺序。除此以外,这些序列化的顺序满足了外部一致性的要求:如果一个事务T1在另一个事务T2开始之前就已经提交了,那么,T1的时间戳就要比T2的时间戳小。Spanner是第一个可以在全球范围内提供这种保证的系统。实现这种特性的关键技术就是一个新的True Time API及其实现。这个API可以直接暴露时钟不确定性,Spanner时间戳的保证就是取决于这个API实现的界限。如果这个不确定性很大,Spanner就降低速度来等待这个大的不确定性结束。谷歌的簇管理器软件提供了一个True Time API的实现。这种实现可以保持较小的不确定性 (通常小于10ms),主要是借助于现代时钟参考值 (比如GPS和原子钟)。
(三)云存储在容灾备份中的应用
云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。
在存储系统内通过容错数据布局提高存储系统的数据可用性,当前的分布式存储系统如Amazon S3、Google等文件系统为了保证数据的可靠性,都默认采用3-Replicas的数据备份机制。在存储层级,主机故障完全由其文件系统 (如Google的GFS) 处理。 在云数据中心运用服务器虚拟化技术、存储虚拟化技术等实现跨数据中心的资源自动接管及移动,实现服务器虚拟化和网络虚拟化的无缝融合。
Google的所有在线应用(包括Gmail,Google Calendar,Google Docs,以及Google Sites等)均采用了数据同步复制技术。
(1)Google的一个数据中心支撑着数百万用户,因此,每个用户分摊的成本相对低很多。
(2)Google的备用数据中心并不是在灾难发生时才启用,而是一直在使用中,Google始终在这些数据中心之间进行平衡,保证没有资源浪费。
(3)Google的数据中心之间有自己的高度连接网络,保证数据快速传送。