当前位置:文档之家› 分布式系统介绍资料

分布式系统介绍资料

一、分布式系统介绍分布式文件系统的作用:1、超大数据存储;2、数据高可用(冗余备份);3、读写高性能;4、支持高并发;5、海量数据计算。

目前的数据量越来越大,单台服务器已经无法满足以上需求,因此分布式文件系统就是解决此类问题。

下面主要以轻量级分布式文件系统FastDFS来介绍。

FastDFS是一个开源的轻量级分布式文件系统。

它解决了大数据量存储和负载均衡等问题。

特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线数据服务。

FastDFS架构:FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(stora ge server)、客户端(client):∙tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。

在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。

相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。

跟踪器和存储节点都可以由一台或多台服务器构成。

跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。

其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

∙storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(m eta data)都保存到存储服务器上。

Storage server直接利用OS的文件系统调用管理文件。

存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。

所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为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系统很大不同。

),直接使用命令:yum install tigervncyum install tigervnc-server安装过程中可能会提示Y/N,一律Y安装完毕。

使用 vncserver 命令即可启动服务。

第一次启动vncserver 会提示设置密码,设置密码即可启动。

测试过程可以关闭防火墙,也可以配置防火墙的过滤端口。

暂时关闭防火墙的命令: service iptables stop3、安装gccgcc是linux下c语言的编译环境和工具。

fastdfs使用c语言开发,网上提供的是源码包,需要自行编译。

这点大家以后在使用Linux的时候也要注意,linux下的软件主要是开源社区提供的,有些软件需要下载后用户编译部署。

安装gcc也很简单一行命令:yum install gcc如果还需要c++编译环境使用下面的命令(我们这次只需要gcc环境):yum install gcc gcc-c++ kernel-devel4、安装GitGit是另外一种版本管理软件。

fastdfs代码使用git托管的,因此需要安装此工具。

安装这个工具也很简单一行命令:yum install git5、fastdfs安装需要准备的软件libfastcommonFastDFS_v5.07.tar.gz6、安装libfastcommon命令行输入:git clone https:///happyfish100/libfastcommon.git 等待libfastcommon下载完毕,使用命令cd切换路径路径到libfastcommon路径,命令行输入如下命令cd /libfastcommon./make.sh./make.sh install如果编译生成成功,会在/usr/lib64,/usr/lib下分别生成libfastcommon.so但是FastDFS主程序设置的lib目录是/usr/local/lib所以需要创建软链接.ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.soln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.soln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.soln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so注:使用命令pwd查看当前的路径使用命令cd可以切换当前路径。

6、安装FastDFSFastDFS目前的源码托管在sourceforge服务器上,可以从服务器上下载源码,使用以下命令:wget/projects/fastdfs/files/FastDFS%20Ser ver%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extensi on%20Source%20Code%20V5.07/FastDFS_v5.07.tar.gz/download下载完毕会提示"FastDFS_v5.07.tar.gz"已经保存。

这是压缩包格式,使用一下命令解压缩:tar -xzvf FastDFS_v5.07.tar.gz解压缩完毕,所有代码会解压缩到FastDFS目录下,切换当前目录到FastDFS,然后开始编译并安装:cd FastDFS./make.sh./make.sh install如果顺利的话,至此FastDFS的安装完成。

然后需要开始FastDFS的配置。

安装完成后,一些可执行文件会部署到 /usr/bin目录下,一些配置文件会部署到/etc/fdfs/ 目录下。

7、配置FastDFS的配置文件不管是Tracker服务器,还是Storage服务器都按照上面1~6的流程部署。

配置Tracker服务,将当前目录切换到/etc/fdfs目录下,修改配置文件tracker.conf.sample,一般情况下拷贝tracker.conf.sample,重命名为tracker.conf。

然后编辑tracker.conf.文件。

拷贝命令 cp tracker.conf.sample tracker.conf可以在命令行环境下编辑,也可以在通过VNC在可视化环境下编辑。

vim tracker.conf可以根据需要配置修改里面的一些配置,比如base_path=/tracker ,目前我都采用的是默认配置。

使用命令启动tracker服务:fdfs_trackerd /etc/fdfs/tracker.conf停止服务采用命令:killall fdfs_trackerd配置Storage服务,同样是将当前目录切换到/etc/fdfs目录下,修改配置文件storage.conf.sample,拷贝重命名 storage.conf。

相关主题