FastDFS簡介
FastDFS 是一個(gè)開源的高性能分布式文件系統(tǒng)(DFS)熙暴。它的主要功能包括:文件存儲(chǔ),文件同步和文件訪問慌盯,以及高容量和負(fù)載平衡周霉。主要解決了海量數(shù)據(jù)存儲(chǔ)問題,特別適合以中小文件(建議范圍:4KB < file size <500MB)為載體的在線服務(wù)亚皂。
FastDFS 系統(tǒng)有三個(gè)角色:跟蹤服務(wù)器(Tracker Server)俱箱、存儲(chǔ)服務(wù)器(Storage Server)和客
戶端(Client)。
Tracker Server:跟蹤服務(wù)器灭必,主要做調(diào)度工作狞谱,起到均衡的作用;負(fù)責(zé)管理所有的 storage server 和 group禁漓,每個(gè) storage 在啟動(dòng)后會(huì)連接 Tracker跟衅,告知自己所屬 group 等信息,并保持周期性心跳播歼。
Storage Server:存儲(chǔ)服務(wù)器伶跷,主要提供容量和備份服務(wù);以 group 為單位荚恶,每個(gè) group內(nèi)可以有多臺(tái) storage server撩穿,數(shù)據(jù)互為備份。
Client:客戶端谒撼,上傳下載數(shù)據(jù)的服務(wù)器食寡,也就是我們自己的項(xiàng)目所部署在的服務(wù)器。
這里我們直接進(jìn)行安裝部署廓潜,具體的關(guān)于FastDFS分布式文件系統(tǒng)的存儲(chǔ)策略抵皱、上傳過程、文件同步等知識(shí)辩蛋,這里就不進(jìn)行具體介紹了
FastDFS安裝
1.下載安裝 libfastcommon
1呻畸、下載 libfastcommon
進(jìn)入下載目錄/root/Download
# cd /root/Download
下載 libfastcommon
# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
2、解壓
解壓
# tar -zxvf V1.0.7.tar.gz
進(jìn)入到解壓的目錄
# cd libfastcommon-1 0 7
3悼院、 編譯安裝
編譯
# ./make.sh
安裝
# ./make.sh install
2.下載安裝 FastDFS
1伤为、 下載 FastDFS
進(jìn)入下載目錄:
# cd /root/Download
下載 FastDFS
#wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
2、 解壓
解壓
# tar -zxvf V5.05.tar.gz
進(jìn)入到解壓的目錄
# cd fastdfs-5.05
3、 編譯安裝
編譯
# ./make.sh
安裝
# ./make.sh install
配置 FastDFS 環(huán)境
1 基礎(chǔ)配置
libfastcommon.so 安裝到了/usr/lib64/libfastcommon.so绞愚, 但是 FastDFS 主程序設(shè)置的
lib 目錄是/usr/local/lib叙甸, 所以需要?jiǎng)?chuàng)建軟鏈接。
# 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 服務(wù)腳本設(shè)置的 bin 目錄是 /usr/local/bin位衩, 但實(shí)際命令安裝在 /usr/bin/ 下裆蒸。
需要建立 /usr/bin 到 /usr/local/bin 的軟鏈接
# ln -s /usr/bin/fdfs_trackerd /usr/local/bin
# ln -s /usr/bin/fdfs_storaged /usr/local/bin
# ln -s /usr/bin/stop.sh /usr/local/bin
# ln -s /usr/bin/restart.sh /usr/local/bin
3.配置 FastDFS 跟蹤器(Tracker)
1、 進(jìn)入 /etc/fdfs糖驴, 復(fù)制 FastDFS 跟蹤器樣例配置文件 tracker.conf.sample僚祷, 并重命名為
tracker.conf。
在/etc/fdfs 目錄中贮缕, 有三個(gè)配置文件(client.conf.sample辙谜; storage.conf.sample;
tracker.conf.sample) 這三個(gè)配置文件是作者給出的配置示例文件跷睦。 示例文件不要去動(dòng)它筷弦, 我
們復(fù)制一個(gè)示例文件來進(jìn)行配置肋演。
# cd /etc/fdfs
# cp tracker.conf.sample tracker.conf
# vim tracker.conf
編輯 tracker.conf 抑诸, 標(biāo)紅的需要修改下, 其它的默認(rèn)即可爹殊。
# 配置文件是否不生效蜕乡, false 為生效
disabled=false
# 提供服務(wù)的端口
port=22122
# Tracker 數(shù)據(jù)和日志目錄地址(根目錄必須存在,子目錄會(huì)自動(dòng)創(chuàng)建)
base_path=/home/fastdfs/tracker
# HTTP 服務(wù)端口
http.server_port=80
創(chuàng)建 tracker 基礎(chǔ)數(shù)據(jù)目錄, 即 base_path 對(duì)應(yīng)的目錄
# mkdir -p /home/fastdfs/tracker
啟動(dòng) Tracker
啟動(dòng)命令:
# service fdfs_trackerd start
關(guān)閉命令:
# service fdfs_trackerd stop
啟動(dòng) FastDFS Tracker 后梗夸, 可以通過以下命令來查看 Tracker 是否啟動(dòng)成功:
# netstat -tupln
安裝成功
配置 FastDFS 存儲(chǔ) (Storage)
1层玲、 進(jìn)入 /etc/fdfs 目錄, 復(fù)制 FastDFS 存儲(chǔ)器樣例配置文件 storage.conf.sample反症, 并重命名
為 storage.conf
# cd /etc/fdfs
# cp storage.conf.sample storage.conf
# vim storage.conf
2辛块、 編輯 storage.conf,
# 配置文件是否不生效铅碍, false 為生效
disabled=false
# 指定此 storage server 所在 組(卷)
group_name=group1
# storage server 服務(wù)端口
port=23000
# 心跳間隔時(shí)間润绵, 單位為秒 (這里是指主動(dòng)向 tracker server 發(fā)送心跳)
heart_beat_interval=30
# Storage 數(shù)據(jù)和日志目錄地址(根目錄必須存在, 子目錄會(huì)自動(dòng)生成)
base_path=/home/fastdfs/storage
# 存放文件時(shí) storage server 支持多個(gè)路徑胞谈。 這里配置存放文件的基路徑數(shù)目尘盼, 通常只配一
個(gè)目錄。
store_path_count=1
# 逐一配置 store_path_count 個(gè)路徑烦绳, 索引號(hào)基于 0卿捎。
# 如果不配置 store_path0, 那它就和 base_path 對(duì)應(yīng)的路徑一樣径密。
store_path0=/home/fastdfs/file
# FastDFS 存儲(chǔ)文件時(shí)午阵, 采用了兩級(jí)目錄。 這里配置存放文件的目錄個(gè)數(shù)享扔。
# 如果本參數(shù)只為 N(如: 256) 底桂, 那么 storage server 在初次運(yùn)行時(shí)括细, 會(huì)在 store_path 下
自動(dòng)創(chuàng)建 N * N 個(gè)存放文件的子目錄。
subdir_count_per_path=256
# tracker_server 的列表 戚啥, 會(huì)主動(dòng)連接 tracker_server
# 有多個(gè) tracker server 時(shí)奋单, 每個(gè) tracker server 寫一行
tracker_server=192.168.78.128:22122
# 允許系統(tǒng)同步的時(shí)間段 (默認(rèn)是全天) 。 一般用于避免高峰同步產(chǎn)生一些問題而設(shè)定猫十。sync_start_time=00:00
sync_end_time=23:59
# 訪問端口
http.server_port=80
3览濒、 創(chuàng)建 Storage 基礎(chǔ)數(shù)據(jù)目錄, 對(duì)應(yīng) base_path 目錄
創(chuàng)建 base_path 目錄
# mkdir -p /home/fastdfs/storage
這是配置的 store_path0 目錄
# mkdir -p /home/fastdfs/file
5拖云、 啟動(dòng) Storage
啟動(dòng) storage
# service fdfs_storaged start
關(guān)閉 storage
# service fdfs_storaged stop
查看 Storage 和 Tracker 是否在通信:
# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
Client 配置贷笛, 文件上傳測試
1、 修改 Tracker 服務(wù)器中的客戶端配置文件
# cd /etc/fdfs
# cp client.conf.sample client.conf
# vim client.conf
2宙项、 修改如下配置即可乏苦, 其它默認(rèn)。
# Client 的數(shù)據(jù)和日志目錄
base_path=/home/fastdfs/client
# Tracker 端口
tracker_server=192.168.78.128:22122
3尤筐、 創(chuàng)建 client 目錄
# mkdir -p /home/fastdfs/client
4汇荐、上傳文件測試
首先下載一個(gè)圖片文件在 Downloads 目錄
在 Downloads 目錄下執(zhí)行下面的上傳命令:
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf timg.img
返回的文件 ID 由 group、 存儲(chǔ)目錄盆繁、 兩級(jí)子目錄掀淘、 fileid、 文件后綴名(由客戶端指定油昂, 主要
用于區(qū)分文件類型) 拼接而成革娄。
group1/M00/00/00/rBOr_1zqWcSASGLfAALpMV3ZLVg841.jpg
到此為止, FastDFS 文件服務(wù)器就搭建完畢冕碟, 并能夠上傳文件了拦惋! ! 安寺! 厕妖! ! 我衬!