獨立磁盤冗餘陣列(Redundant Arrays of Independent Disks,RAID),是把相同的數據分塊存儲在多塊磁盤的解決方案,其基本作用就是把多個相同容量的硬盤組合起來,使其成為一個同時具備大容量和快速讀寫特性的硬盤組,RAID把多個磁盤組合成一個邏輯分區,PC将多個硬盤組成的RAID當成一個邏輯單元。實際上,RAID是一種虛拟化技術,它将多個物理磁盤驅動器虛拟成一個大容量的邏輯驅動器,RAID内部由控制器或者程序來管理存儲工作,管理員隻需管理單個虛拟驅動器,而無需分别管理每塊硬盤,RAID 可以動态增減磁盤驅動器,可自動進行數據校驗和數據重建,大大簡化了硬盤管理的工作。不同版本的RAID比單塊硬盤有以下幾點好處:
但需要注意的是,RAID隻對順序讀寫速度有提升,也就是日常移動文件和傳輸數據,而對系統響應,應用加載和遊戲加載沒有太大幫助,因為這些主要取決于4K随機讀寫和硬盤響應速度(尋道時間),由于機械硬盤的物理結構缺陷,響應速度無論如何都達不到固态硬盤的水平,所以RAID一般用于服務器和NAS上,但如果你有兩塊相同的硬盤,組一個RAID提升讀寫也不妨。下面是性能對比,圖片來源于互聯網(殺人書警告)
SSD,單塊硬盤,RAID0對比
如圖
磁盤陣列大家族
RAID根據數據處理和存儲方式的不同可以分為多種級别,如上圖所示,下面來簡單介紹比較常用的幾個RAID級别
RAID0亦稱stripe,一般用作提速和擴容,它在所有版本中存儲性能最高,而穩定性最低,和RAID1是兩個極端,它的優點也是它的缺點:把連續的數據分散到多個磁盤上存取,處理數據時多個物理磁盤并行工作,每塊磁盤負責存儲一部分數據,從而充分利用總線(Bus)帶寬,增加讀寫速度,但這樣也導緻任何一塊磁盤失效,所有的數據都會丢失,安全性最低。實現RAID0至少需要兩塊硬盤,RAID0的總容量是所有單硬盤容量的總和,讀寫速度為單塊硬盤速度X組成RAID的硬盤數,随機和持續讀寫都比單塊硬盤要好。總的來說,RAID0的讀寫速度最快,硬盤利用率最高,如果對數據安全沒有過度要求(RAID0一時爽),可以考慮裝機時買幾塊硬盤和RAID卡組一個RAID0來加快數據傳輸的速度。
RAID0示意
RAID1通過兩組以上的N個磁盤互作鏡像,一般用于數據安全要求高的服務器或主機,RAID 1的每一個磁盤都具有一個對應的鏡像盤,任何時候數據都同步鏡像,系統可以從一組鏡像盤中的任何一個磁盤讀取數據。因此RAID1的容錯率和穩定性最高,隻要有任何一塊物理磁盤完好,數據就不會丢失,具有很高的數據冗餘能力,但是相應的成本也會更高。實現RAID1需要的磁盤數最少為2塊,無論幾塊硬盤組成RAID1,可使用的容量都為單塊硬盤的容量,如果硬盤容量不相同,則組成raid1後虛拟磁盤的容量為幾塊硬盤中容量最小的硬盤的容量,由于數據寫入時需要寫入多塊硬盤并做比較,所以寫入速度較慢,同時,如果兩塊硬盤的速度不同的話,那麼速度較快的那塊硬盤依然會停下來等待速度較慢的那塊硬盤完成任務之後再進行下一步行動。總的來說,RAID1的數據安全程度最高,但可用容量最低,僅為單塊硬盤的容量,如果對數據安全有極緻的要求,可以使用RAID1。
RAID1示意
RAID10其實是RAID0和RAID1的組合,至少需要4塊硬盤,将任意N塊(N最好為2的倍數,否則會造成浪費)硬盤組成RAID1,這幾塊組成RAID1的硬盤又可以看成一塊大容量硬盤,再将兩個或多個組成RAID1的硬盤組組一個RAID0,這樣既保證了速度,又保證了安全,并且隻有在其中一個硬盤組的數據完全損壞的情況下,才會丢失數據。
RAID10示意
RAID5是RAID0和RAID1的折中方案,RAID5在RAID0的基礎上增加了奇偶校驗信息,把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和相對應的數據分别存儲于不同的磁盤上,也就是說有相當于一塊磁盤容量的空間用于存儲奇偶校驗信息,且當一塊硬盤損壞時,系統能根據存儲的校驗信息恢複損壞的數據,但最大隻能損壞一塊硬盤,寫入數據時數據會分成幾部分分别寫入到組成RAID的硬盤中,同時生成并寫入奇偶校驗信息,還能在損壞的硬盤被更換後根據其它硬盤上的校驗信息恢複損壞硬盤上的數據,從而保證可靠性。組成RAID5的硬盤至少需要3塊,RAID5可用的磁盤容量為N-1個單塊硬盤的容量,N為組成RAID5硬盤的數量,讀寫速度為N-1個單塊硬盤最大讀寫速度。總的來說,RAID5就好像RAID0的升級版,用一塊硬盤的代價換來了更快的讀寫和較高的可靠性,以及更大的容量,如果你不希望數據丢失,又想要更快的讀寫和更大的容量,那麼可以選擇RAID5。
RAID5示意
RAID6在RAID5的基礎上,增加了一位校驗信息,也就是增加了一個奇偶校驗塊,它比RAID5的可靠性更高一些,同時存儲校驗信息的硬盤也從一塊增加到了兩塊,相應的,組成RAID6的硬盤也從至少3塊增加到了至少四塊,讀寫速度為N-2個單塊硬盤最大讀寫,可用容量為N-2個單塊硬盤容量,最大容錯為2塊,也就是兩塊硬盤同時壞掉,根據統計學原理,這件事發生的概率為兩塊硬盤損壞概率相乘,大大增加了穩定性。
RAID6示意
RAID0,1,5,6,10涵蓋了大部分日常使用場景,RAID2,3,4就不多作介紹,感興趣的可以自行百度。
下面來了解一下如何實現RAID
RAID有兩種實現方式:硬件磁盤陣列(硬RAID),軟件磁盤陣列(軟RAID)
硬RAID:全部通過硬件來實現RAID功能的磁盤陣列,分為基于主機和基于陣列的硬件RAID
基于主機的硬RAID一般是将RAID控制器集成在主闆上(一般是南橋),優點是不必占用PCIe槽,更方便管理,成本也更低,但缺點是會占用CPU資源,而且會增加南橋芯片和Bus負載,速度方面也不如自帶CPU和緩存的陣列卡。
基于陣列的硬RAID就是我們通常所說的陣列卡,陣列卡上集成了RAID控制器,高速緩存,CPU等,能很好地獨立處理大量讀寫需求而不占用系統的資源,有的陣列卡還自帶電池,以保障數據安全。陣列卡根據協議不同,有IDE陣列卡,SAS陣列卡,SATA陣列卡和SCSI陣列卡,IDE性能過于低下,已經被時代淘汰,比較常見的是SATA陣列卡,它主要用于大容量的數據存儲領域,家用NAS,網吧等地方都能見到它的身影,但性能不及SCSI(Small Computer System Interface,小型計算機接口)和SAS(Serial Attached SCSI,串行連接SCSI接口)陣列卡,SAS是并行SCSI接口之後開發出的全新接口,是新一代的SCSI接口,采用并行接口時,傳輸數據和信号的總線是複用的,傳輸速率會受到一定限制。如若提高傳輸速率,那麼傳輸的數據和信号往往會産生幹擾,導緻錯誤。在這種情況下,串行接口技術就産生了,SATA(Serial AT Attachment,串行ATA接口)和SAS都是串行接口技術應用的例子,SATA可以看做是SAS的一個子集,SAS性能更好,扯遠了,SAS陣列卡主要用于數據中心和有高性能穩定RAID解決方案需要的場所,比如高端工作站或服務器,SCSI可以看做是SAS的前輩,目前已經基本淘汰。
SATA陣列卡
軟RAID使用基于主機和操作系統的軟件來提供RAID功能,這樣就使得軟RAID幾乎不需要成本,你隻需要安裝好軟件和硬盤,用鼠标點一點就能實現RAID功能(Windows的軟RAID隻要打開自帶的磁盤管理并進行相關操作即可,具體請自行百度或者等我下一篇教程XD),但相應的,由于沒有獨立的CPU和緩存,軟RAID要占用主機的一部分資源,且需要CPU來進行RAID運算,會影響系統的整體性能,且隻支持有限的RAID級别,數據的安全性完全不如硬RAID,軟RAID 與主機操作系統綁定,因此,需要對軟RAID或操作系統升級進行兼容性驗證,隻有當RAID 軟件和操作系統兼容時,才能進行升級。一般不推薦使用軟RAID,怕麻煩(其實裝系統更麻煩)或者想試試水,嘗個鮮的盒友可以試試。
這隻是個圖例,我并沒有做軟RAID
天上不會掉餡餅,一分錢一分貨的道理對任何消費者都适用,不要指望幾塊便宜的機械硬盤能跟SSD打,RAID也隻是人們為了提升效率找到的一種解決方案(奇技淫巧XD),在摩爾定律的驅使下,未來的大容量SSD一定會更加便宜高速,也肯定會出現新技術解決機械硬盤響應速度慢等問題,我們需要做的,就是等(等等黨究極勝利!),還有,準備好自己的錢包。
碼文不易,各位爸爸點個關注吧,秋梨膏! ,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!