您的位置:首页 > 其它

fastdfs-安装部署fastdfs实现分布式文件系统(一)

2017-02-11 11:23 330 查看
在移动互联网时代,智能终端,包括手机,平板电脑,物联网的发展,个人产生的图片,视频文件,文档文件,其他数据已经非常的多,那么对于如何处理这些海量的数据,是一个非常重要的环节,一方面要保证数据的安全和完整性,同时又要能够容易的横向扩容的存贮系统升级。那么就需要用到分布式文件储存系统。

于开始寻找一个真正的分布式文件系统,来解决我的存储难题,一下列举几个主要的:

mogileFS:Key-Value型元文件系统,不支持FUSE,应用程序访问它时需要API,主要用在web领域处理海量小图片,效率相比mooseFS高很多。

fastDFS:国人在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mogileFS更好的性能。

mooseFS:支持FUSE,相对比较轻量级,对master服务器有单点依赖,用perl编写,性能相对较差,国内用的人比较多

glusterFS:支持FUSE,比mooseFS庞大

ceph:支持FUSE,客户端已经进入了linux-2.6.34内核,也就是说可以像ext3/rasierFS一样,选择ceph为文件系统。彻底的分布式,没有单点依赖,用C编写,性能较好。基于不成熟的btrfs,其本身也非常不成熟。

lustre:Oracle公司的企业级产品,非常庞大,对内核和ext3深度依赖

NFS:老牌网络文件系统,具体不了解,反正NFS最近几年没发展,肯定不能用。

当然,对于现在很多的网盘,比如百度网盘,百度云,阿里云,腾讯云,七牛云等云计算服务商也提供很好的分布式储存方案,具体用的技术肯定很多,据说其中UC的云盘就是用fasfdfs实现的。

http://blog.csdn.net/zhushuai1221/article/details/52440970

http://www.open-open.com/lib/view/open1435468300700.html

那今天就说一下关于fastdfs分布式文件的安装,配置。

fsatdfs在github上的地址:https://github.com/happyfish100/fastdfs,最新版本是v5.08

fastdfs的v4.0*版本是需要依赖libenent,但从v5.04版本开始,不在依赖libevent,而是依赖libfastcommon,也是fastdfs做着余庆开发的,地址:https://github.com/happyfish100/libfastcommon

首先下载fastdfs和libfastcommon,然后解压这两个文件夹

(1)安装libfastcommon
cd libfastcommon
./make.sh
./make.sh install

 (2) 安装fastdfs

  cd fastdfs-master

  ./make.sh
./make.sh install

 (3) 安装完毕后,在/usr/bin 下面会生成fdfs的各种可执行文件,如下图:



 那么我们可以直接在终端执行每一个可执行文件,如下图:



 执行每一个,都会列出用法叫我们如何使用这些可执行文件。

 (4) 在/etc/fdfs/下将会产生三个配置文件client.conf.simple,tracker.conf.simple,storage.conf.simple。

 我们将这三个文件重命名为client.conf,tracker.conf,storage.conf

 client.conf:这个配置文件是我们使用api操作的时候需要调用的。

 tracker.conf:这个配置文件是我们配置tracker服务使用的,启动tracker服务时也需要用到该文件

 storage.conf:这个配置文件是配置storage服务使用的,启动也需要用到该配置文件。

 (5)配置tracker.conf

  一般只需要配置base_path这项,这项是一个基本路径,storaged.log和trackerd.log文件将保存在这个路径下的base_path下的logs/.

  eg:base_path=/var/fdfsdata

  一般也设置rotate_error_log = true

  是否定期轮转error log,目前仅支持一天轮转一次   (建议设置为true,否则会导致日志文件只有一个,时间长了就会很大,不方便查看)

  那么在tracker和storage启动后,将会在/var/fdfsdata创建u一个logs文件夹。logs里面将会有storaged.log和trackerd.log文件,记录这两个服务的运行信息。

  注意:http.server_port设置http端口号,这个配置在fastdfs5.05及以后版本中已经不用配置,不用管这个。

  详细的配置在http://www.linuxidc.com/Linux/2014-10/107577.htm有中文说明

 (6) 配置storage.conf

  这里也说一下主要的几个配置,其他配置默认就可以。

  group_name=group1

  base_path=/var/fdfsdata (和tracker.conf配置相同)

  storage_path_count=1 (默认1,多个store_path设置多个)

  store_path0=/var/fdfsdata (可以与base_path相同,也可以设置不同)

  tracker_server=192.168.1.67:22122

  //多个tracker_server时,可以设置多个

  tracker_server=192.168.1.68:22122

  注意:http.server_port设置http端口号,这个配置在fastdfs5.05及以后版本中已经不用配置,不用管这个

 (7) 配置完成后,分别启动这两个服务,首先启动tracker,再启动storage。

  启动tracker:

  fdfs_trackerd /etc/fdfs/tracker.conf

  启动storage:

  fdfs_storaged /etc/fdfs/storage.conf
查看是否启动,我们可以用以下命令:

  netstat | grep 22122

  netstat | grep 23000

 (8) 配置client.conf

  主要配置一下几项:

  base_path=/var/fdfsdata (这个base_path主要是用来保存logs文件的,可以设置与tracker.conf一样,也可以不一样,建议设置一样,方便管理)

  有多少个就设置多少个

  tracker_server=192.168.1.67:22122

  tracker_server=192.168.1.68:22122

  http.tracker_server_port=8080
  #include http.conf

 (9) 测试上传文件

  fdfs_test /etc/fdfs/client.conf upload /home/www/test.png
  可以看到上传返回的信息,说明fastdfs整个安装部署成功。



 (10) 安装php_client的扩展

  php_client的扩展文件在fastdfs_master的php_client文件夹下

  进入到该文件夹

  phpize

  ./configure --with-php-config=/usr/local/php/bin/php-config

  (--with-php-config根据实际安装路径配置)

  ./make

  ./make install

  安装完成后,在复制php_client文件夹下的php_client.ini的内容到php.ini下面,同时修改如下主要几项:

  fastdfs_client.base_path=/tmp

  fastdfs_client.log_filename=/usr/local/fastdfs/logs/fastdfs_client.log

  fastdfs_client.tracker_group_count = 1

  fastdfs_client.tracker_group0 = /etc/fdfs/client.conf

  然后重新启动apache或者php-fpm
  然后再通过php -m 查看安装的扩展模块,如果看到fastdfs_client,说明模块安装成功!

 (11) 测试php_client的操作API
  在php_client的有一个fastdfs_test.php文件,可以直接执行:

php fastdfs_test.php

在终端将会打印出很多信息。

  到这里,我们可以使用php的api来操作很上传,下载,删除等功能了,具体的API函数说明在README.MD文件中有说明。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息