分布式存储fastDFS

1.分布式存储fastDFS


fastDFS是开源的轻量级分布式文件系统,由纯C语言实现,支持Linux等类Unix系统,追求高性能和高可扩展性,可以看做是基于文件的键值(key–value)存储系统,由淘宝开发平台架构师余庆开发。

FastDFS百度百科:http://baike.baidu.com/view/2466025.htm

FastDFS官方论坛:http://bbs.chinaunix.net/forum-240-1.html

FastDFS下载:http://sourceforge.net/projects/fastdfs/files/

其提供的功能有:

  • upload 上传文件
  • download 下载文件
  • delete 删除文件

2.实现的模块


在fastDFS中,只有两种角色,分别是storage和tracker,但是实际是有三个模块:
- tracker 中间介质(追踪器)
- storage 存储介质
- fastFDS client 客户

3.文件上传过程


我们可以通过 FastDFS 对文件的上传过程,来初步了解 FastDFS 的基本架构。首先客户端client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server 的指定端口来实现的,Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server ,然后将这个Storage Server 的地址等信息返回给 client,然后 client 再通过这些信息连接到这台Storage Server,将要上传的文件传送到给 Storage Server上。

这里写图片描述

4.架构剖析


首先,FastDFS 是包括一组 Tracker Server 和 Storage Server 的。
Tracker Server 与 Storage Server 之间不直接通信,其基本的信息由配置文件在系统启动加载时获知。多台 Tracker Server 之间保证了 Tracker 的分布式,Tracker Server 之间是对等的,防止了单点故障。
Storage Server 是分成多个 Group,每个 Group 中的Storage 都是互相备份的,也就是说,如果 Group1 有 Storage1、Storage2、Storage3,其容量分别是100GB、100GB、100GB,那么 Group1 的存储能力是 100GB,而不是 300GB,这就是互相备份的意思。
进一步说,整个 Group 的存储能力由该组中该储能力最小的 Storage 决定。多个 Group 之间的存储方式,可以采用 round robin(轮训)、load balanced(负载均衡)或指定 Group 的方式。另一点相对于MS(Master-Slave)模式的优势,就是 Tracker Server 与 Master 是决然不同的,不仅 master 有上面可能提到的单点故障问题,而且 client 与 master 之间可能会出现瓶颈。但 FastDFS 架构中,Tracker Server 不会称为系统瓶颈,数据最终是与一个available 的 Storage Server 进行传输的。

5.安装fastDFS


tar zxvf fastdfs-5.05.tar.gz

yun@Kyrie:~/09$ cd fastdfs-5.05/
yun@Kyrie:~/09/fastdfs-5.05$ ls
client  conf             fastdfs.spec  hhh.txt  INSTALL  php_client  restart.sh  storage  tracker
common  COPYING-3_0.txt  HISTORY       init.d  make.sh  README.md   stop.sh     test
yun@Kyrie:~/0902/fastdfs-5.05$ 

执行以下2条命令
./make.sh
sudo ./make.sh install

6.修改配置文件


先修改一下三个文件

 sudo mv client.conf.sample client.conf
 sudo mv storage.conf.sample  storage.conf
 sudo mv tracker.conf.sample tracker.conf
tracker.conf 中修改
base_path=/usr/fastdfs #用于存放日志。
注意 确保/usr/fastdfs 目录存在

storage.conf 中修改
base_path=/usr/fastdfs/storage #用于存放日志。
store_path0=/usr/fastdfs/fastdfs0 #存放数据,若不设置默认为前面那个。
tracker_server=192.168.2.105:22122 #指定tracker服务器地址,不能是127.0.0.1
注意 确保/usr/fastdfs/storage、 /usr/fastdfs/fastdfs0目录存在

client.conf 中同样要修改
base_path=/usr/fastdfs #用于存放日志。
tracker_server=192.168.2.105:22122 #指定tracker服务器地址

启动tracker和storage
sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

检查进程
ps -ef |grep fdfs
若tracker和storage都启动了,表示成功

上传文件和删除文件
fdfs_test /etc/fdfs/client.conf upload hello.txt

fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgCaVeVnY2AcveAAAAAFDGtH6s805_big.txt

综上所述完成上传和删除文件功能。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值