设为首页 收藏本站
查看: 1277|回复: 0

[经验分享] 分布式文件系统FastDFS实战

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-18 13:42:12 | 显示全部楼层 |阅读模式
(4kb-500MB之间)
角色:
    client
    tracker群
    storage群

环境:两台 分别安装    tracker群    storage群
Tracker Server:
跟踪服务器,主要做调度工作,在访问中起负载均衡的作用。在内存中记录集群中group和storage的状态信息,是连接client和storage server的枢纽,因为相关信息全部在内存中,tracker server的性能非常高,一个较大的集群(上百group)3台即可。
Storage Server:
存储服务器,文件和文件属性(meta data)都保存在上面。
https://github.com/happyfish100
安装依赖:
1
2
3
4
git clone https://github.com/happyfish100/libfastcommon.git
cd libfastcommon/
./make.sh
./make.sh install




安装软件:
1
2
3
4
5
https://github.com/happyfish100/fastdfs/releases
tar zxf fastdfs-5.05.tar.gz
cd fastdfs-5.05
./make.sh
./make.sh install



[iyunv@node1-197 fastdfs-5.05]# ll /etc/fdfs/
总用量 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-rw-r--r-- 1 root root 1461 8月  24 14:05 client.conf.sample
-rw-r--r-- 1 root root 7829 8月  24 14:05 storage.conf.sample
-rw-r--r-- 1 root root 7102 8月  24 14:05 tracker.conf.sample
[iyunv@node1-197 fastdfs-5.05]# ll /usr/bin/fdfs_
fdfs_appender_test    fdfs_delete_file      fdfs_storaged         fdfs_upload_appender
fdfs_appender_test1   fdfs_download_file    fdfs_test             fdfs_upload_file
fdfs_append_file      fdfs_file_info        fdfs_test1            
fdfs_crc32            fdfs_monitor          fdfs_trackerd         
[iyunv@node1-197 fastdfs-5.05]# ll /etc/init.d/fdfs_
fdfs_storaged  fdfs_trackerd  
[iyunv@node1-197 fastdfs-5.05]# sed -i 's#/usr/local/bin/#/usr/bin/#' /etc/init.d/fdfs_*
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
vim tracker.conf



创建目录:
[iyunv@centos6-vm-53 fdfs]# tree /data/
1
2
3
4
5
6
7
8
9
10
11
12
13
/data/
├── fdfs_storage
│   ├── base
│   └── store
└── fdfs_tracker
    ├── data
    │   ├── fdfs_trackerd.pid
    │   └── storage_changelog.dat
    └── logs
        └── trackerd.log
/etc/init.d/fdfs_trackerd start
lsof -i:22122
lsof -i:23000




>-----------------------------------------------------
[iyunv@node1-197 ~]# tree /etc/fdfs/
1
2
3
4
5
6
7
8
/etc/fdfs/
|-- client.conf
|-- client.conf.sample
|-- storage.conf
|-- storage.conf.sample
|-- tracker.conf
`-- tracker.conf.sample
0 directories, 6 files



>-----------------------------------------------------
存储节点:
1
2
3
4
5
6
7
/etc/fdfs
cp storage.conf.sample storage.conf
修改内容:
base_path=/data/fdfs_storage/base
store_path0=/data/fdfs_storage/store
tracker_server=192.168.1.61:22122
tracker_server=192.168.1.53:22122




客户端操作:
1
2
3
4
cp client.conf.sample client.conf
base_path=/tmp
tracker_server=192.168.1.61:22122
tracker_server=192.168.1.53:22122




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[iyunv@node1-197 /]# fdfs_upload_file /etc/fdfs/client.conf /etc/passwd
group1/M00/00/00/wKjrxVXawRCAHqZqAAAKU60-8sE9427256
[iyunv@node1-197 00]# pwd
/data/fdfs_storage/store/data/00/00
[iyunv@node1-197 00]# ls
wKjrxVXawRCAHqZqAAAKU60-8sE9427256
[iyunv@node1-197 ~]# md5sum  wKjrxVXawRCAHqZqAAAKU60-8sE9427256
78d23b6ae5271f6ecfd0e51d2dc1d164  wKjrxVXawRCAHqZqAAAKU60-8sE9427256
[iyunv@node1-197 ~]# md5sum /etc/passwd
78d23b6ae5271f6ecfd0e51d2dc1d164  /etc/passwd
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKjrxVXawRCAHqZqAAAKU60-8sE9427256
[iyunv@node1-197 ~]# fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKjrxVXawRCAHqZqAAAKU60-8sE9427256   
source storage id: 0
source ip address: 192.168.235.197
file create timestamp: 2015-08-24 15:00:32
file size: 2643
file crc32: 2906583745 (0xAD3EF2C1)
[iyunv@node1-197 ~]# fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKjrxVXawRCAHqZqAAAKU60-8sE9427256




上传可追加的文件:
1
fdfs_upload_appender /etc/fdfs/client.conf xx.txt



下载后追加:
1
fdfs_append_file



命令:
1
2
3
4
5
6
[iyunv@node1-197 ~]# fdfs_
fdfs_appender_test    fdfs_delete_file      fdfs_storaged         fdfs_upload_appender
fdfs_appender_test1   fdfs_download_file    fdfs_test             fdfs_upload_file
fdfs_append_file      fdfs_file_info        fdfs_test1            
fdfs_crc32            fdfs_monitor          fdfs_trackerd     
[iyunv@node1-197 ~]# fdfs_monitor /etc/fdfs/storage.conf




php客户端:
1
2
3
4
cd /usr/local/src/fastdfs-5.05/php_client/
/usr/local/php56/bin/phpize
./configure --with-php-config=/usr/local/php56/bin/php-config
make && make install




提示:
Installing shared extensions:     /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/

[iyunv@centos6-vm-53 php_client]# cat fastdfs_client.ini >> /usr/local/php56/etc/php.i

测试:
[iyunv@centos6-vm-53 php_client]# /usr/local/php56/bin/php fastdfs_test.php

java客户端:
1
2
3
cd /usr/local/src/
git clone https://github.com/happyfish100/fastdfs-client-java.git
cd fastdfs-client-java/src



执行ant:

[iyunv@zhong-61 src]# ant
Buildfile: build.xml

init:

compile:
    [mkdir] Created dir: /usr/local/src/fastdfs-client-java/src/build/classes
    [javac] Compiling 32 source files to /usr/local/src/fastdfs-client-java/src/build/classes
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.

jar:
      [jar] Building jar: /usr/local/src/fastdfs-client-java/src/build/fastdfs_client.jar

BUILD SUCCESSFUL
Total time: 5 seconds

用法:
1
2
3
https://github.com/happyfish100/fastdfs-client-java/tree/master/src
[iyunv@zhong-61 src]# java -cp /usr/local/src/fastdfs-client-java/src/build/fastdfs_client.jar org.csource.fastdfs.test.TestClient /etc/fdfs/client.conf /etc/passwd
[iyunv@zhong-61 src]# java -cp /usr/local/src/fastdfs-client-java/src/build/fastdfs_client.jar org.csource.fastdfs.test.Monitor /etc/fdfs/client.conf




nginx模块:
1
2
3
[iyunv@centos6-vm-53 src]# git clone https://github.com/happyfish100/fastdfs-nginx-module.git
[iyunv@centos6-vm-53 nginx-1.9.9]# ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=nginx --group=nginx --with-http_stub_status_module --with-pcre --with-http_ssl_module --add-module=/usr/local/src/fastdfs-nginx-module/src/
make && make install




1
2
3
4
5
6
7
8
9
[iyunv@centos6-vm-53 src]# pwd
/usr/local/src/fastdfs-nginx-module/src
[iyunv@centos6-vm-53 src]# cp mod_fastdfs.conf /etc/fdfs/
[iyunv@centos6-vm-53 src]# cd /usr/local/src/fastdfs-5.05/conf/
[iyunv@centos6-vm-53 conf]# ls
anti-steal.jpg  client.conf  http.conf  mime.types  storage.conf  storage_ids.conf  tracker.conf
[iyunv@centos6-vm-53 conf]# cp anti-steal.jpg http.conf mime.types /etc/fdfs/
[iyunv@centos6-vm-53 conf]# touch /var/log/mod_fastdfs.log
[iyunv@centos6-vm-53 conf]# chown nginx.nginx /var/log/mod_fastdfs.log




nginx  server增加:
1
2
3
4
    location /group/M00 {
        root /data/fdfs_storage/store/;
        ngx_fastdfs_module;
    }





1
2
3
4
5
6
[iyunv@centos6-vm-53 conf.d]# vim /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.1.61:22122
tracker_server=192.168.1.53:22122
url_have_group_name = true
store_path0=/data/fdfs_storage/store
log_filename=/var/log/mod_fastdfs.log



重启nginx,访问测试:
1
http://192.168.1.53:800/group1/M00/00/00/wKgBNVaCV8GAc0CjAAAgVBESXKk681.png



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-330262-1-1.html 上篇帖子: fastdfs-apache-module 安装随记 原创 下篇帖子: FastDFS之文件服务器集群部署详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表