近期用到分布式存储,参照网上一些文章,自己实际搭建了一下测试环境。做下记录,给大家也分享下。
安装包:
安装依赖包:
yum install make cmake gcc gcc-c++
安装unzip命令:
yum install -y unzip zip
1 安装libfastcommon
解压文件:
unzip /home/packages/libfastcommon-master.zip-d /software/
cd /software/libfastcommon-master
./make.sh
./make.shinstall
进入/usr/lib64目录,查看有libfastcommon.so文件,安装成功。如下图:
2 配置libfastcommon
FastDFS主程序设置的lib目录是:/usr/local/lib
所以应该创建软链接到这里,执行下面的命令:
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so |
3 安装FastDFS
在所有的tracker和storage服务器上都要安装FastDFS。
3.1 编译安装fastdfs
解压软件包到/software/目录下面:
tar -zxvf /home/packages/ FastDFS_v5.08.tar.gz -C /software/ |
进入/software/FastDFS目录,执行编译命令:
cd /software/FastDFS ./make.sh ./make.sh install |
安装成功。
1> 服务脚本:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd
2> 配置文件(示例配置文件):
ll /etc/fdfs/
-rw-r--r-- 1 root root 1461 1月 4 14:34 client.conf.sample
-rw-r--r-- 1 root root 7927 1月 4 14:34 storage.conf.sample
-rw-r--r-- 1 root root 7200 1月 4 14:34 tracker.conf.sample
3> 命令行工具(/usr/bin目录下)
-rwxr-xr-x 1 root root 260584 1月 4 14:34 fdfs_appender_test
-rwxr-xr-x 1 root root 260281 1月 4 14:34 fdfs_appender_test1
-rwxr-xr-x 1 root root 250625 1月 4 14:34 fdfs_append_file
-rwxr-xr-x 1 root root 250045 1月 4 14:34 fdfs_crc32
-rwxr-xr-x 1 root root 250708 1月 4 14:34 fdfs_delete_file
-rwxr-xr-x 1 root root 251515 1月 4 14:34 fdfs_download_file
-rwxr-xr-x 1 root root 251273 1月 4 14:34 fdfs_file_info
-rwxr-xr-x 1 root root 266401 1月 4 14:34 fdfs_monitor
-rwxr-xr-x 1 root root 873233 1月 4 14:34 fdfs_storaged
-rwxr-xr-x 1 root root 266952 1月 4 14:34 fdfs_test
-rwxr-xr-x 1 root root 266153 1月 4 14:34 fdfs_test1
-rwxr-xr-x 1 root root 371336 1月 4 14:34 fdfs_trackerd
-rwxr-xr-x 1 root root 251651 1月 4 14:34 fdfs_upload_appender
-rwxr-xr-x 1 root root 252781 1月 4 14:34 fdfs_upload_file
3.2 配置tracker
对所有的tracker服务器,进行如下配置:
进入配置目录:/etc/fdfs
该目录下有配置样本,首先复制一份来配置:
cp tracker.conf.sample tracker.conf
|
# 修改的内容如下:
disabled=false # 启用配置文件
port=22122 # tracker服务器端口(默认22122)
base_path=/software/FastDFS/trackerfiles #存储日志和数据的根目录,需手动创建文件夹
其它参数保留默认配置, 具体配置解释可参考官方文档说明:
http://bbs.chinaunix.net/thread-1941456-1-1.html
3.3 启动tracker
启动:
fdfs_trackerd /etc/fdfs/tracker.conf start |
查看相应进程:
netstat -ntlp |grep 22122 |
3.4 配置storage
对所有的storage服务器作如下配置:
cd /etc/fdfs/ cp storage.conf.sample storage.conf vi storage.conf |
修改配置文件storage.conf,
# 修改的内容如下:
disabled=false #启用配置文件
group_name=group1 # 本storage服务器对应的组名,需要根据实际情况配置
port=23000 # storage服务端口
base_path=/software/FastDFS/storagefiles # 数据和日志文件存储根目录
store_path0=/software/FastDFS/storagedata # 第一个存储目录
tracker_server=192.168.56.101:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口
3.5 启动storage
启动:
fdfs_storaged /etc/fdfs/storage.conf start |
查看相应进程:
netstat -ntlp |grep 23000 |
集成Nginx服务:
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组之间的服务器需要复制文件,而且有延迟的问题.
假设Tracker服务器将文件上传到了192.168.1.80,文件ID已经返回客户端,这时后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误。
这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。
注意:在每一个storge服务器上都需要安装fastdfs-nginx-module模块。
4.1.2 解压
解压软件包到自定义目录,这里,解压到/software目录。
tar -zxvf /home/packages/fastdfs-nginx-module_v1.16.tar.gz -C /software/ |
4.1.3 配置文件
复制nginx模块目录到/usr/local:
cp -r /software/fastdfs-nginx-module/ /usr/local/fastdfs-nginx-module |
进入到这个目录:
cd /usr/local/fastdfs-nginx-module |
修改配置文件mod_fastdfs.conf:
修改以下配置:
1 2 3 4 5 6 7 |
connect_timeout=10 base_path=/tmp tracker_server=ip01:22122 storage_server_port=23000 group_name=group1 url_have_group_name = true store_path0=/software/FastDFS/storagedata #与storage 配置文件存储路径一致 |
将这个文件复制到/etc/fdfs 目录中:
cd /usr/local/fastdfs-nginx-module/src/ cp mod_fastdfs.conf /etc/fdfs/ |
修改config文件:
vi /usr/local/fastdfs-nginx-module/src/config |
只需修改第4行,修改如下:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon" |
修改config文件:
vi /usr/local/fastdfs-nginx-module/src/config |
只需修改第4行,修改如下:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon" |
4.1 安装Nginx
注意:需要在每个storage上都安装nginx模块,因为默认是没有暴露http协议的,所以在每个的storage上都需要安装nginx来支持其http协议的访问。
4.1.1 安装依赖
centos : yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
|
4.1.2 安装
将软件包解压到/software/目录下,
tar -zxvf /home/packages/nginx-1.13.5.tar.gz-C /software/
编译安装:
cd /software/nginx-1.13.5 |
./configure --with-http_ssl_module --add-module=/usr/local/fastdfs-nginx-module/src
|
make |
make install |
4.1.3 拷贝配置文件http.conf和mime.types
cp /software/FastDFS/conf/http.conf /software/FastDFS/conf/mime.types /etc/fdfs/ |
4.1.1 建立软链接
在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录:
cd /software/FastDFS/storagedata |
Ln -s /software/FastDFS/storagedata/data /software/FastDFS/storagedata/data/M00 |
4.2 配置Nginx
/usr/local/nginx 修改config
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
4.3 启动nginx
/usr/local/nginx/sbin/nginx |
4.4 上传测试
修改client.conf文件,修改如下:
base_path=/home/yuqing/fastdfs--> base_path= /software/FastDFS/storagedata
tracker_server=192.168.209.121:22122 --> tracker_server= tracker_server=192.168.56.101:22122
http.tracker_server_port=80 ->http.tracker_server_port=8888
执行上传:
fdfs_test /software/FastDFS/conf/client.conf upload /software/FastDFS/client/2.jpg
防火墙开启
firewall-cmd--zone=public --add-port=8888/tcp –permanent
firewall-cmd--reload
常用的命令
1.启动tracker fdfs_trackerd/etc/fdfs/tracker.conf start
sudo fdfs_trackerd/etc/fdfs/tracker.conf restart
2.启动storage fdfs_storaged/etc/fdfs/storage.conf start
sudo fdfs_storaged/etc/fdfs/storage.conf restart
3.启动storage中的nginx
/usr/local/nginx/sbin/nginx
(重启Nginx的命令为:/usr/local/nginx/sbin/nginx -s reload)
sudo /usr/local/nginx/sbin/nginx
4.上传文件
修改client.conf文件,修改如下:
base_path=/home/yuqing/fastdfs--> base_path= /software/FastDFS/storagedata
tracker_server=192.168.209.121:22122 --> tracker_server= tracker_server=192.168.56.101:22122
http.tracker_server_port=80 ->http.tracker_server_port=8888
执行上传:
fdfs_test /software/FastDFS/conf/client.conf upload /software/FastDFS/client/2.jpg
5.查看storage和tracker状态 sudo fdfs_monitor/etc/fdfs/storage.conf
6.查看监控端口 sudo netstat -unltp|grep fdfs
6.linux cd命令使用小技巧:
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);注意用空格隔开
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
以上是linux cd命令与DOS的cd命令的区别。
参考:
http://www.cnblogs.com/cnmenglang/p/6251696.html
完整安装包及安装说明+.net客户端
http://download.csdn.net/download/malongning/10121921