java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2370|回复: 0

《大规模分布式存储系统》 第4章 分布式文件系统【4.4】

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2040

    主题

    3698

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66476

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-3-3 20:37:17 | 显示全部楼层 |阅读模式
    4.4 内容分发网络; z7 U7 Q7 O3 q0 z
    CDN通过将网络内容发布到靠近用户的边缘节点,使不同地域的用户在访问相+ p; P" O; F( r, {% H) |( u0 O
    同网页时可以就近获取。这样既可以减轻源服务器的负担,也可以减少整个网络中; T# `$ d! K$ T& X  G' x, v/ ]! _
    的流量分布不均的情况,进而改善整个网络性能。所谓的边缘节点是CDN服务提供
    3 M# ~0 D; X8 n' W8 e商经过精心挑选的距离用户非常近的服务器节点,仅“一跳”(Single Hop)之遥。用
    ( `$ m. C, F4 z& r( q0 ~& [户在访问时就无需再经过多个路由器,大大减少访问时间。& ?0 E9 ~9 B2 d' ~1 K' I
    从图4-9可以看出,DNS在对域名解析时不再向用户返回源服务器的IP,而是返
    ! u! w' B9 z& d/ _9 r回了由智能CDN负载均衡系统选定的某个边缘节点的IP。用户利用这个IP访问边缘节
    " f" C, q0 ]) \8 J) O& N+ {* M点,然后该节点通过其内部DNS解析得到源服务器IP并发出请求来获取用户所需的页  J/ {0 Y) _  O( j3 _
    面,如果请求成功,边缘节点会将页面缓存下来,下次用户访问时可以直接读取,
    * O1 x8 S8 |4 r1 t0 H- d  [) g而不需要每次都访问源服务器。& q# W0 b  A! F: y% N# K+ M* `
    图 4-9 用户访问CDN的整体流程
    6 [! b' C5 u* V7 b4.4.1 CDN架构! X5 N& e! z# W+ [
    淘宝CDN系统用于支持用户购物,尤其是“双11”光棍节时的海量图片请求。如
    ; U  U* i. a& Y; s: D' f3 _图4-10所示,图片存储在后台的TFS集群中,CDN系统将这些图片缓存到离用户最近' o+ z. k% N2 T0 G( t: b
    的边缘节点。CDN采用两级Cache:L1-Cache以及L2-Cache。用户访问淘宝网的图片
    1 _1 M+ U% C6 V! C" a$ t/ A8 V, c时,通过全局调度系统(Global Load Balancing)调度到某个L1-Cache节点。如果L1-5 D4 c$ I4 [7 |+ T/ `
    Cache命中,那么直接将图片数据返回用户;否则,请求L2-Cache节点,并将返回的
    + m- z8 N& T. h6 m* k2 u  R9 s图片数据缓存到L1-Cache节点。如果L2-Cache命中,直接将图片数据返回给L1-Cache: F' }, i4 f6 [9 [6 B: m) D
    节点;否则,请求源服务器的图片服务器集群。每台图片服务器是一个运行着Nginx
    / ?( V% z( x- O的Web服务器,它还会在本地缓存图片,只有当本地缓存也不命中时才会请求后端的. @' x8 E# a; W% P6 [/ w" H) s
    TFS集群,图片服务器集群和TFS集群部署在同一个数据中心内。
    : c( k+ _3 Z+ r6 b图 4-10 淘宝网CDN整体架构& g8 X/ N2 E+ \& u( Y
    对于每个CDN节点,其架构如图4-11所示。从图中可以看出,每个CDN节点内2 B- ~3 l9 x. M0 h; e. l$ O! o
    部通过LVS+Haproxy的方式进行负载均衡。其中,LVS是四层负载均衡软件,性能$ Z  X" I4 P) D+ s( _
    好;Haproxy是七层负载均衡软件,能够支持更加灵活的负载均衡策略。通过有机结
    8 A# Y3 x2 v5 b& g$ {合两者,可以将不同的图片请求调度到不同的Squid服务器。
    " m! @: V) I+ I# |$ l% Y# t6 A; G图 4-11 淘宝网单个CDN节点架构
    9 t% r4 _. W2 a5 f0 CSquid服务器用来缓存Blob图片数据。用户的请求按照一定的策略发送给某台
    % T. H  o! e9 eSquid服务器,如果缓存命中则直接返回;否则,Squid服务器首先会请求源服务器获# v3 o. e6 U( ^4 x0 d
    取图片缓存到本地,接着再将图片数据返回给用户。数据通过一致性哈希的方式分
    ; ]# K" i" V) m6 c6 L/ d: F4 _布到不同的Squid服务器,使得增加/删除服务器只需要移动1/n(n为Squid服务器总
    ; G8 Q- u* Y2 ?( K; r5 ~$ l数)的对象。
    ' w/ s! a  t/ M" R+ K8 g相比分布式存储系统,分布式缓存系统的实现要容易很多。这是因为缓存系统
    $ |+ S# Y; N$ Q" D不需要考虑数据持久化,如果缓存服务器出现故障,只需要简单地将它从集群中剔
    ; [; U5 j) X5 V& {' x除即可。+ h, K2 ~% ~9 O( s7 L
    1.分级存储6 P: a2 _. ~* p& |9 s; }$ x$ H
    分级存储是淘宝CDN架构的一个很大创新。由于缓存数据有较高的局部性,在1 I9 C4 q: e7 f/ Y' ^
    Squid服务器上使用SSD+SAS+SATA混合存储,图片随着热点变化而迁移,最热门的
    ! c  e- f4 o/ v0 O存储到SSD,中等热度的存储到SAS,轻热度的存储到SATA。通过这样的方式,能
    + ^4 m+ c. Q) p( T8 R. k' w: z- I够很好地结合SSD的性能和SAS、SATA磁盘的成本优势。
    ; Z( l- z, Y- h: X6 D" J: y0 _2.低功耗服务器定制6 k' N8 _7 E; x5 C7 x
    淘宝CDN架构的另外一个亮点是低功耗服务器定制。CDN缓存服务是IO密集型
    5 {- F2 o- f* j0 l! M+ t而不是CPU密集型的服务,因此,选用Intel Atom CPU定制低功耗服务器,在保证服
    / F  I) ~4 ~5 U7 ^! r务性能的前提下大大降低了整体功耗。
    # j. i# E( Z' M1 A1 Z4.4.2 讨论% v6 q7 z# _- W) K# Y* [1 M
    由于Blob存储系统读访问量大,更新和删除很少,特别适合通过CDN技术分发/ p( n8 e/ \# l+ r) u* `
    到离用户最近的节点。CDN也是一种缓存,需要考虑与源服务器之间的一致性。源
    ' m  }5 s0 G7 K; G" [+ N服务器更新或者删除了Blob数据,需要能够比较实时地推送到CDN缓存节点,否则; u* Q4 k0 h$ E
    只能等到缓存中的对象被淘汰,而对象的有效期一般很长,热门对象很难被淘汰。
    ; a  \  V5 ?; g5 {另外,淘宝在研发CDN的过程中也发现,随着系统的规模越来越大,商用软件& O6 \8 \6 J/ x3 M+ O% L1 j9 T
    往往很难满足需求,通过采用开源软件与自主开发相结合的方式,可以有更好的可# F! z6 O( `$ |' E
    控性,系统也有更高的可扩展性。互联网技术的优势在于规模效应,随着规模越来6 ?* Q( }" O3 N) K
    越大,单位成本也会越来越低。
    ) ^* i+ `' j- S0 g. a$ u/ N当然,随着硬件技术的发展,淘宝CDN架构也经历着变革。例如SSD价格快速
    3 Z6 [5 y- Y5 d! S下降,使得SSD+SAS+SATA分级存储的优势不再明显,新上线的CDN缓存节点配备
    - |5 z: |( W0 o0 X5 I5 f的磁盘均为SSD  L9 Q, T( E8 i" k' ~/ A' [
    , f( ?+ i  B4 I2 q& {3 x' t8 m0 K

    , F, ]9 k6 P& I0 u
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2025-1-22 14:42 , Processed in 0.282306 second(s), 29 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表