當前位置:首頁 » 數據倉庫 » fastdfs兩個節點怎麼配置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

fastdfs兩個節點怎麼配置

發布時間: 2023-07-13 18:38:00

❶ linux環境下安裝FastDFS配置詳解

項目中使用了FastDFS作為文件系統,這里記錄一下它的安裝和配置過程

由於是測試環境,所以只提供了一台伺服器,後續軟體的安裝和配置都在這台伺服器上完成

1、安裝fastdfs公共庫橘顫返libfastcommon,注意fastdfs和libfastcommon的安裝目錄,後面安裝fastdfs-nginx-mole時需要進行相關配置

2、安裝fastdfs

3、配置Tracker

注意一下存放數據和日誌的目錄,啟動後需要查看日誌信息
4、啟動Tracker

5、查看日誌
為了確保Tracker啟動成功,我們可以在剛在配置的日誌目錄中查看日誌信息

出現上述信息表示Tracker已啟動成功
6、遇到的問題
Tracker啟動後,如果改了Tracker的配置文件想要重新啟動,執行啟動命令後發現日誌中報錯

這是因為此時Tracker已經啟動了,再執行啟動命令就會報錯地址已被使用,此時可以執行restart命令進行重啟

或者

安裝步驟在上面Tracker的安裝中已經做好了,直接配置即可
1、配置Storage

注意tracker的地址配置是否正確,否則啟動時會報錯
2、啟動Storage

3、查看日誌

出現上述信息表示Storage已啟動成功
4、遇到的問題
Storage啟動後,如果改了Storage的配置文件想要重新啟動,執行啟動命令後發現日誌中報錯

這是因為此時Storage已經啟動了,再執行啟動命令就會報錯地址已被使用,此時可以執行restart命令進行重啟

或者

之前阿里雲ESC實例遷移,導致伺服器內網ip地址發生了改變,重啟Storage時日誌報錯

這是由於Storage配置文件中tracker_server的ip地址還是舊地址,所以會出現連接超時的問題,將配置文件中的地址改成新的地址重啟Storage

1、配置fastdfs-nginx-mole所需的配置文件,包括mod_fastdfs.conf,http.conf,mime.types

注意tracker_server地址,否則啟動後會報錯

2、安裝配置

注意CORE_INCS和CFLAGS兩項的配置

1、建立nginx用戶

2、安裝配置

3、更改nginx目錄許可權

4、配置文件nginx.conf
提供一個最簡單的配置方式供參考,由於項目中nginx還做了其他處理,配置洞宴文件比較復雜,這里就不貼出來了

5、啟動nginx
兩種方式

或者

使圓飢用過程中有其他問題多查看日誌報錯情況,或者查閱 Nginx 跳轉fastdfs存儲圖片地址報錯問題分析過程匯總 ,詳細原理講解和測試查閱下面的參考文檔

參考: 分布式文件系統FastDFS實踐

❷ 誰用過fastDFS上傳文件,能不能分享點經驗

一. 應用系統在上傳文件到FastDFS成功時將原始文件名和「文件索引(FID)」保存下來(例如:保存到資料庫)。
二. 用戶點擊下載的時用Nginx的域名和FID拼出url,然後在url後面增加一個參數,指定原始文件名。例如:http://121.14.161.48:9030/group2/M00/00/89/eQ6h3FKJf_PRl8p4AUz4wO8tqaA688.apk?attname=filename.apk
三. 在Nginx上進行如下配置,這樣Nginx就會截獲url中的參數attname,在Http響應頭裡面加上欄位 Content-Disposition 「attachment;filename=$arg_attname」。

location /group2/M00 {
root /data/store/data;
if ($arg_attname ~ "^(.*).apk") {
add_header Content-Disposition "attachment;filename=$arg_attname";
}
ngx_fastdfs_mole;
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
四. 瀏覽器發現響應頭裡面有Content-Disposition 「attachment;filename=$arg_attname」時,就會把文件名顯示成filename指定的名稱。

❸ 文件Fastcompre是什麼

首先簡單了解一下基礎概念,FastDFS是一個開源的輕量級分布式文件系統,由跟蹤伺服器(tracker server)、存儲伺服器(storage server)和客戶端(client)三個部分組成,主要解決了海量數據存儲問題,特別適合以中小文件(建議范圍:4KB < file_size <500MB)為載體的在線服務。FastDFS的系統結構圖如下:

如上圖,FastDFS的兩個核心概念分別是:

  • Tracker(跟蹤器)

  • Storage(存儲節點)

  • Tracker主要做調度工作,相當於mvc中的controller的角色,在訪問上起負載均衡的作用。跟蹤器和存儲節點都可以由一台或多台伺服器構成,跟蹤器和存儲節點中的伺服器均可以隨時增加或下線而不會影響線上服務,其中跟蹤器中的所有伺服器都是對等的,可以根據伺服器的壓力情況隨時增加或減少。Tracker負責管理所有的Storage和group,每個storage在啟動後會連接Tracker,告知自己所屬的group等信息,並保持周期性的心跳,tracker根據storage的心跳信息,建立group==>[storage server list]的映射表,Tracker需要管理的元信息很少,會全部存儲在內存中;另外tracker上的元信息都是由storage匯報的信息生成的,本身不需要持久化任何數據,這樣使得tracker非常容易擴展,直接增加tracker機器即可擴展為tracker cluster來服務,cluster里每個tracker之間是完全對等的,所有的tracker都接受stroage的心跳信息,生成元數據信息來提供讀寫服務。

    Storage採用了分卷[Volume](或分組[group])的組織方式,存儲系統由一個或多個組組成,組與組之間的文件是相互獨立的,所有組的文件容量累加就是整個存儲系統中的文件容量。一個卷[Volume](組[group])可以由一台或多台存儲伺服器組成,一個組中的存儲伺服器中的文件都是相同的,組中的多台存儲伺服器起到了冗餘備份和負載均衡的作用,數據互為備份,存儲空間以group內容量最小的storage為准,所以建議group內的多個storage盡量配置相同,以免造成存儲空間的浪費。更多原理性的內容可以參考這篇blog,介紹的很詳細:分布式文件系統FastDFS設計原理
    接下來就具體看一下FastDFS的整個下載安裝過程~

❹ tomcat,nginx,fastdfs怎麼配置

1.系統環境

最小化安裝的 CentOS 6.2

tracker1: 192.168.68.113
tracker1: 192.168.68.116

storage1: 192.168.68.114
storage1: 192.168.68.115

2.環境准備[所有伺服器都需要]

安裝EPEL源
rpm -ivh epel-release-6-6.noarch.rpm

安裝開發工具和編譯nginx所需的開發包

yum groupinstall -y "Development Tools"
yum install -y libevent-devel pcre-devel zlib-devel

3.在tracker上的安裝配置

[root@tracker1]# wget http://fastdfs.googlecode.com/files/FastDFS_v3.06.tar.gz
[root@tracker1]# tar xvzf FastDFS_v3.06.tar.gz
[root@tracker1]# cd FastDFS
[root@tracker1]# vi make.sh
#將找到下面兩行,將前邊的"#"去掉,目的是安裝httpd和fdfs_trackerd/fdfs_storaged服務

WITH_HTTPD=1
WITH_LINUX_SERVICE=1

[root@tracker1]# ./make.sh
[root@tracker1]# ./make.sh install
[root@tracker1]# vi /etc/fdfs/tracker.conf

修改/etc/fdfs/tracker.conf,主要修改以下兩處,如有其他調整,可參考文檔備螞自行調整,默認的配置也可以工作。

# 配置data和log的存放凳滾肆路徑,該路徑如果不存在,需要自己創建棗轎
base_path=/home/tracker1/fastdfs

# 找到下面這行包含兩個"##"號
##include http.conf
# 去掉一個"#"
#include http.conf

[root@tracker1]# mkdir -p /home/tracker1/fastdfs

啟動tracker服務
[root@tracker1]# service fdfs_trackerd start

確認8080,22122埠已經監聽
[root@tracker1]# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:45372 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::45032 :::* LISTEN

4.在storage上的安裝配置
下載FastDFS,Nginx和fastdfs-nginx-mole
[root@storage1]# wget http://fastdfs.googlecode.com/files/FastDFS_v3.06.tar.gz
[root@storage1]# wget http://fastdfs.googlecode.com/files/fastdfs-nginx-mole_v1.10.tar.gz
[root@storage1]# wget http://nginx.org/download/nginx-1.0.11.tar.gz

安裝FastDFS =>安裝方法與tracker1上相同。

安裝nginx和fastdfs-nginx-mole
[root@storage1]# tar xvzf nginx-1.0.11.tar.gz
[root@storage1]# tar xvzf fastdfs-nginx-mole_v1.10.tar.gz
[root@storage1]# cd nginx-1.0.11
[root@storage1]# ./configure --prefix=/usr/local/nginx --add-mole=/home/fastdfs-nginx-mole/src
[root@storage1]# make
[root@storage1]# make install

[root@storage1]# vi /etc/fdfs/storage.conf
修改/etc/fdfs/storage.conf,主要修改以下幾處,如有其他調整,可參考文檔自行調整,默認的配置也可以工作。

# HTTP settings
# 關閉內置的web server
http.disabled=true

# the port of the web server on this storage server
# web server的埠改成80
http.server_port=80

# the name of the group this storage server belongs to
# 此台storage1所屬的伺服器組名,同組內storage數據完全相同
group_name=group1

# the base path to store data and log files
# 放置data和log的目錄
base_path=/home/storage1/fastdfs

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# 放置文件的目錄
store_path0=/home/storage1/fastdfs

# tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
# tracker server的ip和埠,此處可以寫多個tracker server,每行一個
tracker_server=192.168.68.113:22122
tracker_server=192.168.68.116:22122

[root@storage1]# cp /home/fastdfs-nginx-mole/src/mod_fastdfs.conf /etc/fdfs/
[root@storage1]# vi /etc/fdfs/mod_fastdfs.conf

# the base path to store log files
# 放置log的目錄
base_path=/home/storage1/fastdfs

# FastDFS tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
# tracker1的ip和埠,此處可以寫多個tracker server,每行一個
tracker_server=192.168.68.113:22122
tracker_server=192.168.68.116:22122

# the group name of storage server
# 此台storage server所屬的伺服器組名
group_name=group1

# if uri including group name
# default value is false
# 在URL中包含group名稱
url_have_group_name = true

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
# 放置文件的目錄
store_path0=/home/storage1/fastdfs

[root@storage1]# mkdir -p /home/storage1/fastdfs

在nginx的server配置段中增加M00的location聲明
[root@storage1]# vi /usr/local/nginx/conf/nginx.conf
location /group1/M00 {
root /home/storage1/fastdfs/data;
ngx_fastdfs_mole;
}

創建M00目錄的軟連接
[root@storage1]# ln -s /home/storage1/fastdfs/data /home/storage1/fastdfs/data/M00

啟動storage服務
[root@storage1]# service fdfs_storaged start

啟動nginx,啟動之前,要確定fdfs_trackerd服務已啟動且相關防火牆埠已開放
[root@storage1]# /usr/local/nginx/sbin/nginx

確認80,23000埠已經監聽
[root@storage1]# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:34169 0.0.0.0:* LISTEN
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::60001 :::* LISTEN

5.在tracker上的操作[作為client測試]

[root@tracker1]# /etc/fdfs/client.conf

# the base path to store log files
base_path=/tmp

# tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
tracker_server=192.168.68.113:22122
tracker_server=192.168.68.116:22122

創建一個用於測試的文件test.txt
[root@tracker1]# vi test.txt
輸入內容: hello,this is my first fastdfs test

保存。使用自帶的fdfs_test上傳文件測試

[root@tracker1]# /usr/local/bin/fdfs_test /etc/fdfs/client.conf upload test.txt
This is FastDFS client test program v3.06

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/
for more detail.

[2012-06-13 17:58:25] INFO - base_path=/tmp, connect_timeout=30, network_timeout=60, tracker_server_count=2, anti_steal_token=0, anti_steal_secret_key

length=0

tracker_query_storage_store_list_without_group:
server 1. group_name=group1, ip_addr=192.168.68.114, port=23000

group_name=group1, ip_addr=192.168.68.114, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKhEck_YZEHqsZRSAAAAJdWuY6w607.txt
source ip address: 192.168.68.114
file timestamp=2012-06-13 17:58:25
file size=37
file crc32=3584975788
file url: http://192.168.68.113:8080/group1/M00/00/00/wKhEck_YZEHqsZRSAAAAJdWuY6w607.txt
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/wKhEck_YZEHqsZRSAAAAJdWuY6w607_big.txt
source ip address: 192.168.68.114
file timestamp=2012-06-13 17:58:25
file size=37
file crc32=3584975788
file url: http://192.168.68.113:8080/group1/M00/00/00/wKhEck_YZEHqsZRSAAAAJdWuY6w607_big.txt

6.使用瀏覽器打開上傳的文件

❺ 初次接觸fastdfs,請問一個組兩台伺服器怎麼配置http

目前FastDFS支持類Unix系統 ,在Linux和FreeBSD下測試過,本文使用的是Ubuntu10.4,建議安裝之前先簡單了解一下FastDFS的原理 ,這對後繼的配置部分會有很好的理解。
一、准備工作-安裝libevent
FastDFS 內部綁定了 libevent 作為 http 伺服器 ,在V2.X版本必須安裝 libevent ,本文安裝的是V2.2版本,因此必須安裝libevent。(官方也推薦使用 http 方式下載 文件 )

如果已經安裝了 libevent,請確認安裝路徑是 /usr , 因為 FastDFS 在編譯源程序時,需要到此目錄下查找一些依賴文件,否則編譯 FastDFS 會出錯 。如果不是,建議首先卸載 libevent ,然後安裝到 /usr 下。Ubuntu10.4默認是安裝了libevent,可以到軟體中心卸載掉然後按照下面介紹的方式安裝。

安裝步驟:
解壓 libevent ,然後進入解壓後的目錄分別執行:
Shell代碼
./configure --prefix=/usr
make clean;
make
make install
安裝libevent完成。

二、安裝 FastDFS
1、下載 FastDFS 源程序

2、在 FastDFS_v4.05.tar.gz 所在文件夾下執行:
Shell代碼
sudo tar vxzf FastDFS_v4.05.tar.gz /home/soar/FastDFS
註: /home/soar/FastDFS 也可以是其他目錄,記住這是解壓目錄,以後用 %FastDFS% 表示)

3、由於要使用內置的 http 服務,因此編輯 %FastDFS%/make.sh 文件,找到
#WITH_HTTPD=1
修改成
WITH_HTTPD=1
以支持 http

4、進入 %FastDFS% 目錄,執行:
Shell代碼
sudo ./make.sh

5、在 %FastDFS% 目錄下,執行:
Shell代碼
sudo ./make.sh install

如果運行如上命令後,在命令行信息最後看到類似
Shell代碼
#ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so
#ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so
sh ./fdfs_link_library.sh

恭喜你,已經安裝成功了!

FastDFS的配置文件在%FastDFS%/conf目錄下,其中包括
Client.conf 客戶端上傳配置文件
Storage.conf 文件存儲伺服器配置文件
Tracker.conf 負責均衡調度伺服器配置文件
http.conf http伺服器配置文件

配置文件需要根據伺服器環境的不同,進行不同的配置,具體可以參考FastDFS官方的安裝配置文檔,以及FastDFS原理介紹文檔

在本例中,Tracker Server,Storage Server都安裝在一台伺服器上,IP:10.0.2.15
1、配置及啟動Tracker Server
A、修改%FastDFS%/conf/tracker.conf文件,修改如下
#可以自己指定目錄位置,但目錄必須存在,用於存儲日誌及storage server等信息,否則tracker server無法啟動
Txt代碼
base_path=/home/yuqing/fastdfs -> base_path=/home/soar/fastdfs_tracker
#改成你想要的http埠,將來http下載文件的埠就是他了
Txt代碼
http.server_port=8080 -> http.server_port=8090
#http支持
Txt代碼
##include http.conf -> #include http.conf
#默認4GB,如果空間不足,建議調小,否則會報no free space的異常,無法正常啟動
Txt代碼
reserved_storage_space = 4GB -> reserved_storage_space = 1GB
#tracker server對storage server供服務的埠,使用默認的即可,也可以自定義
Txt代碼
port=22122

B、將http.conf文件拷貝到/etc/fdfs目錄下,執行
Shell代碼
sudo cp %FastDFS%/conf/http.conf /etc/fdfs/
註:為了支持http,必須將這個文件拷貝到此目錄,否則無法啟動,報param http.XXX not exist or is empty類似的錯誤

C、進入/usr/local/bin/目錄,啟動tracker伺服器,執行
Shell代碼
sudo fdfs_trackerd %FastDFS%/conf/tracker.conf

D、進入/home/soar/fastdfs_tracker/logs/trackerd.log查看tracker的啟動日誌,如果看到類似
Shell代碼
[2010-11-04 16:21:25] INFO - FastDFS v2.02, base_path=/home/soar/fastdfs_tracker, connect_timeout=30s, network_timeout=60s, port=22122, bind_addr=, max_connections=256, work_threads=4, store_lookup=2, store_group=, store_server=0, store_path=0, reserved_storage_space=4MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=120s, thread_stack_size=64 KB, storage_ip_changed_auto_adjust=1, storage_sync_file_max_delay=86400s, storage_sync_file_max_time=300s
[2010-11-04 16:21:25] INFO - HTTP supported: server_port=8090, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0, check_active_interval=30, check_active_type=tcp, check_active_uri=/status.html

恭喜你,tracker server已經啟動成功!
2、配置及啟動Storage Server
A、修改%FastDFS%/conf/storage.conf文件,修改如下:
#可以自定義,但必須存在此目錄,用於存儲storage相關的log、group內的相關信息
Txt代碼
base_path=/home/yuqing/fastdfs -> /home/soar/fastdfs_storge
#文件的存儲位置,在一台storage server上可以指定多個存儲位置
Txt代碼
store_path0=/home/yuqing/fastdfs -> store_path0=/home/soar/fastdfs_storge
#必須指定
Txt代碼
group_name=group1
#修改成tracker server的IP和埠信息
Txt代碼
tracker_server=192.168.209.121:22122 -> tracker_server=10.0.2.15:22122
#http支持
Txt代碼
##include http.conf ->#include http.conf

B、進入/usr/local/bin/目錄,啟動storage伺服器,執行
Shell代碼
sudo fdfs_storaged %FastDFS%/conf/storage.conf

C、進入/home/soar/fastdfs_tracker/logs/storage.log查看storage伺服器啟動日誌,如果看到類似
Shell代碼
[2010-11-04 16:37:16] INFO - FastDFS v2.02, base_path=/home/soar/fastdfs_storge, store_path_count=1, subdir_count_per_path=256, group_name=group1, connect_timeout=30s, network_timeout=60s, port=23000, bind_addr=, client_bind=1, max_connections=256, work_threads=4, disk_rw_separated=1, disk_reader_threads=1, disk_writer_threads=1, buff_size=256KB, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=200ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time=23:59, write_mark_file_freq=500, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=60s, sync_stat_file_interval=300s, thread_stack_size=512 KB, upload_priority=10, if_alias_prefix=, check_file_plicate=0, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0, HTTP server port=8888, domain name=
[2010-11-04 16:37:16] INFO - HTTP supported: server_port=8888, http_trunk_size=262144, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0
[2010-11-04 16:37:16] INFO - file: storage_param_getter.c, line: 48, storage_ip_changed_auto_adjust=1
[2010-11-04 16:37:19] INFO - file: tracker_client_thread.c, line: 274, successfully connect to tracker server 10.0.2.15:22122, as a tracker client, my ip is 10.0.2.15

恭喜你,storage server已經啟動成功!

經過前面的安裝、配置、啟動,馬上就可以看到FastDFS的效果了,我們先上傳一個文件,然後再通過http下載。
一、上傳文件
FastDFS安裝包中,自帶了客戶端程序,通過程序可以進行文件上傳。在使用這個客戶端程序之前,首先需要配置client.conf,然後再進行文件上傳及下載。

1、修改%FastDFS%/conf/client.conf文件,修改如下:
#可自定義,但此目錄必須存在,用於存放文件上傳log
Txt代碼
base_path=/home/yuqing/fastdfs-> base_path=/home/soar/fastdfs_tracker
Txt代碼
tracker_server=192.168.209.121:22122 -> tracker_server=10.0.2.15:22122
Txt代碼
http.tracker_server_port=8080 ->http.tracker_server_port=8090
#支持http
Txt代碼
##include http.conf ->#include http.conf

2、進入/usr/local/bin/目錄,上傳文件,執行
Txt代碼
sudo fdfs_test %FastDFS%/conf/client.conf upload a.txt
註:a.txt可以在/usr/local/bin/目錄下自己創建一個

如果命令行反饋類似如下:

則說明上傳文件成功。

關於fastdfs集群和備份配置

1、修改tracker.conf文件中store_lookup=2 平衡負載

2、修改tracker.conf文件中store_server=0 採用輪詢方式。

如果希望只使用一台文件存儲伺服器,其他二台做備份,則修改文件tracker_server為某台主機的IP,只啟動文件存儲伺服器的tracker,其他二台備份伺服器不需要啟動tracker。

如果希望三台伺服器集群使用,互相備份,比如:使用A機器存儲文件,這時候A機器會將文件同步到B機器和C機器,同理使用B機器存儲文件,則會同時將文件同步到A機器和C機器。這時候需要將所有的機器IP和埠號

都配置在storage.conf中,如下所示:
tracker_server=10.207.16.127:22122
tracker_server=10.207.16.129:22122