架構(gòu)師之路 - 存儲架構(gòu)

架構(gòu)師在做架構(gòu)設(shè)計(jì)時(shí)一定繞不開存儲的設(shè)計(jì),本文我們一起來了解一下存儲的相關(guān)知識。主要內(nèi)容包括存儲使用方式、常見協(xié)議、鏈接方式以及分布式存儲架構(gòu)中的典型架構(gòu)案例。
存儲分類
存儲架構(gòu)
從架構(gòu)角度分類存儲一般可以分為:集中式存儲和分布式存儲。
「集中式存儲」的主要特點(diǎn)是能把所有數(shù)據(jù)保存在一個(gè)地方,各地辦公室的遠(yuǎn)程終端通過電纜同中央計(jì)算機(jī)(主機(jī))相聯(lián),保證了每個(gè)終端使用的都是同一信息。
集中式存儲一般是商業(yè)的且比較昂貴。
「分布式存儲」,是將數(shù)據(jù)分散存儲在多臺獨(dú)立的設(shè)備上,采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔(dān)存儲負(fù)荷,利用位置服務(wù)器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。
分布式存儲一般結(jié)合管理軟件自建。
存儲使用方式
從使用者的角度對存儲進(jìn)行分類可以分為三類:塊存儲,文件存儲,對象存儲。

「塊存儲:」 一般體現(xiàn)形式是卷或者硬盤,主要操作對象是磁盤,將裸磁盤空間整個(gè)映射給主機(jī)使用。在此種方式下操作系統(tǒng)需要對掛載的裸硬盤進(jìn)行分區(qū)、格式化后,才能使用。塊存儲無法進(jìn)行文件共享。
「文件存儲:」 一般體現(xiàn)形式是目錄和文件,數(shù)據(jù)以文件的方式存儲和訪問,按照目錄結(jié)構(gòu)進(jìn)行組織。此種方式也需要掛載,掛載后為一個(gè)目錄,可直接存取其中的文件;不需要格式化。
「對象存儲:」 主要操作對象是對象Object,本質(zhì)上是鍵值對存儲系統(tǒng),不需要掛載,直接通過應(yīng)用接口訪問。
存儲協(xié)議
從協(xié)議角度分類存儲可以分為NFS、CIFS、ISCSI協(xié)議。
「NFS (Network File System,網(wǎng)絡(luò)文件系統(tǒng))」 是當(dāng)前主流異構(gòu)平臺共享文件系統(tǒng)之一,主要應(yīng)用于Unix環(huán)境下。通過使用NFS,用戶和程序可以象訪問本地文件一樣訪問遠(yuǎn)端系統(tǒng)上的文件,使得每個(gè)計(jì)算機(jī)的節(jié)點(diǎn)能夠像使用本地資源一樣方便地使用網(wǎng)上資源。換言之,NFS 可用于不同類型計(jì)算機(jī)、操作系統(tǒng)、網(wǎng)絡(luò)架構(gòu)和傳輸協(xié)議運(yùn)行環(huán)境中的網(wǎng)絡(luò)文件遠(yuǎn)程訪問和共享。「針對共享文件存儲?!?/strong>
「CIFS(Common Internet File System,公共互聯(lián)網(wǎng)文件系統(tǒng))」 主要應(yīng)用在NT/Windows環(huán)境下,其工作原理是讓CIFS協(xié)議運(yùn)行于TCP/IP通信協(xié)議之上,讓Unix計(jì)算機(jī)可以在網(wǎng)絡(luò)鄰居上被Windows計(jì)算機(jī)看到。「針對共享文件存儲?!?/strong>
「ISCSI (Internet SCSI/SCSI over IP)」 :主要應(yīng)用在Windows環(huán)境下,適用于TCP/IP通訊協(xié)議,是通過TCP/IP網(wǎng)絡(luò)傳輸文件時(shí)的文件組織格式和數(shù)據(jù)傳輸方式。「針對數(shù)據(jù)塊存儲?!?/strong>
存儲鏈接方式
從存儲鏈接角度分類存儲可以分為DAS、NAS、SAN三類。
「DAS(Direct Attached Storage):」
直接附加存儲方式與我們普通的PC存儲架構(gòu)一樣,外部存儲設(shè)備都是直接掛接在服務(wù)器內(nèi)部總線上,數(shù)據(jù)存儲設(shè)備是整個(gè)服務(wù)器結(jié)構(gòu)的一部分,任何客戶端想要訪問存儲設(shè)備上的資源就必須要通過服務(wù)器。

「NAS(Network Attached Storage):」
在NAS存儲結(jié)構(gòu)中,存儲系統(tǒng)不再通過I/O總線附屬于某個(gè)特定的服務(wù)期或客戶機(jī),而是直接通過網(wǎng)絡(luò)接口直接與網(wǎng)絡(luò)相連,用戶通過網(wǎng)絡(luò)訪問。NAS實(shí)際上是帶有一個(gè)“瘦服務(wù)器”的存儲設(shè)備,作用類似于一個(gè)專用的文件服務(wù)器,而不是傳統(tǒng)通用服務(wù)器,去掉了大多數(shù)功能,僅僅提供文件系統(tǒng)功能,用于存儲服務(wù)。

「SAN(Storage Area Network):」
SAN是一種以網(wǎng)絡(luò)為中心的存儲結(jié)構(gòu),不同于普通以太網(wǎng),SAN是位于服務(wù)器的后端,為連接服務(wù)器、磁盤陣列、帶庫等存儲設(shè)備而建立的高性能「專用網(wǎng)絡(luò)(光纖通道)」。

主流存儲廠商及產(chǎn)品
商業(yè)存儲廠商有:EMC、NetApp、DELL、Huawei、曙光等
開源的存儲產(chǎn)品有:
FastDFS(對象) Swift(對象) HDFS(對象) Lustre(塊) GlusterFS(文件) Ceph(塊、文件、對象)
分布式存儲架構(gòu)
集中式存儲一般使用商業(yè)軟件且由廠家負(fù)責(zé)安裝配置,我們這里主要講一下分布式存儲架構(gòu)。
按照元數(shù)據(jù)的管理方式,存儲架構(gòu)可分為對稱式和非對稱式兩種架構(gòu)模式。
在對稱式架構(gòu)中每個(gè)節(jié)點(diǎn)的角色均等,共同管理和維護(hù)元數(shù)據(jù),節(jié)點(diǎn)間通過高速網(wǎng)絡(luò)進(jìn)行信息同步和互斥鎖等操作。(每臺節(jié)點(diǎn)安裝的組件一樣)
而非對稱式集群文件系統(tǒng)中,有專門的一個(gè)或者多個(gè)節(jié)點(diǎn)負(fù)責(zé)管理元數(shù)據(jù),其他節(jié)點(diǎn)需要頻繁與元數(shù)據(jù)節(jié)點(diǎn)通信以獲取最新的元數(shù)據(jù)比如目錄列表、文件屬性等等。(元數(shù)據(jù)節(jié)點(diǎn)與存儲節(jié)點(diǎn)分離)
接下來我們看看兩種不同架構(gòu)模式下的代表產(chǎn)品:FastDFS 和 swift。
FastDFS典型架構(gòu)

FastDFS采用的是非對稱架構(gòu),分為Tracker server和Storage server。
Tracker server作為中心結(jié)點(diǎn),管理集群拓?fù)浣Y(jié)構(gòu),其主要作用是負(fù)載均衡和調(diào)度。
Storage server 以卷為單位組織,一個(gè)卷內(nèi)包含多臺storage機(jī)器,每個(gè)卷中的服務(wù)器是鏡像關(guān)系,數(shù)據(jù)互為備份,存儲空間以卷內(nèi)容量最小的storage為準(zhǔn),所以建議group內(nèi)的多個(gè)storage盡量配置相同,以免造成存儲空間的浪費(fèi)。
Swift典型架構(gòu)

Swift采用的是完全對稱、面向資源的分布式系統(tǒng)架構(gòu)設(shè)計(jì),所有組件都可擴(kuò)展。
Swift將整個(gè)存儲分為三個(gè)層次:Account、Container 和 Object。
小結(jié)
本文給大家介紹了存儲的相關(guān)知識,存儲這一塊的內(nèi)容比較枯燥大家了解即可,重點(diǎn)需要關(guān)注分布式存儲架構(gòu)。
