视频CDN技术分析(2)

传统CDN架构

1. 传统CDN整体架构

传统CDN-整体架构

源站:传统CDN架构中,源站一般由源站存储和源站缓存两部分构成。源站存储一般采用分布式存储,如TFS,HDFS,MobileFS,Swift等等,源站存储提供大容量、高可用的存储功能;源站缓存主要面向CDN节点未命中的流量。

Edge Cache(CDN节点):Edge Cache是用户侧的缓存节点。如果将用户类比成CPU,则源站缓存可以被称为L2 Cache,Edge Cache,即CDN节点则可以被称为L1 Cache。

2. 源站存储架构

传统CDN-源站存储

以TFS、MogileFS两种比较有代表性的分布式文件系统为例,核心的存储系统主要包括Directory Server和Data Server两部分。

Directory Server:主要任务是维护存储文件的元数据,包括文件名,文件的物理存储位置,副本数量等,以及维护数据的可靠性(位置数据文件的副本数);

Data Server:主要负责存储数据,检查数据完整性,回收清理无用数据等。根据是否支持chunk存储,存储存在不同的设计选择:多个文件存储到一个chunk(例如TFS小文件),不分chunk(例如MogileFS),将一个大文件分成多个小的chunk(例如sheepdog虚拟机块设备存储)。

将小文件合并成大文件的主要目的是减少对系统inode cache的依赖,减少磁盘I/O因系统缓存抖动造成性能抖动。将大文件拆分为多个小的chunk(block),主要目的是提升基于网络实现的虚拟机块存储的随机访问性能。是否分chunk决定于应用存储的场景。

3. Edge Cache(CDN节点)架构

传统CDN-EdgeCache

如上图所示,传统架构包括基于LVS和Haproxy构建负载均衡集群,以及基于Apache TrafficServer或者Squid构建的缓存集群两部分。负载均衡策略通常使用Haproxy的一致性哈希算法,基于缓存对象的全部或部分URL对流量进行静态负载均衡。整个集群的最大吞吐量为LVS负载均衡器的上行容量,缓存容量为缓存服务器缓存容量之和。

4. 传统CDN面临的技术难题

1)如何应对高并发的用户请求。

2)如何从分利用不同类型的存储介质,充分发挥存储资源的性能。

对高并发的诉求,推动用户选择有更好并发性能的缓存服务器,比如ATS;而对存储性能的需求,推动缓存服务器脱离操作系统文件系统,转向直接管理内存、SSD以及机械硬盘等存储介质。

发表评论

电子邮件地址不会被公开。 必填项已用*标注