更新時間:2021-06-11 15:13:03 來源:動力節(jié)點 瀏覽2945次
FastDFS是余慶老師開發(fā)的一個開源的高性能分布式文件系統(tǒng)(DFS)。它的主要功能包括:文件存儲,文件同步和文件訪問,以及高容量和負載平衡。
FastDFS系統(tǒng)有三個角色:跟蹤服務器(Tracker Server)、存儲服務器(Storage Server)和客戶端(Client)。
Tracker Server:跟蹤服務器,主要做調(diào)度工作,起到均衡的作用;負責管理所有的storage server和group,每個storage在啟動后會連接Tracker,告知自己所屬group等信息,并保持周期性心跳。多個Tracker之間是對等關系,不存在單點故障。
Storage Server:存儲服務器,主要提供容量和備份服務;以group為單位,每個group內(nèi)可以有多臺storage server,組內(nèi)的storage server上的數(shù)據(jù)互為備份。
Client:客戶端,上傳下載數(shù)據(jù)的服務器
模塊之間的主要關系如下:

下圖是實現(xiàn)統(tǒng)一的對外下載訪問入口的高可用架構,其中所有的Nginx只做下載用途,上傳通過tracker進行上傳。

二、環(huán)境準備工作
系統(tǒng)軟件說明:
| 名稱 | 說明 |
| CentOS | 7.x(安裝系統(tǒng)) |
| libfastcommon | FastDFS分離出的一些公用函數(shù)包 |
| FastDFS | FastDFS本體 |
| fastdfs-nginx-module | FastDFS和nginx的關聯(lián)模塊,解決組內(nèi)同步延遲問題 |
| nginx | nginx 1.12.2(CentOS 7 下YUM可以安裝的最新版本) |
整個搭建所需環(huán)境資源及用途如下表:
| 名稱 | IP地址 | 應用 |
| 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)境準備
| 說明 | 位置 |
| 所有安裝包 | /opt/fastdfs |
| 數(shù)據(jù)存儲位置 | /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 #為下一步下載源碼做準備
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
#配置文件準備
$ cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf #tracker節(jié)點
$ cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf #storage節(jié)點
$ cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客戶端文件,測試用
$ cp /opt/fastdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/ #供nginx訪問使用
$ cp /opt/fastdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/ #供nginx訪問使用
$ vim /etc/fdfs/tracker.conf
#需要修改的內(nèi)容如下
port=22122 # tracker服務器端口(默認22122,一般不修改)
base_path=/data/fastdfs # 存儲日志和數(shù)據(jù)的根目錄
#編輯啟動文件
$ 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 #查看服務是否啟動,端口是否打開
storage server配置
$ vim /etc/fdfs/storage.conf
#需要修改的內(nèi)容如下
port=23000 # storage服務端口(默認23000,一般不修改)
base_path=/data/fastdfs # 數(shù)據(jù)和日志文件存儲根目錄
store_path0=/data/fastdfs # 第一個存儲目錄
tracker_server=192.168.0.1:22122 # tracker服務器IP和端口
tracker_server=192.168.0.2:22122 # tracker服務器IP和端口
http.server_port=8888 # http訪問文件的端口(默認8888,看情況修改,和nginx中保持一致)
#編輯啟動文件
$ 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 #查看服務是否啟動,端口是否打開
#查看集群狀態(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服務器IP和端口
tracker_server=192.168.0.2:22122 # tracker服務器IP和端口
#保存后測試,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
$ fdfs_upload_file /etc/fdfs/client.conf testfile
以上就是動力節(jié)點小編介紹的"FastDFS高可用集群架構配置搭建",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務。