存儲(chǔ)系統(tǒng)基礎(chǔ)知識(shí)介紹
在下方公眾號(hào)后臺(tái)回復(fù):面試手冊(cè),可獲取杰哥匯總的 3 份面試 PDF 手冊(cè)。

存儲(chǔ)系統(tǒng)是整個(gè)IT系統(tǒng)的基石,是IT技術(shù)賴(lài)以存在和發(fā)揮效能的基礎(chǔ)平臺(tái)。早先的存儲(chǔ)形式是存儲(chǔ)設(shè)備(通常是磁盤(pán))與應(yīng)用服務(wù)器其他硬件直接安裝于同一個(gè)機(jī)箱之內(nèi),并且該存儲(chǔ)設(shè)備是給本臺(tái)應(yīng)用服務(wù)器獨(dú)占使用的。
今天,我們科普一下存儲(chǔ)基礎(chǔ)知識(shí):外置數(shù)據(jù)存儲(chǔ),分享內(nèi)容和目錄如下:

一、存儲(chǔ)簡(jiǎn)介及存儲(chǔ)方式
1.1 簡(jiǎn)介
存儲(chǔ)就是根據(jù)不同的應(yīng)用環(huán)境通過(guò)采取合理、 安全、有效的方式將數(shù)據(jù)保存到某些介質(zhì)上并能保證有效的訪問(wèn)。
總的來(lái)講可以包含兩個(gè)方面的含義:
一方面它是數(shù)據(jù)臨時(shí)或長(zhǎng)期駐留的物理媒介;
另一方面,它是保證數(shù)據(jù)完整安全存放的方式或行為。
1.2 三種常見(jiàn)存儲(chǔ)方式 DAS、NAS和SAN
DAS
DAS(Direct Access Storage —直接連接存儲(chǔ))是指將存儲(chǔ)設(shè)備通過(guò) SCSI接口或光纖通道直接連接到一臺(tái)計(jì)算機(jī)上。DAS這種存儲(chǔ)方式與我們普通的 PC存儲(chǔ)架構(gòu)一樣,外部存儲(chǔ)設(shè)備都是直接掛接在服務(wù)器內(nèi)部總線上, 數(shù)據(jù)存儲(chǔ)設(shè)備是整個(gè)服務(wù)器結(jié)構(gòu)的一部分。

DAS存儲(chǔ)方式主要適用以下環(huán)境
(1)小型網(wǎng)絡(luò)
因?yàn)榫W(wǎng)絡(luò)規(guī)模較小,數(shù)據(jù)存儲(chǔ)量小,而且也不是很復(fù)雜,采用這種存儲(chǔ)方式對(duì)服務(wù)器的影響不會(huì)很大。并且這種存儲(chǔ)方式也十分經(jīng)濟(jì),適合擁有小型網(wǎng)絡(luò)的企業(yè)用戶(hù)。
(2)地理位置分散的網(wǎng)絡(luò)
雖然企業(yè)總體網(wǎng)絡(luò)規(guī)模較大,但在地理分布上很分散,通過(guò) SAN或NAS在它們之間進(jìn)行互聯(lián)非常困難,此時(shí)各分支機(jī)構(gòu)的服務(wù)器也可采用 DAS存儲(chǔ)方式,這樣可以降低成本。
(3) 特殊應(yīng)用服務(wù)器
在一些特殊應(yīng)用服務(wù)器上,如微軟的集群服務(wù)器或某些數(shù)據(jù)庫(kù)使用的原始分區(qū),均要求存儲(chǔ)設(shè)備直接連接到應(yīng)用服務(wù)器。
局限性
直連式存儲(chǔ)依賴(lài)服務(wù)器主機(jī)操作系統(tǒng)進(jìn)行數(shù)據(jù)的 IO讀寫(xiě)和存儲(chǔ)維護(hù)管理,數(shù)據(jù)備份和恢復(fù)要求占用服務(wù)器主機(jī)資源(包括 CPU、系統(tǒng)IO等),數(shù)據(jù)備份通常占用服務(wù)器主機(jī)資源 20-30%,因此許多企業(yè)用戶(hù)的日常數(shù)據(jù)備份常常在深夜或業(yè)務(wù)系統(tǒng)不繁忙時(shí)進(jìn)行,以免影響正常業(yè)務(wù)系統(tǒng)的運(yùn)行。直連式存儲(chǔ)的數(shù)據(jù)量越大,備份和恢復(fù)的時(shí)間就越長(zhǎng),對(duì)服務(wù)器硬件的依賴(lài)性和影響就越大。
直連式存儲(chǔ)與服務(wù)器主機(jī)之間的連接通道通常采用 SCSI(小型計(jì)算機(jī)系統(tǒng)接口,是一種智能的通用接口標(biāo)準(zhǔn))連接,帶寬為 10MB/s、20MB/s、40MB/s、80MB/s等,隨著服務(wù)器 CPU的處理能力越來(lái)越強(qiáng),存儲(chǔ)硬盤(pán)空間越來(lái)越大,陣列的硬盤(pán)數(shù)量越來(lái)越多, SCSI通道將會(huì)成為IO瓶頸;服務(wù)器主機(jī) SCSI ID資源有限,能夠建立的 SCSI通道連接有限。
無(wú)論直連式存儲(chǔ)還是服務(wù)器主機(jī)的擴(kuò)展, 從一臺(tái)服務(wù)器擴(kuò)展為多臺(tái)服務(wù)器組成的群集(Cluster) ,或存儲(chǔ)陣列容量的擴(kuò)展,都會(huì)造成業(yè)務(wù)系統(tǒng)的停機(jī),從而給企業(yè)帶來(lái)經(jīng)濟(jì)損失,對(duì)于銀行、電信、傳媒等行業(yè)7×24小時(shí)服務(wù)的關(guān)鍵業(yè)務(wù)系統(tǒng),這是不可接受的。
NAS
NAS(Network Attached Storage )—網(wǎng)絡(luò)連接存儲(chǔ),即將存儲(chǔ)設(shè)備通過(guò)標(biāo)準(zhǔn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)(例如以太網(wǎng)),連接到一群計(jì)算機(jī)上。它是一種專(zhuān)用數(shù)據(jù)存儲(chǔ)服務(wù)器。它以數(shù)據(jù)為中心,將存儲(chǔ)設(shè)備與服務(wù)器徹底分離,集中管理數(shù)據(jù),從而釋放帶寬、提高性能、降低總擁有成本、保護(hù)投資。其成本遠(yuǎn)遠(yuǎn)低于使用服務(wù)器存儲(chǔ),而效率卻遠(yuǎn)遠(yuǎn)高于后者。
NAS產(chǎn)品包括存儲(chǔ)器件(例如硬盤(pán)驅(qū)動(dòng)器陣列、CD或DVD驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器或可移動(dòng)的存儲(chǔ)介質(zhì))和集成在一起的簡(jiǎn)易服務(wù)器,可用于實(shí)現(xiàn)涉及文件存取及管理的所有功能。簡(jiǎn)易服務(wù)器經(jīng)優(yōu)化設(shè)計(jì),可以完成一系列簡(jiǎn)化的功能, 例如文檔存儲(chǔ)及服務(wù)、電子郵件、互聯(lián)網(wǎng)緩存等等。集成在NAS設(shè)備中的簡(jiǎn)易服務(wù)器可以將有關(guān)存儲(chǔ)的功能與應(yīng)用服務(wù)器執(zhí)行的其他功能分隔開(kāi)。
這種方法從兩方面改善了數(shù)據(jù)的可用性。第一,即使相應(yīng)的應(yīng)用服務(wù)器不再工作了,仍然可以讀出數(shù)據(jù)。第二,簡(jiǎn)易服務(wù)器本身不會(huì)崩潰,因?yàn)樗苊饬艘鸱?wù)器崩潰的首要原因,即應(yīng)用軟件引起的問(wèn)題。

NAS的優(yōu)點(diǎn):
(1)真正的即插即用
NAS是獨(dú)立的存儲(chǔ)節(jié)點(diǎn)存在于網(wǎng)絡(luò)之中,與用戶(hù)的操作系統(tǒng)平臺(tái)無(wú)關(guān),真正的即插即用。
(2)存儲(chǔ)部署簡(jiǎn)單
NAS不依賴(lài)通用的操作系統(tǒng),而是采用一個(gè)面向用戶(hù)設(shè)計(jì)的,專(zhuān)門(mén)用于數(shù)據(jù)存儲(chǔ)的簡(jiǎn)化操作系統(tǒng),內(nèi)置了與網(wǎng)絡(luò)連接所需要的協(xié)議, 因此使整個(gè)系統(tǒng)的管理和設(shè)置較為簡(jiǎn)單。
(3)存儲(chǔ)設(shè)備位置非常靈活
(4)管理容易且成本低
NAS數(shù)據(jù)存儲(chǔ)方式是基于現(xiàn)有的企業(yè)局域網(wǎng)而設(shè)計(jì)的, 按照TCP/IP協(xié)議進(jìn)行通信,以文件的 I/O方式進(jìn)行數(shù)據(jù)傳輸。
NAS的缺點(diǎn):
(1)存儲(chǔ)性能較低
(2)可靠度不高
SAN
SAN(Storage Area Network) 存儲(chǔ)區(qū)域網(wǎng)絡(luò)1991年,IBM公司在 S/390服務(wù)器中推出了 ESCON(Enterprise SystemConnection管理系統(tǒng)連接 )技術(shù)。它是基于光纖介質(zhì),最大傳輸速率達(dá)17MB/s的服務(wù)器訪問(wèn)存儲(chǔ)器的一種連接方式。在此基礎(chǔ)上,進(jìn)一步推出了功能更強(qiáng)的 ESCONDirector(FC SWitch) ,構(gòu)建了一套最原始的 SAN系統(tǒng)。
SAN存儲(chǔ)方式創(chuàng)造了存儲(chǔ)的網(wǎng)絡(luò)化。存儲(chǔ)網(wǎng)絡(luò)化順應(yīng)了計(jì)算機(jī)服務(wù)器體系結(jié)構(gòu)網(wǎng)絡(luò)化的趨勢(shì)。FC-SAN的支撐技術(shù)是光纖通道 (FC Fiber Channel) 技術(shù)。FC技術(shù)支持HIPPI、IPI、SCSI、IP、ATM等多種高級(jí)協(xié)議,其最大特性是將網(wǎng)絡(luò)和設(shè)備的通信協(xié)議與傳輸物理介質(zhì)隔離開(kāi), 這樣多種協(xié)議可在同一個(gè)物理連接上同時(shí)傳送。當(dāng)然SAN也可以使用IP通道進(jìn)行部署---IP-SAN。
FC-SAN的硬件基礎(chǔ)設(shè)施是光纖通道,用光纖通道構(gòu)建的 SAN由以下三個(gè)部分組成:
存儲(chǔ)和備份設(shè)備:包括磁帶、磁盤(pán)和光盤(pán)庫(kù)等。
光纖通道網(wǎng)絡(luò)連接部件:包括主機(jī)總線適配卡、驅(qū)動(dòng)程序、光纜、集線器、交換機(jī)、光纖通道和 SCSI間的橋接器
應(yīng)用和管理軟件:包括備份軟件、存儲(chǔ)資源管理軟件和存儲(chǔ)設(shè)備管理軟件。
FC-SAN的優(yōu)勢(shì):
(1)網(wǎng)絡(luò)部署容易;
(2)高速存儲(chǔ)性能。因?yàn)?SAN采用了光纖通道技術(shù),所以它具有更高的存儲(chǔ)帶寬,存儲(chǔ)性能明顯提高。SAN的光纖通道使用全雙工串行通信原理傳輸數(shù)據(jù),傳輸速率高達(dá)1062.5Mb/s。
(3)良好的擴(kuò)展能力。由于 SAN采用了網(wǎng)絡(luò)結(jié)構(gòu),擴(kuò)展能力更強(qiáng)。光纖接口提供了10公里的連接距離,這使得實(shí)現(xiàn)物理上分離,不在本地機(jī)房的存儲(chǔ)變得非常容易。

1.3 DAS、NAS和SAN三種存儲(chǔ)方式比較
連接方式對(duì)比
從連接方式上對(duì)比,DAS采用了存儲(chǔ)設(shè)備直接連接應(yīng)用服務(wù)器,具有一定的靈活性和限制性;NAS通過(guò)網(wǎng)絡(luò)(TCP/IP,ATM,FDDI)技術(shù)連接存儲(chǔ)設(shè)備和應(yīng)用服務(wù)器,存儲(chǔ)設(shè)備位置靈活,隨著萬(wàn)兆網(wǎng)的出現(xiàn),傳輸速率有了很大的提高;FC-SAN則是通過(guò)光纖通道(Fibre Channel)技術(shù)連接存儲(chǔ)設(shè)備和應(yīng)用服務(wù)器,具有很好的傳輸速率和擴(kuò)展性能。三種存儲(chǔ)方式各有優(yōu)勢(shì),相互共存,占到了磁盤(pán)存儲(chǔ)市場(chǎng)的70%以上。SAN和NAS產(chǎn)品的價(jià)格仍然遠(yuǎn)遠(yuǎn)高于 DAS.許多用戶(hù)出于價(jià)格因素考慮選擇了低效率的直連存儲(chǔ)而不是高效率的共享存儲(chǔ)。
客觀的說(shuō),SAN和NAS系統(tǒng)已經(jīng)可以利用類(lèi)似自動(dòng)精簡(jiǎn)配置(thinprovisioning )這樣的技術(shù)來(lái)彌補(bǔ)早期存儲(chǔ)分配不靈活的短板。然而,之前它們消耗了太多的時(shí)間來(lái)解決存儲(chǔ)分配的問(wèn)題增加內(nèi)鏈, 以至于給DAS留有足夠的時(shí)間在數(shù)據(jù)中心領(lǐng)域站穩(wěn)腳跟。此外, SAN和NAS依然問(wèn)題多多,至今無(wú)法解決。但是SAN常用于大型網(wǎng)絡(luò)存儲(chǔ)的建設(shè),并且在混合存儲(chǔ)技術(shù)成熟的未來(lái), 是頗具潛力的。
應(yīng)用場(chǎng)景對(duì)比
DAS雖然比較古老了,但是還是很適用于那些數(shù)據(jù)量不大, 對(duì)磁盤(pán)訪問(wèn)速度要求較高的中小企業(yè);
NAS多適用于文件服務(wù)器,用來(lái)存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),雖然受限于以太網(wǎng)的速度,但是部署靈活,成本低;
SAN則適用于大型應(yīng)用或數(shù)據(jù)庫(kù)系統(tǒng),缺點(diǎn)是成本高、較復(fù)雜。
1.4 存儲(chǔ)常見(jiàn)品牌
EMC、IBM、NetApp、HP、HDS、DELL、華為等。
1.5 常用介質(zhì)
硬盤(pán)
磁帶
光盤(pán)
移動(dòng)存儲(chǔ)設(shè)備
二、磁盤(pán)陣列及 RAID技術(shù)詳解
2.1 磁盤(pán)陣列
定義
磁盤(pán)陣列(Redundant Arrays of Independent Disks ,RAID),有“獨(dú)立磁盤(pán)構(gòu)成的具有冗余能力的陣列”之意。
磁盤(pán)陣列是由很多價(jià)格較便宜的磁盤(pán), 組合成一個(gè)容量巨大的磁盤(pán)組,利用個(gè)別磁盤(pán)提供數(shù)據(jù)所產(chǎn)生加成效果提升整個(gè)磁盤(pán)系統(tǒng)效能。利用這項(xiàng)技術(shù),將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個(gè)硬盤(pán)上。
磁盤(pán)陣列還能利用同位檢查( Parity Check)的觀念,在數(shù)組中任意一個(gè)硬盤(pán)故障時(shí),仍可讀出數(shù)據(jù),在數(shù)據(jù)重構(gòu)時(shí),將數(shù)據(jù)經(jīng)計(jì)算后重新置入新硬盤(pán)中。
分類(lèi)
磁盤(pán)陣列其樣式有三種,一是外接式磁盤(pán)陣列柜、二是內(nèi)接式磁盤(pán)陣列卡,三是利用軟件來(lái)仿真。
外接式磁盤(pán)陣列柜最常被使用大型服務(wù)器上,具可熱交換( Hot Swap)的特性,不過(guò)這類(lèi)產(chǎn)品的價(jià)格都很貴。
內(nèi)接式磁盤(pán)陣列卡,因?yàn)閮r(jià)格便宜,但需要較高的安裝技術(shù),適合技術(shù)人員使用操作。硬件陣列能夠提供在線擴(kuò)容、動(dòng)態(tài)修改陣列級(jí)別、自動(dòng)數(shù)據(jù)恢復(fù)、驅(qū)動(dòng)器漫游、超高速緩沖等功能。它能提供性能、數(shù)據(jù)保護(hù)、可靠性、可用性和可管理性的解決方案。陣列卡專(zhuān)用的處理單元來(lái)進(jìn)行操作。
利用軟件仿真的方式,是指通過(guò)網(wǎng)絡(luò)操作系統(tǒng)自身提供的磁盤(pán)管理功能將連接的普通SCSI卡上的多塊硬盤(pán)配置成邏輯盤(pán),組成陣列。軟件陣列可以提供數(shù)據(jù)冗余功能,但是磁盤(pán)子系統(tǒng)的性能會(huì)有所降低,有的降低幅度還比較大,達(dá)30%左右。因此會(huì)拖累機(jī)器的速度,不適合大數(shù)據(jù)流量的服務(wù)器。
原理
磁盤(pán)陣列作為獨(dú)立系統(tǒng)在主機(jī)外直連或通過(guò)網(wǎng)絡(luò)與主機(jī)相連。磁盤(pán)陣列有多個(gè)端口可以被不同主機(jī)或不同端口連接。一個(gè)主機(jī)連接陣列的不同端口可提升傳輸速度。
和當(dāng)時(shí)PC用單磁盤(pán)內(nèi)部集成緩存一樣,在磁盤(pán)陣列內(nèi)部為加快與主機(jī)交互速度,都帶有一定量的緩沖存儲(chǔ)器。主機(jī)與磁盤(pán)陣列的緩存交互, 緩存與具體的磁盤(pán)交互數(shù)據(jù)。
在應(yīng)用中,有部分常用的數(shù)據(jù)是需要經(jīng)常讀取的,磁盤(pán)陣列根據(jù)內(nèi)部的算法,查找出這些經(jīng)常讀取的數(shù)據(jù),存儲(chǔ)在緩存中,加快主機(jī)讀取這些數(shù)據(jù)的速度, 而對(duì)于其他緩存中沒(méi)有的數(shù)據(jù),主機(jī)要讀取,則由陣列從磁盤(pán)上直接讀取傳輸給主機(jī)。對(duì)于主機(jī)寫(xiě)入的數(shù)據(jù),只寫(xiě)在緩存中,主機(jī)可以立即完成寫(xiě)操作。然后由緩存再慢慢寫(xiě)入磁盤(pán)。
2.2 RAID技術(shù)詳解
簡(jiǎn)介
隨著計(jì)算機(jī)應(yīng)用的日益普及,人們對(duì)計(jì)算速度和性能的要求也逐漸提高。在一個(gè)完整的計(jì)算機(jī)系統(tǒng)中,CPU和內(nèi)存的作用固然重要,但是數(shù)據(jù)存儲(chǔ)設(shè)備性能的好壞和速度的快慢也直接影響到整個(gè)系統(tǒng)的表現(xiàn)。本文所要講解的 RAID技術(shù)起初主要應(yīng)用于服務(wù)器高端市場(chǎng), 但是隨著個(gè)人用戶(hù)市場(chǎng)的成熟和發(fā)展, 正不斷向低端市場(chǎng)靠攏,從而為用戶(hù)提供了一種既可以提升硬盤(pán)速度, 又能夠確保數(shù)據(jù)安全性的良好的解決方案。本文將對(duì) RAID技術(shù)進(jìn)行較為詳細(xì)的介紹,希望能夠?qū)V大讀者有所幫助。
RAID是英文Redundant Array of Inexpensive Disks 的縮寫(xiě),中文簡(jiǎn)稱(chēng)為磁盤(pán)陣列。其實(shí),從RAID的英文原意中,我們已經(jīng)能夠多少知道 RAID就是一種由多塊廉價(jià)磁盤(pán)構(gòu)成的冗余陣列。雖然 RAID包含多塊磁盤(pán),但是在操作系統(tǒng)下是作為一個(gè)獨(dú)立的大型存儲(chǔ)設(shè)備出現(xiàn)。RAID技術(shù)分為幾種不同的等級(jí),分別可以提供不同的速度,安全性和性?xún)r(jià)比。
人們?cè)陂_(kāi)發(fā)RAID時(shí)主要是基于以下設(shè)想,即幾塊小容量硬盤(pán)的價(jià)格總和要低于一塊大容量的硬盤(pán)。雖然目前這一設(shè)想還沒(méi)有成為現(xiàn)實(shí), RAID在節(jié)省成本方面的作用還不是很明顯,但是 RAID可以充分發(fā)揮出多塊硬盤(pán)的優(yōu)勢(shì),實(shí)現(xiàn)遠(yuǎn)遠(yuǎn)超出任何一塊單獨(dú)硬盤(pán)的速度和吞吐量。除了性能上的提高之外, RAID還可以提供良好的容錯(cuò)能力,在任何一塊硬盤(pán)出現(xiàn)問(wèn)題的情況下都可以繼續(xù)工作, 不會(huì)受到損壞硬盤(pán)的影響。
RIAD 等級(jí)分類(lèi)
常用的等級(jí)有0、1、3、5、01、10級(jí)等。RAID分類(lèi)通常我們有5種常見(jiàn)的RAID級(jí)別,這些級(jí)別不是刻意分出來(lái)的,而是按功能分的。不同的 RAID級(jí)別提供不同的性能,數(shù)據(jù)的有效性和完整性取決于特定的 I/O環(huán)境。沒(méi)有任何一種RAID級(jí)別可以完美的適合任何用戶(hù)。
RIAD 0
我們?cè)谇拔闹幸呀?jīng)提到 RAID分為幾種不同的等級(jí),其中, RAID 0是最簡(jiǎn)單的一種形式。RAID 0可以把多塊硬盤(pán)連接在一起形成一個(gè)容量更大的存儲(chǔ)設(shè)備。最簡(jiǎn)單的RAID 0技術(shù)只是提供更多的磁盤(pán)空間,不過(guò)我們也可以通過(guò)設(shè)置,使用RAID 0來(lái)提高磁盤(pán)的性能和吞吐量。RAID 0沒(méi)有冗余或錯(cuò)誤修復(fù)能力,但是實(shí)現(xiàn)成本是最低的。
RAID 0最簡(jiǎn)單的實(shí)現(xiàn)方式就是把幾塊硬盤(pán)串聯(lián)在一起創(chuàng)建一個(gè)大的卷集。磁盤(pán)之間的連接既可以使用硬件的形式通過(guò)智能磁盤(pán)控制器實(shí)現(xiàn), 也可以使用操作系統(tǒng)中的磁盤(pán)驅(qū)動(dòng)程序以軟件的方式實(shí)現(xiàn)。圖示如下:

在上述配置中,我們把4塊磁盤(pán)組合在一起形成一個(gè)獨(dú)立的邏輯驅(qū)動(dòng)器, 容量相當(dāng)于任何任何一塊單獨(dú)硬盤(pán)的 4倍。如圖中彩色區(qū)域所示,數(shù)據(jù)被依次寫(xiě)入到各磁盤(pán)中。當(dāng)一塊磁盤(pán)的空間用盡時(shí),數(shù)據(jù)就會(huì)被自動(dòng)寫(xiě)入到下一塊磁盤(pán)中。
這種設(shè)置方式只有一個(gè)好處,那就是可以增加磁盤(pán)的容量。至于速度,則與其中任何一塊磁盤(pán)的速度相同,這是因?yàn)橥粫r(shí)間內(nèi)只能對(duì)一塊磁盤(pán)進(jìn)行 I/O操作。如果其中的任何一塊磁盤(pán)出現(xiàn)故障, 整個(gè)系統(tǒng)將會(huì)受到破壞,無(wú)法繼續(xù)使用。從這種意義上說(shuō),使用純 RAID 0方式的可靠性?xún)H相當(dāng)于單獨(dú)使用一塊硬盤(pán)的1/4(因?yàn)楸纠蠷AID 0使用了4塊硬盤(pán))。
雖然我們無(wú)法改變 RAID 0的可靠性問(wèn)題,但是我們可以通過(guò)改變配置方式,提供系統(tǒng)的性能。與前文所述的順序?qū)懭霐?shù)據(jù)不同,我們可以通過(guò)創(chuàng)建帶區(qū)集,在同一時(shí)間內(nèi)向多塊磁盤(pán)寫(xiě)入數(shù)據(jù)。具體如圖所示:

上圖中,系統(tǒng)向邏輯設(shè)備發(fā)出的 I/O指令被轉(zhuǎn)化為4項(xiàng)操作,其中的每一項(xiàng)操作都對(duì)應(yīng)于一塊硬盤(pán)。我們從圖中可以清楚的看到通過(guò)建立帶區(qū)集, 原先順序?qū)懭氲臄?shù)據(jù)被分散到所有的四塊硬盤(pán)中同時(shí)進(jìn)行讀寫(xiě)。四塊硬盤(pán)的并行操作使同一時(shí)間內(nèi)磁盤(pán)讀寫(xiě)的速度提升了 4倍。
在創(chuàng)建帶區(qū)集時(shí),合理的選擇帶區(qū)的大小非常重要。如果帶區(qū)過(guò)大,可能一塊磁盤(pán)上的帶區(qū)空間就可以滿(mǎn)足大部分的 I/O操作,使數(shù)據(jù)的讀寫(xiě)仍然只局限在少數(shù)的一、兩塊硬盤(pán)上,不能充分的發(fā)揮出并行操作的優(yōu)勢(shì)。另一方面,如果帶區(qū)過(guò)小,任何I/O指令都可能引發(fā)大量的讀寫(xiě)操作,占用過(guò)多的控制器總線帶寬。因此,在創(chuàng)建帶區(qū)集時(shí),我們應(yīng)當(dāng)根據(jù)實(shí)際應(yīng)用的需要,慎重的選擇帶區(qū)的大小。我們已經(jīng)知道,帶區(qū)集可以把數(shù)據(jù)均勻的分配到所有的磁盤(pán)上進(jìn)行讀寫(xiě)。
如果我們把所有的硬盤(pán)都連接到一個(gè)控制器上的話, 可能會(huì)帶來(lái)潛在的危害。這是因?yàn)楫?dāng)我們頻繁進(jìn)行讀寫(xiě)操作時(shí), 很容易使控制器或總線的負(fù)荷超載。為了避免出現(xiàn)上述問(wèn)題,建議用戶(hù)可以使用多個(gè)磁盤(pán)控制器。示意圖如下:

這樣,我們就可以把原先控制器總線上的數(shù)據(jù)流量降低一半。當(dāng)然,最好解決方法還是為每一塊硬盤(pán)都配備一個(gè)專(zhuān)門(mén)的磁盤(pán)控制器。
RAID 0特性:

備注:條帶卷 有很好的讀寫(xiě)性能 不容錯(cuò)
RIAD 1
雖然RAID 0可以提供更多的空間和更好的性能,但是整個(gè)系統(tǒng)是非常不可靠的,如果出現(xiàn)故障,無(wú)法進(jìn)行任何補(bǔ)救。所以, RAID 0一般只是在那些對(duì)數(shù)據(jù)安全性要求不高的情況下才被人們使用。
RAID 1和RAID 0截然不同,其技術(shù)重點(diǎn)全部放在如何能夠在不影響性能的情況下最大限度的保證系統(tǒng)的可靠性和可修復(fù)性上。RAID 1是所有RAID等級(jí)中實(shí)現(xiàn)成本最高的一種,盡管如此,人們還是選擇 RAID 1來(lái)保存那些關(guān)鍵性的重要數(shù)據(jù)。
RAID 1又被稱(chēng)為磁盤(pán)鏡像,每一個(gè)磁盤(pán)都具有一個(gè)對(duì)應(yīng)的鏡像盤(pán)。對(duì)任何一個(gè)磁盤(pán)的數(shù)據(jù)寫(xiě)入都會(huì)被復(fù)制鏡像盤(pán)中;系統(tǒng)可以從一組鏡像盤(pán)中的任何一個(gè)磁盤(pán)讀取數(shù)據(jù)。顯然,磁盤(pán)鏡像肯定會(huì)提高系統(tǒng)成本。因?yàn)槲覀兯苁褂玫目臻g只是所有磁盤(pán)容量總和的一半。下圖顯示的是由 4塊硬盤(pán)組成的磁盤(pán)鏡像,其中可以作為存儲(chǔ)空間使用的僅為兩塊硬盤(pán)(畫(huà)斜線的為鏡像部分)。

RAID 1下,任何一塊硬盤(pán)的故障都不會(huì)影響到系統(tǒng)的正常運(yùn)行,而且只要能夠保證任何一對(duì)鏡像盤(pán)中至少有一塊磁盤(pán)可以使用, RAID 1甚至可以在一半數(shù)量的硬盤(pán)出現(xiàn)問(wèn)題時(shí)不間斷的工作。當(dāng)一塊硬盤(pán)失效時(shí),系統(tǒng)會(huì)忽略該硬盤(pán),轉(zhuǎn)而使用剩余的鏡像盤(pán)讀寫(xiě)數(shù)據(jù)。
通常,我們把出現(xiàn)硬盤(pán)故障的 RAID系統(tǒng)稱(chēng)為在降級(jí)模式下運(yùn)行。雖然這時(shí)保存的數(shù)據(jù)仍然可以繼續(xù)使用,但是 RAID系統(tǒng)將不再可靠。如果剩余的鏡像盤(pán)也出現(xiàn)問(wèn)題,那么整個(gè)系統(tǒng)就會(huì)崩潰。因此,我們應(yīng)當(dāng)及時(shí)的更換損壞的硬盤(pán),避免出現(xiàn)新的問(wèn)題。
更換新盤(pán)之后,原有好盤(pán)中的數(shù)據(jù)必須被復(fù)制到新盤(pán)中。這一操作被稱(chēng)為同步鏡像。同步鏡像一般都需要很長(zhǎng)時(shí)間,尤其是當(dāng)損害的硬盤(pán)的容量很大時(shí)更是如此。在同步鏡像的進(jìn)行過(guò)程中,外界對(duì)數(shù)據(jù)的訪問(wèn)不會(huì)受到影響, 但是由于復(fù)制數(shù)據(jù)需要占用一部分的帶寬,所以可能會(huì)使整個(gè)系統(tǒng)的性能有所下降。
因?yàn)镽AID 1主要是通過(guò)二次讀寫(xiě)實(shí)現(xiàn)磁盤(pán)鏡像,所以磁盤(pán)控制器的負(fù)載也相當(dāng)大,尤其是在需要頻繁寫(xiě)入數(shù)據(jù)的環(huán)境中。為了避免出現(xiàn)性能瓶頸,使用多個(gè)磁盤(pán)控制器就顯得很有必要。下圖示意了使用兩個(gè)控制器的磁盤(pán)鏡像。

使用兩個(gè)磁盤(pán)控制器不僅可以改善性能, 還可以進(jìn)一步的提高數(shù)據(jù)的安全性和可用性。我們已經(jīng)知道, RAID 1最多允許一半數(shù)量的硬盤(pán)出現(xiàn)故障,所以按照我們上圖中的設(shè)置方式(原盤(pán)和鏡像盤(pán)分別連接不同的磁盤(pán)控制) ,即使一個(gè)磁盤(pán)控制器出現(xiàn)問(wèn)題,系統(tǒng)仍然可以使用另外一個(gè)磁盤(pán)控制器繼續(xù)工作。這樣,就可以把一些由于意外操作所帶來(lái)的損害降低到最低程度。
RAID 1特性:

備注:鏡像卷 寫(xiě)入性能一般 讀數(shù)據(jù)快 容錯(cuò) 磁盤(pán)50%浪費(fèi)
RIAD 10
根據(jù)組合分為RAID 10和RAID 01,實(shí)際是將RAID 0和RAID 1標(biāo)準(zhǔn)結(jié)合的產(chǎn)物,在連續(xù)地以位或字節(jié)為單位分割數(shù)據(jù)并且并行讀 /寫(xiě)多個(gè)磁盤(pán)的同時(shí),為每一塊磁盤(pán)作磁盤(pán)鏡像進(jìn)行冗余。它的優(yōu)點(diǎn)是同時(shí)擁有 RAID 0的超凡速度和RAID 1的數(shù)據(jù)高可靠性。
Raid 10其實(shí)結(jié)構(gòu)非常簡(jiǎn)單,首先創(chuàng)建 2個(gè)獨(dú)立的Raid1,然后將這兩個(gè)獨(dú)立的Raid1組成一個(gè)Raid0,當(dāng)往這個(gè)邏輯Raid中寫(xiě)數(shù)據(jù)時(shí),數(shù)據(jù)被有序的寫(xiě)入兩個(gè)Raid1中。磁盤(pán)1和磁盤(pán)2組成一個(gè)Raid1,磁盤(pán)3和磁盤(pán)4又組成另外一個(gè)Raid1;這兩個(gè)Raid1組成了一個(gè)新的 Raid0。如寫(xiě)在硬盤(pán)1上的數(shù)據(jù)1、3、5、7,寫(xiě)在硬盤(pán)2中則為數(shù)據(jù)1、3、5、7,硬盤(pán)3中的數(shù)據(jù)為0、2、4、6,硬盤(pán)4中的數(shù)據(jù)則為0、2、4、6,因此數(shù)據(jù)在這四個(gè)硬盤(pán)上組合成 Raid10,且具有raid0和raid1兩者的特性。
雖然Raid10方案造成了50%的磁盤(pán)浪費(fèi),但是它提供了 200%的速度和單磁盤(pán)損壞的數(shù)據(jù)安全性,并且當(dāng)同時(shí)損壞的磁盤(pán)不在同一 Raid1中,就能保證數(shù)據(jù)安全性。假如磁盤(pán)中的某一塊盤(pán)壞了,整個(gè)邏輯磁盤(pán)仍能正常工作的。[2]當(dāng)我們需要恢復(fù)RAID 10中損壞的磁盤(pán)時(shí),只需要更換新的硬盤(pán),按照RAID10的工作原理來(lái)進(jìn)行數(shù)據(jù)恢復(fù),恢復(fù)數(shù)據(jù)過(guò)程中系統(tǒng)仍能正常工作。原先的數(shù)據(jù)會(huì)同步恢復(fù)到更換的硬盤(pán)中。
總的來(lái)說(shuō),RAID 10以RAID 0為執(zhí)行陣列,以 RAID 1為數(shù)據(jù)保護(hù)陣列,它具有與RAID 1一樣的容錯(cuò)能力,用于容錯(cuò)處理的系統(tǒng)開(kāi)銷(xiāo)與單獨(dú)的鏡像操作基本一樣,由于使用RAID 0作為執(zhí)行等級(jí),因此具有較高的 I/O寬帶;對(duì)于那些想在RAID 1基礎(chǔ)上大幅提高性能的用戶(hù),它是一個(gè)完美的解決方案。RAID 10適用于數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)器等需要高性能、高容錯(cuò)但對(duì)容量要求不大的場(chǎng)合。


RAID 10特性:

RIAD 2
這是RAID 0的改良版,以漢明碼(Hamming Code)的方式將數(shù)據(jù)進(jìn)行編碼后分割為獨(dú)立的位元,并將數(shù)據(jù)分別寫(xiě)入硬盤(pán)中。因?yàn)樵跀?shù)據(jù)中加入了錯(cuò)誤修正碼(ECC,Error Correction Code),所以數(shù)據(jù)整體的容量會(huì)比原始數(shù)據(jù)大一些。
RIAD 3
它同RAID 2非常類(lèi)似,都是將數(shù)據(jù)條塊化分布于不同的硬盤(pán)上,區(qū)別在于RAID 3使用簡(jiǎn)單的奇偶校驗(yàn),并用單塊磁盤(pán)存放奇偶校驗(yàn)信息。如果一塊磁盤(pán)失效,奇偶盤(pán)及其他數(shù)據(jù)盤(pán)可以重新產(chǎn)生數(shù)據(jù);如果奇偶盤(pán)失效則不影響數(shù)據(jù)使用。RAID 3對(duì)于大量的連續(xù)數(shù)據(jù)可提供很好的傳輸率,但對(duì)于隨機(jī)數(shù)據(jù)來(lái)說(shuō),奇偶盤(pán)會(huì)成為寫(xiě)操作的瓶頸。

RAID 3特性:

RIAD 4
RAID4和RAID3很象,不同的是,它對(duì)數(shù)據(jù)的訪問(wèn)是按數(shù)據(jù)塊進(jìn)行的,也就是按磁盤(pán)進(jìn)行的,每次是一個(gè)盤(pán)。在圖上可以這么看, RAID3是一次一橫條,而RAID4一次一豎條。它的特點(diǎn)的 RAID3也挺象,不過(guò)在失敗恢復(fù)時(shí),它的難度可要比RAID3大得多了,控制器的設(shè)計(jì)難度也要大許多,而且訪問(wèn)數(shù)據(jù)的效率不怎么好。

RIAD 5
RAID 5不單獨(dú)指定的奇偶盤(pán),而是在所有磁盤(pán)上交叉地存取數(shù)據(jù)及奇偶校驗(yàn)信息。在RAID 5上,讀/寫(xiě)指針可同時(shí)對(duì)陣列設(shè)備進(jìn)行操作,提供了更高的數(shù)據(jù)流量。RAID 5更適合于小數(shù)據(jù)塊和隨機(jī)讀寫(xiě)的數(shù)據(jù)。RAID 3與RAID 5相比,最主要的區(qū)別在于 RAID 3每進(jìn)行一次數(shù)據(jù)傳輸就需涉及到所有的陣列盤(pán);而對(duì)于RAID 5來(lái)說(shuō),大部分?jǐn)?shù)據(jù)傳輸只對(duì)一塊磁盤(pán)操作, 并可進(jìn)行并行操作。在RAID5中有“寫(xiě)損失”,即每一次寫(xiě)操作將產(chǎn)生四個(gè)實(shí)際的讀 /寫(xiě)操作,其中兩次讀舊的數(shù)據(jù)及奇偶信息,兩次寫(xiě)新的數(shù)據(jù)及奇偶信息。

RAID 5特性:

備注:至少3塊盤(pán) 只允許壞一塊盤(pán) 讀寫(xiě)性能好 壞掉一塊盤(pán)讀性能變慢
RIAD 各級(jí)別優(yōu)缺點(diǎn)
RAID 0 存取速度最快 沒(méi)有容錯(cuò)
RAID 1 完全容錯(cuò)成本高
RAID 2 帶海明碼校驗(yàn),數(shù)據(jù)冗余多,速度慢
RAID 3 寫(xiě)入性能最好 沒(méi)有多任務(wù)功能
RAID 4 具備多任務(wù)及容錯(cuò)功能 Parity 磁盤(pán)驅(qū)動(dòng)器造成性能瓶頸
RAID 5 具備多任務(wù)及容錯(cuò)功能 寫(xiě)入時(shí)有overhead
RAID 0+1/RAID 10 速度快、完全容錯(cuò) 成本高
硬RAID與軟RAID
一般來(lái)說(shuō),要實(shí)現(xiàn) RAID可以分為硬件實(shí)現(xiàn)和軟件實(shí)現(xiàn)兩種。所謂硬 RAID就是指通過(guò)硬件實(shí)現(xiàn),同理軟件實(shí)現(xiàn)的就稱(chēng)作為軟 RAID。
下面就來(lái)分別解釋一下硬RAID與軟RAID。所謂硬RAID,就是用專(zhuān)門(mén)的RAID控制器將硬盤(pán)和電腦連接起來(lái),RAID控制器負(fù)責(zé)將所有的 RAID成員磁盤(pán)配置成一個(gè)虛擬的 RAID磁盤(pán)卷。對(duì)于操作系統(tǒng)而言,他只能識(shí)別到由 RAID控制器配置后的虛擬磁盤(pán),而無(wú)法識(shí)別到組成RAID的各個(gè)成員盤(pán)。軟 RAID就是不使用RAID控制器,而是直接通過(guò)軟件層實(shí)現(xiàn)的 RAID。與硬RAID不同的是,軟RAID的各個(gè)成員盤(pán)對(duì)于操作系統(tǒng)來(lái)說(shuō)是可見(jiàn)的,但操作系統(tǒng)并不把各個(gè)成員盤(pán)呈現(xiàn)給用戶(hù), 而只是把通過(guò)軟件層配置好的虛擬 RAID卷呈現(xiàn)給用戶(hù),使用戶(hù)可以像使用一個(gè)普通磁盤(pán)一樣使用RAID卷。
來(lái)自:開(kāi)源Linux
推薦閱讀
DAS、NAS、SAN 三種存儲(chǔ)技術(shù)比較!
Linux 環(huán)境下安裝 Nexus 私服存儲(chǔ)庫(kù)
面試官:如果要存 IP 地址,用什么數(shù)據(jù)類(lèi)型比較好?
5分鐘搞懂網(wǎng)線的水晶頭超5類(lèi)和6類(lèi)的區(qū)別

