西瓜哥 發(fā)表于:13年11月11日 14:00 [原創(chuàng)] DOIT.com.cn
存儲在線專欄文章:今天我們來聊聊數(shù)據(jù)庫定義存儲第三部分——SAP。說起內存數(shù)據(jù)庫,大家第一個想到的就是SAP HANA。HANA(High-Performance Analytic Appliance)指的是高性能分析設備,一看這個名字就知道主要應用于實時數(shù)據(jù)分析,而且是一個軟硬件一體的東東。SAP 2010年正式發(fā)布了HANA軟件,但由于SAP沒有硬件,因此必須聯(lián)合硬件廠商一起提供。SAP HANA作為第一款商用的內存數(shù)據(jù)庫產品,發(fā)展迅速,成為SAP最快的增長點之一。SAP HANA不僅適用OLAP業(yè)務,目前也在向OLTP場景推廣。
大家可能會問,SAP HANA既然是內存數(shù)據(jù)庫,和存儲有啥關系,因為數(shù)據(jù)都在內存里進行計算了?
SAP內存數(shù)據(jù)庫的數(shù)據(jù)并不是只在內存里,也會不停寫到硬盤里。SAP HANA使用存儲主要體現(xiàn)在下面幾個方面:
1、保存安裝文件;
2、日常備份;
3、數(shù)據(jù)保存。內存里面更新的數(shù)據(jù),缺省5分鐘保存到硬盤里面一次;
4、redo log存儲。
因此,內存數(shù)據(jù)庫也是需要存儲的,但這些要求對存儲只是一個性能的要求,數(shù)據(jù)量一般也不大,因此,服務器本身插一些SSD盤基本就可以滿足要求了。因此,我們看到很多SAP HANA的一體機,包括華為的服務器也在兼容性列表里。
但SAP HANA橫向擴展(scale out)場景,外置存儲就是比較合適的了。我們先來看看SAP HANA的Scale out的原理。
SAP HANA支持多個主機同時工作,組成一個集群,主機可以很多,比如100個,其中95個工作,5個做熱備。
當任何一個工作主機出現(xiàn)故障,備份主機需要接替工作主機。
SAP HANA架構邏輯上是一種shared-nothing架構,也就是說每個主機有自己獨立的data和logs文件。當備份節(jié)點上沒有數(shù)據(jù),怎么辦,只能從外置存儲里面取。也就是所有的主機都可以訪問一套共享存儲。
主機自己的切換SPA HANA可以自己搞定,但是,數(shù)據(jù)的切換如何做?如何保證故障的主機不要再寫存儲,釋放存儲的資源給新的接管主機來獨占使用。為了解決這個協(xié)調問題,SAP HANA開發(fā)了一個"Storage Connector API",硬件廠商支持這個API,就可以配合實現(xiàn)存儲資源的共享和隔離。
我們分兩種情況去看這個API的作用:
1、共享SAN的情況
這種情況應用比較廣泛,性能也比較好。但由于主機只能看到自己的data和logs文件,因此,一個主機故障,備份主機需要接管這個data和logs文件,而故障主機不能再讀寫,否則文件就損壞了。目前,SAP HANA已經實現(xiàn)了在SUSE LUNIX環(huán)境下,采用SLES(SUSE Linux Enterprise Server)自帶的多路徑軟件,對支持SCSI-3(使用Persistent Reservations)的存儲可以實現(xiàn)存儲資源的切換和隔離。由于現(xiàn)在比較新的存儲一般都支持SCSI-3命令集,因此這種模式支持的廠商最多。因為存儲這邊不用編程,只要測試就可以通過SAP HANA的認證。高端存儲里面目前HDS VSP在認證列表里面(配合日立的刀片服務器)。據(jù)了解,如果不是采用FC連接,采用iSCSI的話,那么存儲側可能需要一些簡單的編程,比如編寫腳本去支持SAP HANA的"Storage Connector API"。
2、共享NAS的情況
如果采用共享的文件系統(tǒng),由于需要互鎖,因此,SAP建議采用集群文件系統(tǒng),如IBM GPFS。GPFS自己有機制來實現(xiàn)文件的共享和隔離。如果是普通的NAS,如NFS文件系統(tǒng),那么SAP建議開發(fā)相應的接口和Storage Connector API配合。當SAP HANA發(fā)現(xiàn)某個生產主機故障后,通知硬件的管理軟件,硬件的管理軟件然后發(fā)出一個指令去復位故障主機,讓故障主機釋放存儲資源。
各位看官可能為問,這個不是也需要服務器配合嗎?因為實際上是要重啟服務器啊。確實是這樣的,而且,SAP HANA的scale out架構認證也不單獨認證存儲,都是和服務器一起認證的。不過這種方式西瓜哥感覺挺怪的,應該不是主流的支持方式。
總的來說,SAP HANA對存儲主要的訴求在性能上,同時能夠支持集群主機的切換就可以了。
我們發(fā)現(xiàn),由于SAP HANA的特殊性,因此并不需要和存儲有太多的配合,如I/O優(yōu)先級、Cache協(xié)調等都不需要,因為工作的時候,數(shù)據(jù)基本都在內存里了。
希望大家積極反饋你的意見和建議,微信掃描如下二維碼,關注微信公眾號“高端存儲知識”,與作者微信互動。通過掌上DOIT移動客戶端,您可以訂閱西瓜哥專欄,第一時間獲得知名專家和業(yè)界領袖的深度剖析與趨勢分析。