java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2409|回复: 0

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

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

    [LV.Master]出神入化

    2076

    主题

    3734

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66670

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

    发表于 2017-3-3 20:37:17 | 显示全部楼层 |阅读模式
    4.4 内容分发网络+ n) g2 a5 B$ u) a5 ?
    CDN通过将网络内容发布到靠近用户的边缘节点,使不同地域的用户在访问相
    5 n1 }3 Y7 Z, ?2 c$ K1 h同网页时可以就近获取。这样既可以减轻源服务器的负担,也可以减少整个网络中7 O9 S: v. k* T; `+ S
    的流量分布不均的情况,进而改善整个网络性能。所谓的边缘节点是CDN服务提供
    , E) d* v1 ?: D* ?1 b1 @; i0 _9 p0 ^7 L商经过精心挑选的距离用户非常近的服务器节点,仅“一跳”(Single Hop)之遥。用
    $ N4 V2 i5 _1 |7 y0 Y; O+ p) g+ d) M户在访问时就无需再经过多个路由器,大大减少访问时间。
    * \; b2 `6 b8 P7 H, X3 i6 K) U从图4-9可以看出,DNS在对域名解析时不再向用户返回源服务器的IP,而是返
    % a2 e+ ]4 f. w  K回了由智能CDN负载均衡系统选定的某个边缘节点的IP。用户利用这个IP访问边缘节
    3 v  J; `) Q; @9 [# P3 o点,然后该节点通过其内部DNS解析得到源服务器IP并发出请求来获取用户所需的页
    ) u& g0 G& J# ^9 D4 T3 A# O  ~. R面,如果请求成功,边缘节点会将页面缓存下来,下次用户访问时可以直接读取,; u% y" C$ E7 @1 O0 s: d3 X% R
    而不需要每次都访问源服务器。
    4 H* O& T% j: ]" }2 l( M图 4-9 用户访问CDN的整体流程$ g1 w" P. f. c' ^: S) y7 b. I
    4.4.1 CDN架构
    % P9 ~2 ~6 v1 G1 b3 i; C4 o6 D/ k淘宝CDN系统用于支持用户购物,尤其是“双11”光棍节时的海量图片请求。如* r, ]3 w8 h& w$ m
    图4-10所示,图片存储在后台的TFS集群中,CDN系统将这些图片缓存到离用户最近
    : A% }$ L" I: w2 U的边缘节点。CDN采用两级Cache:L1-Cache以及L2-Cache。用户访问淘宝网的图片; Y+ u& \3 B( ~8 j+ P
    时,通过全局调度系统(Global Load Balancing)调度到某个L1-Cache节点。如果L1-
    / w4 s8 r+ `8 F! @# v+ FCache命中,那么直接将图片数据返回用户;否则,请求L2-Cache节点,并将返回的
    , Q- X3 d: d2 e- x8 Q  u6 q图片数据缓存到L1-Cache节点。如果L2-Cache命中,直接将图片数据返回给L1-Cache; c% R  q4 i6 P: t+ y/ n# p% w: \
    节点;否则,请求源服务器的图片服务器集群。每台图片服务器是一个运行着Nginx
    + E( v( ?( K) c* O0 u+ k9 [1 ^的Web服务器,它还会在本地缓存图片,只有当本地缓存也不命中时才会请求后端的% ~" a3 l: N) v
    TFS集群,图片服务器集群和TFS集群部署在同一个数据中心内。
    ' V. h- x8 B) d图 4-10 淘宝网CDN整体架构
    0 i/ O4 s) V. e: |6 e! I对于每个CDN节点,其架构如图4-11所示。从图中可以看出,每个CDN节点内
    / N2 x7 a9 h; z7 k部通过LVS+Haproxy的方式进行负载均衡。其中,LVS是四层负载均衡软件,性能  I, S: u" b: [- `
    好;Haproxy是七层负载均衡软件,能够支持更加灵活的负载均衡策略。通过有机结
    + }* g# y0 Q: G* T4 C) [合两者,可以将不同的图片请求调度到不同的Squid服务器。3 ~# w& F7 `' M# U+ O
    图 4-11 淘宝网单个CDN节点架构3 F+ w7 c3 T( _; F' }' e
    Squid服务器用来缓存Blob图片数据。用户的请求按照一定的策略发送给某台
    2 }. `! D! F! U+ W, p& G7 A4 CSquid服务器,如果缓存命中则直接返回;否则,Squid服务器首先会请求源服务器获6 a: g# J3 g8 Y5 V9 v
    取图片缓存到本地,接着再将图片数据返回给用户。数据通过一致性哈希的方式分
    6 C+ Y* ^4 U, m( Y8 Z; C# ?6 p: F, Q布到不同的Squid服务器,使得增加/删除服务器只需要移动1/n(n为Squid服务器总
    . S  E% V% F" _4 u: s6 n. D( s数)的对象。0 k+ |' Y! c, E3 }0 i9 o# u! X
    相比分布式存储系统,分布式缓存系统的实现要容易很多。这是因为缓存系统
    2 z+ \6 r( m5 V9 j不需要考虑数据持久化,如果缓存服务器出现故障,只需要简单地将它从集群中剔% j7 m- R% e# |! H; D5 S4 A
    除即可。3 {) Y5 Q, C& K. |
    1.分级存储
    7 E! x  N2 g3 ~. L7 J分级存储是淘宝CDN架构的一个很大创新。由于缓存数据有较高的局部性,在1 N/ s! z, Q0 A  G1 ?7 s9 t8 [
    Squid服务器上使用SSD+SAS+SATA混合存储,图片随着热点变化而迁移,最热门的
    . B; V. U2 a. F存储到SSD,中等热度的存储到SAS,轻热度的存储到SATA。通过这样的方式,能) O* |& W$ e. W4 V
    够很好地结合SSD的性能和SAS、SATA磁盘的成本优势。$ {! P7 g2 f+ i. I" H
    2.低功耗服务器定制
    + Z) u) Z$ c# Z( z7 B. R淘宝CDN架构的另外一个亮点是低功耗服务器定制。CDN缓存服务是IO密集型! u+ m* v8 {( Z( [
    而不是CPU密集型的服务,因此,选用Intel Atom CPU定制低功耗服务器,在保证服
    ! e7 p5 `9 D8 I4 i6 c务性能的前提下大大降低了整体功耗。2 R8 v5 _; V2 u: Q
    4.4.2 讨论
    - y- U0 e+ n) `3 H% U& p由于Blob存储系统读访问量大,更新和删除很少,特别适合通过CDN技术分发
    0 l* N7 ?# K4 Q& C到离用户最近的节点。CDN也是一种缓存,需要考虑与源服务器之间的一致性。源+ I& f/ M9 Z8 G7 {
    服务器更新或者删除了Blob数据,需要能够比较实时地推送到CDN缓存节点,否则
    * r6 L5 i5 R- n; }( t7 t& Z只能等到缓存中的对象被淘汰,而对象的有效期一般很长,热门对象很难被淘汰。
    / P8 J0 q" N! V9 Y0 }另外,淘宝在研发CDN的过程中也发现,随着系统的规模越来越大,商用软件
    # c3 t( _2 P( d0 Y% S- `往往很难满足需求,通过采用开源软件与自主开发相结合的方式,可以有更好的可
    0 _/ \8 d5 i1 {: J: @控性,系统也有更高的可扩展性。互联网技术的优势在于规模效应,随着规模越来
    - ~, y, t9 a$ y0 `: N! h/ o# Y越大,单位成本也会越来越低。
    ; H& J7 ~" ^$ z  w$ ^* k( O' X# q当然,随着硬件技术的发展,淘宝CDN架构也经历着变革。例如SSD价格快速
    4 f1 M7 d! R- P) `; r* t. ~下降,使得SSD+SAS+SATA分级存储的优势不再明显,新上线的CDN缓存节点配备6 p8 G* c+ C4 ^) s" @
    的磁盘均为SSD
    0 |" ^6 _9 U* V( D
    : A5 X* L2 g% @* w
    % x7 s+ H, {+ `
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-3-11 19:20 , Processed in 0.257390 second(s), 29 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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