1. 程式人生 > >fastdfs + nginx 搭建分散式檔案系統(單機模式)

fastdfs + nginx 搭建分散式檔案系統(單機模式)

FastDFS安裝手冊

FastDFS之叢集部署:  http://blog.csdn.net/zhu_tianwei/article/details/46045641

一、準備工作 1下載軟體:http://sourceforge.net/projects/fastdfs/files/ 2安裝gcc。命令:yum install make cmake gcc gcc-c++

二、安裝libfastcommon

1.下載 軟體: https://github.com/happyfish100/libfastcommon 2.上傳libfastcommon-master.zip 到 /home/lee 目錄下 3. 進行解壓libfastcommon-master.zip: 命令:unzip libfastcommon-master.zip -d /usr/local/fast/ 4. 進入目錄:cd /usr/local/fast/libfastcommon-master/

5. 進行編譯和安裝: 命令:./make.sh 命令:./make.sh install

注意安裝的路徑:也就是說,我們的libfastcommon預設安裝到了/usr/lib64/這個 位置。

6.進行軟連結建立。

FastDFS主程式設定的目錄為/usr/local/lib/,而我們的安裝目錄為/usr/lib64,所以我們需要建立/ usr/lib64/下的一些核心執行程式的軟連線檔案。

建立目錄 命令:mk dir /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 1 進入到 cd /home/lee下,解壓FastDFS_v5.05.tar.gz檔案 命令:cd /home/lee 命令:tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/ 2 安裝編譯 命令:cd /usr/local/fast/FastDFS/ 編譯命令:./make.sh 安裝命令:./make.sh install

3 採用預設安裝方式指令碼檔案說明: 服務指令碼在: /etc/init.d/fdfs_storaged /etc/init.d/fdfs_trackerd

配置檔案在: /etc/fdfs/client.conf.sample /etc/fdfs/storage.conf.sample /etc/fdfs/tracker.conf.sample

命令列工具在/usr/bin/目錄下,Fdfs_*的一些列執行指令碼

4.因為FastDFS服務指令碼設定的bin目錄為/usr/local/bin/下,但是實際我們安裝在了/u sr/bin/下面。所以我們需要修改FastDFS配置檔案中的路徑,也就是需要修改倆 個配置檔案: 命令:vim /etc/init.d/fdfs_storaged 進行全域性替換命令:%s+/usr/local/bin+/usr/bin 命令:vim /etc/init.d/fdfs_trackerd 進行全域性替換命令:%s+/usr/local/bin+/usr/bin

四.配置跟蹤器 1 進入 cd/etc/fdfs/ 目錄配置跟蹤器檔案,把tracker.conf.sample檔案

進行cope一份:去修改tracker.conf檔案

2 修改tracker.conf檔案 命令:vim /etc/fdfs/tracker.conf 如下圖所示:我們暫時修改配置檔案裡的base_path即可。

修改為自己的路徑地址:base_path=/fastdfs/tracker 注意:對於tracker.conf配置檔案引數解釋可以找官方文件,地址為: http://bbs.chinaunix.net/thread-1941456-1-1.html

3 最後我們一定要建立之前定義好的目錄(也就是/fastdfs/tracker): 命令:mkdir -p /fastdfs/tracker

4 關閉防火牆: Vim /etc/sysconfig/iptables 新增:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT 重啟:service iptables restart

五 啟動跟蹤器 如圖所示:

目錄命令:cd /fastdfs/tracker/ && ll 啟動tracker命令:/etc/init.d/fdfs_trackerd start 檢視程序命令:ps -el | grep fdfs 停止tracker命令:/etc/init.d/fdfs_trackerd stop

6可以設定開機啟動跟蹤器:(一般生產環境需要開機啟動一些服務,如keepalived、linux、tomcat) 命令:vim /etc/rc.d/rc.local 加入配置:/etc/init.d/fdfs_trackerd start

六、配置FastDFS儲存

1 進入檔案目錄:cd /etc/fdfs/,進行copy storage檔案一份 命令:cd /etc/fdfs/ 命令:cp storage.conf.sample storage.conf

2 修改storage.conf檔案 命令:vim /etc/fdfs/storage.conf 修改內容: base_path=/fastdfs/storage store_path0=/fastdfs/storage tracker_server=192.168.1.172:22122 http.server_port=8888

3 建立儲存目錄:mkdir -p /fastdfs/storage

4 開啟防火牆: 命令:vim /etc/sysconfig/iptables 新增:-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT 重啟:service iptables restart

5 啟動儲存(storage) 命令:/etc/init.d/fdfs_storaged start (關閉命令:/etc/init.d/fdfs_storaged stop) (初次啟動成功後會在/fastdbf/storage/ 目錄下建立 data、logs倆個目錄)

6 檢視FastDFS storage 是否啟動成功 命令:ps -ef | grep fdfs

並且我們進入到/fastdfs/storage/data/資料夾下會看到一些目錄檔案(256*256) 如下: 命令:cd /fastdfs/storage/data/ && ls

7同理,也可以設定開機啟動儲存器:(一般生產環境需要開機啟動一些服務,如keepalived、linux、tomcat) 命令:vim /etc/rc.d/rc.local 加入配置:/etc/init.d/fdfs_storaged start

到此為止我們的FastDFS環境已經搭建完成!

七.測試環境

1 我們先使用命令上傳一個檔案。注意:是在tracker(跟蹤器)中上傳。 首先我們在跟蹤器裡copy一份client.conf檔案。 命令:cd /etc/fdfs/ 命令:cp client.conf.sample client.conf

2 編輯client.conf檔案 命令:vim /etc/fdfs/client.conf 修改內容: base_path=/fastdfs/tracker tracker_server=192.168.1.172:22122

3 我們找到命令的指令碼位置,並且使用命令,進行檔案的上傳: 命令:cd /usr/bin/ 命令:ls | grep fdfs

4 使用命令fdfs_upload_file進行上傳操作: 首先,我們先看一下儲存器,進入到data下,在進入00資料夾 下,發現00資料夾下還有一堆資料夾,然後繼續進入00資料夾下,最終我們所 進入的資料夾為: /fastdfs/storage/data/00/00 裡面什麼檔案都沒有。

然後,我們進行上傳操作,比如把之前的/usr/local/software/資料夾下的某一個 檔案上傳到FastDFS系統中去,在跟蹤器中上傳檔案,命令如 下: 命令:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/lee/FastDFS_v5.05.tar.gz

最後我們發現,命令執行完畢後,返回一個group1/M00/00/00/...的ID,其實就 是返回當前所上傳的檔案在儲存器中的哪一個組、哪一個目錄位置,所以我們檢視儲存器中的/fastdfs/storage/data/00/00資料夾位置,發現已經存在了剛才上傳的檔案,到此為止,我們的測試上傳檔案已經OK了。

如下:

八.fastdfs 與nginx整合

1 首先必須先安裝nginx (下載地址: http://mirrors.sohu.com/nginx/)

2 然後我們在儲存節點上安裝fastdfs-nginxmodule_v1.16.tar.gz包進行整合。

目錄命令:cd /home/lee 解壓命令:tar -zxvf /home/lee/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/

3 進入目錄:cd fastdfs-nginx-module/src/

4 編輯配置檔案config 命令: vim /usr/local/fast/fastdfs-nginx-module/src/config 修改內容:去掉下圖中的local檔案層次

修改完畢為:

5 FastDFS與nginx進行整合

首先把之前的nginx進行刪除 目錄命令:cd /usr/local/ 刪除命令:rm -rf nginx 進入到nginx目錄命令:cd nginx-1.6.2/

由於需要安裝nginx,需要安裝依賴:yum -y install  zlib pcre pcre-devel zlib-devel

加入模組命令:./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/ 重新編譯命令:make && make install

6 複製fastdfs-ngin-module中的配置檔案,到/etc/fdfs目錄中,如圖所示:

copy命令:cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

7 進行修改 /etc/fdfs/ 目錄下,我們剛剛copy過來的mod_fastdfs.conf 檔案。

命令:vim /etc/fdfs/mod_fastdfs.conf 修改內容:比如連線超時時間、跟蹤器路徑配置、url的group配置、 connect_timeout=10 tracker_server=192.168.1.172:22122 url_have_group_name = true store_path0=/fastdfs/storage

8 複製FastDFS裡的2個檔案,到/etc/fdfs目錄中,如圖所示:

目錄命令:cd /usr/local/fast/FastDFS/conf/ Copy命令:cp http.conf mime.types /etc/fdfs/

9建立一個軟連線,在/fastdfs/storage檔案儲存目錄下建立軟連線,將其連結到實際存放資料 的目錄。 命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

10 修改Nginx配置檔案,如圖所示:

命令:vim nginx.conf 新增埠對映配置內容如下圖所示:

修改內容為: listen 8888; server_name localhost; location ~/group([0-9])/M00 { root /fastdfs/storage/data; ngx_fastdfs_module; }

注意:nginx裡的埠要和配置FastDFS儲存中的storage.conf檔案配置一致, 也就是(http.server_port=8888)

11 最後檢查防火牆,然後我們啟動nginx服務

啟動命令:/usr/local/nginx/sbin/nginx,

上傳一個檔案,上傳成功, 如圖:

現在我們使用這個ID用瀏覽器訪問地址: http://192.168.1.173:8888/group1/M00/00/00/wKgBrVaSvM6AddWWAAVFOL7FJU4.tar.gz 我們就可以下載這個檔案啦!如下圖所示:

運維注意:我們在使用FastDFS的時候,需要正常關機,不要使用kill -9 強殺FastDFS程序,不然會在檔案上傳時出現丟資料的情況。 到此,我們的FastDFS與Nginx整合完畢!!

九:啟動停止服務步驟如下:

啟動命令: 啟動tracker命令:/etc/init.d/fdfs_trackerd start 檢視程序命令:ps -el | grep fdfs 啟動storage命令:/etc/init.d/fdfs_storaged start 檢視程序命令:ps -el | grep fdfs 啟動nginx命令:/usr/local/nginx/sbin/nginx

停止命令: 停止tracker命令:/etc/init.d/fdfs_trackerd stop 關閉storage命令:/etc/init.d/fdfs_storaged stop 關閉nginx命令:/usr/local/nginx/sbin/nginx -s stop

刪除上傳檔案: /usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wK gBe1iEcGOAafHdALSFS-ifSIk.tar.gz

Thank You.