centos7下的FastDFS5.09的安裝與使用


FastDFS是一款開源的輕量級分布式文件系統,純C實現,支持Linux、FreeBSD等Unix系統。

類google FS,不是通用的文件系統,只能通過專有API訪問。

FastDFS服務端有兩種角色:跟蹤器(tracker)和存儲節點(storage)。

tracker主要做調度工作,在訪問上起負載均衡的作用,在內存中記錄集群中group和storage的狀態信息,是連接client和storage的樞紐。

storage存儲服務器,文件和文件屬性都保存到存儲服務器上。

 

一、安裝fastdfs

下載libfastcommon包

https://github.com/happyfish100/libfastcommon/releases

下載fastdfs源碼包

https://github.com/happyfish100/fastdfs/releases

安裝libfastcommon

> tar xf libfastcommon-1.0.7.tar.gz
> cd libfastcommon-1.0.7
> ./make.sh
> ./make.sh install

安裝fastdfs

> tar xf fastdfs-5.09.tar.gz
> cd fastdfs-5.09
> ./make.sh
> ./make.sh install

如果出現ioevent.h:82:2: #error port me這樣的錯誤,請下載最新版的libfastcommon並安裝。

 

二、環境說明

創建兩台虛擬主機,IP分別為192.168.1.222和192.168.1.233,分別安裝fastdfs。

 

三、fastdfs的配置文件

配置文件默認在/etc/fdfs下
默認腳本在/etc/init.d下

創建兩個目錄,用來存放數據

> mkdir -p /data/fdfs_tracker
> mkdir -p /data/fdfs_storage

復制配置文件

> cd /etc/fdfs
> cp storage.conf.sample storage.conf
> cp tracker.conf.sample tracker.conf

跟蹤器的配置文件tracker.conf

#綁定IP
bind_addr=
#端口
port=22122
#連接超時時間
connect_timeout=30
#日志數據路徑
base_path=/data/fdfs_tracker
#上傳文件時選擇group的方法
#0:輪詢,1:指定組,2:選擇剩余空間最大
store_lookup=2
#如果上面的配置是1,那么這里必須指定組名
store_group=group2
#上傳文件時選擇server的方法
#0:輪詢,1:按IP地址排序,2:通過權重排序
store_server=0
#storage上預留空間
reserved_storage_space = 10%

存儲節點的配置文件storage.conf

#storage server所屬組名
group_name=group1
#綁定IP
bind_addr=
#storage server的端口
port=23000
#連接超時時間
connect_timeout=30
#日志數據路徑
base_path=/data/fdfs_storage/base
#storage path的個數
store_path_count=2
#根據store_path_count的值,就要有storage0到storage(N-1)個
store_path0=/data/fdfs_storage/storage0
store_path1=/data/fdfs_storage/storage1
#跟蹤服務器
tracker_server=192.168.1.222:22122
tracker_server=192.168.1.233:22122

創建目錄,不然會出錯

> mkdir -p /data/fdfs_storage/base
> mkdir -p /data/fdfs_storage/storage0
> mkdir -p /data/fdfs_storage/storage1

啟動服務

> /etc/init.d/fdfs_trackerd start
> /etc/init.d/fdfs_storaged start

查看服務是否啟動

> ps -ef|grep fdfs
> netstat -nltp

  

四、測試fastdfs

配置client文件

> cd /etc/fdfs
> cp client.conf.sample client.conf
> vi client.conf
#存放日志目錄
base_path=/data/client
#跟蹤服務器
tracker_server=192.168.1.222:22122
tracker_server=192.168.1.233:22122

創建client目錄

> mkdir -p /data/client

通過fdfs_upload_file來測試(如果發生錯誤,請查看防火牆)

> echo "12345678" >> /data/1.txt
> fdfs_upload_file /etc/fdfs/client.conf /data/1.txt

通過fdfs_download_file下載我們剛上傳的文件

> fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt

查看文件信息

> fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt

追加文件

> echo "hello" >> /data/2.txt
> fdfs_upload_appender /etc/fdfs/client.conf /data/1.txt
> fdfs_append_file /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3bxCEAcqhAAAAAIk0NhY869.txt /data/2.txt

刪除文件

> fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt

查看集群

> fdfs_monitor /etc/fdfs/client.conf

  

五、fastdfs的nginx模塊

下載pcre和nginx源碼包

https://ftp.pcre.org/pub/pcre/

如:pcre-8.40.tar.gz

http://nginx.org/en/download.html

如:nginx-1.10.3.tar.gz

https://github.com/happyfish100/fastdfs-nginx-module

如:fastdfs-nginx-module-master.zip

 

創建用戶

> useradd -s /sbin/nologin -M nginx

安裝pcre

> tar xf pcre-8.40.tar.gz
> cd pcre-8.40
> ./configure --prefix=/data/pcre
> make && make install

安裝nginx

> yum install zlib-devel openssl-devel
> unzip fastdfs-nginx-module-master.zip
> tar xf nginx-1.10.3.tar.gz
> cd nginx-1.10.3
> ./configure --prefix=/data/nginx \
> --with-pcre=/data/pcre-8.40 \
> --user=nginx \
> --group=nginx \
> --with-http_ssl_module \
> --with-http_realip_module \
> --with-http_stub_status_module \
> --add-module=/data/fastdfs-nginx-module-master/src
> make && make install

拷貝配置文件

> cd /data/fastdfs-nginx-module-master/src
> cp mod_fastdfs.conf /etc/fdfs/
> cd /data/fastdfs-5.09/conf
> cp anti-steal.jpg http.conf mime.types /etc/fdfs/

修改nginx.conf

> vi /data/nginx/conf/nginx.conf
server {
    listen 80;
    server_name localhost;

    location ~ /group[0-9]/M00 {
        ngx_fastdfs_module;
    }
}

修改mod_fastdfs.conf

> vi /etc/fdfs/mod_fastdfs.conf
#日志目錄
base_path=/tmp
#跟蹤服務器
tracker_server=192.168.1.222:22122
tracker_server=192.168.1.233:22122
#url中是否有group名稱
url_have_group_name = true
#storage path的個數
store_path_count=2
#根據store_path_count的值,就要有storage0到storage(N-1)個
store_path0=/data/fdfs_storage/storage0
store_path1=/data/fdfs_storage/storage1

啟動nginx

> /data/nginx/sbin/nginx

上傳一個文件

> echo "12345678" >> /data/1.txt
> fdfs_upload_file /etc/fdfs/client.conf /data/1.txt

然后通過nginx訪問該文件

http://192.168.1.222/group1/M00/00/00/wKgB6Vi3fGiAMsO2AAAAB2BGSN8003.txt

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM