服务端两个角色: Tracker:管理集群,tracker 也可以实现集群。每个 tracker 节点地位平等。收集 Storage 集群的状态。 Storage:实际保存文件 Storage 分为多个组,每个组之间保存的文件是不同的。每 个组内部可以有多个成员,组成员内部保存的内容是一样的,组成员的地位是一致的,没有 主从的概念。
2.文件上传流程 客户端上传文件后存储服务器将文件 ID 返回给客户端,此文件 ID 用于以后访问该文 件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。 组名:文件上传后所在的 storage 组名称,在文件上传成功后有 storage 服务器返回, 需要客户端自行保存。 虚拟磁盘路径:storage 配置的虚拟路径,与磁盘选项 store_path*对应。如果配置了 store_path0 则是 M00,如果配置了 store_path1 则是 M01,以此类推。 数据两级目录:storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据 文件。 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储 服务器 IP 地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
3. 文件下载流程 4 . 简易FastDFS架构 5 FastDFS安装 链接:https://pan.baidu.com/s/1vYD9fnESe9yy7o0aR9DMsg 提取码:pnkt
5.1 安装fastdfs依赖包
1. 解压缩libfastcommon-master.zip 2. 进入到libfastcommon-master的目录中 3. 执行 ./make.sh 4. 执行 sudo ./make.sh install2 安装fastdfs
#解压缩fastdfs-master.zip #进入到 fastdfs-master目录中 #执行 ./make.sh #执行 sudo ./make.sh install3 配置跟踪服务器tracker
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf #在/home/python/目录中创建目录 fastdfs/tracker mkdir –p /home/python/fastdfs/tracker #编辑/etc/fdfs/tracker.conf配置文件 sudo vim /etc/fdfs/tracker.conf #修改 base_path=/home/python/fastdfs/tracker配置存储服务器storage
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf #在/home/python/fastdfs/ 目录中创建目录 storage mkdir –p /home/python/fastdfs/storage #编辑/etc/fdfs/storage.conf配置文件 sudo vim /etc/fdfs/storage.conf 修改内容: base_path=/home/python/fastdfs/storage store_path0=/home/python/fastdfs/storage tracker_server=自己ubuntu虚拟机的ip地址:22122启动tracker 和 storage
sudo service fdfs_trackerd start sudo service fdfs_storaged start 或 sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart测试是否安装成功
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #编辑/etc/fdfs/client.conf配置文件 sudo vim /etc/fdfs/client.conf #修改内容: base_path=/home/python/fastdfs/tracker tracker_server=自己ubuntu虚拟机的ip地址:22122 上传文件测试: fdfs_upload_file /etc/fdfs/client.conf 要上传的图片文件 #如果返回类似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg的文件id则说明文件上传成功