fastdfs分布式文件系统之Storage server介绍

在上一篇文章的fastdfs结构图中,我们可以看出FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器(tracker)主要做

调度工作,就像公交车站里面的调务员一样,它负责通过负载均衡选出最优的存储节点(storage)。存储节点(storage)顾名思义就是负责存储、

数据同步、数据的操作的一个服务。今天我们将会重点对Storage server进行介绍。

概述

Storage server(简称storage)以组group为单位,如上图一个group内包含多台storage机器,数据互为备份,存储空间以group内容量最小的

storage为准,建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。以group为单位组织存储能方便的进行应用隔离、负载均衡

、副本数定制(group内storage server数量即为该group的副本数),比如将不同应用数据存到不同的group就能隔离应用数据,比如group1为内

网访问数据,group2为外网访问数据。同时还可根据应用的访问情况来将应用分配到不同的group来做负载均衡;缺点是group的容量受单机存储

容量的限制比如gourp1中有3个storage,storage1为100G、storage2为120G、storage为110G,那么对于group1来说存储空间大小就是100G。

当group中有机器坏掉时,数据的恢复只能依赖group中的其他机器,所以恢复时间会特别的长。

storage存储

在group中每个storage的存储依赖于本地文件系统,所以storage可以动态增加存储空间大小,比如fastdfs系统使用一段时间之后group1的空间使

用完了,那我们可以动态为group1下面的所有storage主机挂载更多的磁盘。而且可以指定那些盘为storage的存储目录比如有5块磁盘,分别挂载

在/data/disk1-/data/disk5,那么可将这5个存储目录都配置为storage的数据存储目录。

当storage接受到客户端或其它storage同步的写文件请求时,将会根据配置好的规则,选择其中一个存储目录来存储文件。

为了防止单个目录下的文件数太多,在storage第一次启动时,会在每个数据存储目录里创建2级子目录,每级256个,总共65536个文件,新写的文

件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中。

storage的同步策略

文件同步是由独立的线程负责的,每个Storage都有到同组中其他Storage的同步线程,如一组三个Storage,那么每个Storage都有两个线程负责到其他

两个Storage的同步。同步线程由Tracker通讯线程启动,因为只有Tracker才知道一组中有哪些Storage。

同步线程的执行过程主要由源同步与Binlog同步两部分组成,具体的同步过程我将会在另一篇文章中进行详细的介绍。

注:本文部分资料参考chinaunix和其它网站

时间: 2024-08-25 14:46:16

fastdfs分布式文件系统之Storage server介绍的相关文章

fastdfs分布式文件系统之tracker server介绍

tracker server是FastDFS文件系统的协调者,其主要作用是负载均衡和调度.Tracker server在内存中记录分组和Storage server的状态等信息, 不记录文件索引信息,占用的内存量很少.另外,客户端(应用)和Storage server访问Tracker server时,Tracker server扫描内存中的分组和 Storage server信息,然后给出应答.由此可以看出Tracker server非常轻量化,不会成为系统瓶颈. FastDFS集群中的Tra

FastDFS 分布式文件系统之一storage 服务部署

storage 安装 1, 安装相关库文件         git clone https://github.com/happyfish100/libfastcommon.git         cd libfastcommon/         sh make.sh         sh make.sh install 2, 安装fastDFS         git clone https://github.com/happyfish100/fastdfs.git         cd fa

FastDFS 分布式文件系统 搭建部署

搭建部署FastDFS 分布式文件系统 什么是分布式文件系统 分布式文件系统 ( Distributed File System ) 是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连 分布是文件系统的设计基于客户机/服务器模式 一个典型的网络可能包括多个供多用户访问的服务器 对等特性允许一些系统扮演客户机和服务的双重角色 衡量分布式文件系统的优劣 数据的存储方式 数据的读取速率 数据安全机制 FastDFS介绍 FastDFS是一款开源分布式文件系统,它用纯

django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除

运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.168.1.216 192.168.1.217 我们只需要在配置文件中进行配置即可,然后利用客户端提供的接口通过简单的代码就可以将文件上传到分布式文件系统中 至于内部实现机制,可以参考我的另外一篇博客:分布式文件系统Fastdfs原理及部署 再次提醒在安装客户端可能会遇到各种不可控的因素,导致你上传失败

上传图片至fastdfs分布式文件系统并回显

事件,当我们浏览完图片选中一张时,触发onchange事件将图片上传到服务器并回显. 1 <img width="100" height="100" id="allUrl" src="${brand.imgUrl }"/> 2 <input type="hidden" name="imgUrl" id="imgUrl" value="${b

07.Linux系统-Fastdfs分布式文件系统-互为主从配置搭建部署

Fastdfs分布式文件系统-互为主从配置部署 1.安装基础依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel unzip 2.下载安装 libfastcommon wget https://github.com/happyfish100/libfastcommon/archive/master.zip 3.解压安装 unzip master.zipcd libfastcommon

使用Webupload上传图片到FastDFS分布式文件系统

使用Webupload插件上传图片到FastDFS分布式文件系统. 前提条件:1.已安装FastDFS分布式文件系统 2.使用webuploader插件上传文件 3.maven工程已引入FastDFS依赖 图片上传及图片回显部分代码如下: <!-- 添加商品页面 --> <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head>

FastDfs 分布式文件系统 (实测成功)

最近公司需要搭建一台FastDfs 分布式文件系统,查询和参考了网络很多资料,但是从头到尾按他们的配置,中间都会或多或少的出错,可能是版本的问题,也可能是其他问题,经过自己不断的研究,终于成功配置完成,而且已经应用线上.现在把经验分享出来供大家参考,也作为自己的一个记录,以便今后用到能回顾一下. 1.下载软件 网上先下载需要安装的软件 2.前期准备 所需的工具下载完毕后,开始搭建准备,首先下载所需全部工具运行命令 yum -y install zlib zlib-devel pcre pcre-

Fastdfs分布式文件系统之文件同步机制

在前面几篇文章中我们对fastdfs系统的概述.tracker server.storage server以及文件的上传.下载.删除等功能的介绍, 本文将对同一组的不同storage server之间的同步以及新增storage server的同步进行介绍. fastdfs文件系统结构 fastdfs文件系统原理 从fastdfs文件系统结构中我们可以看出不管是上传文件.删除文件.修改文件及新增storager server,文件的同步都是同组 内多台storager server之间进行的.下