前言
FastDFS 是用 c 語言編寫的一款開源的分布式文件系統(tǒng)渐溶。FastDFS 為互聯(lián)網(wǎng)量身定制毛秘, 充分考慮了冗余備份、負(fù)載均衡胡控、線性擴(kuò)容等機(jī)制扳剿,并注重高可用、高性能等指標(biāo)昼激,使用 FastDFS 很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳庇绽、下載等服務(wù)。
FastDFS 架構(gòu)包括 Tracker server 和 Storage server橙困∏撇簦客戶端請求 Tracker server 進(jìn)行文 件上傳、下載凡傅,通過 Tracker server 調(diào)度最終由 Storage server 完成文件上傳和下載辟狈。
Tracker server 作用是負(fù)載均衡和調(diào)度,通過 Tracker server 在文件上傳時(shí)可以根據(jù)一些 策略找到 Storage server 提供文件上傳服務(wù)『咦可以將 tracker 稱為追蹤服務(wù)器或調(diào)度服務(wù) 器明未。
Storage server 作用是文件存儲,客戶端上傳的文件最終存儲在 Storage 服務(wù)器上壹蔓, Storageserver 沒有實(shí)現(xiàn)自己的文件系統(tǒng)而是利用操作系統(tǒng) 的文件系統(tǒng)來管理文件趟妥。可以將 storage 稱為存儲服務(wù)器佣蓉。
我使用的是Ubantu安裝的FastDFS披摄,并且是在剛剛裝的虛擬機(jī)上安裝,期間出現(xiàn)了很多的問題偏螺,請過多方面查找原因行疏,終于將FastDFS與Nginx安裝并測試成功,下面我就將我的步驟和出現(xiàn)的錯誤完整的記錄下來套像。
一酿联、安裝Git
我使用git下載安裝的一些依賴包。
apt-get install git
二夺巩、克隆libfastcommon依賴庫
我都將下載下來的庫統(tǒng)一先放到了/home/user/下載/
中了贞让,這樣便于我查找這些文件。
git clone https://github.com/happyfish100/libfastcommon.git
如果是下載下來的需要對libfastcommon-master.zip
這個文件進(jìn)行解壓縮柳譬。
unzip libfastcommon-master.zip
三喳张、安裝 libfastcommon依賴庫
首先進(jìn)入下載好的libfastcommon依賴庫目錄。
cd /home/user/下載/libfastcommon
然后:
./make.sh
我這里直接編譯成功了沒有出現(xiàn)問題美澳,再然后:
./make.sh install
編譯通過后销部,在32位Ubantu中會安裝在/usr/lib/
中,在64位會在/usr/lib64/
制跟,我的是64位舅桩,所以在/usr/lib64/
中。
四雨膨、配置環(huán)境變量和軟鏈接
軟鏈接就是在另一個位置建立一個同步的鏈接擂涛,然后根據(jù)自己的操作系統(tǒng),需要執(zhí)行以下命令:
export LD_LIBRARY_PATH=/usr/lib64/
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
五聊记、安裝FastDFS
如果不用Git下載的話也可以直接去下載FastDFS撒妈。
下載完后執(zhí)行以下命令:
tar -zxvf fastdfs-5.11.tar.gz
解壓完后進(jìn)入目錄后編譯:
./make.sh
./make.sh install
安裝完成之后默認(rèn)安裝在/etc/fdfs/
中,并會生成這四個文件:
tracker.conf.sample
client.conf.sample
storage.conf.sample
storage_ids.conf.sample
之后可以在這個基礎(chǔ)上直接改名排监,也可以復(fù)制之后再修改這些配置文件狰右。
· 改名,需要先修改配置文件的權(quán)限:
chmod 777 tracker.conf.sample
mv tracker.conf.sample tracker.conf
chmod 777 client.conf.sample
mv client.conf.sample client.conf
chmod 777 storage.conf.sample
mv storage.conf.sample storage.conf
chmod 777 storage_ids.conf.sample
mv storage_ids.conf.sample storage_ids.conf
·復(fù)制文件:
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
sudo cp /etc/fdfs/storage_ids.conf.sample /etc/fdfs/storage_ids.conf
六舆床、配置跟蹤服務(wù)器的tracker的配置文件
首先建立一個文件夾fastdfs/tracker
,我的這個文件夾建立在/home/python/
中棋蚌,這個文件夾其實(shí)建立在哪里都行。
mkdir –p /home/python/fastdfs/tracker
然后編輯tracker.conf
這個配置文件,如果沒有安裝vim編輯器需要先安裝vim編輯器,在編輯配置文件。
apt install vim
vi tracker.conf
# the base path to store data and log files
base_path=/home/python/fastdfs/tracker
# HTTP port on this tracker server
http.server_port=8090
然后再去修改storage.conf
附鸽,在/home/python/fastdfs/
目錄中創(chuàng)建目錄 storage
。
mkdir –p /home/python/fastdfs/storage
然后編輯配置文件瞒瘸,這里先查看當(dāng)前虛擬機(jī)的IP地址坷备。
vi storage.conf
group_name=group1
store_path0=/home/python/fastdfs/storage
base_path=/home/python/fastdfs/storage
tracker_server=自己虛擬機(jī)的IP地址:22122
http.server_port=8888
繼續(xù)修改client.conf
base_path=/home/python/fastdfs/tracker
tracker_server=自己虛擬機(jī)的IP地址:22122
http.tracker_server_port=8888
#include http.conf
注意,#include http.conf 這句情臭,原配置文件中有2個#省撑,刪掉一個。
這里可以先暫時(shí)不修改http.conf
這個配置文件俯在,如果想改也可以直接改了竟秫,這個文件在fastdfs-5.11
的安裝路徑中,/home/user/下載/fastdfs-5.11/conf/http.conf
。
http.anti_steal.token_check_fail=/home/fastdfs/anti-steal.jpg
之后將下面這兩個文件復(fù)制到etc/fdfs/
下跷乐。
cp http.conf /etc/fdfs/http.conf
cp mime.types /etc/fdfs/mime.types
七肥败、啟動服務(wù),測試是否安裝成功
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 檢查是否啟動成功, 啟動成功之后會看見
ps aux|grep tracker
ps aux|grep storage
注意上述測試需要配置后相應(yīng)的路徑愕提,如果沒有配置后會報(bào)一些錯誤馒稍,我這里都配置了所以沒有出現(xiàn)錯誤,如果出錯把相應(yīng)的路徑配置上后再次執(zhí)行一遍就好浅侨。
八纽谒、上傳文件測試
準(zhǔn)備一張圖片在你的電腦上,位置隨意如输。
fdfs_test /etc/fdfs/client.conf upload /home/user/下載/1.jpg
上傳成功之后會在這里看到里兩個文件鼓黔,一個是xxx.jpg,另一個是xxx_big.jpg,類似于
M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg
,如果看到這個說明上傳成功了不见。
但這些文件在哪里呢澳化,他在/home/python/fastdfs/storage/data/
下,M00/00/00/
就是文件的坐標(biāo)脖祈,進(jìn)入/home/python/fastdfs/storage/data/00/00/
就能找到這個文件了肆捕。但你會發(fā)現(xiàn)生成了4個文件。
這是因?yàn)?code>fdfs_test和
fdfs_test1
是FastDFS自帶的測試程序盖高,會對一個文件上傳兩次慎陵,分別作為主文件和從文件。返回的文件ID也是兩個喻奥。 并且會上傳文件附加屬性席纽,storage server上會生成4個文件。
九撞蚕、刪除文件
刪除文件需要完整的group_name润梯。
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgSslVkLFOAWOw_AADfP3RIu5Y687_big.jpg
十、關(guān)閉fadtDFS
killall fdfs_trackerd
killall fdfs_storaged
十一、重啟fastDFS
先重啟tracker
/usr/local/bin/.restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
在重啟storage
/usr/local/bin/.restart.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
十二纺铭、接下來就是配置Nginx了
看下一篇文章吧~
首次在虛擬機(jī)上配置nginx