轉載的目的是源網站是我的博客,頗有可能隨時關閉,爲了信息保存便於查看。html
FastDFS是一個開源的分佈式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、視頻網站等等。nginx
FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要作調度工做,在訪問上起負載均衡的做用。git
存儲節點存儲文件,完成文件管理的全部功能:存儲、同步和提供存取接口,FastDFS同時對文件的meta data進行管理。所謂文件的meta data就是文件的相關屬性,以鍵值對(key value pair)方式表示,如:width=1024,其中的key爲width,value爲1024。文件meta data是文件屬性列表,能夠包含多個鍵值對。github
安裝步驟能夠參考源碼包內的INSTALL文件。本例中不含fastdfs-nginx-module和FastDHT的安裝和部署。vim
安裝需求bash
FastDFS 5.x 取消了對libevent的依賴,添加了對libfastcommon的依賴。本例中需求的環境以下:app
安裝libfastcommon負載均衡
libfastcommon是FastDFS項目的通用函數庫。其中的方法包括:string,logger,chain,hash,socket,ini file reader,base64 encode / decode,url encode / decode,fasttimer等。libfastcommon的安裝過程以下:socket
1.下載libfastcommon源碼包,而且解壓分佈式
tar xzf libfastcommon_v1.x.tar.gz #for example: tar xzf libfastcommon_v1.23.tar.gz
2.,進入libfastcommon源碼根目錄
cd libfastcommon ./make.sh ./make.sh install
能夠看到libfastcommon.so安裝到了「/usr/lib64」目錄。可是FastDFS主程序設置的lib目錄是「/usr/local/lib」因此須要建立軟連接:
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
安裝FastDFS
tar xzf FastDFS_v5.x.tar.gz #for example: tar xzf FastDFS_v5.07.tar.gz
cd FastDFS
./make.sh
./make.sh install
安裝完成後,全部可執行文件在目錄「/usr/bin」下,以fdfs_開頭:
[root@localhost ~]# ls /usr/bin/fdfs_* /usr/bin/fdfs_appender_test /usr/bin/fdfs_monitor /usr/bin/fdfs_appender_test1 /usr/bin/fdfs_storaged /usr/bin/fdfs_append_file /usr/bin/fdfs_test /usr/bin/fdfs_crc32 /usr/bin/fdfs_test1 /usr/bin/fdfs_delete_file /usr/bin/fdfs_trackerd /usr/bin/fdfs_download_file /usr/bin/fdfs_upload_appender /usr/bin/fdfs_file_info /usr/bin/fdfs_upload_file
配置文件在目錄「/etc/fdfs」下:
[root@localhost ~]# ls /etc/fdfs client.conf.sample storage.conf.sample tracker.conf.sample
首先須要在「/etc/fdfs」目錄下建立跟蹤器的配置文件tracker.conf和存儲節點的配置文件storage.conf,在「/etc/fdfs」命令下複製便可:修改/編輯跟蹤器和存儲節點的配置文件
cd /etc/fdfs cp tracker.conf.sample tracker.conf cp storage.conf.sample storage.conf
vim /etc/fdfs/tracker.conf #或 vi /etc/fdfs/tracker.conf #或 gedit /etc/fdfs/tracker.conf
base_path=/data/fastdfs/tracker
vim /etc/fdfs/storage.conf #或 vi /etc/fdfs/storage.conf #或 gedit /etc/fdfs/storage.conf
group_name=group1 base_path=/data/fastdfs/storage store_path0=/data/fastdfs/storage tracker_server=192.168.1.70:22122
tracker.conf和storage.conf更詳細說明見:FastDFS 配置文件詳解(修訂版1)。
啓動跟蹤器和存儲節點
在啓動跟蹤器和存儲節點以前,須要建立上面提到的軟連接,不然會報錯:
TeX
/usr/bin/fdfs_trackerd: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory
使用客戶端client測試上傳下載啓動跟蹤器
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
在Linux系統,你能夠把fdfs_trackerd做爲服務啓動:
/sbin/service fdfs_trackerd start
啓動存儲節點
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
在Linux系統,你能夠把fdfs_storaged做爲服務啓動:
/sbin/service fdfs_storaged start
啓動跟蹤器和存儲節點後,須要測試它們的配置是否正確,可使用FastDFS自帶的客戶端測試。在使用客戶端以前首先須要配置客戶端:
tracker_server=127.0.0.1:22122 base_path=/home/xxx/fastdfs
客戶端client配置完成後,就可使用客戶端上傳和下載文件了:
dfs_upload_file client.conf /home/cjx/1.png #返回結果: group1/M00/00/00/fwAAAVaoXT2ALAOOAAplTCfBJQE558.png
fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/fwAAAVaoXT2ALAOOAAplTCfBJQE558.png #返回結果: source storage id: 0 source ip address: 127.0.0.1 file create timestamp: 2016-01-27 14:01:33 file size: 681292 file crc32: 666969345 (0x27C12501)
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/fwAAAVaoXT2ALAOOAAplTCfBJQE558.png /home/xxx/fastdfs/1.png
fdfs_test client.conf upload /home/cjx/1.png
參考文章:
搭建FastDFS分佈式存儲環境(使用Nginx模塊)
FastDFS v5.06 部署
FastDFS 配置文件詳解(修訂版1)