?1俱恶,F(xiàn)astDFS基本介紹:
FastDFS 系統(tǒng)有三個角色劈榨,跟蹤服務(wù)器(Tracker Server)、存儲服務(wù)器(Storage Server)和客戶端(Client)汹买。
Tracker Server: 跟蹤服務(wù)器浩习,主要做調(diào)度工作静暂,起到均衡的作用;負(fù)責(zé)管理所有的 storage server和 group谱秽,每個 storage 在啟動后會連接Tracker洽蛀,告知自己所屬 group 等信息,并保持周期性心跳疟赊。
Storage Server:存儲服務(wù)器郊供,主要提供容量和備份服務(wù);以 group 為單位近哟,每個 group 內(nèi)可以有多臺 storage server驮审,數(shù)據(jù)互為備份。
Client:客戶端吉执,上傳下載數(shù)據(jù)的服務(wù)器疯淫,也就是我們自己的項目所部署在的服務(wù)器。這里免不了放一張余慶老師介紹 FastDFS 的 PPT 中的一張架構(gòu)圖戳玫,清晰的說明了上述職責(zé)及關(guān)系:
這里免不了放一張余慶老師介紹 FastDFS 的 PPT 中的一張架構(gòu)圖熙掺,清晰的說明了上述職責(zé)及關(guān)系:
上述架構(gòu)優(yōu)點:
1.高可靠性:無單點故障
?2.高吞吐性:只要 Group 足夠多,數(shù)據(jù)流量將足夠分散咕宿。
那么怎么上傳下載以及同步文件這么操作呢币绩?我在這就不詳細(xì)說全部流程了蜡秽,大概上傳流程就是客戶端發(fā)送上傳請求到Tracker Server服務(wù)器,接著Tracker Server服務(wù)器分配group和Storage Server缆镣,當(dāng)然這是有一定規(guī)則的芽突,選擇好Storage Server后再根據(jù)一定規(guī)則選擇存儲在這個服務(wù)器會生成一個file_id,這個file_id 包含字段包括:storage server ip董瞻、文件創(chuàng)建時間诉瓦、文件大小、文件 CRC32 校驗碼和隨機數(shù)力细;每個存儲目錄下有兩個 256 * 256 個子目錄,后邊你會知道一個Storage Server存儲目錄下有好多個文件夾的固额,storage 會按文件file_id進行兩次 hash 眠蚂,路由到其中一個子目錄,然后將文件存儲到該子目錄下斗躏,最后生成文件路徑:group 名稱逝慧、虛擬磁盤路徑、數(shù)據(jù)兩級目錄啄糙、file_id和文件后綴就是一個完整的文件地址笛臣。
2,F(xiàn)astDFS 在 CentOS 下配置安裝部署
一隧饼、安裝 libfastcommon 和 FastDFS
1沈堡,下載安裝 libfastcommon ,這里是通過wget下載:
?wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
解壓 libfastcommon燕雁,命令:
tar -zxvf V1.0.7.tar.gz
移動解壓目錄到/usr/local下:
mv libfastcommon-1.0.7/usr/local/
編譯诞丽,進入libfastcommon-1.0.7目錄,命令:
cd/usr/local/libfastcommon-1.0.7./make.sh
2安裝拐格,命令:
./make.shinstall
顯示這樣的畫面僧免,就是安裝 libfastcommon 成功啦。
2捏浊,下載安裝 FastDFS懂衩,這里也是通過wget下載
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
解壓 FastDFS ,命令:
tar -zxvf V5.05.tar.gz
移動解壓目錄到/usr/local下:
mv fastdfs-5.05//usr/local/
編譯金踪,進入fastfds-5.05目錄浊洞,命令:
cd /usr/local/fastdfs-5.05./make.sh
安裝,命令:
./make.sh install
顯示這樣的畫面热康,就是安裝 FastDFS 成功啦沛申。
二、配置 Tracker 服務(wù)
上述安裝成功后姐军,在/etc/目錄下會有一個fdfs的目錄铁材,進入它尖淘。會看到三個.sample后綴的文件,這是作者給我們的示例文件著觉,我們需要把其中的tracker.conf.sample文件改為tracker.conf配置文件并修改它村生。參照以下命令:
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
vim tracker.conf
// 編輯tracker.conf文件,找到你需要修改的兩個參數(shù)就可以了饼丘,我這里不做修改趁桃,用默認(rèn)的
# thebasepathtostore dataandlog files// 數(shù)據(jù)和日志的存放目錄
base_path=/home/yuqing/fastdfs
# HTTP port on this tracker server// http服務(wù)端口
http.server_port=8070
修改完成后我們需要建立tracker的工作目錄,不然啟動報錯(上面base_path配置的目錄)
mkdir -p? /home/yuqing/fastdfs
啟動tracker服務(wù):
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
查看監(jiān)聽:
ps -ef|grep fdfs 或 netstat -lnpt|grep fdfs
看到trackerd服務(wù)正常啟動后肄鸽,這時候就算 Tracker服務(wù)安裝成功啦卫病!
三、配置 Storage 服務(wù)
現(xiàn)在開始配置 Storage 服務(wù)典徘,由于我這是單機器測試蟀苛,你把 Storage 服務(wù)放在多臺服務(wù)器也是可以的,它有 Group(組)的概念逮诲,同一組內(nèi)服務(wù)器互備同步帜平,這里不再演示。直接開始配置梅鹦,依然是進入/etc/fdfs的目錄操作裆甩,首先進入它。會看到三個.sample后綴的文件齐唆,我們需要把其中的storage.conf.sample文件改為storage.conf配置文件并修改它嗤栓。參照以下命令:
cd /etc/fdfs/
cp storage.conf.sample storage.conf
vim storage.conf
打開storage.conf文件后,找到下面參數(shù)進行修改:
# the base path to store data and log files // 數(shù)據(jù)和日志的存放目錄
base_path=/home/yuqing/fastdfs
# path(disk or mount point) count, default value is 1 // storage在存儲文件時支持多路徑箍邮,默認(rèn)只設(shè)置一個(下面store_path0配置的數(shù)量個數(shù))
store_path_count=1
# store_path#, based 0, if store_path0 not exists, it's value is base_path // 配置多個store_path路徑抛腕,從0開始,如果store_path0不存在媒殉,則base_path必須存在
# the paths must be exist
// 此處可以配置多個路徑担敌,如:store_path0=xx, store_path1=xx,store_path2=xx
// 多個項目的文件按照文件夾分割廷蓉,通過/usr/bin/fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index] 選擇storage服務(wù)器和store_path角標(biāo)上傳到相應(yīng)的項目下
store_path0=/home/yuqing/fastdfs
# tracker_server can ocur more than once, and tracker_server format is // 設(shè)置tracker_server
#? "host:port", host can be hostname or ip address
tracker_server=192.168.2.121:22122
修改完成后我們需要建立tracker的工作目錄全封,不然啟動報錯(上面base_path配置的目錄和store_path0配置的目錄)
mkdir-p /home/yuqing/fastdfs
啟動storage服務(wù):
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
查看監(jiān)聽:
ps -ef|grep fdfs 或 netstat -lnpt|grep fdfs
很好,22122 和 23000端口都在監(jiān)聽了桃犬,這個時候你去/home/yuqing/fastdfs文件夾下看的話刹悴,會出現(xiàn)一大堆文件夾,而且進去還有一大堆攒暇,哈哈土匀,這就是存放文件的啦!
到這里形用,我們安裝配置并啟動了 Tracker 和 Storage 服務(wù)就轧,也沒有報錯了证杭。那他倆是不是在通信呢?我們可以監(jiān)視一下:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到我紅線處ACTIVE這樣就 ok 啦妒御!
四解愤、配置 fdfs_upload_file 上傳文件
依然是進入/etc/fdfs的目錄操作,首先進入它乎莉。會看到三個.sample后綴的文件送讲,我們需要把其中的client.conf.sample文件改為client.conf配置文件并修改它。參照以下命令:
cd /etc/fdfs/
cpclient.conf.sample client.conf?
vim client.conf
找到下面參數(shù)進行修改:
# the base path to store log files // 日志的存放目錄
base_path=/home/yuqing/fastdfs
# tracker_server can ocur more than once, and tracker_server format is // tracker_server服務(wù)的地址和端口號
#? "host:port", host can be hostname or ip address
tracker_server=192.168.2.121:22122
修改完成后我們就可以通過/usr/bin/fdfs_upload_file命令上傳文件了惋啃,/usr/bin/fdfs_upload_file 命令用法:
[root@localhost fdfs]# /usr/bin/fdfs_upload_file
Usage: /usr/bin/fdfs_upload_file <config_file> <local_filename> [storage_ip:port] [store_path_index]
// 命令 配置文件 上傳的文件 storage_ip和端口 store_path角標(biāo)