1. 程式人生 > >FastDfs 分布式文件系統 (實測成功)

FastDfs 分布式文件系統 (實測成功)

pes 一份 保存日誌 lis chmod 信息 分布式 have 創建

最近公司需要搭建一臺FastDfs 分布式文件系統,查詢和參考了網絡很多資料,但是從頭到尾按他們的配置,中間都會或多或少的出錯,可能是版本的問題,也可能是其他問題,經過自己不斷的研究,終於成功配置完成,而且已經應用線上。現在把經驗分享出來供大家參考,也作為自己的一個記錄,以便今後用到能回顧一下。

1、下載軟件

        網上先下載需要安裝的軟件

技術分享圖片

2、前期準備

所需的工具下載完畢後,開始搭建準備,首先下載所需全部工具運行命令

 yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget

     下載完成後,安裝rz命令
      yum install lrzsz -y
  通過rz命令 或者xftp上傳到/home目錄下自己新建一個目錄(根據個人習慣),主要用於1下載的軟件存放目錄。

        cd  /home
        mkdir    kai
        ls
        cd  kai

        上傳軟件到kai目錄下   

技術分享圖片

3、安裝libfastcommon

解壓剛上傳的文件,然後進入解壓完的文件目錄

 [[email protected] kai]# unzip libfastcommon-master.zip
     [[email protected] kai]# cd libfastcommon-master
 [[email protected] libfastcommon-master]# ll
     我們能看到

技術分享圖片

開始安裝,執行

[[email protected] libfastcommon-master]# ./make.sh  
[[email protected] libfastcommon-master]# ./make.sh  install

看看有沒有報錯,沒有報錯就可以執行軟鏈接

 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/local/lib/libfdfsclient.so
 ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

4、安裝FastDfs

然後回到/home/kai (或自己創建的文件下)
解壓fastdfs

[[email protected] kai]# unzip fastdfs-5.11.zip

然後進入fastdfs5.11

 [[email protected] kai]# cd fastdfs-5.11
 [[email protected] kai]# ./make.sh
  [[email protected] kai]# ./make.sh install

成功之後查看目錄

 [[email protected] kai]# cd /etc/fdfs
 [[email protected] fdfs]# ll

 -rw-r--r--. 1 root root  1461 4月  23 10:20 client.conf.sample
 -rw-r--r--. 1 root root  7927 4月  23 10:20 storage.conf.sample
 -rw-r--r--. 1 root root  7389 4月  23 10:20 tracker.conf.sample

我們需要把這三個實例文件服務一份,去掉sample

 [[email protected] fdfs]# cp client.conf.sample client.conf
 [[email protected] fdfs]# cp storage.conf.sample storage.conf
 [[email protected] fdfs]# cp tracker.conf.sample tracker.conf

OK,FastDFS安裝結束 。

5、安裝tracker

創建tarcker工作目錄
這個目錄可以自定義,用來保存tracker的data和log

根據習慣創建目錄:

[[email protected] fdfs]# cd /usr/
[[email protected] usr]# mkdir kai
[roo[email protected] usr]# cd kai
[[email protected] kai]# mkdir dev
[[email protected] kai]# cd dev
[[email protected] dev]# mkdir fastdfs
[[email protected] dev]# cd fastdfs
[[email protected] fastdfs]# mkdir fastdfs_tracker
[[email protected] fastdfs]# cd fastdfs_tracker
[[email protected] fastdfs_tracker]# pwd
/usr/kai/dev/fastdfs/fastdfs_tracker
[[email protected] fastdfs_tracker]# 

配置tracker

[[email protected] ~]# cd /etc/fdfs
[[email protected] fdfs]# vim tracker.conf

找到以下4處進行修改即可

1.disabled=false          #默認可能開啟 
2.port=22122              #默認端口號 
3.base_path=/usr/kai/dev/fastdfs/fastdfs_tracker         #剛剛創建的目錄 
4.http.server_port=80                               #默認端口是8080

保存修改文件

啟動tracker 命令:

 [[email protected] fdfs]# service fdfs_trackerd start

如果不能成功啟動,可以通systemctl命令

  systemctl start fdfs_trackerd

成功之後可以看見

 [[email protected] fdfs]# service fdfs_trackerd start
 Starting fdfs_trackerd (via systemctl):                    [  確定  ]

進入創建的tracker目錄。發現目錄多了data和log兩個目錄

[[email protected] fdfs]# cd /usr/kai/dev/fastdfs/fastdfs_tracker/
[[email protected] fastdfs_tracker]# ll
 總用量 0
drwxr-xr-x. 2 root root 178 4月  23 10:45 data
drwxr-xr-x. 2 root root  26 4月  23 10:30 logs

我們不能每次都這麽啟動tracker,我們需要給tracker加入開機啟動

首先需要給執行權限,

 [[email protected] fastdfs_tracker]# chmod +x /etc/rc.d/rc.local

然後開始修改rc.local

[[email protected] fastdfs_tracker]# vim /etc/rc.d/rc.local

在配置文件最後加下最後一句話即可

      #!/bin/bash
      # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
      #
      # It is highly advisable to create own systemd services or udev rules
      # to run scripts during boot instead of using this file.
      #
      # In contrast to previous versions due to parallel execution during boot
      # this script will NOT be run after all other services.
      #
      # Please note that you must run ‘chmod +x /etc/rc.d/rc.local‘ to ensure
      # that this script will be executed during boot.

     touch /var/lock/subsys/local
     service fdfs_trackerd start

保存,然後 查看tracker端口監聽情況

     [[email protected] fastdfs_tracker]# netstat -unltp|grep fdfs
      tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN                 17664/fdfs_trackerd 

到此22122端口監聽成功。

6、安裝storage

為storage配置工作目錄,由於storage還需要一個目錄用來存儲數據,所以另外多建了一個fasdfs_storage_data

 [[email protected] fastdfs]# ls
 fastdfs_storage  fastdfs_storage_data  fastdfs_tracker

修改storage配置文件
修改storage.conf

     [[email protected] fastdfs]# vim /etc/fdfs/storage.conf

找到如下幾處地方修改即可

1.disabled=false
2.group_name=group1 #組名,根據實際情況修改
3.port=23000 #設置storage的端口號,默認是23000,同一個組的storage端口號必須一致
4.base_path=/usr/kai/dev/fastdfs/fastdfs_storage #設置storage數據文件和日誌目錄
5.store_path_count=1 #存儲路徑個數,需要和store_path個數匹配
6.base_path0=/usr/kai/dev/fastdfs/fastdfs_storage #實際文件存儲路徑
7.tracker_server=192.168.18.91:22122 #CentOS 7的ip地址
8.http.server_port=80 #設置 http 端口號

保存之後,創建軟引用

         ln -s /usr/bin/fdfs_storaged /usr/local/bin

啟動storage

service fdfs_storaged start
同理 如果不能啟動可以用下述命令

systemctl start fdfs_storaged
成功應該是如下

  [[email protected] fdfs]# service fdfs_stroaged   start
  Starting fdfs_stroaged    (via systemctl):                    [  確定  ]

同樣設置開機啟動

修改rc.local

vim /etc/rc.d/rc.local

最後加入
service fdfs_storaged start

查看服務是否啟動成功

[[email protected] fdfs]# netstat -unltp | grep fdfs
  tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN        17664/fdfs_trackerd 
  tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      17710/fdfs_storaged 

服務啟動,到此fastdfs已經配置完成了。最後我們再確認一下,storage是否註冊到了tracker中去。

  [[email protected] fdfs]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

成功後可以看到:

        ip_addr = 192.168.18.91 (localhost.localdomain)  ACTIVE

含上面字句就算配置成功了

        [[email protected] fdfs]# vim  /etc/fdfs/client.conf

      base_path=/usr/kai/dev/fastdfs/fastdfs_tracker        
    tracker_server=192.168.18.91:22122
    http.tracker_server_port=80

接下來上傳一張圖片到centos7作為測試
用xftp上傳test.jpg圖片到/home/kai目錄
接下來
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/kai/test.jpg #你上傳的圖片路徑(centos上的)

成功之後會返回圖片的路徑
[[email protected] fdfs]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/kai/test.jpg
group1/M00/00/00/wKgSW1zAYuqAaSn6AAChouYMtyM839.jpg

可以去剛上傳的路勁查看是否上傳成功
[[email protected] fdfs]# cd /usr/kai/dev/fastdfs/fastdfs_storage_data/data

技術分享圖片

能找到剛才上傳的圖片

但是現在通過瀏覽器是不能訪問的,還需要配置nginx

7、FastDFS的nginx模塊安裝

[[email protected] 00]# cd /home/kai
在安裝nginx之前先安裝nginx所需的依賴lib:

yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

解壓nginx,和fastdfs-nginx-module:

[[email protected] kai]# tar -zxvf nginx-1.12.0.tar.gz
[[email protected] kai]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

進入fastdfs-nginx-module的config配置文件修改

[[email protected] kai]# cd fastdfs-nginx-module/src
[[email protected] src]# vim config

技術分享圖片

去掉圖上的local

然後進入nginx安裝目錄,添加fastdfs-nginx-module:

  [[email protected] kai]# cd nginx-1.12.0
[[email protected] nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --add-module=/home/kai/fastdfs-nginx-module/src

如果沒有錯誤信息,開始安裝

  [[email protected] nginx-1.12.0]# make
  [[email protected] nginx-1.12.0]#make install

修改nginx的conf文件

 [[email protected] nginx-1.12.0]# cd /usr/local/nginx/conf

   [[email protected] conf]# vim nginx.conf

添加:

location /group1/M00 {
        root /usr/kai/dev/fastdfs/fastdfs_storage_data/data;
        ngx_fastdfs_module;
    }

技術分享圖片

然後進入FastDFS安裝時的解壓過的目錄,將http.conf和mime.types拷貝到/etc/fdfs目錄下:

  [[email protected] fastdfs-5.11]# cd  /home/kai/fastdfs-5.11/conf/
  [[email protected] conf]# ls
  anti-steal.jpg  http.conf   storage.conf      tracker.conf
   client.conf     mime.types  storage_ids.conf
  [[email protected] conf]#    cp http.conf   /etc/fdfs/
  [[email protected] conf]#    cp mime.types   /etc/fdfs/

另外還需要把fastdfs-nginx-module安裝目錄中src目錄下的mod_fastdfs.conf也拷貝到/etc/fdfs目錄下:

 [[email protected] conf]#     cp /usr/kai/dev/nginx/fastdfs-nginx-module/src/mod_fastdfs.conf      /etc/fdfs/

對剛剛拷貝的mod_fastdfs.conf文件進行修改:

    [[email protected] conf]#  vim /etc/fdfs/mod_fastdfs.conf

修改:

       base_path=/usr/kai/dev/fastdfs/fastdfs_storage        #保存日誌目錄
       tracker_server=192.168.18.91:22122         #tracker服務器的IP地址以及端口號
    storage_server_port=23000          #storage服務器的端口號
     url_have_group_name = true         #文件 url 中是否有 group 名
     store_path0=/usr/kai/dev/fastdfs/fastdfs_storage       #存儲路徑
     group_count = 3             #設置組的個數,事實上這次只使用了group1

在文件的最後,設置group

 [group1]
 group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/usr/kai/dev/fastdfs/fastdfs_storage_data
store_path1=/usr/kai/dev/fastdfs/fastdfs_storage_data

[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/usr/kai/dev/fastdfs/fastdfs_storage_data

 [group3]
 group_name=group3
storage_server_port=23000
store_path_count=1

store_path0=/usr/kai/dev/fastdfs/fastdfs_storage_data

創建M00至storage存儲目錄的符號連接:

[[email protected] conf]#   ln  -s  /usr/muyou/dev/fastdfs/fastdfs_storage_data/data/ /usr/muyou/dev/fastdfs/fastdfs_storage_data/data/M00

啟動nginx:

[[email protected] conf]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=13397

技術分享圖片

然後把剛才圖片上傳的地址加到IP地址後面,成功,完美!
技術分享圖片

FastDfs 分布式文件系統 (實測成功)