(4kb-500MB之間)php
角色:java
clientnode
tracker羣nginx
storage羣git
環境:兩臺 分別安裝 tracker羣 storage羣github
Tracker Server:vim
跟蹤服務器,主要作調度工做,在訪問中起負載均衡的做用。在內存中記錄集羣中group和storage的狀態信息,是鏈接client和storage server的樞紐,由於相關信息所有在內存中,tracker server的性能很是高,一個較大的集羣(上百group)3臺便可。centos
Storage Server:bash
存儲服務器,文件和文件屬性(meta data)都保存在上面。服務器
https://github.com/happyfish100
安裝依賴:
git clone https://github.com/happyfish100/libfastcommon.git cd libfastcommon/ ./make.sh ./make.sh install
安裝軟件:
https://github.com/happyfish100/fastdfs/releases tar zxf fastdfs-5.05.tar.gz cd fastdfs-5.05 ./make.sh ./make.sh install
[root@node1-197 fastdfs-5.05]# ll /etc/fdfs/
總用量 20
-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 [root@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 [root@node1-197 fastdfs-5.05]# ll /etc/init.d/fdfs_ fdfs_storaged fdfs_trackerd [root@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
建立目錄:
[root@centos6-vm-53 fdfs]# tree /data/
/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
>-----------------------------------------------------
[root@node1-197 ~]# tree /etc/fdfs/
/etc/fdfs/ |-- client.conf |-- client.conf.sample |-- storage.conf |-- storage.conf.sample |-- tracker.conf `-- tracker.conf.sample 0 directories, 6 files
>-----------------------------------------------------
存儲節點:
/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
客戶端操做:
cp client.conf.sample client.conf base_path=/tmp tracker_server=192.168.1.61:22122 tracker_server=192.168.1.53:22122
[root@node1-197 /]# fdfs_upload_file /etc/fdfs/client.conf /etc/passwd group1/M00/00/00/wKjrxVXawRCAHqZqAAAKU60-8sE9427256 [root@node1-197 00]# pwd /data/fdfs_storage/store/data/00/00 [root@node1-197 00]# ls wKjrxVXawRCAHqZqAAAKU60-8sE9427256 [root@node1-197 ~]# md5sum wKjrxVXawRCAHqZqAAAKU60-8sE9427256 78d23b6ae5271f6ecfd0e51d2dc1d164 wKjrxVXawRCAHqZqAAAKU60-8sE9427256 [root@node1-197 ~]# md5sum /etc/passwd 78d23b6ae5271f6ecfd0e51d2dc1d164 /etc/passwd fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKjrxVXawRCAHqZqAAAKU60-8sE9427256 [root@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) [root@node1-197 ~]# fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKjrxVXawRCAHqZqAAAKU60-8sE9427256
上傳可追加的文件:
fdfs_upload_appender /etc/fdfs/client.conf xx.txt
下載後追加:
fdfs_append_file
命令:
[root@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 [root@node1-197 ~]# fdfs_monitor /etc/fdfs/storage.conf
php客戶端:
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/
[root@centos6-vm-53 php_client]# cat fastdfs_client.ini >> /usr/local/php56/etc/php.i
測試:
[root@centos6-vm-53 php_client]# /usr/local/php56/bin/php fastdfs_test.php
java客戶端:
cd /usr/local/src/ git clone https://github.com/happyfish100/fastdfs-client-java.git cd fastdfs-client-java/src
執行ant:
[root@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
用法:
https://github.com/happyfish100/fastdfs-client-java/tree/master/src [root@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 [root@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模塊:
[root@centos6-vm-53 src]# git clone https://github.com/happyfish100/fastdfs-nginx-module.git [root@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
[root@centos6-vm-53 src]# pwd /usr/local/src/fastdfs-nginx-module/src [root@centos6-vm-53 src]# cp mod_fastdfs.conf /etc/fdfs/ [root@centos6-vm-53 src]# cd /usr/local/src/fastdfs-5.05/conf/ [root@centos6-vm-53 conf]# ls anti-steal.jpg client.conf http.conf mime.types storage.conf storage_ids.conf tracker.conf [root@centos6-vm-53 conf]# cp anti-steal.jpg http.conf mime.types /etc/fdfs/ [root@centos6-vm-53 conf]# touch /var/log/mod_fastdfs.log [root@centos6-vm-53 conf]# chown nginx.nginx /var/log/mod_fastdfs.log
nginx server增長:
location /group/M00 { root /data/fdfs_storage/store/; ngx_fastdfs_module; }
[root@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,訪問測試:
http://192.168.1.53:800/group1/M00/00/00/wKgBNVaCV8GAc0CjAAAgVBESXKk681.png