分布式存儲-FastDFS
是一款開源分布式文件系統。用純C語言實現
功能包括:文件存儲,文件同步,文件訪問(上傳,下載)
解決了大容量存儲和負載均衡的問題
服務端有兩個角色:
跟蹤器 做調度工作、啟負載均衡作用 (192.168.4.70)
存儲節點 存儲、同步和提供存取接口,對文件的數據進行管理(192.168.4.71|72)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
一、裝包
fastdfs-nginx-module_v1.16.tar.gz
FastDFS_v4.06.tar.gz
libevent-devel-1.4.13-4.el6.x86_6
libevent-doc-1.4.13-4.el6.noarch.
libevent-headers-1.4.13-4.el6.noa
nginx-1.7.10.tar.gz
1、配置主控服務器70
[root@pc70 ~]# yum -y install gcc gcc-c++
[root@pc70 ~]# yum -y install libevent
[root@pc70 ~]# yum -y install libevent-*
libevent-headers-1.4.13-4.el6.noarch
libevent-devel-1.4.13-4.el6.x86_64
libevent-doc-1.4.13-4.el6.noarch
[root@pc70 ~]# tar -zxf FastDFS_v4.06.tar.gz 解壓源碼包
[root@pc70 ~]# cd FastDFS
[root@pc70 FastDFS]# ./make.sh
[root@pc70 FastDFS]# ./make.sh install
[root@pc70 FastDFS]# ls /usr/local/bin/ 存放命令的文件
[root@pc70 FastDFS]# ls /etc/fdfs/
二、
1、修改配置文件
[root@pc70 FastDFS]# vim /etc/fdfs/tracker.conf
22 base_path=/data/fastdfs 指定日誌文件目錄
36 store_lookup=0 輪詢
182 use_storage_id = true
186 storage_ids_filename = storage_ids.conf id號在這個文件指
[root@pc70 FastDFS]# mkdir -p /data/fastdfs
2、 創建 storage_ids.conf
[root@pc70 FastDFS]# cp conf/storage_ids.conf /etc/fdfs/
[root@pc70 FastDFS]# vim /etc/fdfs/storage_ids.conf 存儲組和ip地址
# <id> <group_name> <ip_or_hostname>
100001 group1 192.168.4.71
100002 group1 192.168.4.72
3、配置節點服務器(70、71)
安裝依賴包、FastDFS
[root@pc71 ~]# yum -y install gcc gcc-c++ libevent
[root@pc71 ~]# yum -y install libevent-*
[root@pc71 FastDFS]# ./make.sh
[root@pc71 FastDFS]# ./make.sh install
[root@pc71 FastDFS]# vim /etc/fdfs/storage.conf
group_name=group1 指定的組
37 base_path=/data/fastdfs 日誌、數據文件存放目錄
96 store_path_count=1 存儲數據路徑個數
85 sync_start_time=00:00 推送起始時間
89 sync_end_time=23:59 推送結束時間
100 store_path0=/data/fastdfs 存放數據目錄
109 tracker_server=192.168.4.70:22122 主控服務器ip和端口號
140 file_distribute_path_mode=0 數據存儲數據路徑
145 file_distribute_rotate_count=100 當第一個文件達到100然後往下一個路徑存
節點服務器72
[root@pc72 ~]# yum -y install gcc gcc-c++ libevent libevent-*
[root@pc72 ~]# mkdir -p /data/fastdfs
[root@pc72 ~]# mount /dev/vdb1 /data/fastdfs
[root@pc72 ~]# df -h
[root@pc72 ~]# tar -zxf FastDFS_v4.06.tar.gz
[root@pc72 FastDFS]# cd FastDFS
[root@pc72 FastDFS]# ./make.sh && ./make.sh install
修改配置文件
[root@pc72 FastDFS]# vim /etc/fdfs/storage.conf
group_name=group1 指定的組
37 base_path=/data/fastdfs 日誌、數據文件存放目錄
96 store_path_count=1 存儲數據路徑個數
85 sync_start_time=00:00 推送起始時間
89 sync_end_time=23:59 推送結束時間
100 store_path0=/data/fastdfs 存放數據目錄
109 tracker_server=192.168.4.70:22122 主控服務器ip和端口號
140 file_distribute_path_mode=0 數據存儲數據路徑
145 file_distribute_rotate_count=100 當第一個文件達到100然後往下一個路徑存
三、啟動服務
3.1 先啟主控主機,後啟存儲節點
[root@pc70 FastDFS]# cp init.d/fdfs_trackerd /etc/init.d/ 創建啟動腳本
[root@pc70 FastDFS]# chmod +x /etc/init.d/fdfs_trackerd
[root@pc70 FastDFS]# chkconfig --add fdfs_trackerd 添加系統命令
[root@pc70 FastDFS]# service fdfs_trackerd start 啟動服務
[root@pc70 /]# netstat -pantu | grep :22122 查看端口號
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 3243/fdfs_trackerd
tcp 0 0 192.168.4.70:22122 192.168.4.71:53060 ESTABLISHED 3243/fdfs_trackerd
tcp 0 0 192.168.4.70:22122 192.168.4.72:40489 ESTABLISHED 3243/fdfs_trackerd
【節點服務器 71】
[root@pc71 FastDFS]# cp init.d/fdfs_storaged /etc/init.d/
[root@pc71 FastDFS]# chmod +x /etc/init.d/fdfs_storaged
[root@pc71 FastDFS]# /etc/init.d/fdfs_storaged start 生成文件
[root@pc71 FastDFS]# netstat -pantu | grep :23000
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 3198/fdfs_storaged
tcp 0 0 192.168.4.71:49208 192.168.4.72:23000 ESTABLISHED 3198/fdfs_storaged
tcp 0 0 192.168.4.71:23000 192.168.4.72:60515
【節點服務器 72】
[root@pc72 FastDFS]# cp init.d/fdfs_storaged /etc/init.d/
[root@pc72 FastDFS]# chmod +x /etc/init.d/fdfs_storaged
[root@pc72 FastDFS]# /etc/init.d/fdfs_storaged start
[root@pc72 FastDFS]# netstat -pantu | grep 23000
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 4364/fdfs_storaged
tcp 0 0 192.168.4.72:60515 192.168.4.71:23000 ESTABLISHED 4364/fdfs_storaged
tcp 0 0 192.168.4.72:23000 192.168.4.71:49208 ESTABLISHED 4364/fdfs_storaged
四、客戶端訪問 主控服務器 驗證配置
1、提供訪問命令:上傳文件的命令,下載文件的命令
[root@room1pc33 桌面]# mkdir /root/bin
[root@pc70 /]# scp /usr/local/bin/fdfs_test 192.168.4.254:/root/bin/ 測試的命令
[root@pc70 /]# scp /usr/local/bin/fdfs_upload_file 192.168.4.254:/root/bin/
[root@pc70 /]# scp /usr/local/bin/fdfs_download_file 192.168.4.254:/root/bin/
[root@pc70 /]# scp /usr/local/bin/fdfs_delete_file 192.168.4.254:/root/bin/
fdfs_test 測試
fdfs_upload_file 上傳
fdfs_download_file 下載
fdfs_delete_file 刪除
[root@room1pc33 桌面]# ls /root/bin/
fdfs_delete_file fdfs_download_file fdfs_test fdfs_upload_file
2、連接主控節點主機的配置文件 client.conf
[root@room1pc33 桌面]# mkdir /etc/fdfs
[root@pc70 ~]# scp /etc/fdfs/client.conf 192.168.4.254:/etc/fdfs/
[root@room1pc33 桌面]# vim /etc/fdfs/client.conf
10 base_path=/data/fastdfs
14 tracker_server=192.168.4.70:22122
[root@room1pc33 桌面]# mkdir -p /data/fastdfs
3、上傳文件
#fdfs_test /etc/fdfs/client.conf upload install.log
[root@room1pc33 桌面]# head -3 /etc/passwd > /root/user.txt
[root@room1pc33 桌面]# fdfs_test /etc/fdfs/client.conf upload /root/user.txt
顯示放在72主機上的名字
group_name=group1, ip_addr=192.168.4.72, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt
file timestamp=2018-01-16 06:31:02
file size=105
file crc32=3908252234
file url:
http://192.168.4.70:8080/group1/M00/00/00/wKgESFpdK6aATl9在節點服務器上查看
[root@pc72 00]# cat /data/fastdfs/data/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@pc71 FastDFS]# cat /data/fastdfs/data/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
上傳圖片
[root@room1pc33 桌面]# fdfs_upload_file /etc/fdfs/client.conf /root/tedu.jpg
group1/M00/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
查看
[root@pc71 FastDFS]#ls /data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
/data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
[root@pc72 FastDFS]#ls /data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
/data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
分布式存儲-FastDFS