如何保證服務器上數據的安全呢?用多個硬盤建立RAID恐怕是最普遍的手段了,它可以保障我們的數據安全。今天就由筆者通過一問一答的方式為各位讀者介紹RAID相關的知識。
問題1:什么是RAID?它是由什么組成的?
RAID的中文名字為磁盤冗余陣列,顧名思義它是由磁盤組成陣列而成的。因此RAID需要至少兩塊硬盤組成。RAID的基本想法就是把多個便宜的小磁盤組合到一起,成為一個磁盤組,使性能達到或超過一個容量巨大、價格昂貴的磁盤。
問題2:什么情況需要使用RAID?
根據不同的實際情況作為網絡管理員的我們應該為服務器采取不同的RAID種類。目前最流行的是RAID 0、RAID 1、RAID 5。其中RAID 1和RAID 5過多的用于保證數據的安全,最大程度的防止磁盤意外壞掉而丟失數據情況的發生。而RAID 0則是為了提高磁盤讀取的速度,不提供任何數據備份和保障功能。知道了不同RAID應用的情況我們根據實際情況進行選擇即可。
當然那些需要在硬盤上保存大量數據的人采用 RAID 技術將會很方便。主要表現在以下幾個方面:
(1)增強了速度 ,服務器可以在同一時間從多個硬盤上讀取數據。
(2)擴容了存儲能力,多個硬盤組成更大的空間提供給服務器使用。
(3)可高效恢復磁盤,RAID提供了相當高的數據冗余功能,我們可以保證數據的完整無缺。
問題3: RAID都有哪些種類呢?希望可以使用直觀容易懂的語言來描述
對于RAID種類恐怕很多文章都介紹過,這里我就不詳細說明理論東西了。恰巧筆者看到了一個外國描述RAID各個級別的圖片,感覺很多地方定義得非常準確,而且通過看圖了解RAID效果會更加顯著。(如圖)
(1)先為大家講解第一個小圖,也就是標記著standalone的飲水機,該圖主要是通過礦泉水桶為飲水機提供水源這個現實例子來比喻RAID各個種類的區別。兩個飲水機的出水孔相當于讀取數據的接口,而礦泉水桶里的水則是寶貴的數據。這些數據正是通過出水孔這個數據接口而被用戶讀取的,相應的一個礦泉水對應著一塊硬盤。
正常情況下我們的計算機(例如家的里計算機而不是服務器)是只有一個硬盤的,這時我們要喝水(讀取硬盤數據)都是由這一個礦泉水桶提供水源的。
(2)接下來看第二個小圖,也就是標記著cluster的圖。所謂cluster就是集群的意思,集群就是用多臺服務器合并為一臺,所有服務器提供的服務和數據都是一樣的。就像圖中顯示的有兩臺飲水機,說明有兩臺服務器,這兩臺服務器都可以提供用戶數據(水源)。
用戶可以到左邊的飲水機來取得數據,也可以到右邊的飲水機來獲得數據,這樣無形中就提供了用戶獲得水(數據)的效率。但是這種cluster集群有一個缺點,那就是需要多臺服務器的硬件支持,在一定程度上造成了浪費。一般來說中小企業是不可能讓多臺服務器提供同樣數據和同樣服務的。
(3)第三個小圖標記著Hot swap,它是熱交換的意思。概念上有點類似于熱備份。即有一個硬盤,出水量也和standalone一樣。但是當飲水機上的礦泉水桶出現問題時,例如水沒了或者桶破了,這時馬上采取熱交換技術,將旁邊的礦泉水桶替代出問題的桶放到飲水機上,從而繼續提供服務。但是這種方法也存在一個缺點,那就是需要一個桶做備份,而且僅僅在原來桶出問題的情況下該桶才派上用場。另外換桶過程是需要時間的,無形中影響了服務的提供。
(4)第四個圖就是RAID中的老大了,它他是最早的RAID即RAID 0級,是利用帶區數據映射技巧的特定性能。也就是說,當數據寫入磁盤組的時候,被分成帶區,交錯寫入磁盤組的磁盤中。這帶來了高I/O性能,低開銷,但不提供任何冗余。磁盤組的存儲量等于總的各磁盤容量之和。
當飲水機上的兩個桶中任何一個出問題時用戶都不能通過出水孔獲得寶貴的數據(水源),因此它不提供冗余功能。當然在獲得水源的過程中用戶是通過兩個礦泉水桶同時獲得的,自然在出水量等多方面比只使用一個桶有優勢。提高了數據讀寫的速度是RAID 0的最大特色。
小提示1:
可能有的讀者會問在RAID 0圖中最上面的那個桶出了問題不是一樣可以出水嗎?其實這個圖僅僅是方便大家記憶和理解RAID,不可能通過簡單的圖就能100%準確的反映出只有進行理論描述才能說清楚的RAID種類。因此大家在理解圖片的過程中也不要太過于拘泥。
(5)第五個圖也是RAID中比較常用的,Level 1即RAID 1級,就是常常提到的鏡像RAID,相比其他各級別RAID來說,這個級別使用的時間較長。RAID 1通過把同樣的數據寫到磁盤組的每一個磁盤上,將“鏡像”復制到每個磁盤上,來提供數據冗余。鏡像由于它的簡單實現和數據的高可信度而一直很受歡迎。
1級在讀數據操作時,并行處理2個或更多的磁盤,因此數據傳輸速率高,但是其他的操作時無法提供高速的I/O傳輸速率。1級提供了非常好的數據的高可信度,并且改善了讀數據操作的性能,但是耗費很大。要求組成磁盤組的各磁盤規格相同,而組成后磁盤組的容量僅僅等于一塊磁盤的容量。
正如圖中顯示的一樣,有兩個礦泉水桶放在飲水機上,這樣當其中一個出了問題,例如桶壞或沒水時并不會影響用戶使用礦泉水,因為另一個桶將會完好的提供水源。當然由于出水口沒有出現任何擴大,所以出水量和使用一個礦泉水桶是一樣的。因此出水速度沒有變化卻多加了一個桶使得RAID 1雖然可以提供最大程度的冗余,但是無法提高讀取速度。
小提示2:
有一個細節需要各位的讀者特別注意,在RAID 1的圖片中是兩個礦泉水桶共用一個供水口,自然出水量沒有什么變化。而下面的RAID 5則不同。
(6)第六個圖是服務器最常用的RAID級別,即RAID 5。筆者所在公司購買的服務器不管是DELL的還是IBM或者曙光服務器都是使用這個最常用的RAID類型。該級別的RAID是通過把奇偶校驗分布到磁盤組中的一些或所有磁盤上,5級常使用緩沖技術來降低性能的不對稱性。如果組成磁盤組的各磁盤規格相同,磁盤組容量等于磁盤的總容量,減去一塊磁盤的容量。
上面提到了RAID 1只是使用了一個供水口,沒有提高出水速度。然而在RAID 5中我們會發現圖中三個礦泉水桶分別安裝在了三個進水口中,這樣我們就可以同時由三個水桶為用戶提供水源了,自然在出水速度上得到了大幅度提高。同樣三個礦泉水桶有一個出現問題也沒有關系,不會影響到飲用水源。
小提示3:
有兩點是圖中沒有表現出來的,這里再說明一下方便讀者有一個清晰的認識。(1)圖中只顯示了三個水桶,實際上在現實工作中只要我們有三個以上的硬盤(水桶)就都可以配置RAID 5了。四個,五個甚至更多的硬盤來配置RAID 5也是沒有問題的。(2)在我們配置RAID 5后如果出現兩個以上硬盤出現問題時,數據是不能得到有效的保護的。也就是說RAID 5只能在其中一塊硬盤出問題時保證數據完好。
(7)最后一個圖實際上是前面介紹的RAID 0和RAID 1的組合,只要大家對RAID 0和RAID 1有了清晰的認識,這個圖理解起來就簡單得多了,他實際上就是先配置為RAID 0然后再配置RAID 1,相應的發揮了RAID 0和1的優點,避免了他們的缺點。鑒于篇幅關系這里就不詳細介紹了,畢竟RAID 0+1在實際工作中使用的機會沒有前面介紹的RAID 5多。
總結:
對于服務器不是很熟悉的讀者來說,掌握RAID的概念是最最基本的。它是我們進入服務器知識領域的敲門磚,希望本篇文章中的飲水機圖可以幫助大家理解各種RAID和數據冗余類別。最后再重申一下圖片僅僅是為了方便大家理解和記憶,對于RAID這樣理論的東西很多細節和特點是無法通過簡單的圖片所表現