自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于分布式存儲,這是你應(yīng)該知道的(圖文詳解)

存儲 存儲軟件 分布式
分布式存儲存在的風(fēng)險,其實(shí)就是因?yàn)椤肮蚕怼?、“大?shù)據(jù)量”、“高性能”和X86服務(wù)器+廉價的磁盤為載體之間的矛盾所產(chǎn)生的,不是有些讀者說的“數(shù)據(jù)架構(gòu)”的問題。其實(shí)任何存儲都存在這個問題,只是分布式存儲更嚴(yán)重。

前言

分布式存儲存在的風(fēng)險,其實(shí)就是因?yàn)?ldquo;共享”、“大數(shù)據(jù)量”、“高性能”和X86服務(wù)器+廉價的磁盤為載體之間的矛盾所產(chǎn)生的,不是有些讀者說的“數(shù)據(jù)架構(gòu)”的問題。其實(shí)任何存儲都存在這個問題,只是分布式存儲更嚴(yán)重。

本文其實(shí)是從主機(jī)的網(wǎng)絡(luò)、磁盤的吞吐角度分析存在的風(fēng)險,所以和用那個廠家的存儲無關(guān)。

還有人說你是危言聳聽,如果按照你說的,這么多人用了分布式存儲有這樣的地雷豈不是要炸飛?軟件定義的東西其實(shí)有很多BUG,重要的是能發(fā)現(xiàn)問題,事先做好彌補(bǔ)或方案。

還有人說,分布式存儲用到現(xiàn)在也不超過2年,發(fā)生你說的問題還早。但是我們已經(jīng)發(fā)現(xiàn)問題了,不能擱置不管。釣魚島問題擱置了,現(xiàn)在還不是造成麻煩了嗎?

[[208988]]

拋磚引玉

存儲最重要的指標(biāo)是什么?

很多人包括存儲專家都會認(rèn)為是存儲的性能指標(biāo),比如IOPS和吞吐量。但是我認(rèn)為存儲最重要的是數(shù)據(jù)的安全性。

一個跑的飛快的存儲,突然數(shù)據(jù)丟失了,后果會怎么樣?數(shù)據(jù)的丟失,對于任何系統(tǒng)來說,都是滅頂之災(zāi)。

所以,不管什么樣的存儲,數(shù)據(jù)的安全可靠都是第一位的。

原來傳統(tǒng)的存儲使用了專用硬件,從可靠性上有比較高的保證,所以大家首先會關(guān)注性能指標(biāo)。但是用X86為基礎(chǔ)的SRVSAN的可靠性就不容樂觀。

為什么說傳統(tǒng)存儲這個問題不是太突出呢?

除了專用設(shè)備外,還有應(yīng)用場景和數(shù)據(jù)量不同等原因。在傳統(tǒng)行業(yè)如電信、銀行原來的系統(tǒng)建設(shè)是煙囪模式。不但網(wǎng)絡(luò)是獨(dú)立一套,存儲也是。

往往是數(shù)據(jù)庫服務(wù)和日志記錄,用2臺服務(wù)器和8個端口的小光交相連,小光交下只掛一個存儲。數(shù)據(jù)量也沒有這樣大,存儲的容量也在5T以下。這樣存儲的數(shù)據(jù)遷移是很容易和快速的,方法也很多。

由于是專用存儲,所以完全可以采用“非在線”的手段,數(shù)據(jù)量也不大,可以在夜深人靜的時候停機(jī)完成。

進(jìn)入云計算時代,存儲是共享的,數(shù)據(jù)是應(yīng)用可靠,提供者不可控,數(shù)據(jù)量海量增加……傳統(tǒng)的方法失靈了。(可見顧炯的云世界的“資源池內(nèi)存儲特點(diǎn)”的文章)

我們在2014年下半年,開始搭建以X86為載體的分布式塊存儲,經(jīng)過嚴(yán)格的測試,在同年底投入商用,是業(yè)界首個商用的軟件定義的分布式存儲,當(dāng)時各種媒體都爭相報道。

到現(xiàn)在為止已經(jīng)商用了近2年,存儲運(yùn)行穩(wěn)定,表現(xiàn)優(yōu)良。并從原來2P裸容量擴(kuò)容到4.5P。

但是近段時間我卻越來越擔(dān)心,因?yàn)镾RVSAN與生俱來的數(shù)據(jù)安全隱患,一直被人忽視了,而且主流廠家也沒有意識到這個問題。如果這個隱患在若干年以后爆發(fā),會發(fā)生重大性系統(tǒng)故障。

其實(shí)我在寫這篇文章前2個月,我已經(jīng)將這個擔(dān)憂和想法告訴了現(xiàn)有分布式塊存儲的產(chǎn)品線總經(jīng)理,得到他的重視,已經(jīng)在彌補(bǔ)了。很多軟件定義的東西,就怕想不到,突然發(fā)生了,想到了就會有相應(yīng)的解決方案。

存儲這個東西,大部分讀者并不是太了解,從比較基礎(chǔ)知識開始寫,并引出問題和大家一起討論解決的辦法。盤算了一下大致分為七個部分,由于篇幅限制,在本篇將先介紹前三部分:

  • 一、存儲類型
  • 二、文件系統(tǒng)
  • 三、存儲介質(zhì)
  • 四、Raid和副本
  • 五、SRVSAN的架構(gòu)
  • 六、SRVSAN的安全隱患
  • 七、解決的方法

一、存儲類型

一般情況下,我們將存儲分成了4種類型,基于本機(jī)的DAS和網(wǎng)絡(luò)的NAS存儲、SAN存儲、對象存儲。對象存儲是SAN存儲和NAS存儲結(jié)合后的產(chǎn)物,汲取了SAN存儲和NAS存儲的優(yōu)點(diǎn)。

圖1

我們來了解一下應(yīng)用是怎么樣獲取它想要的存在存儲里的某個文件信息,并用大家熟悉的Windows來舉例,如圖1。

1、應(yīng)用會發(fā)出一個指令“讀取本目錄下的readme.txt 文件的前1K數(shù)據(jù)”。

2、通過內(nèi)存通信到目錄層,將相對目錄轉(zhuǎn)換為實(shí)際目錄,“讀取C:\ test\readme.txt文件前1K數(shù)據(jù)”

3、通過文件系統(tǒng),比如FAT32,通過查詢文件分配表和目錄項(xiàng),獲取文件存儲的LBA地址位置、權(quán)限等信息。

文件系統(tǒng)先查詢緩存中有沒有數(shù)據(jù),如果有直接返回數(shù)據(jù);沒有,文件系統(tǒng)通過內(nèi)存通信傳遞到下一環(huán)節(jié)命令“讀取起始位置LBA1000,長度1024的信息”。

4、卷(LUN)管理層將LBA地址翻譯成為存儲的物理地址,并封裝協(xié)議,如SCSI協(xié)議,傳遞給下一環(huán)節(jié)。

5、磁盤控制器根據(jù)命令從磁盤中獲取相應(yīng)的信息。

如果磁盤扇區(qū)大小是4K,實(shí)際一次I/O讀取的數(shù)據(jù)是4K,磁頭讀取的4K數(shù)據(jù)到達(dá)服務(wù)器上的內(nèi)容后,有文件系統(tǒng)截取前1K的數(shù)據(jù)傳遞給應(yīng)用,如果下次應(yīng)用再發(fā)起同樣的請求,文件系統(tǒng)就可以從服務(wù)器的內(nèi)存中直接讀取。

不管是DAS、NAS還是SAN,數(shù)據(jù)訪問的流程都是差不多的。DAS將計算、存儲能力一把抓,封裝在一個服務(wù)器里。大家日常用的電腦,就是一個DAS系統(tǒng),如圖1。

圖2

如果將計算和存儲分離了,存儲成為一個獨(dú)立的設(shè)備,并且存儲有自己的文件系統(tǒng),可以自己管理數(shù)據(jù),就是NAS,如圖2。

計算和存儲間一般采用以太網(wǎng)絡(luò)連接,走的是CIFS或NFS協(xié)議。服務(wù)器們可以共享一個文件系統(tǒng),也就是說,不管服務(wù)器講的是上海話還是杭州話,通過網(wǎng)絡(luò)到達(dá)NAS的文件系統(tǒng),都被翻譯成為普通話。

所以NAS存儲可以被不同的主機(jī)共享。服務(wù)器只要提需求,不需要進(jìn)行大量的計算,將很多工作交給了存儲完成,省下的CPU資源可以干更多服務(wù)器想干的事情,即計算密集型適合使用NAS。

圖3

計算和存儲分離了,存儲成為一個獨(dú)立的設(shè)備,存儲只是接受命令不再做復(fù)雜的計算,只干讀取或者寫入文件2件事情,叫SAN,如圖3。

因?yàn)椴粠募到y(tǒng),所以也叫“裸存儲”,有些應(yīng)用就需要裸設(shè)備,如數(shù)據(jù)庫。存儲只接受簡單明了的命令,其他復(fù)雜的事情,有服務(wù)器端干了。再配合FC網(wǎng)絡(luò),這種存儲數(shù)據(jù)讀取/寫入的速度很高。

但是每個服務(wù)器都有自己的文件系統(tǒng)進(jìn)行管理,對于存儲來說是不挑食的只要來數(shù)據(jù)我就存,不需要知道來的是什么,不管是英語還是法語,都忠實(shí)記錄下來的。

但是只有懂英語的才能看懂英語的數(shù)據(jù),懂法語的看懂法語的數(shù)據(jù)。所以,一般服務(wù)器和SAN存儲區(qū)域是一夫一妻制的,SAN的共享性不好。當(dāng)然,有些裝了集群文件系統(tǒng)的主機(jī)是可以共享同一個存儲區(qū)域的。

從上面分析,我們知道,決定存儲的快慢是由網(wǎng)絡(luò)和命令的復(fù)雜程度決定的。

內(nèi)存通信速度>總線通信>網(wǎng)絡(luò)通信

網(wǎng)絡(luò)通信中還有FC網(wǎng)絡(luò)和以太網(wǎng)絡(luò)。FC網(wǎng)絡(luò)目前可以實(shí)現(xiàn)8Gb/s,但以太網(wǎng)絡(luò)通過光纖介質(zhì)已經(jīng)普及10Gb/s,40Gb/s的網(wǎng)卡也在使用了。也就是說傳統(tǒng)以太網(wǎng)絡(luò)已經(jīng)不是存儲的瓶頸了。除了FCSAN,IPSAN也是SAN存儲的重要成員。

對存儲的操作,除了熟悉的讀/寫以外,其實(shí)還有創(chuàng)建、打開、獲取屬性、設(shè)置屬性、查找等等。

對于有大腦的SAN存儲來說,除了讀/寫以外的命令,都可以在本地內(nèi)存中完成,速度極快。

而NAS存儲缺乏大腦,每次向存儲傳遞命令,都需要IP封裝并通過以太網(wǎng)絡(luò)傳遞到NAS服務(wù)器上,這個速度就遠(yuǎn)遠(yuǎn)低于內(nèi)存通信了。

  • DAS特點(diǎn)是速度最快,但只能自己用;
  • NAS的特點(diǎn)速度慢點(diǎn)但共享性好;
  • SAN的特點(diǎn)是速度快,但共享性差。

總體上來講,對象存儲同兼具SAN高速直接訪問磁盤特點(diǎn)及NAS的分布式共享特點(diǎn)。

NAS存儲的基本單位是文件,SAN存儲的基本單位是數(shù)據(jù)塊,而對象存儲的基本單位是對象,對象可以認(rèn)為是文件的數(shù)據(jù)+一組屬性信息的組合,這些屬性信息可以定義基于文件的RAID參數(shù)、數(shù)據(jù)分布和服務(wù)質(zhì)量等。

采取的是“控制信息”和“數(shù)據(jù)存儲”分離的模式,客戶端用對象ID+偏移量作為讀寫的依據(jù),客戶端先從“控制信息”獲取數(shù)據(jù)存儲的真實(shí)地址,再直接從“數(shù)據(jù)存儲”中訪問。

對象存儲大量使用在互聯(lián)網(wǎng)上,大家使用的網(wǎng)盤就是典型的對象存儲。對象存儲有很好的擴(kuò)展性,可以線性擴(kuò)容。并可以通過接口封裝,還可以提供NAS存儲服務(wù)和SAN存儲服務(wù)。

VMware的vSAN本質(zhì)就是一個對象存儲。分布式對象存儲就是SRVSAN的一種,也存在安全隱患。因?yàn)檫@個隱患是X86服務(wù)器帶來的。

二、文件系統(tǒng)

計算機(jī)的文件系統(tǒng)是管理文件的“賬房先生”。

  • 首先他要管理倉庫,要知道各種貨物都放在哪里;
  • 然后要控制貨物的進(jìn)出,并要確保貨物的安全。

如果沒有這個“賬房先生”,讓每個“伙計”自由的出入倉庫,就會導(dǎo)致倉庫雜亂無章、貨物遺失。

就像那年輕紡城機(jī)房剛啟用的時候,大家的貨物都堆在機(jī)房里,沒有人統(tǒng)一管理,設(shè)備需要上架的時候,到一大堆貨物中自行尋找,安裝后的垃圾也沒有人打掃,最后連堆積的地方都找不到,有時自己的貨物找不到了,找到別人的就使用了……。

大家都怨聲載道,后來建立了一個倉庫,請來了倉庫管理員,用一本本子記錄了貨物的歸宿和存儲的位置,建立貨物的出入庫制度,問題都解決了,這就是文件系統(tǒng)要做的事情。

文件系統(tǒng)管理存取文件的接口、文件的存儲組織和分配、文件屬性的管理(比如文件的歸屬、權(quán)限、創(chuàng)建事件等)。

每個操作系統(tǒng)都有自己的文件系統(tǒng)。比如windows就有常用的FAT、FAT32、NTFS等,Linux用ext1-4的等。

存儲文件的倉庫有很多中形式,現(xiàn)在主要用的是(機(jī)械)磁盤、SSD、光盤、磁帶等等。

拿到這些介質(zhì)后,首先需要的是“格式化”,格式化就是建立文件存儲組織架構(gòu)和“賬本”的過程。比如將U盤用FAT32格式化,我們可以看到是這樣架構(gòu)和賬本(如圖4):

圖4

主引導(dǎo)區(qū):記錄了這個存儲設(shè)備的總體信息和基本信息。比如扇區(qū)的大小,每簇的大小、磁頭數(shù)、磁盤扇區(qū)總數(shù)、FAT表份數(shù)、分區(qū)引導(dǎo)代碼等等信息。

分區(qū)表:,即此存儲的賬本,如果分區(qū)表丟失了,就意味著數(shù)據(jù)的丟失,所以一般就保留2份,即FAT1和FAT2。分區(qū)表主要記錄每簇使用情況,當(dāng)這位置的簇是空的,就代表還沒有使用,有特殊標(biāo)記的代表是壞簇,位置上有數(shù)據(jù)的,是指示文件塊的下一個位置。

目錄區(qū):目錄和記錄文件所在的位置信息。

數(shù)據(jù)區(qū):記錄文件具體信息的區(qū)域。

通過以下的例子來幫助理解什么是FAT文件系統(tǒng)。

假設(shè)每簇8個扇區(qū)組成一個簇,大小是512*8=4K。根目錄下的readme.txt文件大小是10K,如圖5:

圖5

  • 1、在目錄區(qū)找到根目錄下文件readme.txt在FAT表中的位置是0004
  • 2、在0004位置對應(yīng)簇的8個扇區(qū)讀取相應(yīng)文件塊readme(1)保存在內(nèi)存,并獲取下一個數(shù)據(jù)塊的位置0005。
  • 3、在0005位置對應(yīng)簇的8個扇區(qū)讀取相應(yīng)文件塊readme(2)保存在內(nèi)存,并獲取下一個數(shù)據(jù)塊的位置0008。
  • 4、在0005位置對應(yīng)簇的4個扇區(qū)讀取相應(yīng)文件塊readme(3)保存在內(nèi)存,并獲得結(jié)束標(biāo)志。
  • 5、將readme(1)、readme(2)、readme(3)組合成為readme文件。

在這個例子中,我們看到在FAT文件系統(tǒng),是通過查詢FAT表和目錄項(xiàng)來確定文件的存儲位置,文件分布是以簇為單位的數(shù)據(jù)塊,通過“鏈條”的方式來指示文件數(shù)據(jù)保存的文字。

當(dāng)要讀取文件時,必須從文件頭開始讀取。這樣的方式,讀取的效率不高。

不同的Linux文件系統(tǒng)大同小異,一般都采取ext文件系統(tǒng),如圖6.

圖6

啟動塊內(nèi)是服務(wù)器開機(jī)啟動使用的,即使這個分區(qū)不是啟動分區(qū),也保留。

超級塊存儲了文件系統(tǒng)的相關(guān)信息,包括文件系統(tǒng)的類型,inode的數(shù)目,數(shù)據(jù)塊的數(shù)目

Inodes塊是存儲文件的inode信息,每個文件對應(yīng)一個inode。包含文件的元信息,具體來說有以下內(nèi)容:

文件的字節(jié)數(shù)

文件擁有者的User ID

文件的Group ID

文件的讀、寫、執(zhí)行權(quán)限

文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內(nèi)容上一次變動的時間,atime指文件上一次打開的時間。

鏈接數(shù),即有多少文件名指向這個inode

文件數(shù)據(jù)block的位置

當(dāng)查看某個目錄或文件時,會先從inode table中查出文件屬性及數(shù)據(jù)存放點(diǎn),再從數(shù)據(jù)塊中讀取數(shù)據(jù)。

數(shù)據(jù)塊:存放目錄和文件數(shù)據(jù)。

通過讀取\var\readme.txt文件流程,來理解ext文件系統(tǒng),如圖7。

圖7

  • 1、根目錄A所對應(yīng)的inode節(jié)點(diǎn)是2,inode1對應(yīng)的數(shù)據(jù)塊是d1。
  • 2、在檢索d1內(nèi)容發(fā)現(xiàn),目錄var對應(yīng)的inode=28,對應(yīng)的數(shù)據(jù)塊是d5。
  • 3、檢索d5內(nèi)容發(fā)現(xiàn)readme.txt對應(yīng)的是inode=70。
  • 4、Inode70指向數(shù)據(jù)區(qū)d2、d3、d6塊。讀取這些數(shù)據(jù)塊,在內(nèi)存中組合d2、d3、d6數(shù)據(jù)塊。

硬盤格式化的時候,操作系統(tǒng)自動將硬盤分成兩個區(qū)域。

  • 一個是數(shù)據(jù)區(qū),存放文件數(shù)據(jù);
  • 另一個是inode區(qū),存放inode所包含的信息。

當(dāng)inode資源消耗完了,盡管數(shù)據(jù)區(qū)域還有空余空間,都不能再寫入新文件。

總結(jié):Windows的文件系統(tǒng)往往是“串行”的,而linux的文件系統(tǒng)是“并行”的。

再來看分布式的文件系統(tǒng)。

如果提供持久化層的存儲空間不是一臺設(shè)備,而是多臺,每臺之間通過網(wǎng)絡(luò)連接,數(shù)據(jù)是打散保存在多臺存儲設(shè)備上。也就是說元數(shù)據(jù)記錄的不僅僅記錄在哪塊數(shù)據(jù)塊的編號,還要記錄是哪個數(shù)據(jù)節(jié)點(diǎn)的。

這樣,元數(shù)據(jù)需要保存在每個數(shù)據(jù)節(jié)點(diǎn)上,而且必須實(shí)時同步。做到這一點(diǎn)其實(shí)很困難。如果把元數(shù)據(jù)服務(wù)器獨(dú)立出來,做成“主從”架構(gòu),就不需要在每個數(shù)據(jù)節(jié)點(diǎn)維護(hù)元數(shù)據(jù)表,簡化了數(shù)據(jù)維護(hù)的難度,提高了效率。

Hadoop的文件系統(tǒng)HDFS就是一個典型的分布式文件系統(tǒng)。

圖8

  • 1、Client將FileA按64M分塊。分成兩塊,block1和Block2。
  • 2、Client向nameNode發(fā)送寫數(shù)據(jù)請求,如圖紫色虛線1。
  • 3、NameNode節(jié)點(diǎn),記錄block信息。并返回可用的DataNode給客戶端,如圖紅色虛線2。

Block1: host11,host22,host31

Block2: host11,host21,host32

  • 4、client向DataNode發(fā)送block1;發(fā)送過程是以流式寫入。

流式寫入過程:

1)將64M的block1按64k的package劃分;

2)然后將第一個package發(fā)送給host11;

3)host11接收完后,將第一個package發(fā)送給host22,同時client想host11發(fā)送第二個package;

4)host22接收完第一個package后,發(fā)送給host31,同時接收host11發(fā)來的第二個package。

5)以此類推,如圖黑色虛線3所示,直到將block1發(fā)送完畢。

6)host11,host22,host31向NameNode和 Client發(fā)送通知,說“消息發(fā)送完了”。

7)client收到發(fā)來的消息后,向namenode發(fā)送消息,說我寫完了。這樣就真完成了。

8)發(fā)送完block1后,再向host11,host21,host32發(fā)送block2,如圖藍(lán)色虛線4所示。

……….

HDFS是分布式存儲的雛形,分布式存儲將在以后詳細(xì)介紹。

三、存儲介質(zhì)

倉庫有很多種存儲的介質(zhì),現(xiàn)在最常用的是磁盤和SSD盤,還有光盤、磁帶等等。磁盤一直以性價比的優(yōu)勢占據(jù)了霸主的地位。

圓形的磁性盤片裝在一個方的密封盒子里,運(yùn)行起來吱吱的響,這就是我們常見的磁盤。磁片是真正存放數(shù)據(jù)的介質(zhì),每個磁片正面和背面上都“懸浮”著磁頭。

磁盤上分割為很多個同心圓,每個同心圓叫做磁道,每個磁道又被分割成為一個個小扇區(qū),每個扇區(qū)可以存儲512B的數(shù)據(jù)。當(dāng)磁頭在磁片上高速轉(zhuǎn)動和不停換道,來讀取或者寫入數(shù)據(jù)。

其實(shí)磁片負(fù)責(zé)高速轉(zhuǎn)動,而磁頭只負(fù)責(zé)在磁片上橫向移動。決定磁盤性能的主要是磁片的轉(zhuǎn)速、磁頭的換道、磁盤、每片磁片的容量和接口速度決定的。轉(zhuǎn)速越高、換道時間越短、單片容量越高,磁盤性能就越好。

圖9

圖10

圖11

衡量磁盤性能主要參考 IOPS 和吞吐量兩個參數(shù)。

IOPS就是一秒鐘內(nèi)磁盤進(jìn)行了多少次的讀寫。

吞吐量就是讀出了多少數(shù)據(jù)。

其實(shí)這些指標(biāo)應(yīng)該有前提,即是大包(塊)還是小包(塊),是讀還是寫,是隨機(jī)的還是連續(xù)的。一般我們看到廠家給的磁盤IOPS性能一般是指小包、順序讀下的測試指標(biāo)。這個指標(biāo)一般就是最大值。

目前在X86服務(wù)器上我們常使用的 SATA、SAS磁盤性能:

圖12

實(shí)際生產(chǎn)中估算,SATA 7200轉(zhuǎn)的磁盤,提供的IOPS為60次左右,吞吐量在70MB/s。

我們2014年首次使用的裸容量2P的SRVSAN存儲的數(shù)據(jù)持久化層采用57臺X86服務(wù)器,內(nèi)置12塊SATA7200 3TB硬盤。共684塊磁盤,大約只提供41040次IOPS和47.88GB/s。

這些指標(biāo)顯然是不能滿足存儲需要的,需要想辦法“加速”。

機(jī)械磁盤其實(shí)也做了很多優(yōu)化,比如扇區(qū)地址的編號不是連續(xù)的。

因?yàn)榇牌D(zhuǎn)的夠快(7200轉(zhuǎn)/分鐘即1秒鐘轉(zhuǎn)120轉(zhuǎn),轉(zhuǎn)一圈是8.3毫秒,也就是在讀寫同一個磁道最大時延是8.3秒),防止磁頭的讀寫取錯過了,所以扇區(qū)的地址并不是連續(xù)的,而是跳躍編號的,比如2:1的交叉因子(1、10、2、11、3、12…..)。

同時磁盤也有緩存,具有隊(duì)列,并不是來一個I/O就讀寫一個,而是積累到一定I/O,根據(jù)磁頭的位置和算法完成的。I/O并不是一定是“先到先處理”,而是遵守效率。

加速最好的辦法就是使用SSD盤。磁盤的控制部分是由機(jī)械部分+控制電路來構(gòu)成,機(jī)械部分的速度限制,使磁盤的性能不可能有大的突破。而SSD采用了全電子控制可以獲得很好的性能。

SSD是以閃存作為存儲介質(zhì)再配合適當(dāng)?shù)目刂菩酒M成的存儲設(shè)備。目前用來生產(chǎn)固態(tài)硬盤的NAND Flash有三種:

  • 單層式存儲(SLC,存儲1bit數(shù)據(jù))
  • 二層式存儲(MLC,存儲4bit數(shù)據(jù))
  • 三層式存儲(TLC,存儲8bit數(shù)據(jù))

SLC成本最高、壽命最長、但訪問速度最快,TLC成本最低、壽命最短但訪問速度最慢。為了降低成本,用于服務(wù)器的企業(yè)級SSD都用了MLC,TLC可以用來做U盤。

圖13

SSD普及起來還有一點(diǎn)的障礙,比如成本較高、寫入次數(shù)限制、損壞時的不可挽救性及當(dāng)隨著寫入次數(shù)增加或接近寫滿時候速度會下降等缺點(diǎn)。

對應(yīng)磁盤的最小IO單位扇區(qū),page是SSD的最小單位。

比如每個page存儲512B的數(shù)據(jù)和218b的糾錯碼,128個page組成一個塊(64KB),2048個塊,組成一個區(qū)域,一個閃存芯片有2個區(qū)域組成。Page的尺寸越大,這個閃訊芯片的容量就越大。

但是SSD有一個壞習(xí)慣,就是在修改某1個page的數(shù)據(jù),會波及到整塊。需要將這個page所在的整塊數(shù)據(jù)讀到緩存中,然后再將這個塊初始化為1,再從緩存中讀取數(shù)據(jù)寫入。

對于SSD來說,速度可能不是問題,但是寫的次數(shù)是有限制的,所以塊也不是越大越好。當(dāng)然對于機(jī)械磁盤來說也存在類似問題,塊越大,讀寫的速度就越快,但浪費(fèi)也越嚴(yán)重,因?yàn)閷懖粷M一塊也要占一塊的位置。

不同型號不同廠家的SSD性能差異很大,下面是我們的分布式塊存儲作為緩存使用的SSD參數(shù):

采用PCIe 2.0接口,容量是1.2T,綜合讀寫IOPS(4k小包)是260000次,讀吞吐量1.55GB/s,寫吞吐量1GB/s。

在1臺SRVSAN的服務(wù)器配置了一塊SSD作為緩存和12塊7200轉(zhuǎn) 3T SATA盤,磁盤只提供1200次、1200M的吞出量。

遠(yuǎn)遠(yuǎn)小于緩存SSD提供的能力,所以直接訪問緩存可以提供很高的存儲性能,SRVSAN的關(guān)鍵是計算出熱點(diǎn)數(shù)據(jù)的算法,提高熱點(diǎn)數(shù)據(jù)的命中率。

用高成本的SSD做為緩存,用廉價的SATA磁盤作為容量層。

責(zé)任編輯:武曉燕 來源: 高效運(yùn)維
相關(guān)推薦

2025-01-26 11:54:39

分布式存儲系統(tǒng)

2024-08-12 16:20:27

2025-01-15 08:34:00

分布式事務(wù)服務(wù)

2024-11-06 12:29:02

2010-08-27 09:48:14

無線分布式系統(tǒng)

2019-11-19 08:47:45

Zookeeper分布式事務(wù)

2019-10-10 09:16:34

Zookeeper架構(gòu)分布式

2018-02-06 09:06:03

主流分布式存儲系統(tǒng)

2022-11-04 08:22:14

編譯代碼C語言

2017-10-27 08:40:44

分布式存儲剪枝系統(tǒng)

2013-05-23 11:11:58

Sailfish OSJolla手機(jī)操作系統(tǒng)

2018-05-24 08:37:30

2018-08-02 08:42:57

分布式存儲Ceph

2022-03-07 11:20:01

分布式代碼微服務(wù)

2022-02-10 08:57:45

分布式線程鎖

2022-06-18 23:03:05

Seata分布式事務(wù)

2024-05-17 13:48:19

2015-05-12 13:03:54

開源分布式存儲HDFS

2010-03-24 17:07:52

無線分布式系統(tǒng)

2018-06-28 08:18:56

Ceph運(yùn)維存儲
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號