前言
FastDFS 是用 c 語言編寫的一款開源的分布式文件系統。FastDFS 為互聯網量身定制, 充分考慮了冗余備份、負載均衡、線性擴容等機制,并注重高可用、高性能等指標,使用 FastDFS 很容易搭建一套高性能的文件服務器集群提供文件上傳、下載等服務。
FastDFS 架構包括 Tracker server 和 Storage server。客戶端請求 Tracker server 進行文 件上傳、下載,通過 Tracker server 調度最終由 Storage server 完成文件上傳和下載。
Tracker server 作用是負載均衡和調度,通過 Tracker server 在文件上傳時可以根據一些 策略找到 Storage server 提供文件上傳服務。可以將 tracker 稱為追蹤服務器或調度服務 器。
Storage server 作用是文件存儲,客戶端上傳的文件最終存儲在 Storage 服務器上, Storageserver 沒有實現自己的文件系統而是利用操作系統 的文件系統來管理文件。可以將 storage 稱為存儲服務器。
我使用的是Ubantu安裝的FastDFS,并且是在剛剛裝的虛擬機上安裝,期間出現了很多的問題,請過多方面查找原因,終于將FastDFS與Nginx安裝并測試成功,下面我就將我的步驟和出現的錯誤完整的記錄下來。
一、安裝Git
我使用git下載安裝的一些依賴包。
apt-get install git
二、克隆libfastcommon依賴庫
我都將下載下來的庫統一先放到了/home/user/下載/
中了,這樣便于我查找這些文件。
git clone https://github.com/happyfish100/libfastcommon.git
如果是下載下來的需要對libfastcommon-master.zip
這個文件進行解壓縮。
unzip libfastcommon-master.zip
三、安裝 libfastcommon依賴庫
首先進入下載好的libfastcommon依賴庫目錄。
cd /home/user/下載/libfastcommon
然后:
./make.sh
我這里直接編譯成功了沒有出現問題,再然后:
./make.sh install
編譯通過后,在32位Ubantu中會安裝在/usr/lib/
中,在64位會在/usr/lib64/
,我的是64位,所以在/usr/lib64/
中。
四、配置環境變量和軟鏈接
軟鏈接就是在另一個位置建立一個同步的鏈接,然后根據自己的操作系統,需要執行以下命令:
export LD_LIBRARY_PATH=/usr/lib64/
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
五、安裝FastDFS
如果不用Git下載的話也可以直接去下載FastDFS。
下載完后執行以下命令:
tar -zxvf fastdfs-5.11.tar.gz
解壓完后進入目錄后編譯:
./make.sh
./make.sh install
安裝完成之后默認安裝在/etc/fdfs/
中,并會生成這四個文件:
tracker.conf.sample
client.conf.sample
storage.conf.sample
storage_ids.conf.sample
之后可以在這個基礎上直接改名,也可以復制之后再修改這些配置文件。
· 改名,需要先修改配置文件的權限:
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
·復制文件:
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
六、配置跟蹤服務器的tracker的配置文件
首先建立一個文件夾fastdfs/tracker
,我的這個文件夾建立在/home/python/
中,這個文件夾其實建立在哪里都行。
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/
目錄中創建目錄 storage
。
mkdir –p /home/python/fastdfs/storage
然后編輯配置文件,這里先查看當前虛擬機的IP地址。
vi storage.conf
group_name=group1
store_path0=/home/python/fastdfs/storage
base_path=/home/python/fastdfs/storage
tracker_server=自己虛擬機的IP地址:22122
http.server_port=8888
繼續修改client.conf
base_path=/home/python/fastdfs/tracker
tracker_server=自己虛擬機的IP地址:22122
http.tracker_server_port=8888
#include http.conf
注意,#include http.conf 這句,原配置文件中有2個#,刪掉一個。
這里可以先暫時不修改http.conf
這個配置文件,如果想改也可以直接改了,這個文件在fastdfs-5.11
的安裝路徑中,/home/user/下載/fastdfs-5.11/conf/http.conf
。
http.anti_steal.token_check_fail=/home/fastdfs/anti-steal.jpg
之后將下面這兩個文件復制到etc/fdfs/
下。
cp http.conf /etc/fdfs/http.conf
cp mime.types /etc/fdfs/mime.types
七、啟動服務,測試是否安裝成功
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 檢查是否啟動成功, 啟動成功之后會看見
ps aux|grep tracker
ps aux|grep storage
注意上述測試需要配置后相應的路徑,如果沒有配置后會報一些錯誤,我這里都配置了所以沒有出現錯誤,如果出錯把相應的路徑配置上后再次執行一遍就好。
八、上傳文件測試
準備一張圖片在你的電腦上,位置隨意。
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/
就是文件的坐標,進入/home/python/fastdfs/storage/data/00/00/
就能找到這個文件了。但你會發現生成了4個文件。
這是因為
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
十、關閉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了
看下一篇文章吧~
首次在虛擬機上配置nginx