天天看點

架構師之路 - 存儲架構

架構師在做架構設計時一定繞不開存儲的設計,本文我們一起來了解一下存儲的相關知識。主要内容包括存儲使用方式、常見協定、連結方式以及分布式存儲架構中的典型架構案例。

存儲分類

存儲架構

從架構角度分類存儲一般可以分為:集中式存儲和分布式存儲。

「集中式存儲」的主要特點是能把所有資料儲存在一個地方,各地辦公室的遠端終端通過電纜同中央計算機(主機)相聯,保證了每個終端使用的都是同一資訊。

集中式存儲一般是商業的且比較昂貴。

「分布式存儲」,是将資料分散存儲在多台獨立的裝置上,采用可擴充的系統結構,利用多台存儲伺服器分擔存儲負荷,利用位置伺服器定位存儲資訊,它不但提高了系統的可靠性、可用性和存取效率,還易于擴充。

分布式存儲一般結合管理軟體自建。

存儲使用方式

從使用者的角度對存儲進行分類可以分為三類:塊存儲,檔案存儲,對象存儲。

架構師之路 - 存儲架構

使用方式分類

「塊存儲:」 一般展現形式是卷或者硬碟,主要操作對象是磁盤,将裸磁盤空間整個映射給主機使用。在此種方式下作業系統需要對挂載的裸硬碟進行分區、格式化後,才能使用。塊存儲無法進行檔案共享。

「檔案存儲:」 一般展現形式是目錄和檔案,資料以檔案的方式存儲和通路,按照目錄結構進行組織。此種方式也需要挂載,挂載後為一個目錄,可直接存取其中的檔案;不需要格式化。

「對象存儲:」 主要操作對象是對象Object,本質上是鍵值對存儲系統,不需要挂載,直接通過應用接口通路。

存儲協定

從協定角度分類存儲可以分為NFS、CIFS、ISCSI協定。

「NFS (Network File System,網絡檔案系統)」 是目前主流異構平台共享檔案系統之一,主要應用于Unix環境下。通過使用NFS,使用者和程式可以象通路本地檔案一樣通路遠端系統上的檔案,使得每個計算機的節點能夠像使用本地資源一樣友善地使用網上資源。換言之,NFS 可用于不同類型計算機、作業系統、網絡架構和傳輸協定運作環境中的網絡檔案遠端通路和共享。「針對共享檔案存儲。」

「CIFS(Common Internet File System,公共網際網路檔案系統)」 主要應用在NT/Windows環境下,其工作原理是讓CIFS協定運作于TCP/IP通信協定之上,讓Unix計算機可以在網絡鄰居上被Windows計算機看到。「針對共享檔案存儲。」

「ISCSI (Internet SCSI/SCSI over IP)」 :主要應用在Windows環境下,适用于TCP/IP通訊協定,是通過TCP/IP網絡傳輸檔案時的檔案組織格式和資料傳輸方式。「針對資料塊存儲。」

存儲連結方式

從存儲連結角度分類存儲可以分為DAS、NAS、SAN三類。

「DAS(Direct Attached Storage):」

直接附加存儲方式與我們普通的PC存儲架構一樣,外部儲存設備都是直接挂接在伺服器内部總線上,資料儲存設備是整個伺服器結構的一部分,任何用戶端想要通路儲存設備上的資源就必須要通過伺服器。

架構師之路 - 存儲架構

DAS架構

「NAS(Network Attached Storage):」

在NAS存儲結構中,存儲系統不再通過I/O總線附屬于某個特定的服務期或客戶機,而是直接通過網絡接口直接與網絡相連,使用者通過網絡通路。NAS實際上是帶有一個“瘦伺服器”的儲存設備,作用類似于一個專用的檔案伺服器,而不是傳統通用伺服器,去掉了大多數功能,僅僅提供檔案系統功能,用于存儲服務。

架構師之路 - 存儲架構

NAS架構

「SAN(Storage Area Network):」

SAN是一種以網絡為中心的存儲結構,不同于普通以太網,SAN是位于伺服器的後端,為連接配接伺服器、磁盤陣列、帶庫等儲存設備而建立的高性能「專用網絡(光纖通道)」。

架構師之路 - 存儲架構

SAN 架構

主流存儲廠商及産品

商業存儲廠商有:EMC、NetApp、DELL、Huawei、曙光等

開源的存儲産品有:

  • FastDFS(對象)
  • Swift(對象)
  • HDFS(對象)
  • Lustre(塊)
  • GlusterFS(檔案)
  • Ceph(塊、檔案、對象)

分布式存儲架構

集中式存儲一般使用商業軟體且由廠家負責安裝配置,我們這裡主要講一下分布式存儲架構。

按照中繼資料的管理方式,存儲架構可分為對稱式和非對稱式兩種架構模式。

在對稱式架構中每個節點的角色均等,共同管理和維護中繼資料,節點間通過高速網絡進行資訊同步和互斥鎖等操作。(每台節點安裝的元件一樣)

而非對稱式叢集檔案系統中,有專門的一個或者多個節點負責管理中繼資料,其他節點需要頻繁與中繼資料節點通信以擷取最新的中繼資料比如目錄清單、檔案屬性等等。(中繼資料節點與存儲節點分離)

接下來我們看看兩種不同架構模式下的代表産品:FastDFS 和 swift。

FastDFS典型架構

架構師之路 - 存儲架構

FastDFS架構

FastDFS采用的是非對稱架構,分為Tracker server和Storage server。

Tracker server作為中心結點,管理叢集拓撲結構,其主要作用是負載均衡和排程。

Storage server 以卷為機關組織,一個卷内包含多台storage機器,每個卷中的伺服器是鏡像關系,資料互為備份,存儲空間以卷内容量最小的storage為準,是以建議group内的多個storage盡量配置相同,以免造成存儲空間的浪費。

Swift典型架構

架構師之路 - 存儲架構

swift架構

Swift采用的是完全對稱、面向資源的分布式系統架構設計,所有元件都可擴充。

Swift将整個存儲分為三個層次:Account、Container 和 Object。

小結

本文給大家介紹了存儲的相關知識,存儲這一塊的内容比較枯燥大家了解即可,重點需要關注分布式存儲架構。