DBA 的親們應該知道的 RAID 卡知識
對于數據庫這種特殊應用IOPS往往會成為瓶頸,突破的這個瓶頸的有效方法不多,軟件方面主要是讀寫分離,垂直拆分,分區表技術,cluster。硬件方面主要是raid,和SSD。
通常都是軟件和硬件同時優化,相對于成考考慮,硬件使用raid的情況較多,今天分享下硬件raid知識。
什么是raid?
raid可以提供數據備份技術、擴展存儲空間和提高存儲性能。關于raid 0,raid 1,raid0+1,raid1+0,raid 5這些理論基礎我就不重復提及了,google下很多的。
對于數據庫應用,通常我們換選擇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、環保
本文轉載自: http://www.mysqlops.com/2012/03/10/dba%E7%9A%84%E4%BA%B2%E4%BB%AC%E5%BA%94%E8%AF%A5%E7%9F%A5%E9%8...