Fastdfs-企業級分布式存儲應用
技術介紹:
FastDFS是由國人余慶所開發,其項目地址:https://github.com/happyfish100
FastDFS是一個輕量級的開源分布式文件系統,主要解決了大容量的文件存儲和高並發訪問的問題,文件存取時實現了負載均衡。
FastDFS是一款類Google FS的開源分布式文件系統,它用純C語言實現,支持Linux、FreeBSD、AIX等UNIX系統。它只能通過 專有API對文件進行存取訪問,不支持POSIX接口方式,不能mount使用。準確地講,Google FS以及FastDFS、mogileFS、 HDFS、TFS等類Google FS都不是系統級的分布式文件系統,而是應用級的分布式文件存儲服務。
FastDFS的特性:
1、分組存儲,靈活簡潔、對等結構,不存在單點
2、 文件ID由FastDFS生成,作為文件訪問憑證。FastDFS不需要傳統的name server
3、和流行的web server無縫銜接,FastDFS已提供apache和nginx擴展模塊
4、大、中、小文件均可以很好支持,支持海量小文件存儲
5、 支持多塊磁盤,支持單盤數據恢復
6、 支持相同文件內容只保存一份,節省存儲空間
7、 存儲服務器上可以保存文件附加屬性
8、 下載文件支持多線程方式,支持斷點續傳
項目環境:
一臺tracker:ip 172.17.13.136
一臺storage node1: ip 172.17.13.134
一臺storage node2: ip 172.17.13.135
項目實現:
一、在所有主機操作:
1、創建目錄用來存放下載的rpm包
mkdir fastdfs
cd fastdfs
lftp 172.17.0.1
>cd /pub/Sources/7.x86_64/fastdfs/
>mget *
需要的包有:
ls fastdfs
fastdfs-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-debuginfo-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-server-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-tool-5.0.11-1.el7.centos.x86_64.rpm
libfastcommon-1.0.36-1.el7.centos.x86_64.rpm
libfastcommon-devel-1.0.36-1.el7.centos.x86_64.rpm
libfdfsclient-5.0.11-1.el7.centos.x86_64.rpm
libfdfsclient-devel-5.0.11-1.el7.centos.x86_64.rpm
nginx-1.10.2-1.el7.centos.x86_64.rpm
nginx-all-modules-1.10.2-1.el7.centos.noarch.rpm
nginx-filesystem-1.10.2-1.el7.centos.noarch.rpm
nginx-mod-http-geoip-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-http-image-filter-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-http-perl-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-http-xslt-filter-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-mail-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-stream-1.10.2-1.el7.centos.x86_64.rpm
2、安裝需要的rpm包
yum localinstall lib* fast*
二、在Tracker服務器上操作:
1、創建工作目錄
mkdir -p /data/fastdfs/tracker
2、編輯配置文件並啟動服務
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
vim /etc/fdfs/tracker.conf
base_path=/data/fastdfs/tracker
啟動服務:/etc/init.d/fdfs_trackerd start
ss -ntl 查看22122端口打開
三、在storage主機上操作:
1、創建工作目錄
mkdir -p /data/fastdfs/storage
2、編輯配置文件並啟動服務
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
vim /etc/fdfs/storage.conf
base_path=/data/fastdfs/storage 工作路徑
store_path0=/data/fastdfs/storage 存儲路徑
tracker_server=172.17.13.136:22122
啟動服務:/etc/init.d/fdfs_storaged start
ss -ntl 查看23000端口打開
四、在tracker主機上操作:
1、編輯客戶端工具的配置文件,並查看存儲節點狀態
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf
tracker_server=172.17.13.136:22122
base_path=/data/fastdfs/tracker
查看:fdfs_monitor /etc/fdfs/client.conf
2、文件上傳
fdfs_upload_file /etc/fdfs/client.conf 2345_image_file_copy_2.jpg
3、文件查看
fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBENhlodMpmAHnjTAAAEiN5GKSA9782137
4、文件下載
如何實現nginx功能:
storage:
1、安裝nginx以及對應模塊
cd ~/fastdfs/
yum localinstall nginx*
2、修改nginx的location配置,添加映射路徑和啟動模塊。註意排除其他location匹配幹擾
vim /etc/nginx/nginx.conf
location /group1/M00 {
root /data/fastdfs/storage/data;
ngx_fastdfs_module;
}
3、修改對應fastdfs模塊
vim /etc/fdfs/mod_fastdfs.conf
url_have_group_name = true
tracker_server=172.17.13.136:22122
store_path0=/data/fastdfs/storage
systemctl start nginx
測試:http://172.17.13.134/group1/M00/00/00/rBENh1odSWeAP8amAAKKmTpeYKw687.jpg
可以訪問到該圖片
Fastdfs-企業級分布式存儲應用