分布式系统介绍资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、分布式系统介绍
分布式文件系统的作用:1、超大数据存储;2、数据高可用(冗余备份);
3、读写高性能;
4、支持高并发;
5、海量数据计算。
目前的数据量越来越大,单台服务器已经无法满足以上需求,因此分布式文件系统就是解决此类问题。
下面主要以轻量级分布式文件系统FastDFS来介绍。FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线数据服务。
FastDFS架构:
FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(stora ge server)、客户端(client):
∙tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比G
FS中的master更为精简,不记录文件索引信息,占用的内存量很少。跟踪器和存储节
点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下
线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压
力情况随时增加或减少。
∙storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(m eta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理
文件。存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,Fa
stDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,
以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,val
ue为1024。文件metadata是文件属性列表,可以包含多个键值对。为了支持大容量,
存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,
卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容
量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相
同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。在卷中增加服务器时,
同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供
服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,
并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
∙client:客户端(不是必须的),作为业务请求的发起方,通过专有接口,使用TCP/IP 协议与跟踪器服务器或存储节点进行数据交互。使用FastDFS模块内置的文件上传和下
载,client可以配置在单独的机器上,也可以在tracker或者storage上。client并不需
要启动服务,只是在发起业务时,负责与tracker和stroage通信,完成文件上传和下
载的业务。
FastDFS默认的业务流程:
上传文件交互过程:
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。
FastDFS file download
下载文件交互过程:
1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件
名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。
图表 1 上传交互流程
图表 2 下载交互流程
FastDFS与Nginx http Server的业务流程:
FastDFS一般通过FastDFS Client进行文件数据的上传下载等业务。目前FastDFS的Client版本有java,c#,Node.js以及c(FastDFS内置客户端),用来进行业务的处理。FastDFS的分布式存储的数据,如果需要提供http在线数据服务,目前通常采用nginx和apache集成进行。具体的集成下面的部署说明会有介绍。
图表 3 FastDFS与Nginx集成
一般情况下每台Storage服务器都应该部署一台Nginx服务器,以提供数据下载服务。在前端配置一台负载均衡服务器器,将不同的请求分发到不同的数据服务器上。
二、分布式文件系统FastDFS的部署
搭建FastDFS系统还是有点繁琐(对于不熟悉Linux环境),搭建FastDFS系统需要做以下准备:
硬件准备:
至少需要准备三台linux 系统最好使用CentOS,配置环境一台Tracker 节点服务器,至少两Storage节点服务器。
图表 4 典型FastDFS 结构
安装前需要准备的软件:
1、putty 远程控制软件
如果在自己机器上安装linux虚拟机,那么不需要下面这两款软件。如果使用公司的虚拟机那么需要安装这款软件以远程操作linux。
这是一款可以在windows平台使用远程登录linux,执行shell操作的
工具。使用界面如下:
所有相关的软件下载地址
http://192.168.130.231/uglobesetup/fastdfs/
2、tigerVNC
这是一款可视化操作linux平台的简单好用远程控制平台。在windows
端安装TigerVNC Viewer,在linux端安装TigerVNC Server,即可远
程可视化控制linux。
windows上安装tigervnc-1.3.1.exe。
linux机器上安装一般采用命令安装(一般现在主流linux系统都有软
件仓库,大部分常用软件都在软件仓库,特别是知名开源软件,使用
命令可以直接安装,这点是与windows系统很大不同。),直接使用
命令: