fastdfs-安裝部署fastdfs實現分佈式文件系統(一)

在移動互聯網時代,智能終端,包括手機,平板電腦,物聯網的發展,個人產生的圖片,視頻文件,文檔文件,其他數據已經非常的多,那麼對於如何處理這些海量的數據,是一個非常重要的環節,一方面要保證數據的安全和完整性,同時又要能夠容易的橫向擴容的存貯系統升級。那麼就需要用到分佈式文件儲存系統。

於開始尋找一個真正的分佈式文件系統,來解決我的存儲難題,一下列舉幾個主要的:

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文件中有說明。























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章