Java写入磁盘阵列_磁盘阵列方案
將多個(gè)硬盤(pán)按照不同的規(guī)則組合在一起形成各種集群化的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),這些存儲(chǔ)結(jié)構(gòu)被稱為磁盤(pán)陣列(Redundant Arrays of Independent Disks,RAID)。
目前磁盤(pán)陣列結(jié)構(gòu)有多種,包括 RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 10/01、RAID 50等。其中RAID 2、RAID 3、RAID 4這三種陣列結(jié)構(gòu)常用于陣列研究,生產(chǎn)環(huán)境中常使用的陣列結(jié)構(gòu)為RAID 0、RAID 1、RAID 5和RAID 10/01。
RAID 0
RAID 0陣列結(jié)構(gòu)是所有陣列結(jié)構(gòu)中讀寫(xiě)性能最好的,也是所有陣列結(jié)構(gòu)中實(shí)現(xiàn)思路最簡(jiǎn)單的:RAID 0陣列結(jié)構(gòu)沒(méi)有數(shù)據(jù)冗余機(jī)制和數(shù)據(jù)恢復(fù)機(jī)制,它至少需要兩個(gè)硬盤(pán)進(jìn)行構(gòu)造。整個(gè)RAID 0陣列結(jié)構(gòu)就是將參與RAID 0陣列構(gòu)建的所有硬盤(pán)進(jìn)行容量累加,從而形成一個(gè)更大的、對(duì)上層操作系統(tǒng)統(tǒng)一的存儲(chǔ)容量。所以RAID 0陣列的存儲(chǔ)容量就是這些硬盤(pán)的容量進(jìn)行累加。當(dāng)需要寫(xiě)入的數(shù)據(jù)到達(dá)陣列控制器,后者會(huì)向其下的硬盤(pán)設(shè)備分發(fā)這些數(shù)據(jù)。這樣原來(lái)可能只由一個(gè)硬盤(pán)承擔(dān)的讀寫(xiě)壓力就會(huì)被分擔(dān)到多個(gè)硬盤(pán)上,最終提高了整個(gè)陣列的讀寫(xiě)性能。RAID 0陣列結(jié)構(gòu)存儲(chǔ)速度的優(yōu)勢(shì)非常明顯,且參與構(gòu)造陣列的磁盤(pán)數(shù)量越多陣列速度越快(峰值速度最終會(huì)受到總線、外部接口規(guī)范、控制芯片制造工藝等因素的限制)。但是RAID 0陣列結(jié)構(gòu)的缺點(diǎn)也很明顯:由于陣列結(jié)構(gòu)沒(méi)有容錯(cuò)機(jī)制或者數(shù)據(jù)恢復(fù)機(jī)制,當(dāng)陣列中的一個(gè)或者多個(gè)磁盤(pán)發(fā)生故障時(shí),整個(gè)陣列結(jié)構(gòu)就會(huì)崩潰并且不能恢復(fù)。所以在實(shí)際應(yīng)用中,只有那些單位價(jià)值不高且每天又需要大量存儲(chǔ)的數(shù)據(jù)才會(huì)使用RAID 0陣列結(jié)構(gòu)進(jìn)行存儲(chǔ),例如日志文件數(shù)據(jù)。
RAID 1
磁盤(pán)鏡像陣列或者磁盤(pán)冗余陣列。它的構(gòu)造特點(diǎn)是陣列結(jié)構(gòu)中的每一個(gè)磁盤(pán)互為鏡像。RAID 1陣列控制器將會(huì)首先把這個(gè)數(shù)據(jù)做成N個(gè)副本(N的數(shù)量和陣列結(jié)構(gòu)中物理磁盤(pán)的數(shù)量相等),實(shí)際上鏡像副本的單位為扇區(qū)或者Flash Page。這些副本會(huì)分別存儲(chǔ)到陣列結(jié)構(gòu)的各個(gè)磁盤(pán)中。在進(jìn)行數(shù)據(jù)讀取時(shí),RAID 1 陣列結(jié)構(gòu)中的某一塊磁盤(pán)將會(huì)作為主要的數(shù)據(jù)讀取源頭,當(dāng)這個(gè)源頭出現(xiàn)吞吐量瓶頸時(shí),RAID 1陣列控制器會(huì)主動(dòng)到其它鏡像磁盤(pán)讀取數(shù)據(jù)。所以RAID 1陣列的數(shù)據(jù)讀取性能還是要比單個(gè)磁盤(pán)的性能要好,但是寫(xiě)入性能卻差了很多。
RAID 10
四塊硬盤(pán)是組建RAID 10陣列結(jié)構(gòu)的最小要求。它們首先被兩兩分組形成兩個(gè)獨(dú)立的RAID 1結(jié)構(gòu),這也意味著這些硬盤(pán)的容量最好是一樣的,否則每組RAID 1結(jié)構(gòu)會(huì)基于容量最小的那塊硬盤(pán)確認(rèn)自己的容量。接著獨(dú)立工作的兩組RAID 1再組成RAID 0陣列結(jié)構(gòu)。
RAID 01
和RAID 10陣列結(jié)構(gòu)相似的陣列結(jié)構(gòu):RAID 01(或稱為RAID 0 + 1),它們的構(gòu)造區(qū)別是,后者首先將若干磁盤(pán)以RAID 0的方式進(jìn)行組織,然后再分組成多個(gè)獨(dú)立的RAID 1結(jié)構(gòu)。
RAID 5
RAID 5陣列基于奇偶校驗(yàn)原理,它的算法核心是異或運(yùn)算(XOR)。RAID 5陣列結(jié)構(gòu)同一時(shí)間內(nèi)只允許有一塊硬盤(pán)出現(xiàn)故障,出現(xiàn)故障的硬盤(pán)需要立即進(jìn)行更換。
總結(jié)
以上是生活随笔為你收集整理的Java写入磁盘阵列_磁盘阵列方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python获取行号_在python中获
- 下一篇: 大话西游维护完怎么刷服务器,大话西游2免