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