更新時間:2021-06-11 15:13:03 來源:動力節點 瀏覽2374次
FastDFS是余慶老師開發的一個開源的高性能分布式文件系統(DFS)。它的主要功能包括:文件存儲,文件同步和文件訪問,以及高容量和負載平衡。
FastDFS系統有三個角色:跟蹤服務器(Tracker Server)、存儲服務器(Storage Server)和客戶端(Client)。
Tracker Server:跟蹤服務器,主要做調度工作,起到均衡的作用;負責管理所有的storage server和group,每個storage在啟動后會連接Tracker,告知自己所屬group等信息,并保持周期性心跳。多個Tracker之間是對等關系,不存在單點故障。
Storage Server:存儲服務器,主要提供容量和備份服務;以group為單位,每個group內可以有多臺storage server,組內的storage server上的數據互為備份。
Client:客戶端,上傳下載數據的服務器
模塊之間的主要關系如下:
下圖是實現統一的對外下載訪問入口的高可用架構,其中所有的Nginx只做下載用途,上傳通過tracker進行上傳。
二、環境準備工作
系統軟件說明:
名稱 | 說明 |
CentOS | 7.x(安裝系統) |
libfastcommon | FastDFS分離出的一些公用函數包 |
FastDFS | FastDFS本體 |
fastdfs-nginx-module | FastDFS和nginx的關聯模塊,解決組內同步延遲問題 |
nginx | nginx 1.12.2(CentOS 7 下YUM可以安裝的最新版本) |
整個搭建所需環境資源及用途如下表:
名稱 | 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、編譯環境準備
說明 | 位置 |
所有安裝包 | /opt/fastdfs |
數據存儲位置 | /data/fastdfs |
$ tar -zxvf libfastcommon-1.0.39.tar.gz
#安裝編譯環境
$ 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節點
$ cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf #storage節點
$ 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
#需要修改的內容如下
port=22122 # tracker服務器端口(默認22122,一般不修改)
base_path=/data/fastdfs # 存儲日志和數據的根目錄
#編輯啟動文件
$ 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
#需要修改的內容如下
port=23000 # storage服務端口(默認23000,一般不修改)
base_path=/data/fastdfs # 數據和日志文件存儲根目錄
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 #查看服務是否啟動,端口是否打開
#查看集群狀態
$ 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
#需要修改的內容如下
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
以上就是動力節點小編介紹的"FastDFS高可用集群架構配置搭建",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習