每天5分鐘復習OpenStack(九)存儲發展史

    上一章節我們介紹了使用本地硬盤做kvm的存儲池,這章開始將介紹下存儲的發展歷程,并介紹什么是分布式存儲,為什么HDFS為有中心節點的分布式存儲?

    1、存儲發展

    • 在單機計算時代(大型機、小型機、微機),內部存儲器可以理解為內存(即Memory),外部存儲器可以理解為物理硬盤(包括本地硬盤和通過網絡映射的邏輯卷.
      外部存儲根據連接方式不同,又可以分為DAS (Direct-attached Storage)直連存儲或直接附加存儲。網絡化存儲 Fabric-Attached Storage,簡稱FAS);

    而網絡化存儲根據傳輸協議又分為:網絡附加存儲 NAS (Network-Attached Storage)存儲區域網絡SAN(Storage Area Network)。 (此概念容易弄混,N對應network 網絡, NAS 也可以理解為網絡附加存儲,即將存儲協議在常用網絡中傳輸。S 開頭 storage 存儲,存儲區域網絡其強調的是專用的網絡)

    其分類如下思維導圖:

    • 直接存儲:(DAS)很好理解,一般是通過專用線纜如IDE 、SCSI線直接將外部存儲連在服務器的內部總線上,可以理解為存儲設備只與一臺主機互聯。此時常用的接口類型有 IDE、SCSI、SATA、NVMe,如下圖是VMware軟件上添加磁盤時提供的接口選項。

    • 網絡化存儲: 則是通過網絡傳輸來提供的存儲能力,如果提供的是文件類型的存儲如NFS、CIFS,則其一般是NAS 存儲。如果提供的是塊設備的接口類型,則其是SAN存儲。(通常是這樣,但是其分類與提供的磁盤類型無關。)

    • FC-SAN: 而根據傳輸協議的不同,在數據鏈路層有專用的光纖通道協議,依賴存儲設備組成單獨的網絡,大多利用光纖連接,采用光纖通道協議(Fiber Channel,簡稱FC)。服務器和存儲設備間可以任意連接,I/O請求也是直接發送到存儲設備。光纖通道協議實際上解決了底層的傳輸協議,高層的協議仍然采用SCSI協議,所以光纖通道協議實際上可以看成是SCSI over FC

    • IP-SAN: 如果SAN是基于TCP/IP的網絡,實現IP-SAN網絡。這種方式是將服務器和存儲設備通過專用的網絡連接起來,服務器通過“Block I/O”發送數據存取請求到存儲設備。最常用的是iSCSI技術,就是把SCSI命令包在TCP/IP包中傳輸,即為SCSI over TCP/IP。

    (注*在OpenStack 為主的IAAS場景中,IP-SAN和FC-SAN作為專業的存儲設備與OpenStack進行對接是很常見的場景。了解其基本原理還是很有必要的。)

    2、FC-SAN VS IP-SAN

    總結:

    1、IP SAN 通常被認為比 FC SAN 成本更低、更易于管理。

    2、FC SAN 需要特殊的硬件,如光纖交換機或主機總線適配器,而 IP SAN 只需要現有的以太網網絡硬件。

    3、FC SAN 是許多關鍵業務應用程序的理想存儲平臺。

    4、IP SAN 是那些需要經濟高效解決方案的組織的理想選擇。

    5、缺點 FC-SAN 和IP-SAN 其都是用的專業的存儲設備,存儲設備是集中在固定的幾個存儲服務器上的,這樣的存儲也稱為集中式存儲。集中式存儲缺點也很明顯,依賴專用的存儲設備,無法快速的批量部署在普通服務器上。

    3、 分布式存儲

    單塊磁盤的性能是固定,如果我們能將數據分割成多塊, 每塊數據,選擇一塊硬盤去存儲,這樣在有N塊硬件的條件下,理論上是可以達到N*單盤性能參數,這就是分布式存儲的理論依據。而將存儲功能和管理與硬件解耦,以軟件的方式部署在普通服務器上,則是軟件定義存儲的思想。而軟件定義存儲是未來的存儲的趨勢。

    分布式存儲特點是將數據分散存儲在多臺計算機或服務器上的一種存儲方式。它通過將數據劃分為多個塊,并將這些塊分布存儲在不同的節點上,實現了數據的并行處理和高可靠性。這種存儲方式具有良好的擴展性、高吞吐量和可靠性,適用于處理大規模數據集。

    Hadoop分布式文件系統(Hadoop Distributed File System,簡稱HDFS)是一個開源的、高度可靠的分布式存儲系統,被廣泛應用于大數據領域。HDFS基于Google的GFS論文設計而來,旨在為大規模數據處理提供高效的存儲解決方案。

    HDFS的核心思想是將數據劃分為多個塊,并將這些塊分布存儲在集群中的多個節點上。每個塊的默認大小為128MB,可以根據需要進行配置。這種劃分方式使得數據可以在集群中并行處理,提高了數據處理的效率。

    HDFS采用主從架構,包括一個主節點(NameNode)和多個從節點(DataNode)。NameNode負責管理文件系統的命名空間、記錄文件的元數據信息(如文件名、文件目錄結構、文件屬性等),以及監控整個系統的狀態。DataNode負責存儲實際的數據塊,并根據NameNode的指示完成數據的讀寫操作。

    在ext系列的文件系統中,磁盤塊被分為兩部分數據區元數據區,而文件在存儲時,其inode信息就存放在元數據區??蛻粼L問文件系統時,在文件系統樹中表現應該一個路徑如/usr/share/lib/file ,根據該路徑的目錄名去層層查找inode表,最后查找到file 文件對應的inode信息,而inode信息記錄了當前數據塊存放在哪些數據區。從這個角度來看元數據可以理解為是一張路由表,該表中記錄我們怎么找到真正的數據存放位置。當然其也記錄文件的屬主、屬組、權限等信息。在這樣的一個分區或者磁盤中,如果我們想把一個大文件分成多個小文件,分散存儲在多個節點上時,顯示在這種數據和元數據在一起的架構上是無法實現的。

    隨之我們想到的是將元數據和數據分離,找一個單獨的節點存放元數據,而將真正的數據,按一定大小分為固定的塊,塊分散的存放在不同的節點上。而讓元數據去提供每個塊數據的路由信息,例如當要存儲一個256M大小的文件時,其先訪問元數據節點,元數據節點按固定大小的塊(如128M,則分為2塊),每一塊數據,當做一個獨立的文件,然后進行路由和調度。從而完成所謂分散存儲的目的。這樣就能充分利用每一個存儲節點的存儲和網絡能力,達到了分布式數據存儲的效果。

    當讀數據時,也是先訪問元數據節點,元數據節點記錄了該文件被切了多少個文件塊,塊與塊之間是如何偏移的,每個塊是在哪個節點的哪個位置。通過這些信息組合,從而得到一個完整的文件信息,然后從各個數據節點并行讀取所有分散的塊,這也就達到了分布式讀的效果。

    而負責元數據服務的節點就稱為NameNode ,而負責數據存放節點的稱為DataNode.從上述描述中可以看到NameNode的角色是多么重要,如果宕機了,則文件都無法訪問了,因此其需要高可用部署,其冗余的節點也稱為 Secondary NameNode;

    元數據是IO密集,但是IO量非常小的IO請求, 為了高效 ,一般都是在內存中的,還需要注意的是,磁盤IO的寫一般都是隨機的IO,隨機寫的IO是非常慢的,如何將一次隨機的IO寫變成有序的IO寫請求呢?

    我們可以像Mysql binlog 日志一樣,不直接進行IO的寫,而是記錄寫的操作,這樣就是順序寫,這些寫的操作就是binlog 日志,將來想要回滾時,只需要將日志回放即可。

    可是即便是這樣我們的元數據節點同時寫操作也只能在一個NameNOde上進行,IO雖然小,但是在大量數據IO請求過來時,仍然有性能不足的風險。這種結構也稱為有中心節點的分布式存儲。其中心節點就是NameNode. 而Ceph是一個無中心節點的分布式存儲,他們的最大差異點就在于此。

    HDFS作為一個分布式存儲,其具有分布式存儲的所有特點;

    • 高可靠性:HDFS通過數據冗余機制實現高可靠性。每個數據塊默認會有三個副本,分別存儲在不同的節點上,以防止單點故障對數據的影響。當某個節點失效時,系統會自動將其副本切換到其他健康的節點上,保證數據的可訪問性。

    • 高吞吐量:HDFS通過并行處理和數據本地性原則(Data Locality)來實現高吞吐量。數據本地性原則指的是盡可能地將計算任務調度到存儲數據的節點上執行,減少數據傳輸開銷。這種方式可以最大限度地利用集群的計算和存儲資源,提高整體的處理效率。

    • 擴展性:HDFS支持橫向擴展,可以方便地增加新的節點來擴展存儲容量和計算能力。當需要存儲更多數據時,只需添加新的節點即可,而無需對已有的節點進行改動。

    • 容錯性:HDFS通過周期性地創建文件系統的快照(Snapshot)來實現容錯性??煺帐俏募到y狀態的一份拷貝,可以用于恢復數據或回滾到某個特定的時間點。當發生錯誤或數據損壞時,可以通過快照來恢復數據的完整性。

    總之,HDFS是一個高度可靠、高擴展性和高吞吐量的分布式存儲系統,它為大規模數據處理提供了一個穩定而高效的基礎平臺。在大數據領域中,HDFS被廣泛應用于數據存儲、數據管理和數據分析等方面,為用戶提供強大的存儲能力和數據處理能力。其與Ceph 都是分布式存儲,兩者最大的區別是Ceph是無中心節點的分布式存儲。那Ceph是如何管理元數據的,我們在下一章將做詳細介紹。

    posted @ 2023-11-09 21:04  ALEX_li88  閱讀(231)  評論(0編輯  收藏  舉報
    正能量网站你懂我意思下载,欧美亚洲综合视频,97国产超碰,久在线中文欧美