基于Ubuntu搭建FastDFS分布式文件系統(tǒng)

一婿失、FastDFS簡介

FastDFS是由淘寶余慶先生所開發(fā),是一個輕量級啄寡、高性能的開源分布式文件系統(tǒng)豪硅,用純C語言開發(fā),包括文件存儲挺物、文件同步懒浮、文件訪問(上傳下載)、存取負(fù)載均衡识藤、在線擴(kuò)容砚著、相同內(nèi)容只存儲一份等功能次伶,適合有大容量存儲需求的應(yīng)用或系統(tǒng),同類的分布式文件系統(tǒng)有谷歌的GFS稽穆、HDFS(Hadoop)冠王、TFS(淘寶)等。

二秧骑、FastDFS上傳流程

1版确、client詢問tracker上傳到的storage,不需要附加參數(shù)
2、tracker返回一臺可用的storage
3乎折、client直接和storage相連完成文件的上傳

三绒疗、FastDFS下載流程

1、client詢問tracker上傳到的storage,參數(shù)為文件標(biāo)識(組名和文件名)
2骂澄、tracker返回一臺可用的storage
3吓蘑、client直接和storage相連完成文件下載

四、FastDFS的單節(jié)點安裝前準(zhǔn)備

1坟冲、操作系統(tǒng):ubuntu 16.04(我的系統(tǒng)已經(jīng)配置ftp服務(wù)磨镶,ssh服務(wù))
2、安裝包:
    libfastcommon-master.zip:從fastdfs提取出來的C函數(shù)庫
    fastdfs-nginx-module-master.zip:storage節(jié)點http服務(wù)nginx模塊
    fastdfs-master.zip:fastdfs 源碼包
    fastdfs-client-java-master.zip:客戶端
    nginx-1.10.0.tar.gz:nginx包

3健提、安裝包下載路徑

鏈接:https://pan.baidu.com/s/1TKAbL0ZEcExEOn0gh6Lmxg&shfl=sharepset 
提取碼:92xg 

五琳猫、開始安裝

1、環(huán)境搭建及核心包安裝

上傳所有安裝包至主機(jī)私痹,我習(xí)慣放在/srv/ftp
下載所需的依賴包脐嫂、工具包

#依賴包
apt-get install -y make cmake gcc g++
#解壓zip的工具包
apt-get install -y unzip

安裝libfastcommon

#解壓到 /usr/local 目錄下
unzip libfastcommon-master.zip -d /usr/local/

#編譯
cd /usr/local/libfastcommon-master
./make.sh
./make.sh install

安裝fastdfs

#解壓到/usr/local
unzip fastdfs-master.zip -d /usr/local/

#編譯
cd /usr/local/fastdfs-master
./make.sh
./make.sh install

采取默認(rèn)安裝方式,相應(yīng)的文件及目錄如下:

tracker紊遵、storage節(jié)點啟動文件

配置文件
配置文件路徑

2账千、配置tracker服務(wù)器

復(fù)制tracker配置文件

cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

修改/etc/fdfs/tracker.conf

vim /etc/fdfs/tracker.conf
#修改內(nèi)容如下
disabled=false
port=22122
base_path=/fastdfs/tracker

創(chuàng)建base_path指定的目錄

mkdir -p /fastdfs/tracker

啟動tracker節(jié)點

/etc/init.d/fdfs_trackerd start
#如果顯示Starting FastDFS tracker server: 則啟動成功,否則檢查以上所有步驟是否正確

初次啟動會在/fastdfs/tracker下創(chuàng)建log暗膜、data目錄
通過ps -ef | grep fdfs_trackerd查看tracker進(jìn)程是否啟動

3匀奏、配置storage服務(wù)器

復(fù)制storage配置文件并重命名

cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

修改storage.conf配置文件

#啟用配置文件
disabled=false
#storage端口
port=23000
#數(shù)據(jù)和日志存儲的根目錄
base_path=/fastdfs/storage
#第一個存儲目錄
store_path0=/fastdfs/storage
#tracker服務(wù)器的ip和端口
tracker_server=192.168.0.129:22122
#http訪問端口,此時需要和后面的  nginx監(jiān)聽器端口一致
http.server_port=8888

http.server_port=8888務(wù)必記住学搜,后面配置nginx要用到
創(chuàng)建storage數(shù)據(jù)目錄

mkdir -p /fastdfs/storage

啟動storage節(jié)點

/etc/init.d/fdfs_storaged start
#如果顯示Starting FastDFS storage server: 則啟動成功娃善,否則檢查以上所有步驟是否正確

初次啟動會在/fastdfs/storage下創(chuàng)建log、data目錄
通過ps -ef | grep fdfs_storaged查看storage進(jìn)程是否啟動

4瑞佩、文件上傳測試

修改tracker節(jié)點客戶端配置文件

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

修改client.conf文件

base_path=/fastdfs/tracker
tracker_server=192.168.0.129:22122

執(zhí)行文件上傳命令

#進(jìn)入fastdfs-master目錄下
cd /usr/local/fastdfs-master
#執(zhí)行命令会放,我放了一張圖片在/srv/ftp下
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /srv/ftp/shinelon.jpg

返回一個路徑,group1/M00/00/00/wKgAgV1hRhmAFPa1AAhfXWePhdo571.jpg表示上傳成功

5钉凌、安裝fastdfs-nginx-module

解壓fastdfs-nginx-module-master.zip

unzip fastdfs-nginx-module-master.zip -d /usr/local/

安裝nginx(此處極易出錯務(wù)必小心謹(jǐn)慎)

解壓nginx到/usr/local

tar -xzvf nginx-1.10.0.tar.gz -C /usr/local/

此時編譯nginx會報錯,需要安裝pcre工具和zlib工具包

#我是將所有工具包下載并放置在/srv/ftp下
wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz
wget http://zlib.net/zlib-1.2.11.tar.gz

將上述兩個工具包解壓至/usr/local/

tar -xzvf pcre-8.40.tar.gz -C /usr/local/
tar -xzvf zlib-1.2.11.tar.gz -C /usr/local/

進(jìn)入pcre-8.40并編譯

cd /usr/local/pcre-8.40
#編譯1
./configure
#編譯2
make && make install

進(jìn)入zlib-1.2.11并編譯

cd /usr/local/zlib-1.2.11
#編譯1
./configure
#編譯2
make && make install

安裝編譯時需要用到的庫和工具

apt-get install build-essential libtool gcc automake autoconf make

編譯nginx(需要將fastdfs-nginx-module-master源碼作為模塊編譯進(jìn)去)
注意:進(jìn)入nginx-1.10.0目錄執(zhí)行以下命令咧最,執(zhí)行完后會生成nginx目錄,并不是命令寫錯了

cd /usr/local/nginx-1.10.0/
./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/fastdfs-nginx-module-master/src
make && make install

未報錯即為編譯成功

在這里插入圖片描述

執(zhí)行make && make install編譯
復(fù)制fastdfs-nginx-module源碼中的配置文件到/etc/fdfs并修改

cp /usr/local/fastdfs-nginx-modulemaster/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf

#修改如下
#客戶端訪問文件超時(單位:秒)
connect_timeout=10
#臨時目錄
base_path=/tmp
#tracker節(jié)點IP和端口
tracker_server=192.168.0.129:22122
#storage節(jié)點端口
storage_server_port=23000
#組名
group_name=group1
#訪問鏈接前綴加上組名
url_have_group_name=true
#文件真實存儲路徑
store_path0=/fastdfs/storage

復(fù)制fastdfs部分配置文件到/etc/fdfs目錄

cd /usr/local/fastdfs-master/conf
cp http.conf mime.types /etc/fdfs/

/fastdfs/storage文件存儲目錄下創(chuàng)建軟連接,將其鏈接到實際存儲數(shù)據(jù)的目錄

shell
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

配置nginx訪問storage文件

vim /usr/local/nginx/conf/nginx.conf

注意將#user nobody;修改為user root防止后面運(yùn)行出錯

#修改處1
user  root;
worker_processes  1;

#修改處2矢沿,前面提過務(wù)必記住的端口號
 server {
        listen       8888;
        server_name  localhost;

#修改處3滥搭, 添加以下代碼
location ~/group([0-9])/M00 {
            ngx_fastdfs_module;
        }

啟動nginx服務(wù)

/usr/bin/nginx
#返回ngx_http_fastdfs_set pid=xxx,即為成功

測試fastdfs訪問文件
http://192.168.0.129:8888/group1/M00/00/00/wKgAgV1hRhmAFPa1AAhfXWePhdo571.jpg

自此捣鲸,單機(jī)版FastDFS分布式文件系統(tǒng)搭建成功瑟匆,下一篇介紹java操作FastDFS

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市栽惶,隨后出現(xiàn)的幾起案子愁溜,更是在濱河造成了極大的恐慌,老刑警劉巖外厂,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冕象,死亡現(xiàn)場離奇詭異,居然都是意外死亡汁蝶,警方通過查閱死者的電腦和手機(jī)渐扮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掖棉,“玉大人墓律,你說我怎么就攤上這事♂:ィ” “怎么了耻讽?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帕棉。 經(jīng)常有香客問我针肥,道長,這世上最難降的妖魔是什么笤昨? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮握恳,結(jié)果婚禮上瞒窒,老公的妹妹穿的比我還像新娘吹缔。我一直安慰自己永脓,他們只是感情好跌帐,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布茄猫。 她就那樣靜靜地躺著蝇摸,像睡著了一般度气。 火紅的嫁衣襯著肌膚如雪校哎。 梳的紋絲不亂的頭發(fā)上薄辅,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天锹雏,我揣著相機(jī)與錄音巴比,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛轻绞,可吹牛的內(nèi)容都是我干的采记。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼政勃,長吁一口氣:“原來是場噩夢啊……” “哼唧龄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奸远,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤既棺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后懒叛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丸冕,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年芍瑞,在試婚紗的時候發(fā)現(xiàn)自己被綠了晨仑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡拆檬,死狀恐怖洪己,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竟贯,我是刑警寧澤答捕,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站屑那,受9級特大地震影響拱镐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜持际,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一沃琅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蜘欲,春花似錦益眉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至澈歉,卻和暖如春展鸡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背埃难。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工莹弊, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留涤久,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓箱硕,卻偏偏與公主長得像拴竹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子剧罩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容