對於資料庫這種特殊應用IOPS往往會成為瓶頸,突破的這個瓶頸的有效方法不多,軟體方面主要是讀寫分離,垂直分割,分區表技術,cluster。硬體方面主要是raid,和SSD。
通常都是軟體和硬體同時最佳化,相對於成考考慮,硬體使用raid的情況較多,今天分享下硬體raid知識。
什麼是raid?
raid可以提供資料備份技術、擴充儲存空間和提高儲存效能。以下是常用的RAID raid 0,raid 1,raid0+1,raid1+0,raid 5簡單介紹,詳細的知識可以google下,或參照:http://www.cnblogs.com/Frank-Zhao/archive/2012/04/26/2471229.html。
RAID 0
這種RAID層級從寫操作方面提供最高的輸送量,但是它存在內部冗餘。因為備份檔案是你保護資料的底線,而資料集卻沒有冗餘,所以我不推薦採用這種類型。
RAID 1
這種RAID層級也提供了較進階別的I/O輸送量和一份冗餘拷貝。缺點是採用RAID 1的資料分區大小會受你的物理磁碟大小的限制。一種選擇是把你的備份檔案寫到多個彼此獨立的RAID 1陣列,可能通過利用不同的控制器或者通道來進一步提高I/O輸送量。
RAID 5
採用RAID 5會有一定的寫操作效能損失,因為需要做奇偶性校正。如果你真的想讓備份過程啟動並執行更快,這種RAID層級可能行不通。
RAID 10
採用RAID 10方案,你會同時得到RAID 0和RAID1兩種方案的優點。缺點是實施成本非常昂貴。但是優點是你的I/O輸送量會非常快。既然RAID 10使用了陣列中的所有磁碟機,來獲得更高的I/O利用率,陣列中的磁碟機越多,就越能增加效能。
除了RAID層級,這裡還有一些其他因素需要考慮:
控制器
在設定你的RAID陣列時,要盡量把不同類型的I/O互動孤立到不同的控制器卡或控制器卡的不同通道上。而且,控制器卡越好,效能就越好。
磁碟速度
磁碟機有多種速度。SCSI磁碟機目前運行速度最快可以達到每分鐘15千轉,比IDE磁碟機更快。在大部分情況下,企業級伺服器可能採用SCSI技術,這是更好的選擇。
磁碟容量
你現在可以得到幾個GB大的磁碟機。如果你想儲存大量不經常訪問的資料,那這沒有問題。但是對於要儘可能快速地寫大量資料的操作,磁碟容量大並不能帶來協助。增加陣列中磁碟數比增加幾塊容量非常大的磁碟會更有優勢。
對於資料庫應用,通常我們會選擇raid1+0。他在磁碟空間成本和安全性方面和raid5差不多,但是在效能方面(IOPS)卻明顯優越於raid5,所以對於OLTP系統,我們一般使用raid1+0。
下面我們開始進入正題,raid硬體知識,當然,我們只是站在應用的角度去探討raid硬體裝置的效能和安全。
緩衝
對於一塊中高端的RAID,緩衝是必不可少的。一般raid卡使用的DDR2記憶體顆粒,和我們的記憶體條幾乎相同,adaptec的緩衝叫DRAM,根據硬體技術的發展DDR3肯定會跟上的。
說到緩衝技術就必須說一下兩種緩衝模式。
write through 系統的寫入請求直接寫入硬碟,安全性很高,效能很低。
write back 系統的寫入請求先存放到緩衝,再根據時機統一回寫到硬碟中,由於緩衝的寫速度遠遠高於磁碟,所以這種方式效能可以大大提高。
BBWC
為了挖掘更好的RAID寫入效能,饑渴的DBA肯定想開啟write back功能,讓咱的資料庫飛起來。但是這個時候出現了一個非常嚴重的安全問題,就是突然斷電導致資料丟失的問題(上面提過raid卡使用的是RAM儲存空間,斷電遺失資料,但是系統層已經認為這些資料已經寫入硬碟,所以系統層不能提供任何保護措施),資料丟失對於DBA的親們肯定是不能接收的。那該如何呢?
針對這個問題出現了BBWC–Battery-Backed Write Cache.BBWC的核心就是BBU電池備份單元,它就是一塊鋰電池,在系統開機的情況下處於充電狀態,一旦遇到斷電,就會給緩衝提供重新整理所需的電流,保持資料不丟失,直到下次開機時把資料寫回到磁碟上。有的BBU和raid卡的記憶體做在一個模組上,有些是raid卡通過一個連接線串連一個電池。
BBWC的缺點:
1、每隔1-2年需要跟換電磁,維護麻煩,管理員容易忘記這個事情,如果機器不很遠的機房單獨去機房換電池,成本就高了。
2、更換電磁需要停機,並且需要把機器下架,拆開。
3、由於電池也是一個故障點,所以需要管理員花更多的時間來關心電磁的工作情況
4、電池能夠提供的供電時間最多72小時,初始化需要充電數小時才能使用
5、電池不環保
FBWC
針對BBWC的缺點,出現了FBWC –Flash-Based Write Cache。
FBWC的原理就是再系統以外停電的時候,利用一組“超級電容”中儲存的電量,在較短的時間內(大約1分鐘),將緩衝中的資料備份到RAID卡上的大容量FLASH快閃記憶體中,直到下次開機再把資料回寫到硬碟中。
FBWC和BBWC幾乎完成的目的是一樣的,但是實現方式不同。
FBWC的優點:
1、不需要維護,這點就把管理員們解決出來了
2、資料可以在flash中儲存很多年
3、系統啟動即可用
4、環保