版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、塊存儲與分布式存儲塊存儲,簡單來說就是提供了塊設備存儲的接口。 中通過Isblk可以得到當前主機上塊設備信息列表。本文包括了單機塊存儲介紹、分布式存儲技術(shù) 華為軟件定義的存儲解決方案。單機塊存儲一個硬盤是一個塊設備,內(nèi)核檢測到硬盤然后在 用一個硬盤來得到不同的分區(qū)來做不同的事,通過 這種方式通過直接寫入分區(qū)表來規(guī)定和切分硬盤通過向內(nèi)核注冊塊設備信息,在LinuxCeph介紹,云中的塊存儲Cinder,以及/dev/下會看到/dev/sda/。因為需要利fdisk 工具得到u /dev/sda1, /dev/sda2 等,,是最死板的分區(qū)方式。分布式塊存儲在面對極具彈性的存儲需求和性能要求下,單
2、機或者獨立的SAN越來越不能滿足企業(yè)的需要。如同數(shù)據(jù)庫系統(tǒng)一樣,塊存儲在scale uP的瓶頸下也面臨著scale out的需要。分布式塊存儲系統(tǒng)具有以下特性:分布式塊存儲可以為任何物理機或者虛擬機提供持久化的塊存儲設備分布式塊存儲系統(tǒng)管理塊設備的創(chuàng)建、刪除和attach/detach;分布式塊存儲支持強大的快照功能,快照可以用來恢復或者創(chuàng)建新的塊設備分布式存儲系統(tǒng)能夠提供不同10性能要求的塊設備?,F(xiàn)下主流的分布式塊存儲有Ceph、AMS ESB阿里云磁盤與sheepdog等。Ceph1. 1 Ceph概述Ceph目前是OpenStack支持的開源塊存儲實現(xiàn)系統(tǒng)(即Cinder項目backen
3、d driver之)。Ceph是一種統(tǒng)一的、分布式的存儲系統(tǒng)?!敖y(tǒng)一的”意味著Ceph可以一套存儲系統(tǒng)同時提供對象存儲、塊存儲和文件系統(tǒng)存儲三種功能,以便在滿足不同應用需求的前提下簡化部署和運維?!胺植际健痹贑eph系統(tǒng)中則意味著真正的無中心結(jié)構(gòu)和沒有理論上限的系統(tǒng) 規(guī)??蓴U展性。Ceph具有很好的性能、可靠性和可擴展性。其核心設計思想,概括為八個字一“無需 查表,算算就好”。1.2 Ceph系統(tǒng)的層次結(jié)構(gòu)自下向上,可以將Ceph系統(tǒng)分為四個層次:基礎存儲系統(tǒng) RADOS( Reliable, Autonomic. Distributed Object Store,即可靠的、自動化的、分布式的
4、對象存儲)基礎庫LIBRADOS高層應用接口 :包括了三個部分:RADOS GW( RADOS Gateway、RBD (Reliable BlockDevice)和 Ceph FS (Ceph File System) oAFTAPPHQSTM I匚 LIENITRADOSGW1REST 中 ilM.L ump&if* Ml 翻耳nnH*百1inf fl owtiySfe RAD iti ufiiionta +b Jau yilwA誠骼 WtdPMPRBDCEPH FSA reiiahk: and ijJy- chtribuLnd buxk gvK;薛 WEh I HXiiji kpmpi
5、fliml iwliH QEMLWWW rtFgA POGIX-cum 陶 r* Mt!sysiwfoi, Miirii a inu pTri 神 ci 護 nl rt Nippon tfw FUSERADOS由兩個組件組成:一種是數(shù)量很多、負責完成數(shù)據(jù)存儲和維護功能的OSEx ObjectStorage Device)。另一種則是若干個負責完成系統(tǒng)狀態(tài)檢測和維護的Monitor oOSD和monitor之間相互傳輸節(jié)點狀態(tài)信息,共同得出系統(tǒng)的總體工作狀態(tài),并形成一個全局系統(tǒng)狀態(tài)記錄數(shù)據(jù)結(jié)構(gòu),即所謂的cluster map。這個數(shù)據(jù)結(jié)構(gòu)與RADOS提供的特定算法相配合,便實現(xiàn)Ceph “無需查
6、表,算算就好”的核心機制以及若干優(yōu)秀特性。OSD可以被抽象為兩個組成部分,即系統(tǒng)部分和守護進程(OSD deamon)部分。OSD的系統(tǒng)部分本質(zhì)上就是一臺安裝了操作系統(tǒng)和文件系統(tǒng)的計算機,其硬件部分至少包括一個單核的處理器、一定數(shù)量的內(nèi)存、一塊硬盤以及一張網(wǎng)卡。在上述系統(tǒng)平臺上,每個OSD擁有一個自己的OSD deamon。這個deamon負責完成OSD的所有邏輯功能,包括與monitor與其他OSD共同完和其他OSD (事實上是其他OSD的deamon)通信以維護更新系統(tǒng)狀態(tài),成數(shù)據(jù)的存儲和維護,與c】ient通信完成各種數(shù)據(jù)對象操作等等。1.3 Ceph中的數(shù)據(jù)尋址用戶存儲數(shù)據(jù)時的數(shù)據(jù)路由
7、過程如下圖所示:FileObjects111 EZI匚、.“、才A(ino.ono) *oidPGsOSDs (grouped failure domain)CRUSHfpgSd) osdi. osd2)hashoid) & maskpgid首先明確幾個概念:File 用戶需要存儲或者訪問的文件。對于一個基于Ceph開發(fā)的對象存儲應用而言,這個file也就對應于應用中的“對象”,也就是用戶直接操作的“對象”。OjbectRADOS所看到的“對象”。Object與上面提到的file的區(qū)別是,object的最大size由RADOS限定(通常為2MB或4MB),以便實現(xiàn)底層存儲的組織管理。因此,當上
8、層應用向RADOS存入size很大的file時,需要將file切分成統(tǒng)一大小的一系列object (最后個的大小可以不同)進行存儲。PG( Placement Group)-顧名思義,PG的用途是對。bject的存儲進行組織和位置映 射。具體而言,一個PG負責組織若干個object (可以為數(shù)千個甚至更多),但一個。bject只能被映射到一個PG中,即,PG和object之間是“一對多”映射關(guān)系。同時,一個PG會被映射到n個OSD上,而每個OSD上都會承載大量的PG,即,PG和OSD之間是“多對多” 映射關(guān)系。在實踐當中,n至少為2,如果用于生產(chǎn)環(huán)境,則至少為3。一個OSD上的PG則 可達到數(shù)
9、百個。事實上,PG數(shù)量的設置牽扯到數(shù)據(jù)分布的均勻性問題。OSD即 object storagedevice。程需要映射兒這次映射的目的是,將用戶要操作的file,映射為RADOS能夠處理的。bject。其映射十分簡單,本質(zhì)上就是按照object的最大size對file進行切分。這種切分的好處有二:一是讓大小不限的file變成最大size 一致、可以被RADOS高效管理的object ;二是讓對單一 file實施的串行處理變?yōu)閷Χ鄠€object實施的并行化處理。Object - PG映射。在file被映射為一個或多個object之后,就需要將每個object獨立地映射到一個PG中去。計算公式:h
10、ash(oid) & mask - pgid。根據(jù)RADOS的設計,給定PG的總數(shù)為m (m應該為2的整數(shù)幕),則mask的值為m-1。因此,哈希值計算和按位與操作 的整體結(jié)果事實上是從 所有m個PG中近似均勻地隨機選擇一個。基于這一機制,當有大量object和大量PG時,RADOS能夠保證 object和PG之間的近似均勻映射。PG - OSD映射。第三次映射就是將作為object的邏輯組織單元的PG映射到數(shù)據(jù)的實際存儲單元OSD。如圖所示,RADOS采用一個名為CRUSH的算法,將pgid代入其中,然后得到一組共n個OSD。這n個OSD即共同負責存儲和維護一個PG中的所有object。前已
11、述及,n的數(shù)值可以根據(jù)實際應用中對于可靠性的需求而配置,在生產(chǎn)環(huán)境下通常為到每個0SD,則由其3。具體 上運行的OSD deamon負責執(zhí)行映射到本地的object在本地文件系統(tǒng)中的存儲、訪問、元數(shù)據(jù)維護等操作。和“ object-OSD映射中采用的哈希算法不同,CRUSH算法的結(jié)果不是絕對不變的,而是受到當前系統(tǒng)的狀態(tài)(cluster maP)和存儲配置策略的影響。故而當系統(tǒng)中的OSD狀態(tài)、數(shù)量發(fā)生變化時,Cluster map發(fā)生變化,映射的結(jié)果也就發(fā)生了變化。1.4 寫數(shù)據(jù)的流程當某個client需要向Ceph集群寫入一個file時,首先需要在本地完成尋址流程,將file變?yōu)橐粋€obje
12、ct,然后找出存儲該object的一組三個OSB找出三個0SD后,client將直接和Primary OSD通信,發(fā)起寫入操作。Primary OSD收到請求后,分別向Secondary OSD和Tertiary OSD發(fā)起寫入操作。當Secondary OSD和Tertiary OSD各自完成寫入操作后,將分別向Primary OSD發(fā)送確認信息;當Primary OSD確信其他兩個OSD的寫入完成后,則自己。也完成數(shù)據(jù)寫入,并向client確認object寫入操作完成。ClientWrite (1)t Atk (6)Primary OSDWrite (2) Writef3)I Ack 14
13、Ack I VSecondary OSDTertiary OSD1.5集群維護由若干個monitor共同負責整個Ceph集群中所有SD狀態(tài)的發(fā)現(xiàn)與記錄,并且共同形成cluster map的master 版本,然后擴散至全體OSD以及clie nt。OSD使用cluster map進行數(shù)據(jù)的維護,而client使用duster map進行數(shù)據(jù)的尋址。monitor并不主動輪詢各個OSD的當前狀態(tài)。正相反,OSD需要向monitor上報狀態(tài)信息。常見的上報有兩種情況:一是新的OSD被加入集群,二是某個OSD發(fā)現(xiàn)自身或者其他OSD發(fā)生異常。在收到這些上報信息后,monitor將更新cluster m
14、ap信息并加以擴散。新增一個OSD時首先根據(jù)配置信息與monitor通信,monitor將其加入cluster map,并設置為up且out狀態(tài),再將最新版本的cluster map發(fā)給這個新OSB收到monitor發(fā)過來的cluster map之后,這個新0SD計算出自己所承載的PG以及和自己承載同一個PG的其他OSB然后與這些0SD取得聯(lián)系。如果這個PG目前處于降級狀態(tài)(即承載該PG的。個數(shù)少于正常值),則其他OSD將把這個PG內(nèi)的所有對象和元數(shù)據(jù)賦值給新OSB數(shù)據(jù)復制完成后,新OSD被置為up且in狀態(tài),cluster map也更新。自動化故障恢復當其中一個OSD發(fā)生故障時,如果其PG目
15、前一切正常,則這個新OSD將替換掉故障OSD( PG內(nèi)將重新選出Primary OSD),并承擔其數(shù)據(jù)。在數(shù)據(jù)復制完成后,新OSD被置為up且in狀態(tài),而被替換的OSD將推出該PG而cluster map內(nèi)容也將據(jù)此更新。自動化的故障探測過程如果一個OSD發(fā)現(xiàn)和自己共同承擔一個PG的另一個OSD無法聯(lián)通,則會將這一情況上報monitor。此外,如果一個OSD deamon發(fā)現(xiàn)自身工作狀態(tài)異常,也將把異常情況主動 上報給monitor。此時,monitor將把出現(xiàn)問題的OSD的狀態(tài)設置為down且in。如果超過down且out。如果該某一預定時間期限該SD仍然無法恢復正常,則其狀態(tài)將被設置為OS
16、D能夠恢復正常,則其狀態(tài)會恢復成uP且in。1.6 在 OpenStack 中使用 cephCeph底層是存儲集群RADOS然后是LIBRADOS這是一個可以訪問RADOS的庫。用戶利用這個庫開發(fā)自己的客戶端應用。Ceph提供對象存儲(RADOSGW)、塊存儲(RBD)、文件系統(tǒng)(CEPHFS也就是基于這個庫完成的。在Open Stack中使用Ce ph塊設備,必須首先安裝QEMU,libvirt和Open Stack。下圖描述了 Open Stack和Ce ph技術(shù)層次。libvirt配置了 librbd的QEMU接口,通過它可 以在Open Stack中使用Ce ph塊設備??梢钥闯鯫pe
17、n Stack通過libvirt中的接口調(diào)用QEMU, QEMU去調(diào)用Ce ph的塊存儲庫libRBD,從而完成在Open Stack中的Ceph使用。OpenStacklibvirt T ,conligui esQEMU librbd libr adosOSDsIMonitorsOpen Stack與Ceph有三個結(jié)合點:鏡像:Open Stack Gla nee管理虛擬機鏡像。鏡像是不變的。Open Stack把鏡像當作二進制對象并以此格式下載。卷:卷是塊設備。Open Stack使用卷來啟動虛擬機,或者綁定卷到運行中的虛擬機。Open Stack使用Ci nder服務管理卷??蛻舸疟P:客
18、戶磁盤是客戶操作系統(tǒng)磁盤。默認情況下,當啟動一臺虛擬機時,它的系統(tǒng)盤以文件的形式出現(xiàn)在 hypervisor系統(tǒng)上(通常在/var/lib/nova/instances/)。在Open Stack Hava na以前的版本,在Ce ph中啟動虛擬機的唯一方式是使用Cin der的boot-from-volume功能,現(xiàn)在能夠在Ceph中直接啟動虛擬機而不用依賴于Cinder,hypervisor 掛這是非常有利的,能夠很容易的進行虛擬機的熱遷移。除此之外,如果1.7 Ceph的一些問題關(guān)于Ceph作為塊存儲項目的幾個問題需要考慮Ceph在讀寫上不太穩(wěn)定(有btrfs的原因),目前Ceph官方推
19、薦XFS作為底層文件系統(tǒng)CePh的擴展性較難,如果需要介入Ceph,需要較長時間Ceph的部署和集群不夠穩(wěn)定AMS EBSEBS是Amazon提供的塊存儲服務,通過EBS用戶可以隨時增刪遷移volume和快照操作。Amazon EBS是目前IAAS服務商最引入注目的服務之一,目前的OpenStack、CloudStack等等其他開源框架都無法提供Amaz on EBS對于的如此彈性和強大的服務。Sheep dogSheepdog是另一個分布式塊存儲系統(tǒng),它與Ceph相比,最大優(yōu)勢就是代碼短小好維護和hack的成本很小。Sheepdog也有很多Ceph不支持的特性,比如說Multi-Disk,
20、cluster-wide snapshot 等。Sheepdog主要有兩部分,一個是集群管理,另一個是存儲服務。集群管理目前使用Corosy nc或者Zook per來完成,存儲服務的特點是在clie nt和存儲host有Cache的實現(xiàn)可以大大減小數(shù)據(jù)流量。目前Sheepdog只在QEMU端提供Drive,而缺少library支持,這是Sheepdog目前最主要的問題。云計算中的塊存儲OpenStack CinderNova利用主機的本地存儲為虛擬機提供“臨時存儲”,如果虛擬機被刪除了,掛在這個虛擬機上的任何臨時存儲都將自動釋放?;赟AN、NAS等不同類型的存儲設備,Open StackC
21、inder, Swift引入了永久存儲,負責為每個虛擬機本身的鏡像以及它所產(chǎn)生的數(shù)據(jù)提供一個存儲場地。Cin der是Open Stack中提供類似于EBS塊存儲服務的API框架,為虛擬機提供持久化的塊存儲能力,實現(xiàn)虛擬機存儲卷的創(chuàng)建、掛載卸載、快照等生命周期管理。Cinder提供的RESTful AP針對邏輯存儲卷進行管理。其架構(gòu)如下:EQLCecinder-schedulercinder-valumecinder-backup用戶通過cinder client發(fā)送Restful請求,cinder-api是進入cinder的HTTP結(jié)構(gòu)。Cinder- VOlume運行在存儲節(jié)點上管理具體存
22、儲設備的存儲空間,每個存儲節(jié)點上都會運行一個cinder- volume服務,多個節(jié)點一起構(gòu)成了一個存儲資源池。Cinder-Scheduler根據(jù)預定的策略選擇合適的cinder-volume節(jié)點來處理客戶請求。Cinder-backup提供存儲卷備份功能。Cinder并沒有實現(xiàn)對塊設備的管理和實際服務,而是為后端不同的存儲結(jié)構(gòu)提供了統(tǒng)一的接口,不同的塊設備服務廠商在Cin der中實現(xiàn)其驅(qū)動支持以與Open Stack進行整合。后端的存儲可以是DAS, NAS, SAN,對象存儲或者分布式文件系統(tǒng)如ceph。也就是說,Cinder的塊存儲數(shù)據(jù)完整性、可用性保障是由后端存儲提供的。Cinde
23、r只是提供了一層抽象,然后通過其后段支持的driver實現(xiàn)來發(fā)出命令來得到回應。關(guān)于塊存儲的分配信息以及選項配置等 會被保存到Open Stack統(tǒng)一的DB中。Cin der默認使用lVM作為后端存儲。LVM將眾多不同的物理存儲器資源組成卷組,從卷組上創(chuàng)建邏輯卷,然后將文件系統(tǒng)安裝在邏輯卷上。其更為細化的架構(gòu)如下圖所示:physiraiwnJirreF li5U?rTiPiirt 伽mepli 曲(ionVcri jriB Ma-Tijyr- uniCindfrf: incAr-sceculefAMQT5華為軟件定義的存儲方案5.1軟件定義的存儲傳統(tǒng)的存儲當中,存儲不感知VM,存儲擴展困難,L
24、UN配置復雜,修改配置困難;VM運行同一個LUN時,存在10 blending的問題。為解決傳統(tǒng)存儲的問題,可得到軟件定義的存儲具有以下幾個特征:自助式的用戶接口策略驅(qū)動的存儲,提供SLA保障各種存儲資源統(tǒng)一池化,自動化管理兼容任意硬件,包括通用硬件和專用存儲硬件。5.2華為軟件定義的存儲相關(guān)技術(shù)521.基于Cinder的華為塊存儲為解決傳統(tǒng)存儲中配置困難、兼容性不好等問題,華為采用了統(tǒng)一的、策略驅(qū)動的存儲控制平面 Open Stack Cin derHujweiI HuaweiHuaweiCinder :華為 SDS controllerUreanstor driver I usionsto
25、rafje driver Storhyper driver其中Cinder API是統(tǒng)一的卷管理接口;Cinder Schuduler是基于策略的存儲資源調(diào)度;Cinder Volume可以介入不同存儲廠商的driver,如下圖所示:Cin der-vol jmeCinder-vdlumeCinder-vol J meEMC driverCeph driverHuaweistorhyperdnver在當前架構(gòu)下,管理面上通過Cinder提供統(tǒng)一接口 ; 但各driver之間不能互通,數(shù)據(jù)面的能力依然參差不齊;各產(chǎn)品之間特性會重疊;整個數(shù)據(jù)面還不夠開放。5.2.2.華為SDS目標架構(gòu)!l&4anrdnH,化 TiQt 口 inTjr屠尋-dirA 冒 EnglAPXtfiMeSusg fw,m Ifta igr。去叫 sjq 曲班圈*護1畤3壬4玄用I;一立皿白 uiciAir* 二電Hi-luAwb OcdWtar兀
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人貴金屬交易融資合同范本民間版4篇
- 二零二五年度網(wǎng)絡安全股份公司成立股東數(shù)據(jù)安全協(xié)議3篇
- 2025版危險品運輸駕駛員勞動合同標準范本3篇
- 2025年高標準圍墻建設及維護服務合同細則3篇
- 二零二五年酒類企業(yè)產(chǎn)品追溯與防偽技術(shù)合作合同3篇
- 2024破樁勞務分包合同
- 2025年食堂承包合同補充協(xié)議強調(diào)食品安全與衛(wèi)生規(guī)范3篇
- 與物業(yè)公司合同范本(2024版)
- 鄭州科技學院《藝術(shù)考察與創(chuàng)新設計》2023-2024學年第一學期期末試卷
- 2025年度戶外景觀門窗工程分包合同范本8篇
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學一模試卷
- 2025中國人民保險集團校園招聘高頻重點提升(共500題)附帶答案詳解
- 勞務派遣招標文件范本
- 信息安全意識培訓課件
- Python試題庫(附參考答案)
- 碳排放管理員 (碳排放核查員) 理論知識考核要素細目表三級
- 2024年河北省中考數(shù)學試題(含答案解析)
- 小學二年級數(shù)學口算練習題1000道
- 納布啡在產(chǎn)科及分娩鎮(zhèn)痛的應用
- DZ/T 0462.4-2023 礦產(chǎn)資源“三率”指標要求 第4部分:銅等12種有色金屬礦產(chǎn)(正式版)
評論
0/150
提交評論