分布式对象存储之FDFS

1、它是一个开源的分布式文件系统,它对文件进行管理。

功能有:文件存储、文件同步、文件访问(文件的上传下载)等。特别适合以文件为主的在线服务。

2、fastDFS服务端有两个角色:跟踪器(tracker)和存储点(storage)。跟踪器主要做调度监听工作,在访问上器负载均衡作用。

存储节点存储文件,完成文件管理的所有功能。如:存储、同步、提供存取接口。

     Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。

  Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。

  Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

 

 

为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

 

3、fastDFS工作特点

tracker和storage可以是多台服务器。可以随时增加或下线而不会影响线上的服务。

为了支持大容量,storage采用了分卷分组的组织方式。存储系统由一个或多个卷组成。卷与卷之间是相互独立的。同一个卷中的文件都是相同的。

4、上传下载流程

上传文件交互过程:
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。

 

下载文件交互过程:

1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。

 

5、fastDFS的常用命令

#启动tracker 端口:23000
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

#启动storage 端口:22122
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

# 监控storage服务状态
/usr/bin/fdfs_monitor /etc/fdfs/client.conf

 

#停止服务
pkill -9 fdfs
killall fdfs_storaged
killall fdfs_trackerd

或者

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop

 

6.上传文件

/usr/bin/fdfs_upload_file /etc/fdfs/storage.conf  test.txt
命令  storage配置文件绝对路径 需要上传的文件

上传完成之后返回上传之后的路径地址

/fastdfs/data/data/01/01/rBLilGHuexGAaMmzAAAH2EiPe7Q42.html

fastdfs:  配置文件中的group_name


上传文件(2)(不能用于生产线上使用)

fdfs_test  storage配置文件的绝对路径   本地文件

实例:fdfs_test  /etc/fdfs/storage.conf  1.txt

 返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

 

 

 

 

7.删除上传的文件

/usr/local/bin/fdfs_delete_file   配置文件   需要删除的文件路径

/usr/local/bin/fdfs_delete_file  /etc/fdfs/client.conf  group3/M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak.tar.gz

 

8.下载文件

/usr/local/bin/fdfs_download_file  配置文件  需要下载文件的路径 下载后改的名字

/usr/local/bin/fdfs_download_file /etc/fdfs/client.conf group3/M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak_big.tar.gz /cairo.tar.gz

 

9.配置文件

storaged.conf配置文件

# 配置文件是否不生效,false 为生效
disabled=false 

# 指定此 storage server 所在 组(卷)
group_name=group1

# storage server 服务端口
port=23000

# 心跳间隔时间,单位为秒 (这里是指主动向 tracker server 发送心跳)
heart_beat_interval=30

# Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成)
base_path=/ljzsg/fastdfs/storage

# 存放文件时 storage server 支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。
store_path_count=1


# 逐一配置 store_path_count 个路径,索引号基于 0。
# 如果不配置 store_path0,那它就和 base_path 对应的路径一样。
store_path0=/ljzsg/fastdfs/file

# FastDFS 存储文件时,采用了两级目录。这里配置存放文件的目录个数。 
# 如果本参数只为 N(如: 256),那么 storage server 在初次运行时,会在 store_path 下自动创建 N * N 个存放文件的子目录。
subdir_count_per_path=256

# tracker_server 的列表 ,会主动连接 tracker_server
# 有多个 tracker server 时,每个 tracker server 写一行
tracker_server=file.ljzsg.com:22122# 允许系统同步的时间段 (默认是全天) 。一般用于避免高峰同步产生一些问题而设定。sync_start_time=00:00sync_end_time=23:59
# 访问端口http.server_port=80

启动之后,在base_path路径下会创建data,logs目录  记录storage Server信息

 

 

 

10.设置开机启动

chkconfig fdfs_storaged on

或者

vim /etc/rc.d/rc.local
加入配置项
/etc/init.d/fdfs_storaged start

 

 

 

更多参考:

 

posted @ 2022-01-24 18:19  X-Wolf  阅读(776)  评论(0编辑  收藏  举报