這樣清新脫俗講解RAID技術的方式你見過咩?
最近發現某國外網友制作的一張
RAID講解圖
不得不佩服這位網友的奇思妙想
幾個飲水機和桶
就把復雜問題生動形象地化解了
▼▼▼
>>>>
1. Standalone:
第一張圖很好理解,我們日常使用的PC就采用這樣的數據讀取方式。數據存放在一塊硬盤里,且只有一塊硬盤,那么自然我們的數據只能從該硬盤中讀取。
>>>>
2. Hot swap:
第二張圖也不難理解,看地上那個水桶。所謂Hot swap概念上來說類似于熱備份。它的數據讀取方式類似于Standalone,唯一不同的是,有一塊備用的硬盤在時刻準備著。一旦正在使用的硬盤出現了問題,那么備用硬盤就要及時更換上,以免造成損失。但這樣的方式也存在著一些弊端,比如硬盤更換需要時間,這對很多企業來說是致命的。
>>>>
3. Cluster:
第三個圖是什么意思呢?Cluster是集群的意思。你可以看作兩臺獨立的PC, 用戶可以到左邊的飲水機來取得數據,也可以到右邊的飲水機來獲得數據,但是這樣比較浪費硬件資源,在企業級里不可能讓多臺服務器提供同樣數據和同樣服務的。
>>>>
4. RAID 0:
通常稱為帶區,是利用帶區數據映射技巧的特定性能。它的優勢就是數據的讀寫速度較快,但是沒有冗余功能,如果一個磁盤(物理)損壞,則所有的數據都無法使用。
>>>>
5. RAID 1:
是一種稱為“磁盤鏡像”的容錯配置。數據在被寫到其中一塊硬盤的同時,也被復制到另一塊硬盤中。這樣的方式可以防止硬盤損壞帶來的數據丟失,但是即使是2塊硬盤,其存儲的空間也相當于只有一塊硬盤的大小。而且I/O傳輸速率卻無法得到改善,也就是飲水機的出水口并沒有變大或者變多。
>>>>
6. RAID 5:
分布式奇偶校驗的獨立磁盤結構,常使用緩沖技術來降低性能的不對稱性。采取RAID 5的方式,I/O傳輸速率會得到大大的提高,而且一塊硬盤壞了也沒有關系,還有備用的其他硬盤。RAID 5的另一個好處是它允許“熱插拔”,這意味著如果陣列中的某磁盤出現故障,該磁盤可以與新磁盤交換而無需關閉服務器或NAS,也不必中斷正在訪問服務器或NAS的用戶。
>>>>
7. RAID 0+1:
這就是我們常說的RAID 10,也就是是RAID 1和0的組合。它結合了RAID 1的鏡像和RAID 0的帶區。可提供優性能,但也很昂貴,需要兩倍于其他RAID級別的磁盤。
1
魚還是熊掌?
傳統用戶的容量與性能煩惱
看完上面的圖和講解,有關RAID的概念是不是就一目了然了?其實除了上面這些,RAID還有其他一些形態,比如RAID 2、RAID 4、RAID 7等,不過經過這么多年的發展,RAID的形態已經基本固定了,主流的形式有這么幾種:RAID 10、RAID 5、RAID 6(與RAID 5類似)。
從性能的角度,由于寫懲罰的影響,RAID 10 的寫性能通常優于RAID 5和RAID 6,因此對于性能關鍵型應用,客戶希望底層采用RAID 10的方式。然而從磁盤利用率的維度,RAID 10的可用容量只有50%,卻也是不合算的(見下圖)。
因此面對這種魚和熊掌的難題,通常客戶會采用以下辦法:
➤ 假設客戶一共購買了11塊大小相同的硬盤(如600G 15K,標稱隨機 IOPS 180),為了獲得更好的寫入性能,取6塊硬盤構建RAID10的組合,寫入IOPS 540,掛載給數據庫應用,容量利用率50%,也就是1.8TB(此處忽略1024和1000的磁盤容量計數差別)。剩下的5塊硬盤構建RAID5的組,以獲取更多的容量,寫入IOPS 225,容量2.4TB,掛載給備份應用。
這種方式實現了性能與容量的平衡,但也有一些缺陷,由于切分了很多磁盤組,磁盤組之間的IO資源是無法共享的。因此作為應對方案出現了資源池化的技術。
池化RAID的優點顯而易見。回到前面的例子,數據庫可能在白天比較忙,備份通常在晚上工作,兩者有一個時間差,但任何一個應用都可以使用11塊硬盤的IOPS。即使采用空間利用率高的RAID5,也有495的隨機IOPS,基本保證數據庫應用。也有些用戶希望追求極限IOPS,因為這個時候的延遲會較小,他們就采用RAID 10的策略,隨機IOPS可以達到990,數據庫應用跑的很爽,晚上跑備份也很快,只是容量會犧牲一些。
現在大家可以看到,磁盤塊級虛擬化解決了數據孤島的問題,均衡了所有的前端IO到磁盤。是不是看起來很完美?其實這種方式依然不能在性能和容量之間求得一個很好的平衡(無論RAID 5還是RAID 10還是會犧牲一些容量或性能)。
//
而這個問題最終被戴爾易安信SC系列獨創的RAID分層技術給有效解決了,魚和熊掌可以得兼!
//
2
RAID分層
讓性能與容量齊飛
簡而言之,RAID分層技術就是把來自主機的數據以RAID 10的方式寫入磁盤,然后利用內部機制,在線完成數據到RAID 5的轉換,實現實際占用空間的節約。
要知道,RAID 10和RAID 5在隨機寫方面性能差異明顯,但讀性能是基本相當的,采用這種技術,讀寫性能都能達到較優狀態。另一方面,由于把磁盤空間從RAID 10轉換為RAID 5,整體空間利用率有所提升,真正實現了容量和性能的平衡。
此時聰明的讀者立馬想到了一個問題,這樣做好是好,但畢竟需要一個數據遷移的過程,會不會影響前端應用的性能呢?
答案是不會的,因為系統通常在比較空閑的時候去做這件事情,例如晚上。就算系統24小時都繁忙,這個任務的優先級也是比較低的,以不影響前端主機IO為前提,并且在極端情況下,客戶還可以選擇不采用這種策略,例如將某些卷設成讀寫均為RAID 10,并非都是強制的。
而且在RAID 10轉化為RAID 5的過程中,系統還把另外兩個重要功能實現了,數據保護與數據縮減。這是SC系列真正巧妙的地方,所謂一箭三雕。
3
一箭三雕
遷移的過程就把大事小事都辦了
數據是企業重要的核心資產,卻總是面臨各種各樣的風險,例如某些心態不好的員工惡意刪除關鍵數據庫資料,或者無意間在一個錯誤的路徑下輸入了一條rm -rf,都會對數據產生破壞,進而影響系統的正常運行,我們會在新聞里面看到類似的事件,還有類似勒索病毒讓你的文件無法打開。
通常這個時候,我們都迫切希望有一個時光隧道,能夠快速回到故障前的狀態,重新找回原來的一切。SC存儲天生就具有這種功能,稱之為數據回放,默認的情況下至少保留7天,一旦發生故障,穿越到最近的時間點,就能找回你的數據。如果你的數據非常重要,還可以把回放的間隔設置的很短,并且結合指針調整的技術,做到細微的性能影響。
在進行數據分層,保存回放的同時,如果客戶需要,SC存儲還能做一件事情,數據去重與壓縮。壓縮和去重的好處大家都明白,但性能的疑慮又產生了,畢竟需要切片,計算特征值,比對等等一系列的事情。這點SC存儲比較務實,去重壓縮的目的是為了縮減空間,找一個空閑的時間慢慢做。數據先寫入RAID 10,然后在轉換成RAID 5的時候把這個事情一起做了。
講到這里大家都明白了,數據遷移是有開銷,但如果在遷移的時候把數據保護,數據縮減這些功能一起實現了,那這點開銷就會顯得非常有價值。而且從SC存儲十多年的客戶沉淀看,并沒有因此而導致任何的副作用。
回到剛開始我們的討論,由于采用了獨特的RAID技術,SC系列的旗艦產品SC9000能夠在延遲小于1ms的情況下實現200萬的IOPS;而且采用了RAID分層,壓縮去重等數據縮減技術,又大大了節約了磁盤空間,降低了總體擁有成本。數據回放(快照)在性能影響小的情況下保留了用戶的多個數據副本,保護了用戶數據的邏輯故障。而且為了提升可用性,SC系列能夠實現原生的存儲雙活,用存儲節點冗余的方式避免了設備的單點故障。
此外,傳統存儲的擴容和升級換代也是一個讓用戶頭疼的問題,很多情況下用戶需要申請停機窗口,把老存儲的數據遷移到新的存儲上,再重新啟動業務。而SC系列擁有的在線遷移的功能,能夠在新老存儲節點間在線遷移數據,而不影響前端的業務運行。在可管理性方面,SC系列存儲有基于HTML5的Web管理方式,DSM軟件專有管理方式,CloudIQ云管理方式,除了日常的維護之外,還能夠提供咨詢建議,實現人工智能的運維。
SC存儲助您數據安全無憂
在我走訪的SC客戶時,經常會聽到客戶有這樣的感慨:原來還有這樣的功能啊,早知道上一次我們就不需要從備份里面恢復數據了。
是的,作為一款軟件定義的存儲產品,SC系列的功能是非常多的,并且依然在不斷豐富中,滿足您各種工作負載的需求,助您安全無憂的管理核心數據!
▲點戴爾易安信SC系列
相關閱讀推薦:三年多啦,那么多IT人還沒有搞定這個問題