一、什麼是FastDFS
FastDFS是用c語言編寫的一款開源的分佈式文件系統。FastDFS爲互聯網量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集羣提供文件上傳、下載等服務。
二、FastDFS架構
包括 Tracker server和Storage server。客戶端請求Tracker server進行文件上傳、下載,通過Tracker server調度最終由Storage server完成文件上傳和下載。Tracker server作用是負載均衡和調度,通過Tracker server在文件上傳時可以根據一些策略找到Storage server提供文件上傳服務。可以將tracker稱爲追蹤服務器或調度服務器。Storage server作用是文件存儲,客戶端上傳的文件最終存儲在Storage服務器上,Storage server沒有實現自己的文件系統而是利用操作系統 的文件系統來管理文件。可以將storage稱爲存儲服務器。
三、文件上傳流程
1)上傳連接請求,客戶端會向tracker server發出上傳文件的請求
2)tracker收到請求後,返回storage server的ip和端口
3)客戶端連接storage,並且上傳文件
4)文件上傳完成後,storage返回路徑信息
四、文件下載流程
tracker根據請求的文件路徑即文件ID 來快速定義文件。比如請求文件:group1/M00/00/00/agIBmlee7fOATa1MAAFw6fBcZXY841.png
1.通過組名tracker能夠很快的定位到客戶端需要訪問的存儲服務器組是group1,並選擇合適的存儲服務器提供客戶端訪問。
2.存儲服務器根據“文件存儲虛擬磁盤路徑”和“數據文件兩級目錄”可以很快定位到文件所在目錄,並根據文件名找到客戶端需要訪問的文件。
五、FastDFS搭建
使用一臺虛擬機來模擬,只有一個Tracker、一個Storage服務,配置nginx訪問圖片,不涉及集羣。
6.fastdfs搭建步驟
第一步:把fastDFS都上傳到linux系統。
第二步:安裝FastDFS之前,先安裝libevent工具包。命令:yum -y install libevent
第三步:安裝libfastcommonV1.0.7工具包。
1、解壓縮:tar zxf libfastcommonV1.0.7
2、./make.sh
3、./make.shinstall
4、把/usr/lib64/libfastcommon.so文件向/usr/lib/下複製一份:cp
/usr/lib64/libfastcommon.so /usr/lib
第四步:安裝Tracker服務。
1、解壓縮:tar zxf fastdfs-5.05.tar.gz
2、./make.sh
3、./make.shinstall
安裝後在/usr/bin/目錄下有以fdfs開頭的文件都是編譯出來的。
配置文件都放到/etc/fdfs文件夾
4、把/root/FastDFS/conf目錄下的所有的配置文件都複製到/etc/fdfs下。
5、配置tracker服務。修改/root/FastDFS/conf/tracker.conf文件:vim tracker.conf
6、啓動tracker。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重啓使用命令:/usr/bin/fdfs_trackerd/etc/fdfs/tracker.conf restart
第五步:安裝storage服務。
1、如果是在不同的服務器安裝,第四步的1~4需要重新執行。
2、配置storage服務。修改/root/FastDFS/conf/storage.conf文件
3、啓動storage服務。
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
如果是重啓用restart,如果是第一次啓動不用加restart,start也不需要。
第六步:測試服務。
1、修改配置文件/etc/fdfs/client.conf
2、測試
/usr/bin/fdfs_test/etc/fdfs/client.conf upload anti-steal.jpg
第七步:搭建nginx提供http服務。
可以使用官方提供的nginx插件。要使用nginx插件需要重新編譯。
fastdfs-nginx-module_v1.16.tar.gz
1、解壓插件壓縮包
2、修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉
3、對nginx重新config
./configure \
--prefix=/var/nginx\
--with-http_gzip_static_module\
--http-client-body-temp-path=/var/nginx/client\
--http-proxy-temp-path=/var/nginx/proxy\
--http-fastcgi-temp-path=/var/nginx/fastcgi\
--http-uwsgi-temp-path=/var/nginx/uwsgi\
--http-scgi-temp-path=/var/nginx/scgi\
--add-module=/root/soft/fastdfs-nginx-module/src
4、make
5、make install
6、把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件複製到/etc/fdfs目錄下。編輯:
7、nginx的配置
在nginx的配置文件中添加一個Server:
改爲:
server {
listen 80;
server_name 192.168.101.3;
location /group1/M00/{
ngx_fastdfs_module;
}
}
8、將libfdfsclient.so拷貝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
9、啓動nginx
10、nginx服務
本篇博客爲學習中記錄,按照教學視頻搭建,所有都是按老師搭建成功。