日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

FastDFS分布式文件系统介绍及单机版安装

發(fā)布時(shí)間:2024/3/26 windows 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FastDFS分布式文件系统介绍及单机版安装 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、分布式文件系統(tǒng)

分布式文件系統(tǒng) (Distributed File System) 是一個(gè)軟件/軟件服務(wù)器,這個(gè)軟件可以用來管理文件,但這個(gè)軟件所管理的文件通常不是在一個(gè)服務(wù)器節(jié)點(diǎn)上,而是在多個(gè)服務(wù)器節(jié)點(diǎn)上,這些服務(wù)器節(jié)點(diǎn)通過網(wǎng)絡(luò)相連構(gòu)成一個(gè)龐大的文件存儲(chǔ)服務(wù)器集群,這些服務(wù)器都用于存儲(chǔ)文件資源,通過分布式文件系統(tǒng)來管理這些服務(wù)器上的文件。

常見的分布式文件系統(tǒng)有:FastDFS、GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS等,

GFS(Google File System)
--------------------------------------
Google公司為了滿足本公司需求而開發(fā)的基于Linux的專有分布式文件系統(tǒng)

HDFS
--------------------------------------
Hadoop 實(shí)現(xiàn)的一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS

Lustre
---------------------------------------
是一個(gè)大規(guī)模的、安全可靠的,具備高可用性的集群文件系統(tǒng),它是由SUN公司開發(fā)和維護(hù)的

Ceph
---------------------------------------
是加州大學(xué)圣克魯茲分校的Sage weil攻讀博士時(shí)開發(fā)的分布式文件系統(tǒng)

GridFS
---------------------------------------
GridFS是MongoDB之上的分布式文件系統(tǒng),其利用了MongoDB的分布式存儲(chǔ)機(jī)制并通過MongoDB來存儲(chǔ)文件數(shù)據(jù)和文件元數(shù)據(jù)

MogileFS
---------------------------------------
由memcahed的開發(fā)公司danga,開發(fā)的一款采用perl開發(fā)的產(chǎn)品,目前國內(nèi)使用mogielFS的有圖片托管網(wǎng)站yupoo等

mooseFS
---------------------------------------
相對(duì)比較輕量級(jí),對(duì)master服務(wù)器有單點(diǎn)依賴,用perl編寫,性能相對(duì)較差

分布式文件系統(tǒng)與傳統(tǒng)文件系統(tǒng)對(duì)比:

二、什么是FastDFS

FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),為互聯(lián)網(wǎng)應(yīng)用量身定做,簡單、靈活、高效,采用C語言開發(fā),由阿里巴巴開發(fā)并開源,它對(duì)文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲(chǔ)和負(fù)載均衡的問題。特別適合以文件為載體的在線服務(wù),如相冊(cè)網(wǎng)站、視頻網(wǎng)站等等。

FastDFS為互聯(lián)網(wǎng)量身定制,充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等指標(biāo),使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。

三、FastDFS發(fā)展歷史

1、2008年4月項(xiàng)目啟動(dòng),7月發(fā)布第一個(gè)版本V1.00,兩年時(shí)間內(nèi)持續(xù)升級(jí)到V1.29

2、2010年8月推出V2.00

3、2011年6月推出V3.00

4、2012年10月推出V4.00

5、2013年12月推出V5.00

6、2017年3月推出V5.10

7、2018年6月推出V5.12(截止目前最新版)

8、詳細(xì)發(fā)展歷史查看:?https://github.com/happyfish100/fastdfs/blob/master/HISTORY

9、FastDFS系統(tǒng)架構(gòu)從第一個(gè)版本發(fā)布后一直沒有大的調(diào)整,高版本完全兼容低版本的數(shù)據(jù),可以做到平滑升級(jí),推薦更新升級(jí)到最新版本;

10、FastDFS代碼托管在github上:https://github.com/happyfish100/fastdfs

四、FastDFS整體架構(gòu)

FastDFS文件系統(tǒng)由兩大部分構(gòu)成,一個(gè)是客戶端,一個(gè)是服務(wù)端;客戶端通常指我們的程序,比如我們的Java程序去連接FastDFS、操作FastDFS,那我們的Java程序就是一個(gè)客戶端;FastDFS提供專有API訪問,目前提供了 C、Java 和 PHP 幾種編程語言的API,用來訪問FastDFS文件系統(tǒng);

服務(wù)端由兩個(gè)部分構(gòu)成:一個(gè)是跟蹤器(tracker),一個(gè)是存儲(chǔ)節(jié)點(diǎn)(storage);跟蹤器(tracker)主要做調(diào)度工作,在內(nèi)存中記錄集群中存儲(chǔ)節(jié)點(diǎn)storage的狀態(tài)信息,是前端Client和后端存儲(chǔ)節(jié)點(diǎn)storage的樞紐;因?yàn)橄嚓P(guān)信息全部在內(nèi)存中,Tracker server的性能非常高,一個(gè)較大的集群(比如上百個(gè)group)中有3臺(tái)就足夠了;存儲(chǔ)節(jié)點(diǎn)(storage)用于存儲(chǔ)文件,包括文件和文件屬性(meta data)都保存到存儲(chǔ)服務(wù)器磁盤上,完成文件管理的所有功能:文件存儲(chǔ)、文件同步和提供文件訪問等;

TIP:

所需要安裝包版本對(duì)應(yīng)關(guān)系名稱版本號(hào)
libfastcommon1.0.36
fastdfs5.11
nginx1.12.2
fastdfs-nginx-module1.20
fastdfs-client-java1.27-SNAPSHOT

?

五、FastDFS下載
? ? ? ? ? ?FastDFS沒有Windows版本,不能在Windows下使用;FastDFS需要安裝部署在Linux環(huán)境下;下載地址:https://github.com/happyfish100/fastdfs/releases,下載安裝版本為FastDFS5.11

六、FastDFS安裝

  • 安裝前的準(zhǔn)備
  • 檢查Linux上是否安裝了 gcc、libevent、libevent-devel,執(zhí)行如下yum命令檢查:
  • yum list installed | grep gcc
  • yum list installed | grep libevent
  • yum list installed | grep libevent-devel
  • 如果沒有安裝,則需進(jìn)行安裝,執(zhí)行如下命令安裝:
  • yum install gcc libevent libevent-devel -y
  • 安裝 libfastcommon 庫
  • libfastcommon 庫是 FastDFS 文件系統(tǒng)運(yùn)行需要的公共 C 語言函數(shù)庫
  • 安裝libfastcommon 庫的步驟如下
  • 下載 libfastcommon 源代碼包
  • 下載地址:https://github.com/happyfish100
  • 安裝包地址:https://github.com/happyfish100/libfastcommon/archive/V1.0.36.tar.gz
  • 解壓下載下來的tar.gz壓縮包:tar -zxvf libfastcommon-1.0.36.tar.gz
  • 切換到解壓后的libfastcommon目錄:cd libfastcommon-1.0.36
  • 執(zhí)行make腳本進(jìn)行編譯:./make.sh
  • 注意:第4步make編譯的時(shí)候如果報(bào)錯(cuò),需解決錯(cuò)誤后再次進(jìn)行make,通常發(fā)生錯(cuò)誤是由于Linux缺少某些依賴庫導(dǎo)致,根據(jù)錯(cuò)誤提示解決錯(cuò)誤
  • 執(zhí)行make install進(jìn)行安裝:./make.sh install
  • 至此 libfastcommon 庫安裝完畢
  • 安裝FastDFS
  • FastDFS才是我們真正的分布式文件系統(tǒng),安裝步驟如下:
  • 下載FastDFS,下載地址:https://github.com/happyfish100/fastdfs/releases
  • 下載安裝包:wget?https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz??-O fastdfs-5.11.tar.gz
  • 解壓下載下來的tar.gz包:tar -zxvf fastdfs-5.11.tar.gz
  • 切換到解壓后的目錄:cd fastdfs-5.11
  • 執(zhí)行編譯: ./make.sh
  • 然后再執(zhí)行安裝 ./make.sh install
  • 至此FastDFS安裝完成,安裝后所有編譯出來的文件存放在/usr/bin目錄下,所有配置文件存放在/etc/fdfs目錄下,使用命令查看:ll /usr/bin/fdfs*
  • 另外注意需要把解壓后的fastdfs-5.11/conf目錄下的兩個(gè)文件拷貝到/etc/fdfs/?
  • cp http.conf /etc/fdfs/
  • cp mime.types /etc/fdfs/
  • 這兩個(gè)文件后續(xù)需要用到,所以先拷貝過去,原因:讓fastdfs-nginx-module的配置文件調(diào)用
  • 七、FastDFS配置

  • FastDFS安裝后配置文件位于/etc/fdfs/目錄下,修改該目錄下的配置文件
  • 把所有的.sample后綴都去掉,使用 mv 命令改文件名,去掉文件名后綴。盡量使用cp復(fù)制在改名(備份,備份,備份)
  • 修改tracker.conf文件
  • base_path=/opt/fastdfs/tracker
  • 新建?mkdir -p /opt/fastdfs/tracke
  • 不然會(huì)報(bào):
  • 修改storage.conf文件
  • base_path=/opt/fastdfs/storage
  • store_path0=/opt/fastdfs/storage/files
  • tracker_server=192.168.184.133:22122
  • 新建文件夾:
  • mkdir -p /opt/fastdfs/storage
  • mkdir -p /opt/fastdfs/storage/files
  • 如果配置store_path0該配置了,就得創(chuàng)鍵file文件,如果不配置則默認(rèn)使用base_path
  • 然后啟動(dòng)FastDFS
  • 八、FastDFS啟動(dòng)

  • FastDFS服務(wù)啟動(dòng)需要啟動(dòng)兩個(gè)腳本:
  • 啟動(dòng)FastDFS的tracker服務(wù),在任意目錄下執(zhí)行:fdfs_trackerd /etc/fdfs/tracker.conf
  • 啟動(dòng)FastDFS的storage服務(wù),在任意目錄下執(zhí)行:fdfs_storaged /etc/fdfs/storage.conf
  • 首次啟動(dòng)storage后,它會(huì)在配置的路徑下創(chuàng)建存儲(chǔ)文件的目錄,前提是配置的路徑要存在,不存在服務(wù)都起不來,所以上面七步驟中有提示要?jiǎng)?chuàng)鍵文件夾
  • 查看啟動(dòng)進(jìn)程:ps -ef | grep fdfs ,有啟動(dòng)的執(zhí)行命令即為啟動(dòng)成功;
  • 查看storage是否已經(jīng)登記到了tracker下:fdfs_monitor /etc/fdfs/storage.conf
  • 九、FastDFS關(guān)閉

  • 關(guān)閉FastDFS,執(zhí)行如下命令:
  • 關(guān)閉tracker執(zhí)行命令,在任意目錄下執(zhí)行:fdfs_trackerd /etc/fdfs/tracker.conf stop
  • 關(guān)閉storage執(zhí)行命令,在任意目錄下執(zhí)行:fdfs_storaged /etc/fdfs/storage.conf stop
  • 或者kill關(guān)閉fastdfs,但不建議kill -9 強(qiáng)制關(guān)閉,因?yàn)榭赡軙?huì)導(dǎo)致文件信息不同步問題
  • 十、FastDFS重啟

  • 重啟FastDFS,執(zhí)行如下命令:
  • 重啟tracker執(zhí)行命令:fdfs_trackerd /etc/fdfs/tracker.conf restart
  • 重啟storage執(zhí)行命令:fdfs_storaged /etc/fdfs/storage.conf restart
  • 十一、FastDFS測(cè)試

  • FastDFS安裝完成之后,可以使用fdfs_test腳本測(cè)試文件上傳,執(zhí)行命令:
  • 測(cè)試之前,需要修改client.conf配置文件,修改兩個(gè)配置:
  • base_path=/opt/fastdfs/client
  • tracker_server=192.168.184.133:22122
  • 新建文件夾:
  • mkdir -p /opt/fastdfs/client
  • 測(cè)試文件上傳,執(zhí)行命令:
  • fdfs_test /etc/fdfs/client.conf upload /root/testfastfds.txt
  • 測(cè)試文件刪除,執(zhí)行命令:
  • fdfs_delete_file ?/etc/fdfs/client.conf? group1/M00/00/00/wKi4hVzVCW-AR0ZTAAAAIIe1k0c233_big.txt
  • FastDFS生成的文件目錄結(jié)構(gòu)及名稱示例:
  • ?
  • //一道亮麗的風(fēng)景線//

    十二、安裝Nginx的FastDFS擴(kuò)展模塊

  • 概述
  • 已經(jīng)上傳到FastDFS文件系統(tǒng)中的文件,我們?nèi)绾卧跒g覽器中訪問呢?FastDFS?V4.05 以后的版本就把內(nèi)置 HTTP服務(wù)去掉了,所以我們測(cè)試上傳成功了,但是卻無法訪問。
  • FastDFS提供了一個(gè)Nginx擴(kuò)展模塊,利用該模塊,我們可以通過Nginx訪問已經(jīng)上傳到FastDFS上的文件
  • 下載
  • 下載fastdfs的nginx擴(kuò)展模塊源代碼:
  • wget?https://github.com/happyfish100/fastdfs-nginx-module/archive/73869650b6171fd6e5bf81b5b8caa89f021d6c7b.zip?-O fastdfs-nginx-module.zip
  • 解壓下載下來的fastdfs-nginx-module.zip 文件:
  • unzip fastdfs-nginx-module.zip
  • 安裝Nginx并且添加fastDFS模塊
  • 下載nginx:wget http://nginx.org/download/nginx-1.12.2.tar.gz
  • 解壓下載下來的nginx文件,執(zhí)行命令:tar -zxvf nginx-1.12.2.tar.gz
  • 切換至解壓后的nginx主目錄,執(zhí)行命令:cd nginx-1.12.2
  • 切換到解壓后的nginx-1.12.1目錄下,執(zhí)行configure命令:
  • ./configure --prefix=/usr/local/fastdfs/nginx_fdfs --add-module=/home/soft/fastdfs/fastdfs-nginx-module-73869650b6171fd6e5bf81b5b8caa89f021d6c7b/src
  • 其中--prefix是指定nginx安裝路徑,--add-module指定fastDFS的nginx模塊的源代碼路徑
  • 執(zhí)行命令進(jìn)行編譯:make
  • 執(zhí)行命令進(jìn)行安裝:make install
  • 以上安裝Nginx的FastDFS擴(kuò)展模塊注意事項(xiàng)
  • 我們知道,nginx是C語言開發(fā),因此同樣需要gcc,還需要安裝pcre,因?yàn)閚ginx的http模塊需要用到pcre,還需要zlib,它提供了解壓縮,還需要openssl,Nginx的安裝需要Linux安裝相關(guān)的幾個(gè)庫,否則編譯會(huì)出現(xiàn)錯(cuò)誤,這幾個(gè)庫分別是:
  • gcc編譯器是否安裝?
  • 檢查是否安裝:yum list installed | grep gcc
  • 執(zhí)行安裝:yum install gcc -y
  • openssl庫是否安裝?
  • 檢查是否安裝:yum list installed | grep openssl
  • 執(zhí)行安裝:yum install openssl openssl-devel -y
  • pcre庫是否安裝?
  • 檢查是否安裝:yum list installed | grep pcre
  • 執(zhí)行安裝:yum install pcre pcre-devel -y
  • zlib庫是否安裝?
  • 檢查是否安裝:yum list installed | grep zlib
  • 執(zhí)行安裝:yum install zlib zlib-devel -y
  • 一次性安裝,執(zhí)行如下命令:
  • yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
  • 配置
  • 將/home/soft/fastdfs/fastdfs-nginx-module-73869650b6171fd6e5bf81b5b8caa89f021d6c7b/src目錄下的mod_fastdfs.conf文件拷貝到 /etc/fdfs/目錄下,這樣才能正常啟動(dòng)Nginx
  • mod_fastdfs.conf 專門配置Nginx的擴(kuò)展模塊的
  • 修改mod_fastdfs.conf配置文件:
  • base_path=/opt/fastdfs/nginx_mod
  • tracker_server=192.168.184.133:22122
  • store_path0=/opt/fastdfs/storage/files
  • url_have_group_name = true
  • 創(chuàng)鍵文件夾:
  • mkdir -p /opt/fastdfs/nginx_mod
  • 其他路徑都存在所以不用創(chuàng)鍵
  • 配置Nginx的配置文件
  • #攔截請(qǐng)求路徑中包含 /group[1-9]/M0[0-9] 的請(qǐng)求,使用 fastdfs的Nginx 模塊進(jìn)行轉(zhuǎn)發(fā):
    location ~ /group[1-9]/M0[0-9] {
    ? ? ?ngx_fastdfs_module;
    }
  • 如果出現(xiàn)404訪問不到,檢查一下 url_have_group_name = false,如果為false改為true
  • 啟動(dòng)與測(cè)試
  • 啟動(dòng)帶有fastdfs模塊的Nginx
  • 重啟fastDFS服務(wù)進(jìn)程,執(zhí)行如下命令:(不重啟也可以)
  • fdfs_trackerd /etc/fdfs/tracker.conf restart
  • fdfs_storaged /etc/fdfs/storage.conf restart
  • 重新上傳一個(gè)文件進(jìn)行測(cè)試驗(yàn)證:fdfs_test /etc/fdfs/client.conf upload /root/testfastfdsnginx.txt
  • 在瀏覽器訪問上傳的文件,顯示訪問成功
  • 當(dāng)遇到400錯(cuò)誤, 檢查配置/etc/fdfs/mod_fastdfs.conf
  • url_have_group_name=true ?
  • 該配置表示訪問路徑中是否需要帶有g(shù)roup1,改為true表示路徑中需要有g(shù)roup1
  • 十三、FastDFS提供的主要功能

    ? ?upload:上傳文件,download:下載文件,delete:刪除文件

    十四、FastDFS文件系統(tǒng)的Java客戶端

  • 前提你電腦安裝了maven使用mvn命令操作一下就行了
  • fastDFS文件系統(tǒng)Java客戶端是指采用Java語言編寫的一套程序,專門用來訪問fastDFS文件系統(tǒng)
  • 由于maven倉庫里沒有該依賴所以:
  • 下載官方的源代碼:https://github.com/happyfish100/fastdfs-client-java/archive/master.zip
  • 解壓fastdfs-client-java-master,采用maven命令編譯成jar安裝到本地maven庫:mvn clean install
  • 在Java程序中使用它提供的API來訪問fastDFS文件系統(tǒng)
  • 十五、FastDFS開發(fā)示例

    使用Java客戶端,編程操作fastDFS分布式文件系統(tǒng):

    引入依賴:

    <dependency><groupId>org.csource</groupId><artifactId>fastdfs-client-java</artifactId><version>1.27-SNAPSHOT</version> </dependency>

    代碼:

    在類路徑中配置該文件:fdfs_client.conf配置,tracker_server可以配置多個(gè),配置多個(gè)tracker_server連接集群

    connect_timeout = 2 network_timeout = 30 charset = UTF-8 tracker_server=192.168.184.133:22122

    代碼:

    public class FastService {public static void main(String[] args) throws IOException, MyException {//1、初始化配置連接信息ClientGlobal.init("fdfs_client.conf");//檢查加載配置結(jié)果System.out.println("加載配置結(jié)果:ClientGlobal.configInfo(): " + ClientGlobal.configInfo());//2、創(chuàng)建一個(gè)Tracker的客戶端對(duì)象TrackerClient trackerClient = new TrackerClient();//3、通過Tracker的客戶端對(duì)象,獲取到一個(gè)Tracker服務(wù)器對(duì)象TrackerServer trackerServer = trackerClient.getConnection();//4、通過Tracker的客戶端對(duì)象和Tracker服務(wù)器對(duì)象,獲取到一個(gè)Storage服務(wù)器對(duì)象StorageServer storageServer = trackerClient.getStoreStorage(trackerServer);//5、通過Tracker服務(wù)器對(duì)象和Storage服務(wù)器對(duì)象,構(gòu)造一個(gè)Storage客戶端對(duì)象StorageClient storageClient = new StorageClient(trackerServer, storageServer);//有了上面的5步,接下來就可以正式去操作FastDFS了//文件上傳String[] strArray = storageClient.upload_file("G:/test.txt", "txt", null);for (String str : strArray) {System.out.println(str);}//文件下載,返回值0表示下載成功,其他值都是下載失敗,比如:-1, 1, -22 都是失敗的//strArray[0] group_name//strArray[1] remote_filename//G:/測(cè)試下載.txt local_filenameint download = storageClient.download_file(strArray[0], strArray[1], "G:/測(cè)試下載.txt");System.out.println("下載結(jié)果:"+download);//文件刪除,返回值0表示刪除成功,其他值都是刪除失敗,比如:-1, 1, -22 都是失敗的//int delete = storageClient.delete_file(strArray[0], strArray[1]);//System.out.println("刪除結(jié)果:"+delete);}}

    fastdfs-client-java-master里面的README.md說的很清楚了

    ?

    總結(jié)

    以上是生活随笔為你收集整理的FastDFS分布式文件系统介绍及单机版安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。