種分布式文件系統_第1頁
種分布式文件系統_第2頁
種分布式文件系統_第3頁
種分布式文件系統_第4頁
種分布式文件系統_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一局部CEPH1.1 特點Ceph最大的特點是分布式的元數據效勞器通過CRUSH,一種擬算法來分配文件的locaiton,其核心是 RADOSresilient automatic distributed object storage),一個對象集群存儲,本身提供對象的高可用,錯誤檢測和修復功能。1.2 組成CEPH文件系統有三個主要模塊:a) Client:每個Client實例向主機或進程提供一組類似于POSIX的接口。b) OSD簇:用于存儲所有的數據和元數據。c) 元數據效勞簇:協調平安性、一致性與耦合性時,管理命名空間文件名和目錄名1.3 架構原理Client:用戶I/O:輸入/輸出

2、MDS:Metadata Cluster Server元數據簇效勞器OSD:Object Storage Device對象存儲設備Client通過與OSD的直接通訊實現I/O操作。這一過程有兩種操作方式:1.直接通過Client實例連接到Client;2.通過一個文件系統連接到Client。當一個進行翻開一個文件時,Client向MDS簇發送一個請求。MDS通過文件系統層級結構把文件名翻譯成文件節點inode,并獲得節點號、模式mode、大小與其他文件元數據。注意文件節點號與文件意義對應。如果文件存在并可以獲得操作權,那么MDS通過結構體返回節點號、文件長度與其他文件信息。MDS同時賦予Cli

3、ent操作權如果該Client還沒有的話。目前操作權有四種,分別通過一個bit表示:讀read、緩沖讀cache read、寫write、緩沖寫buffer write。在未來,操作權會增加平安關鍵字,用于client向OSD證明它們可以對數據進行讀寫目前的策略是全部client都允許。之后,包含在文件I/O中的MDS被用于限制管理能力,以保證文件的一致性與語義的合理性。CEPH產生一組條目來進行文件數據到一系列對象的映射。為了防止任何為文件分配元數據的需要。對象名簡單的把文件節點需要與條目號對應起來。對象復制品通過CRUSH著名的映射函數分配給OSD。例如,如果一個或多個Client翻開同一

4、個文件進行讀操作,一個MDS會賦予他們讀與緩存文件內容的能力。通過文件節點號、層級與文件大小,Client可以命名或分配所有包含該文件數據的對象,并直接從OSD簇中讀取。任何不存在的對象或字節序列被定義為文件洞或0。同樣的,如果Client翻開文件進行寫操作。它獲得使用緩沖寫的能力。任何位置上的數據都被寫到適宜的OSD上的適宜的對象中。Client關閉文件時,會自動放棄這種能力,并向MDS提供新的文件大小寫入時的最大偏移。它重新定義了那些存在的并包含文件數據的對象的集合。CEPH的設計思想有一些創新點主要有以下兩個方面:第一,數據的定位是通過CRUSH算法來實現的。傳統的,或者通常的并行文件系

5、統,數據的定位的信息是保存在文件的metadata 中的, 也就是inode結構中,通過到metadata server上去獲取數據分布的信息。而在Ceph中,是通過CRUSH 這個算法來提供數據定位的。第二,元數據效勞器可以提供集群metadata server 效勞。只要當我們了解了其結構后,感覺并沒有太大的特點。元數據效勞器一般就用來存儲文件和目錄的信息,提供統一的命名效勞。 在Ceph中,元數據的inode , dentry,以及日志都是在對象存儲集群RADOS中存儲,這就使得 metadata的 持久化都是在遠程的RADOS中完成,metadata server 不保存狀態,只是緩存

6、最近的inode 和 dentry項,當metadata server 失效后,其所所有信息都可以從RADOS中獲取,可以比擬容易恢復。CEPH最核心的,就是RADOS就是RADOSresilient automatic distributed object storage). 其resilient 指的是可以輕松擴展,automatic 指的是其對象存儲集群可以處理failover, failure recovery。RADOS 對象集群其對外提供了一個高可用的,可擴展的,對象集群,從客戶端的角度看,就是一個統一命名空間的對象存儲。1.4 使用方式(一) Ceph 的Monitor用來監控集

7、群中所有節點的狀態信息,完成類似配置效勞的功能。在Ceph里,配置主要就是cluster map ,其保存集群所有節點信息,并和所有的節點保持心跳,來監控所有的節點狀態。其通過Paxos算法實現實現自身的高可用,也就是說,這個Ceph Monitor是不會有單點問題的。目前流行的zookeeper 的功能,以及實現都類似。(二) 對象存儲Ceph文件系統中的數據和元數據都保存在對象中。 對于對象存儲,通常的定義是:一個Object,由三局部組成id,metadata,data,id是對象的標識,這個不必多說。所謂的metadata,就是key/value的鍵值存儲,至于用來保存什么信息,由文件

8、系統的語義定義。data就是實際存儲的數據。Ceph的對象,包括四個局部id,metadata,attribute,data,在Ceph里,一個Object,實際就對應本地文件系統的一個文件,一個對象的attribute,也是key/value的鍵值對,其保存在本地文件系統的文件的擴展屬性中。對象的metadata就是key/value的鍵值對,目前Ceph保存在google開源的一個key/value存儲系統leveldb中,或者自己寫的一個key/value 存儲系統中。數據就保存在對象的文件中。對于一個對象的更新,都需要寫日志中來保持一個Object數據的一致性consistence,日

9、志有一個單獨的設備或者文件來保存。(三) 副本存儲一個PGplacement group由一個OSD列表組成,OSD的個數,就是對象的副本數,一個三副本的PG就是一個主,兩個副本的OSD列表組成。一個PG和OSD列表的映射關系,是通過CRUSH算法計算的,知道PG的id,和當前的cluster map,就可以通過CRUSH算法,計算出OSD列表。特別強調的是,一個PG是邏輯層概念,也就是說,一個OSD,可能同時是一個或者多個PG的主,同時是另一個PG的從。一個OSD處于多個PG組中。一個PG就是復制和修復的根本單位。每個OSD本地保存其所在的PG列表就可以了,其它OSD可以通過輸入當前的該OS

10、D保存的cluster map 和 PG 的id ,通過CRUSH計算得出。(四) Ceph的容錯處理對于Ceph文件系統,錯誤分兩類:一類是磁盤錯誤或者數據損壞 disk error or corruptted data, 這類錯誤OSD會自己報告和處理。self report ; 第二類是OSD失去網絡連接導致該OSD不可達unreachable on the network這種情況下需要主動檢測active monitor,在同一個PG組中的其它OSD會發心跳信息互相檢測。 這種檢測的一個優化的方法就是,當replication復制操作時,就可以順帶檢測,不用發單獨的消息來檢測,只有一段

11、時間沒有replication 操作時,才發ping消息里檢測。OSD的失效狀態有兩種:一種是down狀態,這種狀態下,被認為是臨時錯誤。 在這種情況下,如果是primay,其任務由下一個replicate接手。如果該OSD沒有迅速恢復quickly recovery,那么就被標記為out狀態,在這種狀態下,將有新的osd參加這個PG中。如何標記一個OSD 從down狀態 標記為out狀態?由于網絡分區的問題,需要通過 Ceph Monitor 來裁定。(五) Ceph 的寫流程客戶端先寫主副本,然后同步到兩個從副本。主副本等待從副本的ack消息和apply消息。當主副本收到ack消息,說明寫

12、操作已經寫在內存中完成,收到apply 消息,說明已經apply到磁盤上了。如果在寫的過程中,主副本失效,按順序下一個從副本接管主副本的工作,這個時候是否返回給客戶端寫正確?在這種情況下,客戶端只是判斷正常工作的acting的 OSD的返回結果,只要所有正常工作的OSD返回即認為成功,雖然這時候可能只有兩副本成功。同時該臨時primay必須保存所有操作的recovey隊列里,如果原primay恢復,可以replay所有recovery隊列里的操作,如果主副本從down到out狀態,也即是永久失效,臨時primay轉正,由臨時primay為正式primay,只是需要參加一個新的OSD到該PG中。

13、如果是從副本失效,就比擬簡單。臨時失效,主replay所有寫操作,如過永久失效,新參加一個OSD到PG中就可以了。(六) 恢復當有OSD失效,恢復或者增加一個新的OSD時,導致OSD cluster map的變換。Ceph處理以上三種情況的策略是一致的。為了恢復,ceph保存了兩類數據,一個是每個OSD的一個version,另一個是PG修改的log,這個log包括PG修改的object 的名稱和version。當一個OSD接收到cluster map的更新時:1檢查該OSD的所屬的PG,對每個PG,通過CRUSH算法,計算出主副本的三個OSD2如何該PG里的OSD發生了改變,這時候,所有的re

14、plicate向主副本發送log,也就是每個對象最后的version,當primay 決定了最后各個對象的正確的狀態,并同步到所有副本上。3每個OSD獨立的決定,是從其它副本中恢復喪失或者過時的missing or outdated對象。 (如何恢復? 好似是整個對象全部拷貝,或者基于整個對象拷貝,但是用了一些類似于rsync的算法?目前還不清楚4當OSD在恢復過程中,delay所有的請求,直到恢復成功。第二局部GlusterFSGlusterFS是Scale-Out存儲解決方案Gluster的核心,它是一個開源的分布式文件系統,具有強大的橫向擴展能力,通過擴展能夠支持數PB存儲容量和處理數千

15、客戶端。GlusterFS借助TCP/IP或InfiniBand RDMA網絡將物理分布的存儲資源聚集在一起,使用單一全局命名空間來管理數據。GlusterFS基于可堆疊的用戶空間設計,可為各種不同的數據負載提供優異的性能。GlusterFS支持運行在任何標準IP網絡上標準應用程序的標準客戶端,用戶可以在全局統一的命名空間中使用NFS/CIFS等標準協議來訪問應用數據。GlusterFS使得用戶可擺脫原有的獨立、高本錢的封閉存儲系統,能夠利用普通廉價的存儲設備來部署可集中管理、橫向擴展、虛擬化的存儲池,存儲容量可擴展至TB/PB級。2.1 特點 1) 擴展性和高性能GlusterFS利用雙重特

16、性來提供幾TB至數PB的高擴展存儲解決方案。Scale-Out架構允許通過簡單地增加資源來提高存儲容量和性能,磁盤、計算和I/O資源都可以獨立增加,支持10GbE和InfiniBand等高速網絡互聯。Gluster彈性哈希Elastic Hash解除了GlusterFS對元數據效勞器的需求,消除了單點故障和性能瓶頸,真正實現了并行化數據訪問。2) 高可用性GlusterFS可以對文件進行自動復制,如鏡像或屢次復制,從而確保數據總是可以訪問,甚至是在硬件故障的情況下也能正常訪問。自我修復功能能夠把數據恢復到正確的狀態,而且修復是以增量的方式在后臺執行,幾乎不會產生性能負載。GlusterFS沒有

17、設計自己的私有數據文件格式,而是采用操作系統中主流標準的磁盤文件系統如EXT3、ZFS來存儲文件,因此數據可以使用各種標準工具進行復制和訪問。3) 全局統一命名空間全局統一命名空間將磁盤和內存資源聚集成一個單一的虛擬存儲池,對上層用戶和應用屏蔽了底層的物理硬件。存儲資源可以根據需要在虛擬存儲池中進行彈性擴展,比方擴容或收縮。當存儲虛擬機映像時,存儲的虛擬映像文件沒有數量限制,成千虛擬機均通過單一掛載點進行數據共享。虛擬機I/O可在命名空間內的所有效勞器上自動進行負載均衡,消除了SAN環境中經常發生的訪問熱點和性能瓶頸問題。4) 彈性哈希算法GlusterFS采用彈性哈希算法在存儲池中定位數據,

18、而不是采用集中式或分布式元數據效勞器索引。在其他的Scale-Out存儲系統中,元數據效勞器通常會導致I/O性能瓶頸和單點故障問題。GlusterFS中,所有在Scale-Out存儲配置中的存儲系統都可以智能地定位任意數據分片,不需要查看索引或者向其他效勞器查詢。這種設計機制完全并行化了數據訪問,實現了真正的線性性能擴展。5) 彈性卷管理數據儲存在邏輯卷中,邏輯卷可以從虛擬化的物理存儲池進行獨立邏輯劃分而得到。存儲效勞器可以在線進行增加和移除,不會導致應用中斷。邏輯卷可以在所有配置效勞器中增長和縮減,可以在不同效勞器遷移進行容量均衡,或者增加和移除系統,這些操作都可在線進行。文件系統配置更改也

19、可以實時在線進行并應用,從而可以適應工作負載條件變化或在線性能調優。6) 基于標準協議Gluster存儲效勞支持NFS, CIFS, HTTP, FTP以及Gluster原生協議,完全與POSIX標準兼容。現有應用程序不需要作任何修改或使用專用API,就可以對Gluster中的數據進行訪問。這在公有云環境中部署Gluster時非常有用,Gluster對云效勞提供商專用API進行抽象,然后提供標準POSIX接口。GlusterFS在技術實現上與傳統存儲系統或現有其他分布式文件系統有顯著不同之處,主要表達在如下幾個方面。7) 完全軟件實現Software OnlyGlusterFS認為存儲是軟件問

20、題,不能夠把用戶局限于使用特定的供給商或硬件配置來解決。GlusterFS采用開放式設計,廣泛支持工業標準的存儲、網絡和計算機設備,而非與定制化的專用硬件設備捆綁。對于商業客戶,GlusterFS可以以虛擬裝置的形式交付,也可以與虛擬機容器打包,或者是公有云中部署的映像。開源社區中,GlusterFS被大量部署在基于廉價閑置硬件的各種操作系統上,構成集中統一的虛擬存儲資源池。簡而言之,GlusterFS是開放的全軟件實現,完全獨立于硬件和操作系統。8) 完整的存儲操作系統棧Complete Storage Operating System StackGlusterFS不僅提供了一個分布式文件系

21、統,而且還提供了許多其他重要的分布式功能,比方分布式內存管理、I/O調度、軟RAID和自我修復等。GlusterFS汲取了微內核架構的經驗教訓,借鑒了GNU/Hurd操作系統的設計思想,在用戶空間實現了完整的存儲操作系統棧。9) 用戶空間實現User Space與傳統的文件系統不同,GlusterFS在用戶空間實現,這使得其安裝和升級特別簡便。另外,這也極大降低了普通用戶基于源碼修改GlusterFS的門檻,僅僅需要通用的C程序設計技能,而不需要特別的內核編程經驗。10) 模塊化堆棧式架構Modular Stackable ArchitectureGlusterFS采用模塊化、堆棧式的架構,可

22、通過靈活的配置支持高度定制化的應用環境,比方大文件存儲、海量小文件存儲、云存儲、多傳輸協議應用等。每個功能以模塊形式實現,然后以積木方式進行簡單的組合,即可實現復雜的功能。比方,Replicate模塊可實現RAID1,Stripe模塊可實現RAID0,通過兩者的組合可實現RAID10和RAID01,同時獲得高性能和高可靠性。11) 原始數據格式存儲Data Stored in Native FormatsGlusterFS以原始數據格式如EXT3、EXT4、XFS、ZFS儲存數據,并實現多種數據自動修復機制。因此,系統極具彈性,即使離線情形下文件也可以通過其他標準工具進行訪問。如果用戶需要從G

23、lusterFS中遷移數據,不需要作任何修改仍然可以完全使用這些數據。12) 無元數據效勞設計No Metadata with the Elastic Hash Algorithm對Scale-Out存儲系統而言,最大的挑戰之一就是記錄數據邏輯與物理位置的映像關系,即數據元數據,可能還包括諸如屬性和訪問權限等信息。傳統分布式存儲系統使用集中式或分布式元數據效勞來維護元數據,集中式元數據效勞會導致單點故障和性能瓶頸問題,而分布式元數據效勞存在性能負載和元數據同步一致性問題。特別是對于海量小文件的應用,元數據問題是個非常大的挑戰。GlusterFS獨特地采用無元數據效勞的設計,取而代之使用算法來定

24、位文件,元數據和數據沒有別離而是一起存儲。集群中的所有存儲系統效勞器都可以智能地對文件數據分片進行定位,僅僅根據文件名和路徑并運用算法即可,而不需要查詢索引或者其他效勞器。這使得數據訪問完全并行化,從而實現真正的線性性能擴展。無元數據效勞器極大提高了GlusterFS的性能、可靠性和穩定性。2.2 組成GlusterFS主要由存儲效勞器Brick Server、客戶端以及NFS/Samba存儲網關組成。不難發現,GlusterFS架構中沒有元數據效勞器組件,這是其最大的設計這點,對于提升整個系統的性能、可靠性和穩定性都有著決定性的意義。GlusterFS支持TCP/IP和InfiniBand

25、RDMA高速網絡互聯,客戶端可通過原生Glusterfs協議訪問數據,其他沒有運行GlusterFS客戶端的終端可通過NFS/CIFS標準協議通過存儲網關訪問數據。2.3 架構原理GlusterFS總體架構與組成局部如上圖所示,存儲效勞器主要提供根本的數據存儲功能,最終的文件數據通過統一的調度策略分布在不同的存儲效勞器上。它們上面運行著Glusterfsd進行,負責處理來自其他組件的數據效勞請求。如前所述,數據以原始格式直接存儲在效勞器的本地文件系統上,如EXT3、EXT4、XFS、ZFS等,運行效勞時指定數據存儲路徑。多個存儲效勞器可以通過客戶端或存儲網關上的卷管理器組成集群,如Stripe

26、RAID0、ReplicateRAID1和DHT分布式Hash存儲集群,也可利用嵌套組合構成更加復雜的集群,如RAID10。由于沒有了元數據效勞器,客戶端承當了更多的功能,包括數據卷管理、I/O調度、文件定位、數據緩存等功能。客戶端上運行Glusterfs進程,它實際是Glusterfsd的符號鏈接,利用FUSEFile system in User Space模塊將GlusterFS掛載到本地文件系統之上,實現POSIX兼容的方式來訪問系統數據。在最新的3.1.X版本中,客戶端不再需要獨立維護卷配置信息,改成自動從運行在網關上的glusterd彈性卷管理效勞進行獲取和更新,極大簡化了卷管理。

27、GlusterFS客戶端負載相對傳統分布式文件系統要高,包括CPU占用率和內存占用。GlusterFS存儲網關提供彈性卷管理和NFS/CIFS訪問代理功能,其上運行Glusterd和Glusterfs進程,兩者都是Glusterfsd符號鏈接。卷管理器負責邏輯卷的創立、刪除、容量擴展與縮減、容量平滑等功能,并負責向客戶端提供邏輯卷信息及主動更新通知功能等。GlusterFS 3.1.X實現了邏輯卷的彈性和自動化管理,不需要中斷數據效勞或上層應用業務。對于Windows客戶端或沒有安裝GlusterFS的客戶端,需要通過NFS/CIFS代理網關來訪問,這時網關被配置成NFS或Samba效勞器。相

28、對原生客戶端,網關在性能上要受到NFS/Samba的制約。GlusterFS是模塊化堆棧式的架構設計,如上圖所示。模塊稱為Translator,是GlusterFS提供的一種強大機制,借助這種良好定義的接口可以高效簡便地擴展文件系統的功能。效勞端與客戶端模塊接口是兼容的,同一個translator可同時在兩邊加載。每個translator都是SO動態庫,運行時根據配置動態加載。每個模塊實現特定根本功能,GlusterFS中所有的功能都是通過translator實現,比方Cluster, Storage, Performance, Protocol, Features等,根本簡單的模塊可以通過堆

29、棧式的組合來實現復雜的功能。這一設計思想借鑒了GNU/Hurd微內核的虛擬文件系統設計,可以把對外部系統的訪問轉換成目標系統的適當調用。大局部模塊都運行在客戶端,比方合成器、I/O調度器和性能優化等,效勞端相對簡單許多。客戶端和存儲效勞器均有自己的存儲棧,構成了一棵Translator功能樹,應用了假設干模塊。模塊化和堆棧式的架構設計,極大降低了系統設計復雜性,簡化了系統的實現、升級以及系統維護。2.4 使用方式GlusterFS使用算法進行數據定位,集群中的任何效勞器和客戶端只需根據路徑和文件名就可以對數據進行定位和讀寫訪問。換句話說,GlusterFS不需要將元數據與數據進行別離,因為文件

30、定位可獨立并行化進行。GlusterFS中數據訪問流程如下:1、計算hash值,輸入參數為文件路徑和文件名;2、根據hash值在集群中選擇子卷存儲效勞器,進行文件定位;3、對所選擇的子卷進行數據訪問。1. 存儲節點的添加GlusterFS的哈希分布是以目錄為根本單位的,文件的父目錄利用擴展屬性記錄了子卷映射信息,其下面子文件目錄在父目錄所屬存儲效勞器中進行分布。由于文件目錄事先保存了分布信息,因此新增節點不會影響現有文件存儲分布,它將從此后的新創立目錄開始參與存儲分布調度。這種設計,新增節點不需要移動任何文件,但是負載均衡沒有平滑處理,老節點負載較重。GlusterFS在設計中考慮了這一問題,

31、在新建文件時會優先考慮容量負載最輕的節點,在目標存儲節點上創立文件鏈接直向真正存儲文件的節點。另外,GlusterFS彈性卷管理工具可以在后臺以人工方式來執行負載平滑,將進行文件移動和重新分布,此后所有存儲效勞器都會均會被調度。2. 存儲節點刪除GlusterFS目前對存儲節點刪除支持有限,還無法做到完全無人干預的程度。如果直接刪除節點,那么所在存儲效勞器上的文件將無法瀏覽和訪問,創立文件目錄也會失敗。當前人工解決方法有兩個,一是將節點上的數據重新復制到GlusterFS中,二是使用新的節點來替換刪除節點并保持原有數據。3. 文件改名如果一個文件被改名,顯然hash算法將產生不同的值,非常可能

32、會發生文件被定位到不同的存儲效勞器上,從而導致文件訪問失敗。采用數據移動的方法,對于大文件是很難在實時完成的。為了不影響性能和效勞中斷,GlusterFS采用了文件鏈接來解決文件重命名問題,在目標存儲效勞器上創立一個鏈接指向實際的存儲效勞器,訪問時由系統解析并進行重定向。另外,后臺同時進行文件遷移,成功后文件鏈接將被自動刪除。對于文件移動也作類似處理,好處是前臺操作可實時處理,物理數據遷移置于后臺選擇適當時機執行。4. 彈性卷管理 GlusterFS3.1.X實現了真正的彈性卷管理。存儲卷是對底層硬件的抽象,可以根據需要進行擴容和縮減,以及在不同物理系統之間進行遷移。存儲效勞器可以在線增加和移

33、除,并能在集群之間自動進行數據負載平衡,數據總是在線可用,沒有應用中斷。文件系統配置更新也可以在線執行,所作配置變動能夠快速動態地在集群中傳播,從而自動適應負載波動和性能調優。彈性哈希算法本身并沒有提供數據容錯功能,GlusterFS使用鏡像或復制來保證數據可用性,推薦使用鏡像或3路復制。復制模式下,存儲效勞器使用同步寫復制到其他的存儲效勞器,單個效勞器故障完全對客戶端透明。此外,GlusterFS沒有對復制數量進行限制,讀被分散到所有的鏡像存儲節點,可以提高讀性能。彈性哈希算法分配文件到唯一的邏輯卷,而復制可以保證數據至少保存在兩個不同存儲節點,兩者結合使得GlusterFS具備更高的彈性。

34、第三局部 LustreLustre是一個以GNUGeneral Public為許可證的,開源的分布式并行文件系統,由Sun Microsystems Inc. 公司開發和維護。由于Lustre文件系統的體系結構具有極好的可擴展性,它得以在科學計算、石油天然氣、制造業、rich media、金融等領域得到廣泛部署。Lustre為其客戶端提供了包含對共享文件對象的并行存取能力在內的POSIX接口。3.1 特點Lustre 是一個透明的全局文件系統,客戶端可以透明地訪問集群文件系統中的數據,而無需知道這些數據的實際存儲位置。Lustre作為下一代的集群文件系統,可支持10,000個節點,PB的存儲量

35、,100GB/S的傳輸速度;兩個MDS采用共享存儲設備的ActiveStandby方式的容錯機制;存儲設備跟普通的,基于塊的IDE存儲設備不同,是基于對象的智能存儲設備。Luxtre實現了可靠性的,可用性的,可擴展性的,可管理性的,高性能的,海量的,分布式的數據存儲,并且能夠按照應用需求的不同提供不同的效勞,如不同的應用、不同的客戶端環境、不同的性能等,真正實現了按需效勞。32 組成1、對象對象是系統中數據存儲的根本單位,一個對象實際上就是文件的數據和一組屬性的組合,這些屬性可以定義基于文件的RAID參數、數據分布和效勞質量等,而傳統的存儲系統中用文件或塊作為根本的存儲單位,在塊存儲系統中還需

36、要始終追蹤系統中每個塊的屬性,對象通過與存儲系統通信維護自己的屬性。在存儲設備中,所有對象都有一個對象標識,通過對象標識OSD命令訪問該對象。通常有多種類型的對象,存儲設備上的根對象標識存儲設備和該設備的各種屬性,組對象是存儲設備上共享資源管理策略的對象集合等。2、對象存儲設備對象存儲設備具有一定的智能,它有自己的CPU、內存、網絡和磁盤系統,目前國際上通常采用刀片式結構實現對象存儲設備。OSD提供三個主要功能:1 數據存儲。OSD管理對象數據,并將它們放置在標準的磁盤系統上,OSD不提供塊接口訪問方式,Client請求數據時用對象ID、偏移進行數據讀寫。2 智能分布。OSD用其自身的CPU和

37、內存優化數據分布,并支持數據的預取。由于OSD可以智能地支持對象的預取,從而可以優化磁盤的性能。3每個對象元數據的管理。OSD管理存儲在其上對象的元數據,該元數據與傳統的inode元數據相似,通常包括對象的數據塊和對象的長度。而在傳統的NAS 系統中,這些元數據是由文件效勞器維護的,對象存儲架構將系統中主要的元數據管理工作由OSD來完成,降低了Client的開銷。3、元數據效勞器Metadata Server,MDSMDS控制Client與OSD對象的交互,主要提供以下幾個功能:1 對象存儲訪問。MDS構造、管理描述每個文件分布的視圖,允許Client直接訪問對象。MDS為Client提供訪問

38、該文件所含對象的能力,OSD在接收到每個請求時將先驗證該能力,然后才可以訪問。2 文件和目錄訪問管理。MDS在存儲系統上構建一個文件結構,包括限額控制、目錄和文件的創立和刪除、訪問控制等。3 Client Cache一致性。為了提高Client性能,在對象存儲文件系統設計時通常支持Client方的Cache。由于引入Client方的Cache,帶來了Cache一致性問題,MDS支持基于Client的文件Cache,當Cache的文件發生改變時,將通知Client刷新Cache,從而防止Cache不一致引發的問題。3.3 對象存儲文件系統架構 Lustre是一個面向對象的文件系統。它由三個部件組

39、成:元數據效勞器Metadataservers, MDSs、對象存儲效勞器objectstorage servers, OSSs和客戶端。上圖給出了文件系統的體系結構。Lustre使用塊設備來作為文件數據和元數據的存儲介質,每個塊設備只能由一個Lustre效勞管理。Lustre文件系統的容量是所有單個OST的容量之和。客戶端通過POSIX I/O系統調用來并行訪問和使用數據。客戶端在需要訪問文件系統的文件數據時,先訪問MDS,獲取文件相關的元數據信息,然后就直接和相關的OST通信,取得文件的實際數據。客戶端通過網絡讀取效勞器上的數據,存儲效勞器負責實際文件系統的讀寫操作以及存儲設備的連接,元數

40、據效勞器負責文件系統目錄結構、文件權限和文件的擴展屬性以及維護整個文件系統的數據一致性和響應客戶端的請求。由于Lustre采用元數據和存儲數據相別離的技術,可以充分別離計算和存儲資源,使得客戶端計算機可以專注于用戶和應用程序的請求;存儲效勞器和元數據效勞器專注于讀、傳輸和寫數據。存儲效勞器端的數據備份和存儲配置以及存儲效勞器擴充等操作不會影響到客戶端,存儲效勞器和元數據效勞器均不會成為性能瓶頸。3.4 使用方式Lustre作為一個遵從POSIX標準的文件系統,為用戶提供了諸如open()、read()、write()等統一的文件系統接口。在Linux中,這些接口是通過虛擬文件系統Virtual File System,VFS層實現的在BSD/Solaris中,那么稱為vnode層。在Lustre中,諸如創立、翻開、讀等一般的文件操作,都需要存儲在MDS上的元數據信息。這些效勞通過一個稱為MDC的客戶端接口模塊來訪問。從MDS的觀點來看,每個文件都是分條

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論