文件服务器存储解决方案探索
1 定義
文件服務(wù)器(file servers)是一種器件,它的功能就是向服務(wù)器提供文件。
它加強(qiáng)了存儲(chǔ)器的功能,簡化了網(wǎng)絡(luò)數(shù)據(jù)的管理。
它一則改善了系統(tǒng)的性能,提高了數(shù)據(jù)的可用性,二則減少了管理的復(fù)雜程度,降低了運(yùn)營費(fèi)用。
2 簡介
在C/S模式下,文件服務(wù)器(file server)是一臺(tái)對中央存儲(chǔ)和數(shù)據(jù)文件管理負(fù)責(zé)的計(jì)算機(jī),這樣在同一網(wǎng)絡(luò)中的其他計(jì)算機(jī)就可以訪問這些文件.
文件服務(wù)器允許用戶在網(wǎng)絡(luò)上共享信息,而不用通過軟盤或一些其它外部存儲(chǔ)設(shè)備來物理地移動(dòng)文件;
任何計(jì)算機(jī)都能被設(shè)置為主機(jī),并作為文件服務(wù)器(file server)運(yùn)行
最簡單的形式是,文件服務(wù)器可以是一臺(tái)普通的個(gè)人計(jì)算機(jī),它處理文件要求并在網(wǎng)絡(luò)中發(fā)送它們;
在更復(fù)雜的網(wǎng)絡(luò)中,文件服務(wù)器也可以是一臺(tái)專門的網(wǎng)絡(luò)附加存儲(chǔ)(NAS)設(shè)備,它也可以作為其他計(jì)算機(jī)的遠(yuǎn)程硬盤驅(qū)動(dòng)器來運(yùn)行,并允許網(wǎng)絡(luò)中的人像在他們自己的硬盤中一樣在服務(wù)器中存儲(chǔ)文件.
文件服務(wù)器具有分時(shí)系統(tǒng)文件管理的全部功能,提供網(wǎng)絡(luò)用戶訪問文件、目錄的并發(fā)控制和安全保密措施的局域網(wǎng)(LAN)服務(wù)器.
3 常見開源服務(wù)器
3.1 EasyFS
支持縮略圖,支持單選、多選,下載支持中文名,不依賴其它容器,可獨(dú)立部署,使用Java語言、SpringBoot框架開發(fā).
3.2 FastDFS
是一個(gè)開源的分布式文件系統(tǒng),對文件進(jìn)行管理
功能
文件存儲(chǔ)、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲(chǔ)和負(fù)載均衡的問題.
特別適合以文件為載體的在線服務(wù),如相冊網(wǎng)站、視頻網(wǎng)站等等.
主要是針對互聯(lián)網(wǎng)中的小文件系統(tǒng),沒有文件索引數(shù)據(jù)庫,整體性能很高
原理
3.3 HDFS
簡介
優(yōu)點(diǎn)
高可靠性。Hadoop按位存儲(chǔ)和處理數(shù)據(jù)的能力值得人們信賴。
高擴(kuò)展性。Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。
高效性。Hadoop能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非常快。
高容錯(cuò)性。Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。
低成本。與一體機(jī)、商用數(shù)據(jù)倉庫以及QlikView、Yonghong Z-Suite等數(shù)據(jù)集市相比,hadoop是開源的,項(xiàng)目的軟件成本因此會(huì)大大降低。
Hadoop帶有用Java語言編寫的框架,因此運(yùn)行在 Linux生產(chǎn)平臺(tái)上是非常理想的。Hadoop上的應(yīng)用程序也可以使用其他語言編寫,比如 C++。
Hadoop是目前最流行的的分布式文件系統(tǒng)之一,能找到的資料相當(dāng)豐富。
從使用的角度說,Hadoop的使用和使用FTP有點(diǎn)類似
3.4 TFS
淘寶使用的文件系統(tǒng),用于圖片存儲(chǔ),在小文件存儲(chǔ)上比較有優(yōu)勢,但隨著寫的增加,讀文件的效率會(huì)降低.
TFS(Taobao FileSystem)是一個(gè)高可擴(kuò)展、高可用、高性能、面向互聯(lián)網(wǎng)服務(wù)的分布式文件系統(tǒng),主要針對海量的非結(jié)構(gòu)化數(shù)據(jù),它構(gòu)筑在普通的Linux機(jī)器集群上,可為外部提供高可靠和高并發(fā)的存儲(chǔ)訪問.
TFS為淘寶提供海量小文件存儲(chǔ),通常文件大小不超過1M,滿足了淘寶對小文件存儲(chǔ)的需求,被廣泛地應(yīng)用在淘寶各項(xiàng)應(yīng)用中。它采用了HA架構(gòu)和平滑擴(kuò)容,保證了整個(gè)文件系統(tǒng)的可用性和擴(kuò)展性。同時(shí)扁平化的數(shù)據(jù)組織結(jié)構(gòu),可將文件名映射到文件的物理地址,簡化了文件的訪問流程,一定程度上為TFS提供了良好的讀寫性能。
總體結(jié)構(gòu)
一個(gè)TFS集群由兩個(gè)NameServer節(jié)點(diǎn)(一主一備)和多個(gè)DataServer節(jié)點(diǎn)組成。這些服務(wù)程序都是作為一個(gè)用戶級(jí)的程序運(yùn)行在普通Linux機(jī)器上的。
在TFS中,將大量的小文件(實(shí)際數(shù)據(jù)文件)合并成為一個(gè)大文件,這個(gè)大文件稱為塊(Block), 每個(gè)Block擁有在集群內(nèi)唯一的編號(hào)(Block Id), Block Id在NameServer在創(chuàng)建Block的時(shí)候分配, NameServer維護(hù)block與DataServer的關(guān)系。Block中的實(shí)際數(shù)據(jù)都存儲(chǔ)在DataServer上。而一臺(tái)DataServer服務(wù)器一般會(huì)有多個(gè)獨(dú)立DataServer進(jìn)程存在,每個(gè)進(jìn)程負(fù)責(zé)管理一個(gè)掛載點(diǎn),這個(gè)掛載點(diǎn)一般是一個(gè)獨(dú)立磁盤上的文件目錄,以降低單個(gè)磁盤損壞帶來的影響。
NameServer主要功能是: 管理維護(hù)Block和DataServer相關(guān)信息,包括DataServer加入,退出, 心跳信息, block和DataServer的對應(yīng)關(guān)系建立,解除。正常情況下,一個(gè)塊會(huì)在DataServer上存在, 主NameServer負(fù)責(zé)Block的創(chuàng)建,刪除,復(fù)制,均衡,整理,NameServer不負(fù)責(zé)實(shí)際數(shù)據(jù)的讀寫,實(shí)際數(shù)據(jù)的讀寫由DataServer完成。
DataServer主要功能是: 負(fù)責(zé)實(shí)際數(shù)據(jù)的存儲(chǔ)和讀寫。
同時(shí)為了考慮容災(zāi),NameServer采用了HA結(jié)構(gòu),即兩臺(tái)機(jī)器互為熱備,同時(shí)運(yùn)行,一臺(tái)為主,一臺(tái)為備,主機(jī)綁定到對外vip,提供服務(wù);當(dāng)主機(jī)器宕機(jī)后,迅速將vip綁定至備份NameServer,將其切換為主機(jī),對外提供服務(wù)。圖中的HeartAgent就完成了此功能
總結(jié)
以上是生活随笔為你收集整理的文件服务器存储解决方案探索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: app采集的10个经典方法
- 下一篇: mysql 数据复制停止工作_linux