分布式文件系统--->fastDFS

同一个网站,根据客户端用电脑或手机访问不同 出现的会有宽屏或长格式  是用不同的样式表文件决定 但网页文件还是那一个

FASTDFS   主控服务器 (存所有文件目录信息,要找一个文件先找他)----》数据库服务器(存放文件)

分布式文件系统:fastDFS功能:文件存储,文件访问,文件同步(上传下载) 解决大容量存储和负载均衡问题,适合以文件为载体在线服务,如相册网站,视频网站(京东,51cto,赶集,支付宝
FastDFS服务分为跟踪器和存储节点两块,存储节点一个组可以是多个,这样使保存的数据更安全。客户的数据可以上传下载,节点上都能查到,但客户把自己的数据文件删了,节点就不会有。
______________________________________________________________
fdfs_trackerd 22122         fdfs_storaged 23000
—————————————————————————————————————————————

1)vh01
1.先新建两台虚拟机,vh01和vh02
vh01.tedu.cn 192.168.4.1/24 tracker
vh02.tedu.cn 192.168.4.2/24  group1/storage   额外硬盘

2.安装fastDFS trakcer (vh01做跟踪器)
安装依赖包
# ls fdfs_soft/
fastdfs-nginx-module_v1.16.tar.gz
FastDFS_v4.06.tar.gz
libevent-devel-1.4.13-4.el6.x86_64.rpm
libevent-doc-1.4.13-4.el6.noarch.rpm
libevent-headers-1.4.13-4.el6.noarch.rpm
nginx-1.7.10.tar.gz
tedu.jpg
#cd fdfs_soft
# yum -y install gcc libevent make *.rpm (先把依赖包装,因为有些依赖在光盘中没有,先下好放在一起,再装)rpm包也可以用yum装 不需要用rpm -ivh  *.rpm (这样可以解决依赖关系)
# tar -zxvf FastDFS_v4.06.tar.gz
# cd FastDFS
# vim INSTALL (查看安装需要过程和依赖)
# ./make.sh
# ./make install

2.配置tracker (vh01跟踪器)
# cp init.d/fdfs_trackerd  /etc/init.d/    (拷贝fdfs_trackerd 启动脚本到/etc下)
# mkdir -p /data/fastdfs
# vim /etc/fdfs/tracker.conf
 22 base_path=/data/fastdfs
 25 max_connections=4096
 32 # the method of selecting group to upload files
 33 # 0: round robin
 34 # 1: specify group
 35 # 2: load balance, select the max free space group to upload file
 36 store_lookup=2
186 storage_ids_filename = storage_ids.conf
# cp storage_ids.conf /etc/fdfs/
100001     group1   192.168.4.2

3.启动服务器:
# service fdfs_trackerd start; chkconfig fdfs_trackerd on
Starting FastDFS tracker server:
# service fdfs_trackerd status
fdfs_trackerd (pid 3342) 正在运行...
————————————————————————————————————————————
# vim /data/fastdfs/logs/trackerd.log 日志文件存在这(出现什么问题可以查看日志)
————————————————————————————————————————————

2)vh02
1.配置storage(vh02存储节点,属于group1组)
#cd fdfs_soft/
#yum -y install gcc libevent  *.rpm make
#tar -zxf FastDFS_v4.06.tar.gz
#cd FastDFS
#./make.sh
#./make.sh install
#lsblk
#parted /dev/vdb

mktab gpt
mkpart
primary
ext4
1M
-1
quit

#lsblk
#mkfs.ext4 /dev/vdb1
#blkid  /dev/vdb1
#mkdir -p /data/fastdfs
#vim /etc/fstab (永久挂载)
UUID="c8b37f56-7bb5-4c9b-b45b-610a3884f785" /data/fastdfs ext4 defaults  0   0

#mount -a
#cp init.d/fdfs_storaged /etc/init.d/ (拷贝fdfs_storadged启动脚本到etc下)
#vim /etc/fdfs/storage.conf
 7 group_name=group1
 37 base_path=/data/fastdfs
42 max_connections=4096
96 store_path_count=1
100 store_path0=/data/fastdfs
109 tracker_server=192.168.4.1:22122
172 upload_priority=10
起服务并验证:
#service fdfs_storaged start; chkconfig fdfs_storaged on
#service fdfs_storaged status
# ls /data/fastdfs/data/00
#netstat -anptu | grep :23000

3)物理机
配置物理主机为客户端(192.168.4.254)
1、在物理主机上创建工作目录
# mkdir /tmp/fdfs
2、将服务端上/usr/local/bin/下所有的fdfs命令文件拷贝到物理主机
[[email protected] FastDFS]# scp /usr/local/bin/fdfs_* 192.168.4.254:/tmp/fdfs/
3、将服务端配置文件client.conf拷贝到物理主机
[[email protected] FastDFS]# scp /etc/fdfs/client.conf 192.168.4.254:/tmp/fdfs/
4、修改配置文件
#cd /tmp/fdfs
#vim client.conf
base_path=/tmp/fdfs
tracker_server=192.168.4.1:22122

物理机:数据上传和下载,删除:
[[email protected] fdfs]# ./fdfs_upload_file client.conf /etc/passwd
group1/M00/00/00/wKgEAljPFZyAXM7xAAALqve6qZ43997550

[[email protected] fdfs]# ./fdfs_download_file client.conf group1/M00/00/00/wKgEAljPFZyAXM7xAAALqve6qZ43997550 /tmp/users

服务器(vh02 storage)查看:
[[email protected] 00]# pwd
/data/fastdfs/data/00/00
[[email protected] 00]# ls    (物理机上传的服务器会有节点存储,文件名就是物理机生成的文件名和路径)
wKgEAljPFZyAXM7xAAALqve6qZ43997550

删除:(物理机把上传的删除后,服务器存储节点就没有了)
[[email protected] fdfs]# ./fdfs_delete_file client.conf group1/M00/00/00/wKgEAljPFZyAXM7xAAALqve6qZ43997550

4)vh02:
1.在storage上配置web访问(vh02加网站模块,上传图片文件)
#yum -y install -y pcre pcre-devel zlib-devel
#useradd -s /sbin/nologin nginx
#cd fdfs_soft/
#tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#tar -zxvf  nginx-1.7.10.tar.gz
#cd nginx-1.7.10
#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/
#make && make install

#cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
#vim /etc/fdfs/mod_fastdfs.conf
base_path=/data/fastdfs
tracker_server=192.168.4.1:22122
group_name=group1
store_path_count=1
store_path0=/data/fastdfs
#vim /usr/local/nginx/conf/nginx.conf
    location / {
            # root   html;
            # index  index.html index.htm;
            ngx_fastdfs_module;
        }

#/usr/local/nginx/sbin/nginx

2.测试,物理机上传图片:
[[email protected] fdfs]# ./fdfs_upload_file client.conf /root/桌面/2138294562.jpg
group1/M00/00/00/wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg

[[email protected] fdfs]# firefox http://192.168.4.2/group1/M00/00/00/wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg

服务器(vh02 storage)查看(也会有文件图片保存):
[[email protected] 00]# pwd
/data/fastdfs/data/00/00
[[email protected] 00]# ls
wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg

————

上面是vh01做fastDFS trakcer跟踪器 且只设一个group1组,组内只有一个备份存储节点vh02,现在在group1组加一个节点vh03(192.168.4.3),再加一个group2组,存储节点vh04(192.168.4.4),vh01 trakcer采取的存储数据的方式是轮循。一个组保存一次,当group1组保数据时,vh02和vh03这两个节点都会有备份。(这两个节点最大存储的空间以小的为准)。

1)vh01
[[email protected] fdfs_soft]# vim /etc/fdfs/storage_ids.conf
# <id>  <group_name>  <ip_or_hostname>
# 100001   group1  192.168.0.196
# 100002   group1  192.168.0.116
100001     group1   192.168.4.2
100002     group1    192.168.4.3
100003     group2    192.168.4.4
[[email protected] fdfs_soft]# vim /etc/fdfs/tracker.conf    (设置轮循存储)
 32 # the method of selecting group to upload files
 33 # 0: round robin
 34 # 1: specify group
 35 # 2: load balance, select the max free space group to upload file
 36 store_lookup=0

[[email protected] fdfs_soft]# service fdfs_trackerd restart;chkconfig fdfs_trackerd on

2)vh03:
192.168.4.3 加一块硬盘:
1.配置storage(vh03存储节点,属于group1组与vh02一样)
#cd fdfs_soft/
#yum -y install gcc libevent  *.rpm make
#tar -zxf FastDFS_v4.06.tar.gz
#cd FastDFS
#./make.sh
#./make.sh install
#lsblk
#parted /dev/vdb
mktab gpt
mkpart
primary
ext4
1M
-1
quit

#lsblk
#mkfs.ext4 /dev/vdb1
#blkid  /dev/vdb1
#mkdir -p /data/fastdfs
#vim /etc/fstab (永久挂载)
UUID="c8b37f56-7bb5-4c9b-b45b-610a3884f785" /data/fastdfs ext4 defaults  0   0

#mount -a
#cp init.d/fdfs_storaged /etc/init.d/ (拷贝fdfs_storadged启动脚本到etc下)
#vim /etc/fdfs/storage.conf
 7 group_name=group1
 37 base_path=/data/fastdfs
42 max_connections=4096
96 store_path_count=1
100 store_path0=/data/fastdfs
109 tracker_server=192.168.4.1:22122
172 upload_priority=10
起服务并验证:
#service fdfs_storaged start; chkconfig fdfs_storaged on
#service fdfs_storaged status
# ls /data/fastdfs/data/00
#netstat -anptu | grep :23000

3)vh03:
1.在storage上配置web访问(vh03加网站模块,上传图片文件)
#yum -y install -y pcre pcre-devel zlib-devel
#useradd -s /sbin/nologin nginx
#cd fdfs_soft/
#tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#tar -zxvf  nginx-1.7.10.tar.gz
#cd nginx-1.7.10
#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/
#make && make install

#cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
#vim /etc/fdfs/mod_fastdfs.conf
base_path=/data/fastdfs
tracker_server=192.168.4.1:22122
group_name=group1
store_path_count=1
store_path0=/data/fastdfs
#vim /usr/local/nginx/conf/nginx.conf
    location / {
            # root   html;
            # index  index.html index.htm;
            ngx_fastdfs_module;
        }

#/usr/local/nginx/sbin/nginx (也可做个链接 #ln -s /usr/lcoal/nginx/sbin/nginx /bin    #nginx)
#service fdfs_storaged start;chkconfig fdfs_storaged on

4)vh04:
1.配置storage(vh04存储节点,属于group2组)
#cd fdfs_soft/
#yum -y install gcc libevent  *.rpm make
#tar -zxf FastDFS_v4.06.tar.gz
#cd FastDFS
#./make.sh
#./make.sh install
#lsblk
#parted /dev/vdb

mktab gpt
mkpart
primary
ext4
1M
-1
quit

#lsblk
#mkfs.ext4 /dev/vdb1
#blkid  /dev/vdb1
#mkdir -p /data/fastdfs
#vim /etc/fstab (永久挂载)
UUID="c8b37f56-7bb5-4c9b-b45b-610a3884f541" /data/fastdfs ext4 defaults  0   0

#mount -a
#cp init.d/fdfs_storaged /etc/init.d/ (拷贝fdfs_storadged启动脚本到etc下)
#vim /etc/fdfs/storage.conf
 7 group_name=group2
 37 base_path=/data/fastdfs
42 max_connections=4096
96 store_path_count=1
100 store_path0=/data/fastdfs
109 tracker_server=192.168.4.1:22122
172 upload_priority=10
起服务并验证:
#service fdfs_storaged start; chkconfig fdfs_storaged on
#service fdfs_storaged status
# ls /data/fastdfs/data/00
#netstat -anptu | grep :23000

5)vh04:
1.在storage上配置web访问(vh04加网站模块,上传图片文件)
#yum -y install -y pcre pcre-devel zlib-devel
#useradd -s /sbin/nologin nginx
#cd fdfs_soft/
#tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#tar -zxvf  nginx-1.7.10.tar.gz
#cd nginx-1.7.10
#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/
#make && make install

#cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
#vim /etc/fdfs/mod_fastdfs.conf
base_path=/data/fastdfs
tracker_server=192.168.4.1:22122
group_name=group1
store_path_count=1
store_path0=/data/fastdfs
#vim /usr/local/nginx/conf/nginx.conf
    location / {
            # root   html;
            # index  index.html index.htm;
            ngx_fastdfs_module;
        }

#ln -s /usr/lcoal/nginx/sbin/nginx /bin  
 #nginx

#service fdfs_storaged start;chkconfig fdfs_storaged on

6)测试::
在物理机测试(结果保存第一张图片文件,存储在group1的两个节点,第二在group2节点)
[[email protected] fdfs]# ./fdfs_upload_file client.conf  /root/桌面/121.jpg
group1/M00/00/00/wKgEAljPTJuAa39OAACwEV-ILDc227.jpg

[[email protected] 00]# pwd
/data/fastdfs/data/00/00
[[email protected] 00]# ls
wKgEAljPEPGABqmoAAABqYAP-0I1945621_big    wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg
wKgEAljPEPGABqmoAAABqYAP-0I1945621_big-m  wKgEAljPL1SAJ-PhAAALqve6qZ40251435
wKgEAljPG46AAfv-AACwEV-ILDc994.jpg        wKgEAljPTJuAa39OAACwEV-ILDc227.jpg

[[email protected] 00]# pwd
/data/fastdfs/data/00/00
[[email protected] 00]# ls
wKgEAljPEPGABqmoAAABqYAP-0I1945621_big    wKgEAljPHCKAdT4XAADb1hKlWxM275.jpg
wKgEAljPEPGABqmoAAABqYAP-0I1945621_big-m  wKgEAljPL1SAJ-PhAAALqve6qZ40251435
wKgEAljPG46AAfv-AACwEV-ILDc994.jpg        wKgEAljPTJuAa39OAACwEV-ILDc227.jpg

[[email protected] fdfs]# ./fdfs_upload_file client.conf  /root/桌面/121.jpg
group2/M00/00/00/wKgEBFjPTxuAGZo4AACwEV-ILDc534.jpg

[[email protected] 00]# pwd
/data/fastdfs/data/00/00
[[email protected] 00]# ls
wKgEBFjPTxuAGZo4AACwEV-ILDc534.jpg
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

时间: 2024-11-08 23:17:26

分布式文件系统--->fastDFS的相关文章

【架构设计】分布式文件系统 FastDFS的原理和安装使用

本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下: -- mogileFS:Key-Value型元文件系统,不支持FUSE,应用程序访问它时需要API,主要用在web领域处理海量小图片,效率相比mooseFS高很多. -- fastDFS:国人 余庆老师(GitHub)在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mo

轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)

轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级) 实验室所在的课题组以研究云计算为主,但所有的研究都是在基于理论的凭空想像,缺少分布式环境的平台的实践,云计算神马的都是浮云了.因此,我想借助Hadoop把实验室的服务器搭建出一个基础的分布式实验环境,方便于以后进行实验测试神马的.无意中,看到了一款开源的轻量级分布式文件系统FastDFS,它是用纯C语言实现,详细信息可参见博客:分布式文件系统FastDFS架构剖析.通过收集资料,自己动手做了一些安装和测试使用,现在对前人的一些经验

分布式文件系统fastDFS

分布式文件系统fastDFS 1.什么是FastDFS FastDFS是一个开源的轻量级分布式文件系统.它解决了大数据量存储和负载均衡等问题.特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务,如相册网站.视频网站等等.在UC基于FastDFS开发向用户提供了:网盘,社区,广告和应用下载等业务的存储服务. 2.FastDFS架构和原理 FastDFS服务端有三个角色:跟踪服务器(tracker server).存储服务器(storage server)

记录:CentOS 7 安装配置分布式文件系统 FastDFS 5.1.1

CentOS 7 安装配置分布式文件系统 FastDFS 5.1.1 软件下载:http://download.csdn.net/download/qingchunwuxian1993/9897458 yum-y install net-tools.x86_64 前言 项目中用到文件服务器,有朋友推荐用FastDFS,所以就了解学习了一番,感觉确实颇为强大,在此再次感谢淘宝资深架构师余庆大神开源了如此优秀的轻量级分布式文件系统,本篇文章就记录一下FastDFS的最新版本5.1.1在CentOS7

高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高

在上一篇 分布式文件系统FastDFS如何做到高可用 中已经介绍了FastDFS的原理和怎么搭建一个简单的高可用的分布式文件系统及怎么访问. 高可用是实现了,但由于我们只设置了一个group,如果现在有5台服务器那将会出现5台只有一个group,每台服务器内的文件内容都相同(互备份)如下图,会造成资源浪费. 因此下面就5台服务器进行优化改造,进一步添加keepalived+nginx多tracker 架构,做到真正的高可用和高性能. FastDFS集群服务器分布 其中keepalived+ngi

分布式文件系统FastDFS动态扩容

当用户量越来越大,则集群中某个group总会到达其极限,这时就得扩展集群的容量了. FastDFS的扩容分为对group纵向扩容和横向扩容 纵向扩容 指在同一个group组中增加服务器,实现数据冗余,数据备份.同一个group中最大容量取决于最小的storage的存储容量.因此如果还想继续使用此group,则需要对此group对应的所有服务器挂载同样容量的磁盘,指定store_path1--,但这样做的话成本相当的高,不推荐. 横向扩容是通过集群实现,指新增一个group,增加整个FastDFS

分布式文件系统fastDFS部署

一.部署环境:(CentOS 6.9) tracker server:10.10.1.105 storage server:10.10.1.106  10.10.1.107 client:10.10.1.105 二.FastDFS: 开源的轻量级分布式文件系统: 三个角色: tracker server :跟踪服务器,调度,在内存中记录所有存储组和存储服务器的状态信息: tracker.conf storage server :存储服务器,文件(data)和文件属性(metadata),一组服务

分布式文件系统 FastDFS 简介 (1)

FastDFS 基本介绍: 1.开源的轻量级分布式文件系统 2.C++语言研发 3个角色: (1)tracker (2)storage server (3)client tracker server:跟踪服务器,调度:在内存中记录所有存储组和存储服务器的状态信息,不会保留任何元数据 storage server:存储服务器,文件( data )和文件属性( meta data ),以本地文件系统为接口(和mogilefs类似) client:客户端,业务请求发起方,通过专用接口基于tcp协议与t

分布式文件系统FastDFS原理介绍

在生产中我们一般希望文件系统能帮我们解决以下问题,如:1.超大数据存储:2.数据高可用(冗余备份):3.读/写高性能:4.海量数据计算.最好还得支持多平台多语言,支持高并发. 由于单台服务器无法满足以上要求,这就迫使开发者不得不考虑使用其他方式解决此类问题.分布式文件系统就在这样迫切的需求下孕育而生. 今天为什么把标题定为“分布式文件系统”呢?是因为我想通过此次分享(FastDFS原理介绍),和大家去做更多关于分布式文件系统的研究和分享.我想这项研究应该会是一个“系列”性的专题.在本文之后还计划