一种数据下载系统及方法技术方案

技术编号:11593527 阅读:64 留言:0更新日期:2015-06-11 02:10
本发明专利技术公开了一种数据下载系统及方法,其中,所述系统包括多个下载集群,每个下载集群中包括L i nux虚拟服务器LVS、至少两个下载节点Ngi nx以及一个分布式文件系统HDFS,所述Ngi nx的操作系统通过用户空间文件系统FUSE挂载HDFS的存储服务;其中:LVS用于接收用户的下载请求,对各个Ngi nx进行调度选择,将所述下载请求转发给选中的Ngi nx;Ngi nx用于在接收到LVS转发的下载请求后,通过FUSE访问HDFS中存储的数据,响应用户的下载请求;HDFS用于存储数据。通过本发明专利技术,能够满足存储数据量大、文件数量大,且某部分业务用户访问热点不集中时的下载服务需求。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及。
技术介绍
随着信息技术的发展,人们日益习惯于通过网络来获取各种数据。例如,一种通常的方式就是通过数据下载系统来下载所需的内容。目前使用较多的下载架构主要有两种,一种是传统的⑶N(Content DeliveryNetwork,内容分发网络)多层缓存架构,另一种是一般的视频网站使用较多的下载架构。CDN多层缓存架构的示意图如图1所示,在这种架构中,全局数据仅存储在顶层源站设备中,每个边缘服务节点由Nginx做反向代理,将请求转给后端的Squid, Squid接到用户请求后回源站抓取数据提供服务,前端使用DNS方式进行负载均衡。这种架构通常适用于整体数据量不大,且热点集中的下载业务。视频网站使用较多的下载架构如图2所示,在这种架构中,全局建立若干分布式存储集群,各集群间数据没有冗余或冗余较低,使用基于HTTP (HyperText TransferProtocol,超文本传输协议)的第七层负载均衡设备对全局的Nginx服务器进行负载均衡。这种架构通常适用于视频下载业务,整体并发度较低,多为连续读取。但是现在一些场合(例如大型软件、游戏等安装程序下载等)中的下载服务通常有如下特点:存储数据量大、文件数量大,且某部分业务用户访问热点不集中等等。因此,迫切需要本领域技术人员解决的技术问题就在于,如何提供一种新的下载架构,能够满足上述要求。
技术实现思路
本专利技术提供了,能够满足存储数据量大、文件数量大,且某部分业务用户访问热点不集中时的下载服务需求。本专利技术提供了如下方案:一种数据下载系统,包括多个下载集群,每个下载集群中包括Linux虚拟服务器LVS、至少两个下载节点Nginx以及一个分布式文件系统HDFS,所述Nginx的操作系统通过用户空间文件系统FUSE挂载HDFS的存储服务;其中:所述LVS用于接收用户的下载请求,对各个Nginx进行调度选择,将所述下载请求转发给选中的Nginx ;所述Nginx用于在接收到LVS转发的下载请求后,通过FUSE访问HDFS中存储的数据,响应用户的下载请求;所述HDFS用于存储数据。其中,所述LVS具体用于:接收到用户的下载请求后,根据各个Nginx的性能和/或当前负载状况对各个Nginx进行调度选择,将所述下载请求发送给性能和/或当前负载状态符合预置条件的Nginx。其中,所述LVS为两个。其中,两个LVS互为主备,每个LVS通过一个处于主模式的虚IP向用户提供下载服务,同时存在一个处于备用模式的虚IP ;当一个LVS无法提供服务时,另一个LVS通过启动所述处于备用模式的虚IP来接管该LVS的下载服务。其中,所述HDFS包括名字节点及至少两个数据节点,所述名字节点与LVS复用一台服务器,每个数据节点与一个Ngi nx复用一台服务器。其中,Nginx的数目与数据节点的数目相同。一种数据下载方法,应用于一数据下载系统中,所述数据下载系统包括多个下载集群,每个下载集群中包括Linux虚拟服务器LVS、至少两个下载节点Nginx以及一个分布式文件系统HDFS,所述HDFS用于存储数据,所述Nginx的操作系统通过用户空间文件系统FUSE挂载HDFS的存储服务;所述方法包括:通过所述LVS接收用户的下载请求,并由所述LVS对各个Nginx进行调度选择,将所述下载请求转发给选中的Nginx ;Nginx在接收到LVS转发的下载请求后,通过FUSE访问HDFS中存储的数据,响应用户的下载请求。其中,所述对各个Nginx进行调度选择,将所述下载请求转发给选中的Nginx包括:根据各个Nginx的性能和/或当前负载状况对各个Nginx进行调度选择,将所述下载请求发送给性能和/或当前负载状态符合预置条件的Nginx。其中,所述LVS为两个。其中,两个LVS互为主备,每个LVS通过一个处于主模式的虚IP向用户提供下载服务,同时存在一个处于备用模式的虚IP ;当一个LVS无法提供服务时,另一个LVS通过启动所述处于备用模式的虚IP来接管该LVS的下载服务。其中,所述HDFS包括名字节点及至少两个数据节点,所述名字节点与LVS复用一台服务器,每个数据节点与一个Nginx复用一台服务器。其中,Nginx的数目与数据节点的数目相同。其中,还包括:对Nginx的参数进行调整,所调整的参数包括Sendfile选项、worker进程数、单进程最大连接数、backlog参数、output_buffers中的一个或多个。其中,还包括:对HDFS参数进行调整,所调整的参数包括read函数的参数数目、IPCserverlisten队列长度、IPC Server工作线程数、数据传输最大线程数中的一个或多个。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:第一,由于在下载系统中应用了 HDFS,因此,使得单个下载集群能够提供百TB级别存储,可通过简单的插拔方式增加存储服务器,提高存储能力,满足大存储数据量的需求;同时,由于不使用硬件RAID卡,而是通过HDFS服务对各磁盘进行并行读取,因此,可以实现单机各磁盘独立读取,能够很好地满足用户访问无热点、文件读取分散的高I/O需求,并提高数据吞吐量。实验数据显示,在使用12块7200转SATA盘的情况下,单机的总1PS可达1000以上;最高可实现单机15000以上的并发连接,IGb以上的带宽吞吐。第二,由于每个集群仅将LVS暴露给用户,因此,使得每个集群具有高内聚的特点,也即,如果某个或某些Nginx由于发生故障等无法向外提供服务,可以通过LVS在集群内部予以解决(例如,可以对后端Nginx进行可用性监控,对异常Nginx进行秒级摘除等),不会影响到其他的集群。第三,可以直接由LVS在集群内部进行负载均衡。第四,由于每个集群内容都对数据进行了存储,因此,可以实现数据在不同集群间的完全冗余,可以保证能够快速地进行流量调度与切换。第五,采用上述结构,可以很容易的实现对系统的扩展。例如,若发现前端LVS的网络性能成为瓶颈,可增加独立的LVS服务器或在现有服务器上增加网卡,快速实现性能扩展;若数据存储空间不足、或下载服务不能满足需求,可简单通过增加HDFS的数据节点进行存储空间及下载服务性能扩展,相应的,HDFS会自动完成新节点的数据同步。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是现有技术中的下载架构示意图;图2是现有技术中的另一下载架构不意图;图3是本专利技术实施例提供的系统的示意图;图4是本专利技术实施例提供的系统中各服务的物理部署示意图;图5是本专利技术实施例提供的方法的流程图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中当前第1页1 2 3 本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/62/CN104702702.html" title="一种数据下载系统及方法原文来自X技术">数据下载系统及方法</a>

【技术保护点】
一种数据下载系统,其特征在于,包括多个下载集群,每个下载集群中包括Linux虚拟服务器LVS、至少两个下载节点Nginx以及一个分布式文件系统HDFS,所述Nginx的操作系统通过用户空间文件系统FUSE挂载HDFS的存储服务;其中:所述LVS用于接收用户的下载请求,对各个Nginx进行调度选择,将所述下载请求转发给选中的Nginx;所述Nginx用于在接收到LVS转发的下载请求后,通过FUSE访问HDFS中存储的数据,响应用户的下载请求;所述HDFS用于存储数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:王力王锋
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1