一、FastDFS簡介
FastDFS是一個個人開發的、輕量級的、開源的分布式文件系統,純C語言編寫,其功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題,具有穩定、高效、易用的優點。
更多詳見:FastDFS主頁:http://code.google.com/p/fastdfs/
作者為版主的討論區:http://linux.chinaunix.net/bbs/forum-75-1.html
二、安裝環境
1、操作系統:Ubuntu 9.10 32bit
2、部署結構:1個tracker、1個storage(1組),PC單機(即tracker、storage均在同一台電腦上)
三、安裝過程
官方安裝文檔:http://code.google.com/p/fastdfs/wiki/Setup
1、獲取安裝包:從項目主頁(http://code.google.com/p/fastdfs/downloads/list )下載部署包 FastDFS_v1.29.tar.gz (FastDFS Server with PHP client extension source code V1.29, 2010-6-30最新發布版本)。
2、解壓安裝包,然後切換到解壓後的 FastDFS 主目錄執行安裝,即依次執行:
Cmd代碼tar xzf FastDFS_v1.29.tar.gz cd FastDFS ./make.sh ./make.sh install
注意:
1)如果無法執行,則需要先安裝gcc,Ubuntu系統可通過:sudo apt-get install gcc 安裝。
2)Ubuntu系統上安裝時需要將 make.sh 最後一段if去掉(從 if [ "$uname" = "Linux" ]; then 開始到倒數第2行),否則 ./make.sh install 時會報錯。
3)執行./make.sh install時可能需要 root 權限。
3a、配置tracker
1)在FastDFS主目錄的 conf 目錄下有配置文件樣例 tracker.conf,打開該文件,找到下列片段,紅色 部分根據實際情況進行修改:
# the base path to store data and log files
base_path=/home/yuqing/fastdfs
2)啟動tracker服務:
命令格式:/usr/local/bin/fdfs_trackerd <tracker_conf_filename>
實例:/usr/local/bin/fdfs_trackerd /FastDFS/conf/tracker.conf
3b、配置storage
1)在FastDFS主目錄的 conf 目錄下有配置文件樣例 storage.conf,打開該文件,找到下列片段,紅色 部分根據實際情況進行修改:
# the base path to store data and log files
base_path=/home/yuqing/fastdfs
# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/home/yuqing/fastdfs
#store_path1=/home/yuqing/fastdfs2
# tracker_server can ocur more than once, and tracker_server format is
# "host:port", host can be hostname or ip address
tracker_server=192.168.209.121:22122
2)啟動storage服務:
命令格式:/usr/local/bin/fdfs_storaged <storage_conf_filename>
實例:/usr/local/bin/fdfs_storaged /FastDFS/conf/storage.conf
第1次啟動將會在所設置的存儲路徑下創建256個子文件夾,需要一些時間。
3)運行監控程序:
命令格式:/usr/local/bin/fdfs_monitor <storage_conf_filename>
實例:/usr/local/bin/fdfs_monitor /FastDFS/conf/storage.conf
控制台將會顯示存儲服務器的一些信息,類似如下:
Txt代碼base_path=/FastDFS/logs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0 server_count=1, server_index=0 tracker server is 127.0.0.1:22122 group count: 1 Group 1: group name = group1 free space = 42 GB storage server count = 1 active server count = 1 storage_port = 23000 storage_http_port = 8888 store path count = 1 subdir count per path= 256 current write server index = 0 Host 1: ip_addr = 127.0.0.1 (localhost) ACTIVE http domain = version = 1.29 up time = 2010-07-20 16:52:44 total storage = 49GB free storage = 42GB upload priority = 10 store_path_count = 1 subdir_count_per_path = 256 storage_port = 23000 storage_http_port = 8888 current_write_path = 0 source ip_addr = total_upload_count = 2 success_upload_count = 2 total_set_meta_count = 0 success_set_meta_count = 0 total_delete_count = 0 success_delete_count = 0 total_download_count = 0 success_download_count = 0 total_get_meta_count = 0 success_get_meta_count = 0 total_create_link_count = 0 success_create_link_count = 0 total_delete_link_count = 0 success_delete_link_count = 0 last_heart_beat_time = 2010-07-20 17:23:31 last_source_update = 2010-07-20 17:16:43 last_sync_update = 1970-01-01 08:00:00 last_synced_timestamp= 1970-01-01 08:00:00
4、測試安裝是否成功,上傳一個文件:
1)在 storage 服務器上 ,通過提供的命令行工具進行上傳:
命令格式:/usr/local/bin/fdfs_test <storage_conf_filename> <operation>
實例:/usr/local/bin/fdfs_test /FastDFS/conf/storage.conf upload /home/x.zip
控制台將會一些信息,類似如下:
Txt代碼This is FastDFS client test program v1.29 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. base_path=/FastDFS/logs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0 group_name=group1, ip_addr=127.0.0.1, port=23000 storage_upload_by_filename group_name=group1, remote_filename=M00/00/00/fwAAAUxFaXsAAAAAACkHPTYooKs470.zip source ip address: 127.0.0.1 file timestamp=2010-07-20 17:16:43 file size=2688829 file url: http://127.0.0.1/group1/M00/00/00/fwAAAUxFaXsAAAAAACkHPTYooKs470.zip storage_upload_slave_by_filename group_name=group1, remote_filename=M00/00/00/fwAAAUxFaXsAAAAAACkHPTYooKs470_big.zip source ip address: 127.0.0.1 file timestamp=2010-07-20 17:16:43 file size=2688829 file url: http://127.0.0.1/group1/M00/00/00/fwAAAUxFaXsAAAAAACkHPTYooKs470_big.zip
至此,基本的安裝已經成功。
說明:
1)在 tracker 和 storage 服務器是相互獨立的情況下,在完成安裝步驟的1-2後,第3步根據是 tracker 或 storage 而分別執行對應的 3a 或 3b 步驟即可。
2)storage 服務器是以心跳的方式主動向 tracker 服務器匯報自己的信息的,所以啟動 tracker 和 storage 的順序是任意的。