Rsync和FastDFS
在做分布式文件存储的时候,常常用到两个工具,Rsync和FastDFS;这两者本质的区别在于前者的实时性相面相对较差,需要手工编写脚本同步,然后在放到定时任务(cron)中;FastDFS自动实现同组内机器互备;
Rsync架构
Rsync分为客户端和服务器端,客户端主要负责和服务器通信,获取最新的文件;这里的机制和FastDFS有区别,因为没有实时性,所以Rsync在同步的时候,会将服务器端所有的文件都比对一遍,发现有变化才会将变化的文件同步过来,如果添加了—delete指令,还会将服务器端删除的文件在客户端也删除;FastDFS因为是实时同步的,所以只要有变化,便会通知各个组内的服务器进行同步,所以他的更新机制不是逐个比对,同步的效率会更高;
客户端只有一个配置文件:rsyncd.secrets(文件名和路径可以自定义,因为是需要客户端执行的时候作为参数传递的),这个配置文件配置了登录的密码(只有密码),用户名是在指定的时候通过参数指定的;
服务器端有三个配置文件:
- Rsyncd.conf:核心的配置文件,这里面配置了监听的ip以及port,allow/deny host(客户端IP),log info,file block(提供同步的文件信息)以及ref files info(下面将要提到的security以及motd文件);
- Rsyncd.security:里面定义了user/pwd键值对,用于验证连接的客户端身份;可以定义多个;
- Rsync.motd:这个文件就是定义客户端连接服务器端的时候,显示的友好文字,可以清空或者自定义一些文字;
有一点需要注意,就是需要服务器点打开873端口(默认Rsync监听端口)
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
FastDFS
FastDFS是我国的淘宝工程师开发的,是属于轻量级的分布式文件系统;实现物理存储的水平扩展,他和HDFS最大的差别在于并不会对文件进行切割(切片存储),所以比较适用于小文件的存储;FastDFS里面有两个核心组件:Tracker Server以及Storage Server,前者用于记录文件索引,后者用于存储文件;tracker server和storeage Server是松散耦合,如果是扩容物理存储,只要增加一台机器,配置称为storage Server,指向一台Tracker server,Tracker Server就会记录新增容的服务器;因为storage将会根据配置的tracker ip以及端口,向Tracker服务器发送通知,I'm in!
一个storage server里面可以包含N个Group,每个Group里面可以包含N个Storage,每个Storage都是一个存储空间,同一个组内的Storage是互相备份关系,上面也提到了,是那种增量式的备份;一个新的storage首次和tracker通信:
- tracker首先会将storage Server List同步给new storage,然后在给其他old storage发送最新的列表,这样完成了新列表全group内通知,并设置new storage状态为FDFS_STORAGE_STATUS_INIT;
- 接着,tracker将会指定一个old Storage服务器与之同步,并同时这是new storage状态为FDFS_STORAGE_STATUS_WAIT_SYNC(如果没有文件需要更新,设置为FDFS_STORAGE_STATUS_ONLINE),一次性将所有的文件同步到new storage上面,同步完毕后,状态将会设置为FDFS_STORAGE_STATUS_ONLINE;
- 同步数据完毕后,new storage首次发送心跳给tracker server的时候,tracker server会将其状态设置为FDFS_STORAGE_STATUS_ACTIVE;
- 一个Group的存储空间是这一组机器中存储容量最小的那台机器;访问流程是客户端配置为访问一台Tracker,有这台Tracker来负责跟进文件名来确定分配那一台机器给客户单使用,客户端再向返回的storage server发送文件请求;但是安全性需要考虑;
当你需要获取/上传一个文件的时候,首先和tracker进行通信(上传不需要参数,下载需要提供文件名称,这个文件名称是当初上传的时候有FastDFS生成的),tracker中选择一个可用的storage返回,然后你在和这个storage服务器通信获取文件。
Rsync和FastDFS的更多相关文章
- FastDFS文件系统(二) fastdfs和其他文件系统区别
FastDFS文件系统(二) fastdfs和其他文件系统区别 一.概述 普通存储方案:Rsync.DAS(IDE/SATA/SAS/SCSI等块).NAS(NFS.CIFS.SAMBA等文件系统). ...
- rsync是类unix系统下的数据镜像备份工具
http://baike.baidu.com/view/1183189.htm Ubuntu安装: sudo apt-get install rsync RedHat: yum install r ...
- 利用Inotify和Rsync将webproject文件自己主动同步到多台应用server
背景:须要搭建一套跟线上一模一样的环境,用来预公布,这是当中的web分发的一个小模块的实现过程. 1 工具以及环境简单介绍 1.1,Inotify工具 Inotify,它是一个内核用于通知用户空间程序 ...
- 【架构设计】分布式文件系统 FastDFS的原理和安装使用
本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下: -- mo ...
- rsync 笔记之 list
通过 rsync --list-only 可以列出可用的 文件/目录或者 module 下面两者的含义是完全不同的: rsync --list-only root@192.168.4.140: 使用系 ...
- FASTDFS调研报告(V1.0)
之前的文章,现在放出来,以供参阅. 一.fastdfs简介 FastDFS是一个轻量级的开源分布式文件系统 FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 Fas ...
- 网站文件系统发展&&分布式文件系统fastDFS
网站文件系统发展 1.单机时代的图片服务器架构 初创时期由于时间紧迫,开发人员水平也很有限等原因.所以通常就直接在website文件所在的目录下,建立1个upload子目录,用于保存用户上传的图片文件 ...
- FastDFS 安装及使用
FastDFS 安装及使用 2012-11-17 13:10:31| 分类: Linux|举报|字号 订阅 Google了一下,流行的开源分布式文件系统有很多,介绍如下: mogileF ...
- 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...
随机推荐
- JDK的帧--java.util包装工具库
题词 JDK,Java Development Kit. 首先,我们必须认识到,,JDK但,但设置Java只有基础类库.它是Sun通过基础类库开发,这是唯一的.JDK书写总结的类库.从技术含量来说,还 ...
- RHCA学习笔记:RH442-Unit9内核定时与进程延时
Unit 9 Kernel Timing and Process Latency 内核定时与进程延时 学习目标: A.了解CPU 是怎样追踪时间的 B.调整CPU的访问次数 C.调整调度延时 D. ...
- 特殊的forward_list操作
为了理解forward_list为什么有特殊版本的添加和删除操作,考虑当我们从一个单向链表中删除一个元素时会发生什么.当添加或删除一个元素时,删除或添加的元素之前的那个元素的后继会发生变化.为了添加或 ...
- 【转】Hibernate映射机制之XXX.hbm.xml
http://blog.csdn.net/a9529lty/article/details/6454924[注意多对一中“多”和“一”各自的java文件.xml文件的书写格式] 另外两篇总结:http ...
- ArcPy 函数列表(按字母顺序)
Function name Category AddError Messages and error handling AddFieldDelimiters Fields AddIDMessage M ...
- verilog语法:进程名
always @ (posedge clk, negedge rstn)begin:State_flipflops if(!rstn) y<=S1; else y<=Y;end请问这段程序 ...
- 通过定时监听input框来实现onkeyup事件-
问题:因为zepto无法使用onkeyup 事件 解决方法:通过给input框绑定focus 事件,定时的去监听input的值得改变,在鼠标移出input后,清除定时器 <!DOCTYPE ht ...
- Meta http-equiv属性
http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变 ...
- Unity 3D 文件导入出错误解决方法以及unity圣典离线版下载地址
1.安装unity 时我选择了free版的,打开已有项目时出现如下错误提示. 解决方法:先把要导入的文件先拷贝到unity3d安装目录下对应的文件夹内,之后再返回unity3d软件,右键选择“导入”. ...
- MongoDB中的分组
一.MongoDB中的Count函数.Distinct函数以及分组 准备工作,插入一个班级的文档 > for(var i=0;i<10;i++){ ... db.Classes.inser ...