FastDFS--清晰簡介(大出血分享!!!)

fastdfs 清晰簡介 有用

是什麼?
         FastDFS是一個輕量級分佈式文件系統。
 
能幹嘛?
         對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等。
 
在Linux上的安裝連接
        《FastDFS在Linux上的安裝》
 
相關概念
         一、網絡拓撲圖

                  對上圖的基本瞭解,client是客戶端,tracker和storage是FastDFS系統的倆個角色。

         二、詳細瞭解tracker和storage
                  Storage
                           是什麼?
                                    存儲服務器
                           作用?
                                    主要作用是文件存儲
                           相關介紹
                                     1、如上圖,storage做集羣時,以組[group]爲單位(也可以將一個組看成一個卷[volume],不同材料稱呼不同)。集羣的總容量爲所有組的總和。
                                     2、 一個卷內storage server之間相互通信,文件進行同步,保證組內storage完全一致,所以一 個卷的容量以最小的服務器爲準。不同的卷之間相互不通信
                                     3、當某個卷的壓力較大時可以添加storage server(縱向擴展),如果系統容量不夠可以添加捲(橫向擴展)。

                  Tracker
                           是什麼
                                   調度服務器
                           作用?
                                   負載均衡和調度,管理所有的卷[volume]包括其中的storage server
                           相關介紹
                                   1、每個storage在啓動後會連接Tracker,告知自己所屬的group等信息,並保持週期性的心跳,tracker根據storage的心跳信息,建立group==>[storage server list]的映射表。
                                   2、Tracker的集羣中所有的tracker是平等的,客戶端請求tracker server採用輪詢的方法,如果請求的tracker不能提供服務就換另一個tracker。

工作流程 
         一、文件上傳
                  流程圖
 


         流程說明
                  1、選擇tracker server:當集羣中不止一個tracker server時,由於tracker之間是完全對等的關係,客戶端                 在upload文件時可以任意選擇一個trakcer。
                  2、選擇存儲的group:當tracker接收到upload file的請求時,會爲該文件分配一個可以存儲該文件的                       group。
                  支持如下選擇group的規則: 
                           (1) Round robin,所有的group間輪詢
                           (2) Specified group,指定某一個確定的group
                           (3) Load balance,剩餘存儲空間多多group優先
                  3、選擇storage server:當選定group後,tracker會在group內選擇一個storage server給客戶端。
                       支持如下選擇storage的規則: 
                           (1) Round robin,在group內的所有storage間輪詢 
                           (2) First server ordered by ip,按ip排序 
                           (3) First server ordered by priority,按優先級排序(優先級在storage上配置)
                  4、選擇storage path:當分配好storage server後,客戶端將向storage發送寫文件請求,storage將會爲                   文件分配一個數據存儲目錄(安裝博客中的圖片存儲配置的路徑是存儲目錄)
                  支持如下規則: 
                           (1) Round robin,多個存儲目錄間輪詢 
                           (2) 剩餘存儲空間最多的優先
                  5、生成Fileid:選定存儲目錄之後,storage會爲文件生一個Fileid。
                  規則:
                           由storage server ip、文件創建時間、文件大小、文件crc32和一個隨機數拼接而成,然後將這個二                           進制串進行base64編碼,轉換爲可打印的字符串。
                  6、選擇兩級目錄:每個存儲目錄下有兩級256*256的子目錄,storage會按文件fileid進行兩次hash(猜                     測),路由到其中一個子目錄,然後將文件以fileid爲文件名存儲到該子目錄下。


 

                  7、客戶端upload file成功後,會拿到一個storage生成的文件名,接下來客戶端根據這個文件名即可訪問                  到該文件。

 

         二、文件下載
                  流程圖:
 

         流程說明:
                  1、選擇tracker server:和upload file一樣,在download file時隨機選擇tracker server。
                  2、選擇group:tracker發送download請求給某個tracker,必須帶上文件名信息,tracke從文件名中解析                  出文件的group、大小、創建時間等信息,根據group信息選擇對應的group
                  3、選擇storage server:從group中選擇一個storage用來服務讀請求。由於group內的文件同步時在後臺                  異步進行的,所以有可能出現在讀到時候,文件還沒有同步到某些storage server上,爲了儘量避免訪問到                  這樣的storage,tracker按照一定的規則選擇group內可讀的storage。

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