fastdfs分布式文件系統(tǒng)部署
在介紹本文之前,我向大家介紹下一個(gè)非常棒的分布式文件系統(tǒng)fastdfs,關(guān)于她的具體介紹和優(yōu)點(diǎn)我不做詳細(xì)介紹了,有關(guān)資料可以訪問(wèn):http://linux.chinaunix.net/bbs/forum-75-1.html 。web2.0海量小文件的存儲(chǔ)是所有系統(tǒng)架構(gòu)師必須要面對(duì)的一個(gè)問(wèn)題。
這幾天一直在忙著給公司部署分布式文件系統(tǒng)。也看了幾個(gè)大型公司的分布式文件系統(tǒng)的架構(gòu):flicker,taobao,拍拍網(wǎng)。深入理解各自應(yīng)用的場(chǎng)景,弄明白了很多個(gè)為什么之后,自己將要為公司部署的分布式文件系統(tǒng)架構(gòu)也慢慢浮出水面了。
架構(gòu)隨著業(yè)務(wù)發(fā)展而逐步改變的,比如類(lèi)似淘寶這樣的訪問(wèn)量,可能需要cdn來(lái)加速靜態(tài)資源(js,css)和用戶上傳的業(yè)務(wù)相關(guān)的圖片而一般訪問(wèn)量不是特別大的網(wǎng)站可以不用部署cdn,原因肯定很多,硬件成本和維護(hù)成本等等。
那么接下來(lái)我就分別介紹部署cdn的分布式文件系統(tǒng)架構(gòu)和普通分布式文件系統(tǒng)架構(gòu)。
(一)部署cdn的分布式文件系統(tǒng)架構(gòu):
涉及到的技術(shù):lvs,haproxy(或nagix),squid,nagix(或apache),fastdfs。
有圖有真相,先畫(huà)個(gè)圖。
接下來(lái)我對(duì)每層設(shè)置的意義進(jìn)行解釋下。
lvs7層代理:主要通過(guò)ip來(lái)找到自己合適的下層服務(wù)器。
haproxy或nginx4層代理:主要通過(guò)url hash找到合適的一臺(tái)squid。最主要功能就是為了提高squid緩存的命中率。
squid集群:緩存所有用戶訪問(wèn)的對(duì)象。
文件服務(wù)器集群:1、tracker服務(wù)器,主要管理文件存儲(chǔ)的源storage等一些信息。 2、storage服務(wù)器就是實(shí)際文件的存儲(chǔ)位置。最近fishman(fastdfs的作者)開(kāi)發(fā)了一個(gè)apache module解決了延遲問(wèn)題,那么我們可以不用啟用tracker內(nèi)嵌的服務(wù)器來(lái)跳轉(zhuǎn)了,直接把http服務(wù)器配置在storage服務(wù)器上。給我們帶來(lái)了很多方便。
(二)普通分布式文件系統(tǒng)架構(gòu):
(圖片引自:http://linux.chinaunix.net/bbs/thread-1062461-1-1.html)
這個(gè)架構(gòu)沒(méi)有涉及到cdn的部署,相比起來(lái)應(yīng)該更容易理解了。對(duì)于tracker和storage的作用類(lèi)似于在部署cdn的分布式文件系統(tǒng)架構(gòu)部分介紹的一樣。其中client我覺(jué)得有必要要解釋下,這里的client有兩層含義:1、相對(duì)于tracker和storage服務(wù)器來(lái)說(shuō),client是訪問(wèn)這些服務(wù)器的客戶端。 2、應(yīng)用程序的服務(wù)端。實(shí)際開(kāi)發(fā)中,我們可以部署一臺(tái)圖片上傳服務(wù)器來(lái)作為應(yīng)用程序的服務(wù)端,也可以把圖片上傳服務(wù)直接寫(xiě)到應(yīng)用程序中。
兩種架構(gòu)都是基于fastdfs分布式文件系統(tǒng)。所以你們了解fastdfs軟件本身之后再看這篇文章也許會(huì)更有益。
posted on 2010-10-26 17:27 yangpingyu 閱讀(3739) 評(píng)論(2) 編輯 收藏 所屬分類(lèi): 網(wǎng)站架構(gòu)