更新時(shí)間:2021-06-11 15:13:03 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2399次
FastDFS是余慶老師開(kāi)發(fā)的一個(gè)開(kāi)源的高性能分布式文件系統(tǒng)(DFS)。它的主要功能包括:文件存儲(chǔ),文件同步和文件訪問(wèn),以及高容量和負(fù)載平衡。
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等信息,并保持周期性心跳。多個(gè)Tracker之間是對(duì)等關(guān)系,不存在單點(diǎn)故障。
Storage Server:存儲(chǔ)服務(wù)器,主要提供容量和備份服務(wù);以group為單位,每個(gè)group內(nèi)可以有多臺(tái)storage server,組內(nèi)的storage server上的數(shù)據(jù)互為備份。
Client:客戶端,上傳下載數(shù)據(jù)的服務(wù)器
模塊之間的主要關(guān)系如下:
下圖是實(shí)現(xiàn)統(tǒng)一的對(duì)外下載訪問(wèn)入口的高可用架構(gòu),其中所有的Nginx只做下載用途,上傳通過(guò)tracker進(jìn)行上傳。
二、環(huán)境準(zhǔn)備工作
系統(tǒng)軟件說(shuō)明:
名稱 | 說(shuō)明 |
CentOS | 7.x(安裝系統(tǒng)) |
libfastcommon | FastDFS分離出的一些公用函數(shù)包 |
FastDFS | FastDFS本體 |
fastdfs-nginx-module | FastDFS和nginx的關(guān)聯(lián)模塊,解決組內(nèi)同步延遲問(wèn)題 |
nginx | nginx 1.12.2(CentOS 7 下YUM可以安裝的最新版本) |
整個(gè)搭建所需環(huán)境資源及用途如下表:
名稱 | IP地址 | 應(yīng)用 |
tracker01 | 192.168.0.1 | FastDFS,libfastcommon |
tracker02 | 192.168.0.2 | FastDFS,libfastcommon |
storage01 | 192.168.0.10 | FastDFS,libfastcommon,nginx,fastdfs-nginx-module |
storage02 | 192.168.0.11 | FastDFS,libfastcommon,nginx,fastdfs-nginx-module |
nginx01 | 192.168.0.100 | nginx,keepalived |
nginx02 | 192.168.0.101 | nginx,keepalived |
VIP | 192.168.0.200 | - |
1、編譯環(huán)境準(zhǔn)備
說(shuō)明 | 位置 |
所有安裝包 | /opt/fastdfs |
數(shù)據(jù)存儲(chǔ)位置 | /data/fastdfs |
$ tar -zxvf libfastcommon-1.0.39.tar.gz
#安裝編譯環(huán)境
$ yum groups install Development Tools -y
$ yum install perl -y
$ mkdir -p /opt/fastdfs /data/fastdfs
$ cd /opt/fastdfs #為下一步下載源碼做準(zhǔn)備
2、安裝libfastcommon
#下載文件
$ wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz
$ tar -zxvf libfastcommon-1.0.39.tar.gz
$ cd libfastcommon-1.0.39/
$ ./make.sh
$ ./make.sh install
$ wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
$ tar -zxvf fastdfs-5.11.tar.gz
$ cd fastdfs-5.11/
$ ./make.sh
$ ./make.sh install
#配置文件準(zhǔn)備
$ cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf #tracker節(jié)點(diǎn)
$ cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf #storage節(jié)點(diǎn)
$ cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客戶端文件,測(cè)試用
$ cp /opt/fastdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/ #供nginx訪問(wèn)使用
$ cp /opt/fastdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/ #供nginx訪問(wèn)使用
$ vim /etc/fdfs/tracker.conf
#需要修改的內(nèi)容如下
port=22122 # tracker服務(wù)器端口(默認(rèn)22122,一般不修改)
base_path=/data/fastdfs # 存儲(chǔ)日志和數(shù)據(jù)的根目錄
#編輯啟動(dòng)文件
$ vim /usr/lib/systemd/system/fastdfs-tracker.service
[Unit]
Description=The FastDFS File server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
ExecStop=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
ExecRestart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
[Install]
WantedBy=multi-user.target
$ systemctl daemon-reload
$ systemctl enable fastdfs-tracker.service
$ systemctl start fastdfs-tracker.service
$ netstat -tulnp #查看服務(wù)是否啟動(dòng),端口是否打開(kāi)
storage server配置
$ vim /etc/fdfs/storage.conf
#需要修改的內(nèi)容如下
port=23000 # storage服務(wù)端口(默認(rèn)23000,一般不修改)
base_path=/data/fastdfs # 數(shù)據(jù)和日志文件存儲(chǔ)根目錄
store_path0=/data/fastdfs # 第一個(gè)存儲(chǔ)目錄
tracker_server=192.168.0.1:22122 # tracker服務(wù)器IP和端口
tracker_server=192.168.0.2:22122 # tracker服務(wù)器IP和端口
http.server_port=8888 # http訪問(wèn)文件的端口(默認(rèn)8888,看情況修改,和nginx中保持一致)
#編輯啟動(dòng)文件
$ vim /usr/lib/systemd/system/fastdfs-storage.service
[Unit]
Description=The FastDFS File server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
ExecStop=/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
ExecRestart=/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
[Install]
WantedBy=multi-user.target
$ systemctl daemon-reload
$ systemctl enable fastdfs-storage.service
$ systemctl start fastdfs-storage.service
$ netstat -tulnp #查看服務(wù)是否啟動(dòng),端口是否打開(kāi)
#查看集群狀態(tài)
$ fdfs_monitor /etc/fdfs/storage.conf list
[2018-11-06 00:00:00] DEBUG - base_path=/data/fastdfs/storage, connect_timeout=30, network_timeout=60, tracker_server_count=2, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
server_count=2, server_index=0
tracker server is 192.168.0.1:22122
group count: 1
Group 1:
...
$ vim /etc/fdfs/client.conf
#需要修改的內(nèi)容如下
base_path=/data/fastdfs
tracker_server=192.168.0.1:22122 # tracker服務(wù)器IP和端口
tracker_server=192.168.0.2:22122 # tracker服務(wù)器IP和端口
#保存后測(cè)試,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
$ fdfs_upload_file /etc/fdfs/client.conf testfile
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"FastDFS高可用集群架構(gòu)配置搭建",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743