FastDFS 是一個開源的高性能分佈式文件系統(DFS)。 它的主要功能包括:文件存儲,文件同步和文件訪問,以及高容量和負載平衡。nginx
FastDFS有兩個角色:跟蹤服務(tracker)和存儲服務(storage),跟蹤服務控制,調度文件以負載均衡的方式訪問;存儲服務包括:文件存儲,文件同步,提供文件訪問接口,同時以key value的方式管理文件的元數據。vim
FastDFS 系統有三個角色:跟蹤服務器(Tracker Server)、存儲服務器(Storage Server)和
客戶端(Client)。安全
Tracker Server: 跟蹤服務器,主要作調度工做,起到均衡的做用;負責管理全部的 storage server
和 group,每一個 storage 在啓動後會鏈接 Tracker,告知本身所屬 group 等信息,並保持週期性心跳。服務器
Storage Server:存儲服務器,主要提供容量和備份服務;以 group 爲單位,每一個 group 內能夠有多臺 storage server,數據互爲備份。app
Client:客戶端,上傳下載數據的服務器,也就是咱們本身的項目所部署在的服務器。負載均衡
應用場景:對4k至百MB須要存儲 FastDFS最佳 若是上G 上幾十G 建議使用GlusterFS鏡像文件分佈式
操做系統: CentOS 6.6ide
FastDFS: fastdfs-5.05 、 fastdfs-nginx-module-v1.16 、libfastcommon-v1.0.7性能
Nginx : nginx-1.10.1測試
安裝:
安裝libfastcommon
在每一臺服務器上,解壓libfastcommon,進入libfastcommon-master目錄執行
./make.sh
./make.sh install
[root@dell-09 src]# pwd
/opt/soft/soft/libfastcommon-master/src
[root@dell-09 src]# install -m 755 libfastcommon.so /usr/lib64/
mkdir -p /usr/include/fastcommon/
能夠看到libfastcommon.so安裝到了/usr/lib64/libfastcommon.so
可是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
2.安裝FastDFS主程序
這個版本彷佛已經不須要libevent依賴
在每臺服務器,解壓縮FastDFS_v5.05.tar.gz,進入FastDFS目錄
執行
./make.sh
./make.sh install
配置文件:
進入FastDFS解壓目錄
[root@localhost FastDFS]# cd conf/
[root@localhost conf]# ls
anti-steal.jpg client.conf http.conf mime.types storage.conf storage_ids.conf tracker.conf
[root@localhost conf]# pwd
/root/fastdfs/FastDFS/conf
[root@localhost conf]# cp -rf * /etc/fdfs/
1、修改vim /etc/fdfs/tracker.conf
base_path=/data/app/fastdfs
http.server_port=80
建立所需目錄 mkdir -p /data/app/fastdfs
啓動tracker服務:/usr/local/bin/fdfs_trackerd/etc/fdfs/tracker.conf restart
2、修改vim /etc/fdfs/storage.conf
base_path=/data/app/fastdfs/storage
store_path0=/data/app/fastdfs/storage
tracker_server=192.168.198.129:22122
建立目錄:mkdir -p /data/app/fastdfs/storage
啓動storage服務:/usr/local/bin/fdfs_trackerd/etc/fdfs/storage.conf restart
3、修改vim /etc/fdfs/client.conf
base_path=/data/app/fastdfs/storage
tracker_server=192.168.198.129:22122
建立目錄:mkdir -p /data/app/fastdfs/storage
檢驗:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
加載fastdfs-nginx-module 模塊
1、上傳軟件 master.zip、nginx1.10.1
兩個軟件都解壓,而後編譯加載模塊。
[root@localhost nginx-1.10.1]# pwd
/root/fastdfs/nginx-1.10.1
[root@localhost nginx-1.10.1]# ./configure --prefix=/usr/local/nginx--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock--error-log-path=/var/log/nginx/error.log--http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module--http-client-body-temp-path=/var/temp/nginx/client--http-proxy-temp-path=/var/temp/nginx/proxy--http-fastcgi-temp-path=/var/temp/nginx/fastcgi--http-uwsgi-temp-path=/var/temp/nginx/uwsgi--http-scgi-temp-path=/var/temp/nginx/scgi --add-module=/root/fastdfs/fastdfs-nginx-module-master/src
複製文件到/etc
[root@localhost src]# pwd
/root/fastdfs/fastdfs-nginx-module-master/src
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/
修改這幾個地方
vim mod_fastdfs.conf
tracker_server=192.168.198.129:22122
url_have_group_name = true
store_path0=/data/app/fastdfs/storage
nginx修改:
配置 Nginx及編輯nginx.conf文件:
cd /usr/local/nginx/conf
vi nginx.conf
在配置文件中加入:
location /group1/M00 {
root /data/fastdfs/storage/;
ngx_fastdfs_module;
}
咱們配置了group1/M00的訪問,因此咱們須要創建一個group1文件夾,並創建M00到data的軟連接 mkdir /data/fastdfs/storage/data/group1
ln -s /data/fastdfs/storage/data/data/fastdfs/storage/data/group1/M00
檢驗:/usr/local/nginx/sbin/nginx -V 看是否有加載模塊dfs模塊
生成測試連接:/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
打開測試網頁:
http://192.168.198.129/group1/M00/00/00/CsEBPVgWV1GAZ9ncAABdrZgsqUU641_big.jpg
note:
集羣方案思路:
應用場景: 三臺服務器分別作三組存儲,而且須要兩臺tracker地址作主備關係,當一臺down機後須要另一臺能夠提供正常的訪問鏈接
#注:此處不考慮存儲數據安全性,若是須要保障數據不丟失,能夠分別每臺存儲配置兩組group(相同group之間數據會自動備份) ,三臺服務器group分別爲:
第一臺服務器:group1 group2
第二臺服務器:group1 group3
第三臺服務器:group2 group3
持續更新中……