《数据中心设计与运营实战》——1.6 WSC的架构概述

1.6 WSC的架构概述

每个WSC的硬件部署与其他的都千差万别。即使在像Google这样的单一组织中,不同的年代也使用不同的基本组件进行系统部署,这也反映了行业的硬件演进。然而,这些WSC系统的架构在过去的几年里已经相对稳定,因此,描述这个通用的架构有助于为后续的讨论做个铺垫。

图1.1描述了WSC的顶层构建。一组低端服务器,典型的是1U1服务器或刀片服务器形式,安装到机架,使用以太网交换机进行内部互联。这些机架级别的交换机,支持1~10Gbit/s连接,有多个上行链路连接到一个或多个集群级(或数据中心级)以太网交换机。这些二级交换机组成的域可以覆盖万台以上独立服务器。刀片服务器内部有一个附加的内部汇聚连接层,多个处理器所在刀片通过I/O总线(例如PCIe)连接到少量网络管理刀片。

https://yqfile.alicdn.com/2df565748ea9605b6b9a669a659faf13fd624e55.png " >

1.6.1 存储
硬盘驱动器或者闪存设备直接连接到每个独立的服务器,由全球分布式文件系统(比如Google的GFS)管理,或者它们还可以作为网络附加存储(NAS)设备的一部分直接连接到集群级别的交换网络。NAS往往是一个简单的初始配置解决方案,因为它能将部分数据管理任务外包给NAS设备供应商。由于存储与计算节点相互独立,也就更容易提升存储服务质量,因为NAS除了存储服务器之外没有运行计算任务。相比之下,直接连接到计算节点的硬盘可以降低硬件成本(硬盘可以利用现有的服务器机箱),并改善网络架构利用率(每台服务器的网络带宽在计算任务和文件系统间实现动态有效共享)。

这两种方式的多副本存储模型在本质上完全不同。NAS通过在每个请求中使用多副本或纠错来实现高可用性;而类似GFS的系统则使用机器间多副本实现,由此在写入操作中将带来更多的网络带宽占用。不过,GFS类系统即使在一整台服务器甚至一个机架失效的情况下也能保持数据的高可用性,提供更高的集群读取带宽,因为相同的数据可以来自于多个副本。对于Google早期的计算任务中,以高写入成本交换低成本、高可用性的读取是正确的解决方案。将计算节点与存储节点绑定的另一个好处是,分布式系统软件能够优化利用本地数据。过去十年,网络性能早已超越硬盘性能。对硬盘而言,本地存储的优势不再明显,但本地存储对类似闪存这种现代存储设备而言,依然还是有一定的优势。

包括Google在内的一些WSC采用桌面级硬盘(或类似的近线驱动器)替代企业级别硬盘,由于两者间成本的巨大差异。典型情况下,消费者(或者“桌面级设备”)倾向于更低的价格,但廉价产品并不是被设计用来持续运行的。近线驱动器,最初是为基于硬盘的备份服务器而设计的,添加了一些常见的企业功能(例如抗震能力)后,可以持续运行。最终,企业级的硬盘以更高的成本获得了更高的性能。

因为数据几乎总是以分布式方式(诸如GFS)实现多副本,非企业级硬盘的高故障率可以得到容忍和接受。此外,因为硬盘驱动器的现场可靠性与制造商标称的差距较大,企业级硬盘驱动器的可靠性边界仍没有清晰界定。正如Elerath和Shah 【47】指出的,相比生产流程及设计,某些因素会对硬盘可靠性产生更严重的影响。

NAND闪存技术已经使得固态硬盘(SSD)可以满足WSC不断增长的存储需求。虽然在可预见的将来,存储在固态硬盘上的每字节的成本比在硬盘上的要高很多,但许多对I/O敏感的Web服务在硬盘上无法实现其应有的性能。由于固态硬盘可以提供比硬盘高很多数量级的I/O速率,越来越多的固态硬盘取代了硬盘驱动器,成为Web服务的首选。

1.6.2 网络结构
在为WSC选择网络结构时,需要权衡速度、规模和成本。在撰写本文时,支持多达48端口的1Gbps以太网交换机是非常有价值的,每服务器连接(包括转换端口、电缆和服务器网卡)只需不到30美元的成本。因此,机架内各服务器上的带宽趋向于相同。然而,用于WSC集群间数据交换的高端口性能交换机具有不同的价格结构,它比普通机架交换机的每端口成本高出十倍。凭借经验,具有10倍带宽的交换机成本将高出约100倍。由于成本的不连续性,WSC的网络结构通常由两层架构组成,如图1.1所示。每个机架的网络交换机提供部分带宽用于机架之间的通信,通过上行链路连接到更昂贵的集群级交换机。例如,一个容纳40台服务器,每个服务器带宽1Gbit/s的机架,可能有4~8个1Gbit/s上行链路连接到集群级交换机,对应的跨机架通信的过载系数在5到10之间。在这样的网络中,程序员必须了解跨集群间带宽资源的相对稀缺,尽量将机架间的流量在机架内处理完成。在复杂软件开发的过程中,注意其对资源使用的影响。

此外,可以通过升级内联网络,解决一些集群级网络瓶颈的问题。例如,使用Infiniband连接,在典型情况下可以在一个区域内支持上千个端口,但每端口成本可能高达500至2000美元。同样,一些网络提供商已开始提供更大规模的以太网连接架构,但每台服务器至少花费数百美元。是在网络上投入更多开销,还是用这些开销购买更多的服务器或存储空间?这个问题并没有正确答案。然而现在,我们假定机架内的连接成本低于机架之间的连接成本。

1.6.3 存储架构
图1.3展示了一个程序员视角的WSC存储结构。每台服务器由一些包含一个多核CPU及其内部缓存的处理器插槽、本地共享内存、一些直连的硬盘或基于闪存芯片的固态硬盘组成。机架内的内存和硬盘/闪存资源可以通过第一级机架级别的交换机访问(假设某种类型的远程过程可以通过调用API访问它们),所有机架的所有资源可以通过集群级交换机访问。各种资源如何相对平衡取决于目标应用的需求。基于闪存的存储是最近才加到这张WSC存储结构图上的,它在现实世界中被广泛应用。以下配置假定闪存容量比传统旋转介质低一个数量级,这基于这两种技术之间每字节成本之间的大致差异。

https://yqfile.alicdn.com/05fd9fc8c41f8422c575726b4a7041ddda253b56.png" >

1.6.4 定量延迟、带宽和容量
图1.4所示为量化WSC的延迟、带宽和容量特性。图中我们假定一个系统由2400台服务器组成,每台服务器都有16GB的内存和4个2TB硬盘驱动器(我们并没有把闪存放到该场景中,主要是因为闪存规模在不同部署方式中的不一致性,后面的章节会讨论闪存)。每80台服务器为一组,通过一个1Gbit/s链路连接到一个机架级别的交换机,交换机有8个1Gbit/s端口负责机架交换机到集群级交换机(超负载系数为5)之间连接。网络延迟量假设是使用TCP-IP传输模型的。网络带宽值假设为除去超负载系数后,每台服务器平分可用于上联到集群级设备的总带宽。关于硬盘,显示了典型商用硬盘驱动器(SATA)的延迟和传输速率。

该图显示了每个资源池的相对延迟、带宽和容量。例如,本地硬盘可用带宽是200MB/s,而通过共享机架上行链路带宽后仅为25MB/s。另一方面,集群中的总硬盘存储容量几乎是本地内存容量的一千万倍。

相比部署在单一机架内的情况,使用更多服务器的大型应用必须有效地处理延迟、带宽和容量的巨大差异。这些差异远比在单一机器上的更明显,这使设计WSC变得更难。

WSC架构设计的一个关键挑战是,用最具有性价比的方式来平滑处理这些矛盾。与此相反,软件架构设计的一个关键挑战是隐藏大部分集群基础设施和服务细节的复杂性,使其对应用开发者不可见。近期,起初为便携式电子设备开发的闪存技术也在WSC系统中得到了应用。今天,闪存成为在内存和硬盘之间折中成本和性能差距的切实可行的选择,如图1.5所示。相对于硬盘,闪存最吸引人的特征在于其随机读取时的性能,几乎是硬盘的3倍多。事实上,闪存的性能如此之高,以至于它对分布式存储系统的整体性能构成了一个挑战,因为它需要占用WSC中的更多带宽。我们将在本书第3章中更加深入地讨论闪存的潜在机遇和挑战。而我们眼前需要关注的是,在最不利的情况下,写入闪存的速度要比从闪存中读取慢几个数量级。

https://yqfile.alicdn.com/043fd34cf7fa08ec59147112d09c488c362f0489.png" >

1.6.5 电力使用
能源和电力使用也是WSC设计的关注重点,这将在第5章进行更详细的讨论。与能源相关的成本已成为这类系统总体拥有成本的重要组成部分。图1.6提供了一些关于当代IT设备的各个组件在尖峰情况下如何使用能源的深入分析——以Google在2007年建立的一个WSC为例。

尽管这种尖峰情况与系统配置和工作负载密切相关,但从图中依然可以看出CPU再次成为WSC能源消耗的重点。采用2007年Google服务器标准的数据,本书的第一版显示内存系统的相对能源消耗量已经上升到与CPU基本持平的水平。从那时起,这一趋势由于诸多因素导致了逆转。首先,更加精细的功耗管理系统使CPU能够以更接近最大设计的功耗运行,这使得每个CPU产生了更高的能源消耗。第二,内存技术已从耗电的FB-DIMM转换为具有更好功耗管理性的DDR3。第三,内存电压已从1.8V降至1.5V,甚至更低。最后,现在的系统的每吉比特CPU/内存功耗比变得更高,这可能主要是因为内存技术突破性发展的结果。在第5章,我们还将讨论WSC能源效率的更多细节(图5.6显示了基于工作负载的能源使用分布情况)。

在采用2012年年末的服务器、基础设施能源消耗在30%情况下的现代数据中心中,硬件子系统尖峰电力消耗的大概分配。该图假定采用两路x86服务器,每台服务器配置16个内存插槽和8个硬盘,服务器平均利用率为80%。

1.6.6 故障处理
数据中心的绝对规模要求互联网服务软件可以容忍相对较高的组件故障率。例如,硬盘驱动器的年故障率超过4%【123,137】。不同部署情况的服务器报告平均每年的重启率在1.2到16之间。如此高的组件故障率,运行在数以千计的机器上的应用需要对故障条件的反应以小时为单位。关于应用的部分我们将在第2章讨论,在第7章将详细探讨故障统计相关内容。

时间: 2024-09-20 05:33:01

《数据中心设计与运营实战》——1.6 WSC的架构概述的相关文章

《数据中心设计与运营实战》——导读

序 传统的数据中心设计往往只关注风火水电,考虑地理位置.建筑面积.供多大电量.冗余做到多少级,等等,很少关注承载的IT设备的特性,更不用说上层具体的业务应用.因此,很多的数据中心从投入生产那天起就落伍了,要么是跟不上业务的发展节奏,不得不进行很多的生产中的改造优化等工作:要么是做了过多的可靠性考虑,系统富余非常多的容量,投产后实际只能利用设计的几分之一,甚至更少.互联网数据中心由于支撑的计算规模和存储规模较传统企业的数据中心更大,甚至超过几个数量级,如果只是沿用过去的数据中心设计方法和思路,在效

《数据中心设计与运营实战》——第1章 介绍1.1 仓储式数据中心

第1章 介绍 ARPANET问世已经超过40年了,World Wide Web最近刚刚庆祝完其走过了20周年.被这两个有杰出意义的里程碑所引领的互联网技术继续改变着各行各业和现今人们的生活习惯,时至今日依然势头不减.诸如网页邮箱.搜索.社交网络等流行互联网服务的出现,加之高速互联网络在世界各地的普及,使互联网服务日渐呈现出向服务器端以及云端转移的趋势. 越来越多的计算和存储需求开始从类PC客户端向更小.更适合移动设备,并结合了大型互联网服务的方向迁移.早期的互联网服务大多是用来提供资讯,而今许多

《数据中心设计与运营实战》——1.3 不只是服务器的集合

1.3 不只是服务器的集合 我们核心的观点是,驱动现今很多成功的互联网服务的数据中心已经不再是将五花八门的服务器放在一起,连上网线这么简单的了.运行在这些系统上的软件,诸如Gmail和Web搜索服务,是使用着超越单一服务器和单一机架规模的.成百上千的独立服务器组成的集群.因此,每个设备和服务器都是这个大集群或者服务器集合的组成部分,要被视作单一计算单元. 设计WSC的技术挑战,丝毫不亚于其他任何级别的计算机系统架构.首先,它们是由新的迅速增长的需求所驱动的新一类大规模系统.仅规模一项,就使其很难

《数据中心设计与运营实战》——2.6 监控基础设施

2.6 监控基础设施 各种形式的系统内控是集群级基础架构软件层的一个重要部分,因为无论是工作负载还是硬件基础架构,其规模和复杂性都决定了监控框架应成为系统最基本组成部分,如接下来的内容所阐述的. 2.6.1 服务级仪表盘 系统操作员需要监测互联网服务是否达到设定的服务水平.监测信息必须是非常即时的,这样操作员(或自动系统)才能以秒(而不是分钟)为单位采取快速准确的反应以避免巨大的灾难.幸运的是,监测只需要有限的几个关键信息,例如延迟.用户需求的吞吐量分析,这些都可以从前端服务器收集到.这样的监测

《数据中心设计与运营实战》——2.5 应用层软件

2.5 应用层软件 Web搜索曾是最早的受欢迎的大规模互联网服务之一,从20世纪90年代中期开始的互联网内容的井喷,使处理如此大量的信息超出了当时人工管理目录的能力.然而,随着针对家庭和公司的网络连接业务的持续增长,通过互联网提供新的服务变得越来越有吸引力,有时甚至取代了传统客户端的功能.基于网页的地图和邮件服务就是这一发展趋势的端倪.服务范围的扩大也造成了应用需求极大的多样性.例如,一个搜索任务可能不需要一个具备细粒度更新能力的基础架构,也就自然可以容忍硬件故障(因为Web搜索不需要每次都绝对

《数据中心设计与运营实战》——1.5 为什么WSC对你至关重要?

1.5 为什么WSC对你至关重要? 说到这里,WSC被认为是商业领域中的一个问题,因为它庞大的规模和成本,使得只有非常少的大型互联网公司才能负担得起.我们不相信这是真的,毫无疑问.我们相信今天互联网服务所面对的问题很快会产生更大规模的意义,因为许多组织很快将可以用更低的成本实现近似规模的计算系统.现如今,低端服务器构建的计算平台以其经济性吸引着大量的公司和研究机构,这使他们将集群扩充至数百个节点规模成为可能.当综合考虑到将大量的处理器核心设计在同一基板上是当前趋势的情况下,不久后,一个服务器机架

《数据中心设计与运营实战》——1.4 单个数据中心VS. 多个数据中心

1.4 单个数据中心VS. 多个数据中心 在本书中,我们将数据中心比作计算机,尽管许多互联网服务使用多个彼此远离的数据中心.多个数据中心有时作为相同服务的多个完整副本使用,这有助于减少用户等待时间和改善服务的吞吐量.在这样的案例中,一个给定的用户需求在一个数据中心中被完全处理,我们的设备指派看似恰当. 然而,一旦某个用户的查询涉及多个数据中心,那么我们对单个数据中心的关注显然有些不完全适用.典型的案例是处理非易失性用户数据的更新服务,当然,多副本容灾是必需的.对于此类情况,一个数据中心更为合适,

《数据中心设计与运营实战》——第2章 工作负载和软件基础架构2.1 数据中心VS. 台式机

第2章 工作负载和软件基础架构 仓储式数据中心(WSC)中运行的应用主导了众多系统设计的决策权衡.本章概述了大型互联网服务中软件的显著特征以及一个构建完整计算平台所需要的系统软件和工具.以下是典型WSC部署中不同的软件层的相关术语. 平台层软件:和所有独立服务器都一样的固件.内核.分布式操作系统和函数库,屏蔽掉单一设备的具体硬件,提供基本的服务器级服务. 集群层基础架构:在群集层提供资源管理和服务,并最终成为数据中心级操作系统.比如分布式文件系统.调度器.远程过程调用(RPC)库,以及可以简化数

《数据中心设计与运营实战》——2.3 平台级软件

2.3 平台级软件 WSC服务器节点上运行的基础软件系统与一般企业级服务器平台上的没什么不同,因此,这里不再详细阐述这一层级的软件构架. 相比通用企业服务器,WSC的服务器固件.设备驱动程序及操作系统模块在很大程度上可以大幅简化.在WSC服务器硬件配置高度同质的情况下,设备仅存在少量几种硬件组合,我们可以对固件.设备驱动程序的开发及测设进行简化.另外,WSC服务器部署在一个相对熟悉的环境中,也使得提升系统性能优化成为可能.例如,WSC服务器与在同一栋楼里的其他机器进行网络连接,数据包丢失率比连接