偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

聊聊存儲系統(tǒng)的硬件層

存儲 存儲軟件
SSD是近些年才火起來的存儲介質(zhì)。SSD一般有兩種,一種利用Flash閃存為芯片,另一種直接用內(nèi)存(DRAM)作為存儲介質(zhì),只是在里面加了個電池,在斷電以后還能繼續(xù)用電池來維持?jǐn)?shù)據(jù)。

[[317465]]

簡介

在工程架構(gòu)領(lǐng)域里,存儲是一個非常重要的方向,這個方向從底至上,我分成了如下幾個層次來介紹:

硬件層:講解磁盤,SSD,SAS, NAS, RAID等硬件層的基本原理,以及其為操作系統(tǒng)提供的存儲界面;

操作系統(tǒng)層:即文件系統(tǒng),操作系統(tǒng)如何將各個硬件管理并對上提供更高層次接口;

單機(jī)引擎層:常見存儲系統(tǒng)對應(yīng)單機(jī)引擎原理大概介紹,利用文件系統(tǒng)接口提供更高級別的存儲系統(tǒng)接口;

分布式層:如何將多個單機(jī)引擎組合成一個分布式存儲系統(tǒng);

查詢層:用戶典型的查詢語義表達(dá)以及解析;

主板結(jié)構(gòu)

在進(jìn)入對硬件層的分析前,讓我們來看看電腦主板上各個原件之間的關(guān)系。

存儲系統(tǒng)講解——硬件層介紹

上圖展示了主板上主要元件的結(jié)構(gòu)圖,以及他們之間的總線連接情況。核心連接點(diǎn)是北橋和南橋兩塊芯片。

其中北橋比較吊,連接的都是些高速設(shè)備。一般來說只連接CPU,內(nèi)存和顯卡幾種設(shè)備。不過近些年也出現(xiàn)了PCIE2.0的高速接口接入北橋,使得一些符合標(biāo)準(zhǔn)的設(shè)備就可以接入北橋。

而南橋就相對搓了,他負(fù)責(zé)接入所有低速設(shè)備。什么USB,鼠標(biāo),磁盤,聲卡等等都是接在南橋上的。而不同的設(shè)備用途和協(xié)議都有很大不同,所以設(shè)計(jì)了不同的交互協(xié)議。由于歷史原因,不同設(shè)備傳輸介質(zhì)可能都不一樣,導(dǎo)致總線上布線十分復(fù)雜。所以到目前為止,主流設(shè)備都已經(jīng)統(tǒng)一成為了PCI總線,大家一起用這條總線。

讀寫過程

我們來模擬一下CPU要從磁盤讀入一份數(shù)據(jù)的過程:

  • CPU發(fā)出一條指令說哥要準(zhǔn)備讀數(shù)據(jù)了
  • 這條指令依次通過系統(tǒng)總線,橋間總線,PCI總線傳遞到了磁盤控制器。控制器收到指令了之后知道這是一次讀請求,且讀完了是否要發(fā)中斷的信息。做好一些準(zhǔn)備工作,等待讀取數(shù)據(jù)。
  • CPU再發(fā)出一條指令說要讀取的邏輯地址
  • 這條指令還是通過系列總線發(fā)給磁盤控制器之后。磁盤控制器就忙活了,查找邏輯快對應(yīng)的物理塊地址,查找,尋道等工作,就開始讀取數(shù)據(jù)了。
  • CPU再發(fā)出一條指令說讀入內(nèi)存的地址
  • 當(dāng)收到這條指令之后,CPU就不管了,他告訴一個叫DMA的總管,說接下來就靠你了。DMA設(shè)備會接管總線,負(fù)責(zé)將磁盤數(shù)據(jù)通過PCI總線,橋間總線,內(nèi)存總線同步到內(nèi)存指定位置。

寫操作的過程是類似的,就不累述了。

上面我們只是講解了在主板上數(shù)據(jù)流轉(zhuǎn)的過程,但是還有一個黑盒,就是磁盤控制器。這哥們到底是怎么管理的各個磁盤呢?在下一節(jié)我們將為你描述。

存儲介質(zhì)原理

上面講了計(jì)算機(jī)讀取數(shù)據(jù)的過程。這一章我們來大概說一下常見的存儲介質(zhì)的存儲原理。

磁帶

磁帶就跟小時候聽歌的時候的磁帶類似。一條黑色帶子上面有很多小的磁性粒子,根據(jù)粒子的南北級來判定0/1。

軟盤

軟盤比磁帶要先進(jìn)一點(diǎn),記錄數(shù)據(jù)的原理是一樣的,只是可以隨機(jī)讀取,而磁帶只能順序讀取。

硬盤

硬件原理

如果說前兩個都是古老的東西,技術(shù)含量一般的話。硬盤就是一個很有技術(shù)含量的存儲設(shè)備了,主要包含三大設(shè)備:

  1. 電機(jī)
  2. 電機(jī)的目的是控制磁臂精準(zhǔn)定位到磁道,一個磁道可能很小,要精準(zhǔn)定位到哪個地方是高科技。
  3. 盤面
  4. 盤面主要有兩點(diǎn)。一點(diǎn)是基板要足夠光滑平整,不能有任何瑕疵;一點(diǎn)是要將磁粉均勻的鍍到基板上。這里有兩個高科技,一個是磁粉的制造,一個是如何均勻的鍍到基板上。
  5. 磁頭
  6. 磁頭的主要難點(diǎn)是要控制好跟盤面的距離,跟軟盤類似,硬盤也是通過修改磁粉的南北極來記錄數(shù)據(jù)的。如果隔得太遠(yuǎn),就感知不到磁性數(shù)據(jù)了,隔得太近呢,又可能把盤面刮到。當(dāng)然0/1的表示并不是只有一個磁粉,而是一片區(qū)域的磁粉。
  7. 現(xiàn)在磁盤都是利用空氣動力學(xué),將磁頭漂浮在盤面上面一點(diǎn)距離來控制磁頭和盤面的距離。但是當(dāng)硬盤停止工作不轉(zhuǎn)的時候,磁頭就肯定掉在盤面上了,所以一般盤面靠近圓心的地方一般都有一塊沒有磁粉的地方,用于安全停靠磁頭。當(dāng)硬盤要開始工作的時候,磁頭在同心圓里面起飛,飛起來了之后再移動到其他地區(qū)。
  8. 不過我一直在想,是否可以有這樣的技術(shù),能在磁臂上裝多個磁頭,每個磁道對應(yīng)一個,停止工作的時候就把磁臂固定在某個高度讓他不挨著盤面,這樣是不是能大大提高硬盤的讀寫效率,因?yàn)檫@樣減少了尋道的時間。

基本概念

硬盤組成原理圖如下:

存儲系統(tǒng)講解——硬件層介紹

如上圖, 硬盤主要有如下幾個概念(概念比較簡單,就不解釋了):

  1. 扇區(qū)
  2. 磁道
  3. 柱面

讀寫過程

讀寫過程得分成兩頭來說,一頭說將數(shù)據(jù)從各個盤面中讀取出來;一頭說如何將數(shù)據(jù)送給計(jì)算機(jī)。

  1. 從盤面中讀取數(shù)據(jù)
  2. 我們知道再磁盤中,順序讀取會比隨機(jī)讀取快很多,那么有這么多盤面,磁道,這個順序到底是什么順序呢?
  3. 假設(shè)我們現(xiàn)在是再順序遍歷磁盤上的數(shù)據(jù),那么讀取順序是這樣的。首先讀完最上面一塊盤面的最外面一個磁道,等盤面旋轉(zhuǎn)完一圈之后,即這個磁道被讀取完畢,然后立即切換到第二塊盤面,讀第二塊盤面的最外面一個磁道,以此類推,直到讀完最底下一塊盤面。然后磁臂在向內(nèi)移動一個磁道,重復(fù)剛才的過程,直到讀到最里面一個磁道。
  4. 其實(shí)再讀取過程中還會更復(fù)雜一點(diǎn),因?yàn)楸P面是一直勻速高速旋轉(zhuǎn)的,可能在一個扇區(qū)過度到下一個扇區(qū)的時候,就那么一點(diǎn)時間,可能存在誤差,導(dǎo)致下一個扇區(qū)的數(shù)據(jù)沒讀到。為了解決這個問題,一般數(shù)據(jù)是在磁道上是間隔存儲的。假設(shè)一個數(shù)據(jù)有10個扇區(qū),分別為,d1,d2,...,d10;為了說明這個思想,我們假設(shè)一個磁道正好也有10個扇區(qū),分別為,s1,s2,...s10。如果是緊挨著存放的話,那么扇區(qū)和數(shù)據(jù)的對應(yīng)關(guān)系為:[(s1,d1), (s2, d2), ... , (s10, d10)]。這樣就存在剛才說的有誤差。那么間隔存儲的話,映射關(guān)系為:[(s1,d1), (s3,d2), (s5,d3), ..., (s2, d10)]。
  5. 而且在切換盤面的時候,雖然是電子切換,但是速度還是會有一定延遲,下一個盤面和上一個盤面的起始點(diǎn)位置不能一一對應(yīng),也是會有一定錯開的。
  6. 在古老的磁盤里面,這些值可能還需要用戶來設(shè)置,不過現(xiàn)在都是廠商給咱們設(shè)置好,用戶不需要關(guān)心了。
  7. 由于磁臂的移動要比盤面的切換要慢很多(一個是機(jī)械切換,一個是電子切換),所以為了減少磁臂的移動,所以如上的順序讀取會是先讀一個柱面,再讀取下一個磁道,而不是先讀完一個盤面,在讀下一個盤面。
  8. 那么既然磁臂的移動如此的慢,剛才講了順序讀取的時候的磁臂移動邏輯。那么在真實(shí)情況下,有大量隨機(jī)訪問的情況下,磁臂是如何移動的呢?這里就需要考慮常見的磁臂調(diào)度算法了:
  9. RSS:隨機(jī)調(diào)度。這個就是扯蛋,只是拿來給別人做綠葉對比性能用的。
  10. FIFO:先進(jìn)先出。這個對于隨機(jī)讀取來說,性能很不友好。
  11. PRI:交給用戶來管理。這個跟FIFO類似,只不過優(yōu)先級是由用戶來指定的,不僅增加了用戶使用磁盤的成本,效率也不見得高。
  12. SSTF:最短時間調(diào)度。這個是指磁頭總是處理離自己這次請求最近的一次請求處理。這樣最大的問題就是會存在餓死的情況。
  13. SCAN:電梯算法。在磁盤上往復(fù)。這個是比較常見的算法,跟電梯類似,磁臂就一個磁道一個磁道的動,移動最外面或者最里面的磁道就轉(zhuǎn)向。這個算法不會餓死。
  14. C-SCAN:類似電梯算法,只是單向讀取數(shù)據(jù)。磁臂總是再內(nèi)圈到外圈的時候讀取數(shù)據(jù),當(dāng)?shù)竭_(dá)外圈過后迅速返回內(nèi)圈,返回過程中不讀取數(shù)據(jù),在重復(fù)之前的過程。
  15. LOOK:類似SCAN,只是會快速返回,如果前面沒有讀寫請求就立即返回。
  16. C-LOOK:類似C-SCAN和SCAN之間的關(guān)系。
  17. 一般來說,再IO比較少的情況下,SSTF性能會比較好,在IO壓力比較大的情況下,SCAN/LOOK算法會更優(yōu)秀。
  18. 大家可以到這里來看看硬盤讀取數(shù)據(jù)的視頻:http://v.ku6.com/show/2gl1CHY7iNa_CVLum3NQHg.html
  19. 將數(shù)據(jù)送給計(jì)算機(jī)
  20. 剛才我們從磁盤中讀到了數(shù)據(jù),接下來我們講解磁盤通過什么樣的接口跟計(jì)算機(jī)做交互。這個接口也叫磁盤管理協(xié)議。
  21. 磁盤管理協(xié)議的定義又分成兩部分:軟件和硬件。其中軟件是指指令級,目前指令級就兩個:ATA和SCSI;硬件代表數(shù)據(jù)傳輸方式,一般都是主板上的導(dǎo)線傳輸原理,但并不限制,數(shù)據(jù)甚至可以通過TCP/IP傳輸。定義一個協(xié)議需要同時定義了指令級以及硬件傳輸方式。
  22. ATA
  23. 全稱是Advanced Technology Attachment,現(xiàn)在看起來不咋地,不過從名字看來,當(dāng)時這個東西還是很高級的。
  24. 這個指令是上個世紀(jì)80年代提出的。按照硬件接口的不同,又分成了兩類,一類是并行ATA(PATA,一類是串行ATA(SATA)。一開始流行起來的是PATA,也叫IDE。不過由于并行線抗干擾能力太差,排線占空間,不利電腦散熱。而更高級的SATA協(xié)議自從2000年被提出之后,很快PATA/IDE接口的磁盤就被歷史淘汰,目前的ATA接口的磁盤只有SATA磁盤了。
  25. SCSI
  26. 全稱是Small Computer System Interface。也是上個世紀(jì)80年代提出來的,當(dāng)時設(shè)計(jì)他的目的就是為了小型服務(wù)器設(shè)計(jì)的磁盤交互接口。用該接口可以達(dá)到更大的轉(zhuǎn)速,更快的傳輸效率。但是價格也相對較高。
  27. 所以目前基本上在服務(wù)器領(lǐng)域SCSI磁盤會比較多,在PC機(jī)領(lǐng)域SATA硬盤會比較多。不過隨著SATA盤的進(jìn)化以及其得天獨(dú)厚的價格優(yōu)勢,在服務(wù)器領(lǐng)域SATA也在逐步侵蝕SCSI的市場。
  28. 不過SCSI也不會坐以待斃,他按照PATA進(jìn)化成SATA的思路,自己也搞串行化,進(jìn)化出來了SAS(Serial Attach SCSI)接口。這個接口目前很對市場胃口,不僅價格低廉,而且性能也還不錯。所以估計(jì)SATA淘汰PATA的一幕在不久的將來也會在SCSI領(lǐng)域里上演。
  29. SCSI指令還可以通過Internet傳輸(iSCSI),通過FC網(wǎng)絡(luò)傳輸(FC-SCSI),這些我們會再后文提及。

ssd

硬件原理

ssd是近些年才火起來的存儲介質(zhì)。ssd一般有兩種,一種利用flash閃存為芯片,另一種直接用內(nèi)存(DRAM)作為存儲介質(zhì),只是在里面加了個電池,在斷電以后還能繼續(xù)用電池來維持?jǐn)?shù)據(jù)。

我們本文中講的ssd全部是都指代前者,即用flash閃存做存儲介質(zhì)。先來看一下ssd的存儲原理。

在磁盤中0/1的表示是用的磁粉的南北極的信息,在閃存中則用的是電子信號。他利用的是一種叫浮動門場效應(yīng)晶體管作為基本存儲介質(zhì)。在該晶體管里面,主要是由兩個門電路構(gòu)成:控制門和浮動門。在兩個門之間有一堆電子。當(dāng)控制門加上一個電勢的時候,電子就往浮動門那邊跑,然后控制門斷開電勢,電子會儲存在浮動門那邊(靠中間的二氧化硅絕緣層),則代表二進(jìn)制中的0;控制門加一個反向電勢的時候,電子跑回到控制門這邊,浮動門那邊沒電子,代表二進(jìn)制中的1。這樣就通過檢測浮動門那邊的電勢就能得到0或者1。而且現(xiàn)在有的ssd制造商,根據(jù)不同的電勢,將一個晶體管表示的值從0/1拓展到0/1/2/3。這樣就使得存儲容量翻倍。這種類型的晶體管叫MLC(Multi Level Cell),相對,只表示0/1的叫SLC(Single Level Cell)。不過一般而言,MLC的出錯率也高很多,所以目前市面上主流產(chǎn)品還是SLC的。

了解了ssd的基本原理之后,我們來看看ssd是怎么組織這些晶體管的??慈缦聨讉€概念:

  1. Page。一般一個Page為4K。則該P(yáng)age包含4K*8個晶體管,Page是ssd讀寫的最小單元;
  2. Block。一般128個Page組成一個Block,Block的概念非常重要,讀寫數(shù)據(jù)的控制都是針對Block的,待會我們再重點(diǎn)講一下Block的概念;
  3. Plane。一般2048個Block組成一個Plane;
  4. 一塊芯片再包含多個Plane,多個Plane之間可以并行操作。

Block的組織,見下圖:

存儲系統(tǒng)講解——硬件層介紹

如圖,可以看到block中的晶體管是按照井字型組織的。一橫排就代表一個Page,所以一個Block一般就有128行,4K*8列。當(dāng)然,由于還需要針對每個Page加一些糾錯數(shù)據(jù),所以一般還會多一些列。

橫排是控制線,負(fù)責(zé)給電壓,來做充電放電的作用;豎排是讀取線,負(fù)責(zé)讀浮動門里的電勢之用。

讀寫過程

讀取的過程是這樣的:

假設(shè)要讀取第三行數(shù)據(jù),那么會給第三行控制線的電勢置位0,其他127行控制線都會給一個電勢,這樣就能保證再豎排的讀取線上只讀到第三行的數(shù)據(jù),而讀不到其他數(shù)據(jù)??梢钥吹絪sd再讀取數(shù)據(jù)的時候不再需要尋道這些復(fù)雜的事情,速度會比傳統(tǒng)的磁盤塊很多。

而ssd寫入就比較麻煩了,因?yàn)閟sd無法再一個block內(nèi)對部分cell充電,對部分cell放電,這樣信號會相互干擾從而造成不可預(yù)期的情況發(fā)生。那ssd怎么處理這個問題呢,那就暴力了,把一個block的數(shù)據(jù)全部讀到ssd自帶的內(nèi)存當(dāng)中,并做好修改,接下來把整個block全部放電,即擦除所有數(shù)據(jù),最后再將內(nèi)存中整個block寫回??梢钥吹?,即使是只修改一個bit的數(shù)據(jù),也需要大動干戈,倒騰4K*128這么多數(shù)據(jù),所以ssd寫數(shù)據(jù)的代價是很大的。但是瘦死的駱駝比馬大,比起機(jī)械硬盤,還是要快好幾個數(shù)量級的。

而且,ssd還有一個很頭疼的問題,就是隨著充放電次數(shù)的增加,中間的二氧化硅絕緣層絕緣效果會逐步降低,當(dāng)降低到一定程度之后浮動門保存不住電子了的話,這個晶體管就算廢了。所以單個晶體管還有擦寫次數(shù)壽命,目前主流的晶體管這個上限大概是10萬的數(shù)量級。而MLC的更差,只有1萬次左右。

那么針對如上兩個問題,ssd目前一般都有哪些解決方案來應(yīng)對呢?

  1. 為了優(yōu)化寫的時候的性能,一般ssd并不在寫的時候做擦除。而是在寫數(shù)據(jù)的時候,選擇另外一塊干凈的block寫數(shù)據(jù)。對于老的block數(shù)據(jù),會做一個標(biāo)記,回頭定期做擦除工作;
  2. 對于壞掉的晶體管,可以通過額外的糾錯位來實(shí)現(xiàn)。根據(jù)不同的糾錯算法,可以容忍同一個Page中壞掉的位的個數(shù)也是不一樣的。如果超過上限,只能報告說不可恢復(fù)的錯誤。

常見存儲介質(zhì)性能數(shù)字

最后我們來對比一下目前主流的硬盤和ssd的參數(shù),這是筆者在工作中測試得到的數(shù)據(jù),測試數(shù)據(jù)為各種存儲介質(zhì)在4K大小下的隨機(jī)/順序 讀/寫數(shù)據(jù),數(shù)字做了模糊化處理,保留了數(shù)量級信息,大家看個大概,心里有數(shù)即可:

  • 測試項(xiàng)\磁盤類型 | SATA | SAS | SSD |
  • 順序讀(MB/s) | 400 | 350 | 500 |
  • 順序?qū)?MB/s) | 200 | 300 | 400 |
  • 隨機(jī)讀(IOPS) | 700 | 1300 | 7w |
  • 隨機(jī)寫(IOPS) | 400 | 800 | 3w |

硬盤組合

上面一節(jié)中,我們了解了單個磁盤的存儲原理和讀寫過程。在實(shí)際生產(chǎn)環(huán)境中,單個磁盤能提供的容量和性能還是有限,我們就需要利用一些組合技術(shù)將多個磁盤組合起來提供更好的服務(wù)。

這一節(jié),我們主要介紹各種磁盤組合技術(shù)。首先,我們會看一下最基本的組合技術(shù)RAID系列技術(shù);然后,我們在看一下更大規(guī)模的集成技術(shù)SAN和NAS。

RAID

RAID技術(shù)是上個世紀(jì)80年代提出來的。

  1. RAID0:條帶化。讀寫效率都很高。但是容錯很差。
  2. RAID1:鏡像存儲。讀效率可達(dá)2倍,寫的時候差不多。容錯牛B。
  3. RAID2 & RAID3:多加一塊校驗(yàn)盤。在RAID0的基礎(chǔ)之上多了容錯性。RAID2和RAID3的區(qū)別是使用了不同的校驗(yàn)算法。而且這兩個的校驗(yàn)是針對bit的,所以讀寫效率很高。
  4. RAID4 & RAID5 & RAID6:這幾個都是針對block的,所以效率比RAID2&RAID3要更差一些。RAID4是沒有交錯,有一塊盤就是校驗(yàn)盤;RAID5是有交錯,每塊盤都有數(shù)據(jù)和校驗(yàn)信息;RAID6是雙保險,存了兩個校驗(yàn)值。

目前用得比較多的就是Raid5和Raid1。

Raid的實(shí)現(xiàn)方式一般有兩種:軟Raid和硬Raid。軟Raid是指操作系統(tǒng)通過軟件的方式,對下封裝SCSI/SATA接口的硬盤操作,對上提供虛擬硬盤的接口,中間實(shí)現(xiàn)Raid對應(yīng)邏輯;硬Raid就是一個再普通的SCSI/SATA卡上加了一塊芯片,里面執(zhí)行可以執(zhí)行Raid對應(yīng)的邏輯。

現(xiàn)在一般的Raid實(shí)現(xiàn)方案都是硬Raid,因?yàn)檐汻aid有如下兩個確定:

  1. 占用額外的內(nèi)存和CPU資源;
  2. Raid依賴操作系統(tǒng),所以操作系統(tǒng)本身無法使用Raid,如果操作系統(tǒng)對應(yīng)的那塊硬盤壞了,那么整個Raid就無法用了;

現(xiàn)在Raid卡一般都比較高級,可以針對插在上面的多塊磁盤做多重Raid。比如這三塊磁盤做Raid5,另外兩塊做Raid1。然后對操作系統(tǒng)提供兩塊『邏輯盤』。這里的邏輯盤對操作系統(tǒng)而言就是一塊磁盤,但實(shí)際底層可能是多塊磁盤。

邏輯盤不一定要占據(jù)整塊獨(dú)立的磁盤,同樣RAID的幾塊盤也可以做成多塊邏輯盤。假設(shè)有三塊磁盤做成了Raid5,假設(shè)一共有200G空間,也可以從中在劃分成兩塊,每塊100G,相當(dāng)于用戶就看到了兩塊100G的磁盤。不過一般邏輯盤不會跨Raid實(shí)現(xiàn)。倒不是不能做,而是沒需求,而且對上層造成不一致的印象:這磁盤怎么忽快忽慢的呀。

這個邏輯盤還有一個英語名字:LUN(Logic Unit Number),現(xiàn)在存儲系統(tǒng)一般把硬件虛擬出來的盤叫『LUN』,軟件虛擬出來的盤叫『卷』。LUN這個名詞原本是SCSI協(xié)議專屬的,SCSI協(xié)議規(guī)定一條總線最多只能接16個設(shè)備(主機(jī)或者磁盤),在大型存儲系統(tǒng)中,可能有成千上萬個設(shè)備,肯定是不夠的,所以發(fā)明了一個新的地址標(biāo)注方法,叫LUN,通過SCSI_ID+LUN_ID來尋址磁盤。后來這個概念逐步發(fā)展成為所有硬件虛擬磁盤了。

操作系統(tǒng)看到邏輯盤之后,一般還要再做一次封裝。邏輯盤始終都還是硬件層在做的事情,硬件層實(shí)現(xiàn)的特點(diǎn)就是效率高,但是不靈活,比如邏輯盤定好了100G就是100G,空間用光了想要調(diào)整為150G就只有干瞪眼了,實(shí)現(xiàn)成本很高。為了達(dá)到靈活性的目的,所以操作系統(tǒng)還要再做一層封裝『卷管理』。這層卷管理就是把邏輯盤在軟件層再拆分合并一下,組成新的操作系統(tǒng)真正看到的"磁盤"。

最后操作系統(tǒng)再在這些卷上面去做一些分區(qū),并在分區(qū)上安裝操作系統(tǒng)等工作。

磁盤獨(dú)立鬧革命

上面都是講的單臺機(jī)器內(nèi)部的磁盤組織方式,而單臺機(jī)器所提供的存儲空間是有限的,畢竟機(jī)器大小空間是有限的,只能放得下那么幾塊盤。在一般的2U的機(jī)器里面能放得下20塊盤就算是很不錯的了。在實(shí)際工業(yè)需求中,對于一些大型應(yīng)用來說,肯定是遠(yuǎn)遠(yuǎn)不夠的。而工業(yè)界采用的方案就是:堆磁盤,單臺機(jī)器裝不下這么多磁盤就單獨(dú)拿一個大箱子來裝磁盤,再通過專線接到電腦接口上。

當(dāng)然,在近些年又發(fā)展起來了一塊新的技術(shù)領(lǐng)域大數(shù)據(jù)存儲的市場——分布式存儲。分布式存儲價格便宜,但是性能較低,占據(jù)了不少不需要太高性能和查詢語義不復(fù)雜的市場。分布式存儲我們后面再談,現(xiàn)在先看看堆磁盤這條路。

當(dāng)磁盤多了之后,人們發(fā)現(xiàn),磁盤容量是上去了,但是傳輸速度還是上不去。默認(rèn)SCSI的導(dǎo)線傳輸機(jī)制有如下幾個限制:

  1. 規(guī)定最多只能接16個設(shè)備,也就是說一個存儲設(shè)備最多只能有15臺機(jī)器來訪問;
  2. SCSI導(dǎo)線最長不能超過25米,這對機(jī)房布線來說造成了很大的挑戰(zhàn);

于是SCSI在一些企業(yè)級應(yīng)用市場開始遭到嫌棄,于是人們就尋求別的硬件解決方案,人們找到了:FC網(wǎng)絡(luò)。

FC網(wǎng)絡(luò)是上個世紀(jì)80年代研究網(wǎng)絡(luò)的一幫人搞出來的網(wǎng)絡(luò)交互方式,跟以太網(wǎng)是同類產(chǎn)品,有自己完整的一套OSI協(xié)議體系(從物理鏈路層到傳輸層以及應(yīng)用層)。他就是以太網(wǎng)的高富帥版本,價格更貴,性能更高。而當(dāng)時FC網(wǎng)絡(luò)也主要是為了高速骨干網(wǎng)設(shè)計(jì)的,人家都沒想到這東西還在存儲系統(tǒng)領(lǐng)域里面大放異彩。

這里提一下,F(xiàn)C中的F是Fibre,而不是Fiber。前者是網(wǎng)絡(luò)的意思,而不是光線。雖然一般FC網(wǎng)絡(luò)都采用光纖作為傳輸介質(zhì),但是其主要定義并不只是光纖,而是一整套網(wǎng)絡(luò)協(xié)議。

但是不管怎么樣,F(xiàn)C網(wǎng)絡(luò)的引入,完美解決了SCSI導(dǎo)線的問題:

  • FC網(wǎng)絡(luò)就跟以太網(wǎng)類似,有自己的交換機(jī),網(wǎng)絡(luò)連接方式和路由算法,可以隨便連接多少個設(shè)備;
  • 光纖傳輸最大甚至可以有上百公里,也就是說主機(jī)在北京,存儲可以在青島;
  • 傳輸帶寬更大;

并且只是替換了硬件層的東西,指令集仍然是SCSI,所以對于上層來說遷移成本很低,所以在企業(yè)級應(yīng)用里得到了廣泛使用。

就目前主流的存儲協(xié)議:短距離(機(jī)內(nèi)為主)使用SAS,長距離使用FC。

經(jīng)過如上的系列技術(shù)發(fā)展,大規(guī)模存儲系統(tǒng)的技術(shù)方案也就逐漸成熟了,于是市面上就逐步出現(xiàn)了商業(yè)化的產(chǎn)品,其實(shí)就是一個帶得有一堆磁盤的盒子,這個盒子我們把它叫做SAN(Storage Area Network)。

說到SAN,就必須要提另外一個概念:NAS(Network Attach Storage)。因?yàn)樽帜付家粯又皇菗Q了個順序,所以比較容易混淆。NAS其實(shí)就是SAN+文件系統(tǒng)。SAN提供的還是磁盤管理協(xié)議級的接口(ATA/SCSI);NAS直接提供一個文件系統(tǒng)接口(ext/NTFS)。但是一般來說,SAN都是以FC網(wǎng)絡(luò)(光纖高速網(wǎng)狀網(wǎng)絡(luò))提供給主機(jī)的,所以性能高;而NAS一般都是通過以太網(wǎng)接入存儲系統(tǒng)的,所以性能低。

另外,經(jīng)常跟SAN和NAS一起的還有另外一個概念,DAS(Direct Attached Storage)。這個跟SAN類似,只是DAS只能被一臺機(jī)器使用,而SAN提供了多個接口可以供多個用戶使用。

 

責(zé)任編輯:武曉燕 來源: 博客園
相關(guān)推薦

2022-03-03 09:51:11

RedisCouchbase數(shù)據(jù)存儲

2024-01-15 16:51:03

Redis數(shù)據(jù)存儲

2018-09-29 14:08:04

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

2018-01-31 08:44:20

數(shù)據(jù)存儲存儲設(shè)備存儲系統(tǒng)

2018-01-19 08:35:47

存儲系統(tǒng)SAS

2017-11-08 11:22:46

存儲趨勢系統(tǒng)

2017-07-04 10:58:57

SAN存儲網(wǎng)絡(luò)存儲系統(tǒng)架構(gòu)

2017-07-10 09:02:24

NAS存儲云存儲

2018-05-31 08:39:18

單機(jī)存儲系統(tǒng)

2013-10-12 16:38:38

存儲虛擬化

2018-01-19 08:54:18

存儲系統(tǒng)SILT

2012-09-04 13:58:50

存儲海量存儲華為

2017-04-14 09:48:25

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

2018-01-22 09:08:14

存儲系統(tǒng)性能帶寬

2021-06-18 06:00:31

存儲系統(tǒng)

2011-09-23 09:29:29

Hotmail

2018-07-31 11:02:21

存儲系統(tǒng)算法

2024-07-05 11:05:47

2025-01-17 08:17:55

2017-10-12 09:36:54

分布式存儲系統(tǒng)
點(diǎn)贊
收藏

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