一、數(shù)據(jù)存儲(chǔ)類(lèi)型
一般情況下,我們將存儲(chǔ)分成了4種類(lèi)型,基于本機(jī)的DAS和網(wǎng)絡(luò)的NAS存儲(chǔ)、SAN存儲(chǔ)、對(duì)象存儲(chǔ)。對(duì)象存儲(chǔ)是SAN存儲(chǔ)和NAS存儲(chǔ)結(jié)合后的產(chǎn)物,汲取了SAN存儲(chǔ)和NAS存儲(chǔ)的優(yōu)點(diǎn)。
1.DAS
DAS將計(jì)算、存儲(chǔ)能力一把抓,封裝在一個(gè)服務(wù)器里。大家日常用的電腦,就是一個(gè)DAS系統(tǒng)。
2.NAS
如果將計(jì)算和存儲(chǔ)分離了,存儲(chǔ)成為一個(gè)獨(dú)立的設(shè)備,并且存儲(chǔ)有自己的文件系統(tǒng),可以自己管理數(shù)據(jù),就是NAS。所以NAS存儲(chǔ)可以被不同的主機(jī)共享。服務(wù)器只要提需求,不需要進(jìn)行大量的計(jì)算,將很多工作交給了存儲(chǔ)完成,省下的CPU資源可以干更多服務(wù)器想干的事情,即計(jì)算密集型適合使用NAS。
3.SAN
計(jì)算和存儲(chǔ)分離了,存儲(chǔ)成為一個(gè)獨(dú)立的設(shè)備,存儲(chǔ)只是接受命令不再做復(fù)雜的計(jì)算,只干讀取或者寫(xiě)入文件2件事情,叫SAN。
因?yàn)椴粠募到y(tǒng),所以也叫“裸存儲(chǔ)”,有些應(yīng)用就需要裸設(shè)備,如數(shù)據(jù)庫(kù)。存儲(chǔ)只接受簡(jiǎn)單明了的命令,其他復(fù)雜的事情,有服務(wù)器端干了。再配合FC網(wǎng)絡(luò),這種存儲(chǔ)數(shù)據(jù)讀取/寫(xiě)入的速度很高。
但是每個(gè)服務(wù)器都有自己的文件系統(tǒng)進(jìn)行管理,對(duì)于存儲(chǔ)來(lái)說(shuō)是不挑食的只要來(lái)數(shù)據(jù)我就存,不需要知道來(lái)的是什么,不管是英語(yǔ)還是法語(yǔ),都忠實(shí)記錄下來(lái)的。但是只有懂英語(yǔ)的才能看懂英語(yǔ)的數(shù)據(jù),懂法語(yǔ)的看懂法語(yǔ)的數(shù)據(jù)。所以,一般服務(wù)器和SAN存儲(chǔ)區(qū)域是一夫一妻制的,SAN的共享性不好。當(dāng)然,有些裝了集群文件系統(tǒng)的主機(jī)是可以共享同一個(gè)存儲(chǔ)區(qū)域的。
4.對(duì)象存儲(chǔ)
對(duì)象存儲(chǔ)大量使用在互聯(lián)網(wǎng)上,大家使用的網(wǎng)盤(pán)就是典型的對(duì)象存儲(chǔ)。對(duì)象存儲(chǔ)有很好的擴(kuò)展性,可以線性擴(kuò)容。并可以通過(guò)接口封裝,還可以提供NAS存儲(chǔ)服務(wù)和SAN存儲(chǔ)服務(wù)。
VMware的vSAN本質(zhì)就是一個(gè)對(duì)象存儲(chǔ)。
二、分布式存儲(chǔ)系統(tǒng)
普通存儲(chǔ)方案:Rsync、DAS(IDE/SATA/SAS/SCSI等塊)、NAS(NFS、CIFS、SAMBA等文件系統(tǒng))、SAN(FibreChannel, iSCSI, FoE存儲(chǔ)網(wǎng)絡(luò)塊),Openfiler、FreeNas(ZFS快照復(fù)制)由于生產(chǎn)環(huán)境中往往由于對(duì)存儲(chǔ)數(shù)據(jù)量很大,而SAN存儲(chǔ)價(jià)格又比較昂貴,因此大多會(huì)選擇分布式存儲(chǔ)
GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自適用于不同的領(lǐng)域。它們都不是系統(tǒng)級(jí)的分布式文件系統(tǒng),而是應(yīng)用級(jí)的分布式文件存儲(chǔ)服務(wù)。
TFS
TFS(Taobao File System)是由淘寶開(kāi)發(fā)的一個(gè)分布式文件系統(tǒng),其內(nèi)部經(jīng)過(guò)特殊的優(yōu)化處理,適用于海量的小文件存儲(chǔ),主要針對(duì)海量的非結(jié)構(gòu)化數(shù)據(jù),它構(gòu)筑在普通的Linux機(jī)器 集群上,可為外部提供高可靠和高并發(fā)的存儲(chǔ)訪問(wèn)。目前已經(jīng)對(duì)外開(kāi)源;
TFS采用自有的文件系統(tǒng)格式存儲(chǔ),因此需要專用的API接口去訪問(wèn),目前官方提供的客戶端版本有:C++/JAVA/PHP。
FastDFS
FastDFS是國(guó)人開(kāi)發(fā)的一款分布式文件系統(tǒng),目前社區(qū)比較活躍。如上圖所示系統(tǒng)中存在三種節(jié)點(diǎn):Client、Tracker、Storage,在底層存儲(chǔ)上通過(guò)邏輯的分組概念,使得通過(guò)在同組內(nèi)配置多個(gè)Storage,從而實(shí)現(xiàn)軟RAID10,提升并發(fā)IO的性能、簡(jiǎn)單負(fù)載均衡及數(shù)據(jù)的冗余備份;同時(shí)通過(guò)線性的添加新的邏輯存儲(chǔ)組,從容實(shí)現(xiàn)存儲(chǔ)容量的線性擴(kuò)容。
文件下載上,除了支持通過(guò)API方式,目前還提供了apache和nginx的插件支持,同時(shí)也可以不使用對(duì)應(yīng)的插件,直接以Web靜態(tài)資源方式對(duì)外提供下載。
目前FastDFS(V4.x)代碼量大概6w多行,內(nèi)部的網(wǎng)絡(luò)模型使用比較成熟的libevent三方庫(kù),具備高并發(fā)的處理能力。
操作和部署過(guò)程:https://www.jianshu.com/p/b7c330a87855
HDFS
Hadoop 實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡(jiǎn)稱HDFS。Hadoop是Apache Lucene創(chuàng)始人Doug Cutting開(kāi)發(fā)的使用廣泛的文本搜索庫(kù)。它起源于Apache Nutch,
后者是一個(gè)開(kāi)源的網(wǎng)絡(luò)搜索引擎,本身也是Luene項(xiàng)目的一部分。Aapche Hadoop架構(gòu)是MapReduce算法的一種開(kāi)源應(yīng)用,是Google開(kāi)創(chuàng)其帝國(guó)的重要基石。
GFS(Google File System)
Google公司為了滿足本公司需求而開(kāi)發(fā)的基于Linux的專有分布式文件系統(tǒng)。盡管Google公布了該系統(tǒng)的一些技術(shù)細(xì)節(jié),但Google并沒(méi)有將該系統(tǒng)的軟件部分作為開(kāi)源軟件發(fā)布。