分布式文件系统 FastDFS_V4.06 安装部署

FastDFS V4.06安装部署

1.系统环境说明

部署环境 ubuntu 12.0.4 server 32位or 64位,本文以64部署做说明。

最小化系统安装,除openssh-server服务外不安装任何服务,我们的client,tracker server,storage server 用同一台物理机,iP为192.168.0.22

2.分区设置

根据部署的服务要求选择合理的分区,根据公司现有生产环境的分区划分这里做一下分区。

/boot200M

/        1G

Swap        2倍内存

/www        剩余空间,数据,部署程序,log,备份主要存放地。

3.初始化部署环境

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

安装编译环境

sudo apt-get install build-essential    #配置编译器和库文件

sudo dpkg-reconfigure tzdata

或者sudo tzselect

然后在crontab设置服务器时间同步,比如每天凌晨1点15分同步一次网络时钟

15      1       *       *       *       /usr/sbin/ntpdate 210.72.145.44;/sbin/hwclock -w > /dev/null 2>&1 &

4. 安装libevent

下载并安装

#cd /usr/src

wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz

$sudo su -

#tar zxvf libevent-1.4.14b-stable.tar.gz

# cd libevent-1.4.14b-stable

# ./configure --prefix=/usr

# make && make install

5.安装FastDFS

这里我们选择的FDFS新版本,这里的FASTDFS 本身没有了http server的功能。

5.1

#cd /usr/src

#wget http://fastdfs.googlecode.com/files/FastDFS_v4.06.tar.gz

#tar zxvf  FastDFS_v4.06.tar.gz

# cd FastDFS/

由于一些库文件的存放位置,和编译脚本中的不一致,需要根据系统的实际情况进行调整。

#vim make.sh

查找:

if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread.so ] || [ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -

f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ] ;

注意替换成:(以你服务器的编辑器格式和实际路径为准)

if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread.so ] || [ -f /usr/lib/x86_64-linux-gnu/libpthread.so ] || [ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ] || [ -f /usr/lib/x86_64-linux-gnu/libpthread.a ];

保存退出

#vim /usr/src/FastDFS/client/fdfs_link_library.sh.in (64 bit 需要修改)

查找:

ln -fs $TARGET_LIB/libfastcommon.so.1 /usr/lib64/libfastcommon.so

ln -fs $TARGET_LIB/libfdfsclient.so.1 /usr/lib64/libfdfsclient.so

替换成:

ln -fs $TARGET_LIB/libfastcommon.so.1 /usr/lib/x86_64-linux-gnu/libfastcommon.so

ln -fs $TARGET_LIB/libfdfsclient.so.1 /usr/lib/x86_64-linux-gnu/libfdfsclient.so

保存退出

# sudo ./make.sh

sudo ./make.sh install

#cp  init.d/* /etc/init.d/

注:如果报perl: warning: Setting locale failed.

perl: warning: Please check that your locale settings:

LANGUAGE = (unset),

LC_ALL = (unset),

LANG = "en_US.UTF-8"

are supported and installed on your system.

perl: warning: Falling back to the standard locale ("C").

locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_MESSAGES to default locale: No such file or directory

locale: Cannot set LC_ALL to default locale: No such file or directory

错,需要设置

vim /root/.bashrc

export LC_ALL=C

保存退出

#source /root/.bashrc

6.配置tracker server

安装完成后,在默认

cd /etc/fdfs下

#vim tracker.conf

port=22122

base_path=/www/book_tracker

保存退出

#mkdir /www/book_tracker

# /etc/init.d/fdfs_trackerd start

检查tracker server

#netstat -antpul |grep 22122 或者lsof -i:22122

tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      23275/fdfs_trackerd

7.配置及启动Storage Server

#/www/book_storage

#vim /etc/fdfs/storage.conf

# port=23000

base_path=/www/book_storage

#base_path,指定data和log所在目录,根目录必须存在,子目录会自动创建

store_path0=/www/book_storage

#文件的存储位置,在一台Storage Server上可以指定多个存储位置

group_name=group1

tracker_server=192.168.0.22:22122  #tracker_server 的ip

保存退出

启动storage server

#/etc/init.d/fdfs_storaged  start

#netstat -antpul |grep 23000 或者lsof –i:23000 查看进程。

可以查看相关日志排错

#tail -f /www/book_storage/logs/storaged.log

验证验证上传下载

首先配置好客户端

#mkdir /www/book_client

#base_path=/www/book_client

tracker_server=192.168.0.22:22122

保存设置

测试上传

fdfs_test /etc/fdfs/client.conf upload /etc/fstab

This is FastDFS client test program v4.06

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General

Public License V3, which may be found in the FastDFS source kit.

Please visit the FastDFS Home Page http://www.csource.org/

for more detail.

[2013-06-03 15:45:41] DEBUG - base_path=/www/book_client, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group:

server 1. group_name=, ip_addr=192.168.0.22, port=23000

group_name=group1, ip_addr=192.168.0.22, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/00/AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157

source ip address: 192.168.0.22

file timestamp=2013-06-03 15:45:41

file size=1012

file crc32=3455471064

file url: http://192.168.0.22/group1/M00/00/00/AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157

storage_upload_slave_by_filename

group_name=group1, remote_filename=M00/00/00/AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157_big

source ip address: 192.168.0.22

file timestamp=2013-06-03 15:45:42

file size=1012

file crc32=3455471064

file url: http://192.168.0.22/group1/M00/00/00/AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157_big

下载

#cd /usr/src

查看

# fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157_big

source storage id: 0

source ip address: 192.168.0.22

file create timestamp: 2013-06-03 15:45:42

file size: 1012

file crc32: 3455471064 (0xCDF64DD8)

# fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157_big

-rw-r--r-- 1 root root  1012 Jun  3 15:59 AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157_big

删除

fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/AQEBjFGsSaWAOjeUAAAD9M32Tdg9524157_big

8.Fdfs 和Nginx  的整合

8.1因为FastDFS默认自带的http服务器性能不好,所以一般建议用外置的apache或者nginx来解决http下载,以应付大并发的情况.

#cd  /usr/src/

#wget http://fastdfs-nginx-module.googlecode.com/files/ fastdfs-nginx-module_v1.15.tar.gz

#wget http://nginx.org/download/nginx-1.3.9.tar.gz

#tar zxvf fastdfs-nginx-module_v1.15.tar.gz

#tar zxvf nginx-1.3.9.tar.gz

# apt-get install libssl-dev zlib1g-dev libpcre3-dev

# cd nginx-1.3.9/

#./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --add-module=/usr/src/fastdfs-nginx-module/src/

#make && make install

8.2 修改相关配置文件

修改nginx扩展模块的配置文件

#cd ../usr/src/fastdfs-nginx-module/src

#cp mod_fastdfs.conf /etc/fdfs/

#vim /etc/fdfs/mod_fastdfs.conf

base_path=/www/logs

#存放log的路径

tracker_server=192.168.0.22:22122

#指定tracker服务器及端口

url_have_group_name = true

#这个很重要,在URL中包含group名称

store_path0=/www/book_storage

#存储文件的路径

storage_server_port=23000

#与storage的配置端口保持一致

保存后退出

!!!!!查看/www/logs目录是否存在

做M00的链接

sudo ln -s /www/book_storage/data  /www/book_storage/data/M00

修改nginx的配置文件

#vim /usr/local/nginx/conf/nginx.conf

server {

listen       8888;

server_name  localhost;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

root   /www/book_storage/data;

index  index.html index.htm;

}

location /group1/M00 {

root /www/book_storage/data;

ngx_fastdfs_module;

}

保存退出

#cp /usr/local/nginx/sbin/nginx /etc/init.d/nginx

#/etc/init.d/nginx -t

ngx_http_fastdfs_set pid=23580

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

检查配置文件语法

#/etc/init.d/nginx     ##启动nginx

检查端口

# lsof -i:8888

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx   3770   root    6u  IPv4  11231      0t0  TCP *:8888 (LISTEN)

nginx   3771 nobody    6u  IPv4  11231      0t0  TCP *:8888 (LISTEN)

# netstat -antpul |grep tcp

tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      23275/fdfs_trackerd

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      22917/nginx

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2117/sshd

tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      23325/fdfs_storaged

tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      22917/nginx

tcp        0      0 192.168.0.22:22122         192.168.0.22:48515         ESTABLISHED 23275/fdfs_trackerd

tcp        0      0 192.168.0.22:22            1.1.1.24:1558           ESTABLISHED 16381/sshd: boo

tcp        0      0 192.168.0.22:48515         192.168.0.22:22122         ESTABLISHED 23325/fdfs_storaged

tcp6       0      0 :::22                   :::*                    LISTEN      2117/sshd

测试上传和下载

#fdfs_test /etc/fdfs/client.conf upload /etc/fstab

#cd /usr/src

#wget http://192.168.0.22:8888/group1/M00/00/00/AQEBjFGsVESARdlrAAAD9M32Tdg0763076_big

--2013-06-03 16:32:40--  http://192.168.0.22:8888/group1/M00/00/00/AQEBjFGsVESARdlrAAAD9M32Tdg0763076_big

Connecting to 192.168.0.22:8888... connected.

HTTP request sent, awaiting response... 200 OK

Length: 1012

Saving to: `AQEBjFGsVESARdlrAAAD9M32Tdg0763076_big‘

100%[======================================================================================>] 1,012       --.-K/s   in 0s

2013-06-03 16:32:40 (309 MB/s) - `AQEBjFGsVESARdlrAAAD9M32Tdg0763076_big‘ saved [1012/1012]

9.添加新的tracker server  Storage Server同步设置

sudo vi /etc/fdfs/storage.conf

修改以下内容

sync_start_time=0:00

sync_end_time=23:59

#设置允许同步时间,设置的时候考虑避开业务高峰时段

tracker_server=:192.168.1.216:22122

tracker_server=192.168.1.217:22122

#这里我们举例192.168.1.216是原tracker_server,192.168.1.217是本身的tracker_server,只要添加原来的tracker_server就行,实际配置中,ip地址按实际需求来配置

保存后退出

如何查看并删除无效的storage server

#dfs_monitor /etc/fdfs/client.conf 可以查看当前group信息,以及一些统计信息。

再使用fdfs_monitor来删除。命令行如下:

fdfs_monitor delete

例如:

fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.0.100

时间: 2024-10-06 19:37:56

分布式文件系统 FastDFS_V4.06 安装部署的相关文章

CentOS 下 FastDFS _ V4.06 安装部署

CentOS 下 FastDFS _ V4.06 安装部署 CentOS系统64位x86_64 GNU/Linux 软件准备 libevent-1.4.14b-stable.tar.gz FastDFS_v4.06.tar.gz nginx-1.3.9.tar.gz fastdfs-nginx-module_v1.15.tar.gz 安装libevent 下载并安装 #cd /usr/src wget https://github.com/downloads/libevent/libevent/

轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)

轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级) 实验室所在的课题组以研究云计算为主,但所有的研究都是在基于理论的凭空想像,缺少分布式环境的平台的实践,云计算神马的都是浮云了.因此,我想借助Hadoop把实验室的服务器搭建出一个基础的分布式实验环境,方便于以后进行实验测试神马的.无意中,看到了一款开源的轻量级分布式文件系统FastDFS,它是用纯C语言实现,详细信息可参见博客:分布式文件系统FastDFS架构剖析.通过收集资料,自己动手做了一些安装和测试使用,现在对前人的一些经验

架构设计:系统存储(27)——分布式文件系统Ceph(安装)

1. 概述 从本篇文章开始介绍一款现在非常火的分布式文件系统Ceph,包括这款文件系统的安装.基本使用场景.常用管理命令和重要工作原理.特别是讨论了PaxOS算法的基本理后,就更容易理解Ceph分布式文件系统中各种角色的工作原理. 2. Ceph的安装部署 本文将介绍Ceph分布式文件系统如何在CentOS 7.X版本上一步一步完成安装,使读者在阅读过程中了解Ceph有哪些重要的子系统/工作模块,以及它们是如何关联工作的.请注意Ceph在Ubuntu等Linux操作系统上的安装过程和注意点大致相

FastDFS分布式文件系统集群安装

文档修订记录 跟踪服务器: Tracker Server1 IP:  10.10.16.201 FASTDFS-TRACKER-01 Tracker Server2 IP:  10.10.16.202 FASTDFS-TRACKER-02 存储服务器: Storage Server1 IP:  10.10.16.203 FASTDFS-STORAGE-01 Storage Server2 IP:  10.10.16.204 FASTDFS-STORAGE-02 集群中各操作系统环境设置: (1)

Hadoop伪分布式集群的安装部署

一.如何为虚拟机做快照? 1.什么是快照? 快照就是对当前的虚拟机状态进行拍照,保留虚拟机当前状态的操作信息. 2.为什么要为虚拟机做快照? 第一:为克隆不同状态的虚拟机提前做准备. 第二:当对虚拟机的某些操作执行错误而且改正比较麻烦的时候,可以切换到之前正常的虚拟机状态重新进行相关的操作. 3.如何为虚拟机做快照? (1)选择要克隆的虚拟机,然后“右键”,选择“快照”,然后选择“拍摄快照”. (2)可以为快照取个名称,也可以为虚拟机当前的状态做个描述,然后点击“拍摄快照”. 4.如何转到某一特

分布式文件系统Fastdfs 详细安装笔记

Fastdfs安装教程 1.环境 操作系统 Centos 7.0 X64最小化安装 Track1 :192.168.121.131 Track2 :192.168.121.132 Storage1 :192.168.121.133 Storage1 :192.168.121.134 FastDFS 下载地址 https://sourceforge.net/projects/fastdfs/files/?source=navbar 2.在Track上安装fastdfs 首先,安装依赖包 yum i

FastDFS 分布式文件系统之一storage 服务部署

storage 安装 1, 安装相关库文件         git clone https://github.com/happyfish100/libfastcommon.git         cd libfastcommon/         sh make.sh         sh make.sh install 2, 安装fastDFS         git clone https://github.com/happyfish100/fastdfs.git         cd fa

FastDFS 分布式文件系统之一trackerd 服务部署

1, 安装相关库文件         git clone https://github.com/happyfish100/libfastcommon.git         cd libfastcommon/         sh make.sh         sh make.sh install 2, 安装fastDFS trackerd         git clone https://github.com/happyfish100/fastdfs.git         cd fast

分布式文件系统FastDFS集群部署

1.源码开放下载地址:https://github.com/happyfish100 早期源码开放下载地址:https://sourceforge.net/projects/fastdfs/files/ 官网论坛:http://bbs.chinaunix.net/forum-240-1.html 2.系统架构如下 文件上传流程 1.client询问tracker上传到的storage,不需要附加参数: 2.tracker返回一台可用的storage: 3.client直接和storage通讯完成