2023-05-22存儲(chǔ)虛擬化

由于SSD采用閃存芯片取代了機(jī)械臂移動(dòng)和盤(pán)片旋轉(zhuǎn),讀寫(xiě)速度非???,普通的SSD讀寫(xiě)都在500MB/s以上。

RAID?RAID(Redundant Array of Independent Disk,獨(dú)立磁盤(pán)冗余陣列),它的基本思想就是把多個(gè)相對(duì)便宜的硬盤(pán)組合起來(lái),成為一個(gè)硬盤(pán)陣列組,使得性能達(dá)到甚至超過(guò)一個(gè)價(jià)格昂貴、容量巨大的硬盤(pán)。

RAID技術(shù)提供了一種高性能、高可靠的數(shù)據(jù)存儲(chǔ)技術(shù),通過(guò)RAID技術(shù)組合多個(gè)盤(pán),當(dāng)數(shù)據(jù)讀寫(xiě)時(shí)可以分散到多個(gè)磁盤(pán),從而提高讀寫(xiě)速度。并且配合校驗(yàn)、糾錯(cuò)技術(shù),當(dāng)有一個(gè)磁盤(pán),出現(xiàn)故障后,能恢復(fù)數(shù)據(jù),從而保證數(shù)據(jù)的高可靠。

分布式存儲(chǔ)和 RAID 有相同的設(shè)計(jì)思想:數(shù)據(jù)拆分存儲(chǔ)。

RAID等級(jí)從RAID0~RAID6七個(gè)等級(jí)。其中,RAID 0只做條帶化,沒(méi)有數(shù)據(jù)高可用保障;RAID 1通過(guò)鏡像技術(shù)將數(shù)據(jù)同時(shí)原樣寫(xiě)入兩個(gè)磁盤(pán),保障數(shù)據(jù)高可靠性;而RAID 5通過(guò)校驗(yàn)碼的方式保存數(shù)據(jù)。

RAID 1采用的就是鏡像技術(shù),它的寫(xiě)入速度會(huì)比較慢,但讀取速度會(huì)比較快,如圖4-4所示。讀取速度可以接近所有磁盤(pán)吞吐量的總和,寫(xiě)入速度受限于最慢的磁盤(pán),沒(méi)有校驗(yàn)數(shù)據(jù)。RAID1由于是數(shù)據(jù)鏡像,所以浪費(fèi)了一組磁盤(pán),并且寫(xiě)性能不好,而讀性能提升了。

RAID 5是當(dāng)前最流行的RAID, RAID 5是通過(guò)計(jì)算數(shù)據(jù)的校驗(yàn)和,如果圖4-5所示數(shù)據(jù)文件A被拆分成 A1、A2、A3三個(gè)數(shù)據(jù)塊,通過(guò)校驗(yàn)算法計(jì)算出校驗(yàn)塊Ap,并將這四個(gè)數(shù)據(jù)塊保存到四個(gè)磁盤(pán)上面。無(wú)論是哪一個(gè)磁盤(pán)發(fā)生故障,都可以通過(guò)逆向生成數(shù)據(jù)塊,從而保障數(shù)據(jù)的安全,RAID 5可以允許一個(gè)磁盤(pán)發(fā)生故障。


存儲(chǔ)按照使用的方式分為塊存儲(chǔ)、文件存儲(chǔ)和對(duì)象存儲(chǔ)。

分塊存儲(chǔ)

分布式塊存儲(chǔ)主要考量的性能指標(biāo)有IOPS(Input/OutputOperations per Second,即每秒能處理的I/O個(gè)數(shù),用于表示塊存儲(chǔ)處理讀寫(xiě)能力)、吞吐量(單位時(shí)間內(nèi)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量)和訪問(wèn)延遲(塊存儲(chǔ)處理一個(gè)I/O需要的時(shí)間)。

文件存儲(chǔ)

文件存儲(chǔ)(File storage)是以文件目錄的方式提供的,直接將文件系統(tǒng)呈現(xiàn)給用戶。我們每天使用的桌面系統(tǒng),使用的就是文件系統(tǒng)。

對(duì)象存儲(chǔ)

對(duì)象存儲(chǔ)(Object storage)是以二進(jìn)制對(duì)象的方式提供服務(wù),它既不像塊存儲(chǔ)那樣提供塊的讀取,也不像文件存儲(chǔ)那樣讀寫(xiě)文件,而是以HTTP API的方式上傳或者下載二進(jìn)制對(duì)象。我們使用的網(wǎng)盤(pán)服務(wù)就是一種對(duì)象存儲(chǔ),當(dāng)然,最著名的對(duì)象還是 AWS的 S3存儲(chǔ)。

對(duì)象存儲(chǔ)的另一個(gè)重要作用是存儲(chǔ)大文件,如視頻、圖片等,相比文件存儲(chǔ)和塊存儲(chǔ),對(duì)象存儲(chǔ)的容量更大,價(jià)格更便宜,并且消除了文件存儲(chǔ) inode 個(gè)數(shù)的限制,在處理大量文件遍歷的場(chǎng)景也比文件存儲(chǔ)要快,但對(duì)象存儲(chǔ)也不是萬(wàn)能的,它必須通過(guò)HTTP接口的方式傳輸數(shù)據(jù),這導(dǎo)致讀寫(xiě)的性能不會(huì)太高,并且也無(wú)法組織復(fù)雜的目錄結(jié)構(gòu)。

對(duì)象存儲(chǔ)通常分為兩級(jí),bucket(桶)和object(對(duì)象),可以將bucket當(dāng)作一個(gè)大的目錄,而 object 則是這個(gè)目錄下的文件。為了安全訪問(wèn),還可以分別針對(duì) bucket 和object設(shè)置讀寫(xiě)權(quán)限。


開(kāi)源存儲(chǔ)

Ceph需要具有可靠性(reliability)、可擴(kuò)展性(scalability)、統(tǒng)一性(unified)和可分布式(distributed)存儲(chǔ)特性。

可靠性主要分為兩點(diǎn),第一,寫(xiě)入數(shù)據(jù)的強(qiáng)一致性,它并非是最終一致性,必須完成多副本的成功寫(xiě)入才能提交;第二,通過(guò)多副本保證數(shù)據(jù)不丟失,避免因?yàn)閱蝹€(gè)服務(wù)器或者單個(gè)機(jī)架的故障導(dǎo)致數(shù)據(jù)丟失。

可擴(kuò)展性,主要指通過(guò)增加系統(tǒng)節(jié)點(diǎn)數(shù),擴(kuò)大系統(tǒng)規(guī)模的同時(shí),系統(tǒng)的存儲(chǔ)容量也相應(yīng)提高,當(dāng)然在理想情況下應(yīng)該成線性關(guān)系,Ceph的OSD支持動(dòng)態(tài)添加,當(dāng)集群容量不足時(shí),通過(guò)增加OSD節(jié)點(diǎn)便可以擴(kuò)展集群的容量,并且Ceph能夠自動(dòng)完成數(shù)據(jù)重新分配。

統(tǒng)一性,是指Ceph能夠同時(shí)支持文件存儲(chǔ)、對(duì)象存儲(chǔ)和塊存儲(chǔ)。這些特點(diǎn)最終都得利用Ceph分布式的架構(gòu)設(shè)計(jì)和去中心化的設(shè)計(jì)思想。

SeaweedFS是Golang實(shí)現(xiàn)的具有文件存儲(chǔ)和對(duì)象存儲(chǔ)功能的分布式存儲(chǔ)。SeaweedFS系統(tǒng)架構(gòu)圖如圖4-25所示。

Master負(fù)責(zé)維護(hù)集群信息,并管理多個(gè)VolumeServer,Master之間通過(guò)Raft協(xié)議保持?jǐn)?shù)據(jù)一致,而每個(gè)VolumeServer又負(fù)責(zé)管理多個(gè)卷(大小固定)。如果Client需要寫(xiě)數(shù)據(jù),需要先請(qǐng)求Master寫(xiě)入數(shù)據(jù),Master 返回fid和VolumeServer地址。其中,fid前32位代表Volume ID,這樣客戶端便可以通過(guò)HTTP的方式上傳文件。SeaweedFS也是一個(gè)多副本、強(qiáng)一致性的方案,只不過(guò)它的副本是卷,并非單個(gè)文件。SeaweedFS還提供了 FUSE文件掛載,這樣便可以通過(guò)mount方式掛載到機(jī)器上。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容