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.