fastdfs服務端有兩個角色:***(tracker)和儲存節點(storage)。***主要做排程工作,在訪問上起負載均衡的作用。
存 儲節點儲存檔案,完成檔案管理的所有功能:儲存、同步和提供訪問介面,fastdfs同時對檔案的meta data進行管理。所謂檔案的meta data就是檔案的相關屬性,以鍵值對(key value pair)方式表示,如:width=1024,其中的key為width,value為1024。檔案meta data是檔案屬性列表,可以包含多個鍵值對。
fastdfs系統結構如下圖所示:
fastdfs原理
儲存節點採用了分組(group)的方式。儲存系統由乙個或多個group組成,group與group之間的檔案是相互獨立的,所有group的檔案容量累加就是整個儲存系統中的檔案容量。乙個group可以由一台或多台儲存伺服器組成,乙個group下的儲存伺服器中的檔案都是相同的,group中的多台儲存伺服器起到了冗餘備份和負載均衡的作用(乙個組的儲存容量為該組內儲存伺服器容量最小的那個,不同組的storage server之間不會相互通訊,同組內的storage server之間會相互連線進行檔案同步)。
在group中增加伺服器時,同步已有的檔案由系統自動完成,同步完成後,系統自動將新增伺服器切換到線上提供服務。
當儲存空間不足或即將耗盡時,可以動態新增group。只需要增加一台或多台伺服器,並將它們配置為乙個新的group,這樣就擴大了儲存系統的容量。
fastdfs只有兩個角色:tracker server和storage server。tracker server作為中心結點,其主要作用是負載均衡和排程。tracker server在記憶體中記錄分組和storage server的狀態等資訊,不記錄檔案索引資訊,占用的記憶體量很少。另外,客戶端(應用)和storage server訪問tracker server時,tracker server掃瞄記憶體中的分組和storage server資訊,然後給出應答。由此可以看出tracker server非常輕量化,不會成為系統瓶頸。
fastdfs中的storage server在其他檔案系統中通常稱作trunk server或data server。storage server直接利用os的檔案系統儲存檔案。fastdfs不會對檔案進行分塊儲存,客戶端上傳的檔案和storage server上的檔案一一對應(fastdfs中的檔案標識分為兩個部分:組名和檔名,二者缺一不可)
tracker server 192.168.55.222 /home/tracker 埠:22122
tracker server 192.168.55.226 /home/tracker 埠:22122
storage1 server 192.168.55.223 group1 /home/storage 埠:23000
storage4 server 192.168.55.227 group1 /home/storage 埠:23000
storage2 server 192.168.55.224 group2 /home/storage 埠:23000
storage3 server 192.168.55.225 group2 /home/storage 埠:23000
#storage2為group2的源伺服器
注意:1.group2同組的storage2和storage3 fastdfs服務埠必須一致: port=23000。
2.一台伺服器可以裝多個組(group)但不能裝同組的多個storage,日誌會報錯誤,日誌報錯原因是"注意1"
3.version 4.05之前fastdfs內部繫結了libevent作為http伺服器.version 4.05之後的版本刪除了內建的web http服務,內建的web http服務是個累贅,不用也罷!
4.啟動storage server時,一直處於僵死狀態.啟動storage server,storage將連線tracker server,如果連不上,將一直重試。直到連線成功,啟動才算真正完成!如果集群中有2臺tracker server,而其中一台tracker沒有啟動,可能會導致storage server一直處於僵死狀態
為什麼要選擇ISP 為什麼要選擇AHD
在影象傳輸中,我們為什麼選擇nextchip?為什麼要選擇isp?為什麼要選擇ahd?為什麼選擇北京冠宇銘通?這個問題我倒著回答各位 一 北京冠宇銘通科技是nextchip目前為止唯一一家正式官方授權 車載產品廠家之一 二 ahd和其他幾種傳輸方式相比,擁有自己的專利,其他幾家有專利的沒有幾個,如果...
為什麼要分詞
這裡不討論這個問題,我要說的為什麼要分詞?分詞是什麼!有人問 分詞有什麼作用啊?某人答 搜尋引擎要用到中文分詞,所以非常重要 這完全是廢話,說了等於沒說。搜尋引擎又為什麼要分詞呢?其實一般意思上指的分詞是比較狹隘的意思,指中文的詞是怎樣劃分的。因為中文沒有空格,所以要理解一篇文 章,你首先當然要切分...
為什麼要重構
在現實工作中,重構 更多被用來成為彌補缺陷 增加功能 修改設計等工作,而很多人潛意識裡也認為重構就是修改 重寫 而這往往曲解了重構的本意。重構是乙個過程,是建立在不違背外在行為的前提下,對 進行修改,改進程式的內部結構。重構不等於重新設計,軟體工程裡一定要先進行設計,再進行編碼,而如果你在之後對設計...