大家可能會問,SAP HANA既然是內存數據庫,和存儲有啥關系,因為數據都在內存里進行計算了???

SAP內存數據庫的數據并不是只在內存里,也會不停寫到硬盤里。SAP HANA使用存儲主要體現在下面幾個方面:

1、保存安裝文件;

2、日常備份;

3、數據保存。內存里面更新的數據,缺省5分鐘保存到硬盤里面一次;

4、redo log存儲。

因此,內存數據庫也是需要存儲的,但這些要求對存儲只是一個性能的要求,數據量一般也不大,因此,服務器本身插一些SSD盤基本就可以滿足要求了。因此,我們看到很多SAP HANA的一體機,包括華為的服務器也在兼容性列表里。

但SAP HANA橫向擴展(scale out)場景,外置存儲就是比較合適的了。我們先來看看SAP HANA的Scale out的原理。

SAP HANA支持多個主機同時工作,組成一個集群,主機可以很多,比如100個,其中95個工作,5個做熱備。

當任何一個工作主機出現故障,備份主機需要接替工作主機。

SAP HANA架構邏輯上是一種shared-nothing架構,也就是說每個主機有自己獨立的data和logs文件。當備份節點上沒有數據,怎么辦,只能從外置存儲里面取。也就是所有的主機都可以訪問一套共享存儲。

主機自己的切換SPA HANA可以自己搞定,但是,數據的切換如何做?如何保證故障的主機不要再寫存儲,釋放存儲的資源給新的接管主機來獨占使用。為了解決這個協調問題,SAP HANA開發了一個"Storage Connector API",硬件廠商支持這個API,就可以配合實現存儲資源的共享和隔離。

我們分兩種情況去看這個API的作用:

1、共享SAN的情況

這種情況應用比較廣泛,性能也比較好。但由于主機只能看到自己的data和logs文件,因此,一個主機故障,備份主機需要接管這個data和logs文件,而故障主機不能再讀寫,否則文件就損壞了。目前,SAP HANA已經實現了在SUSE LUNIX環境下,采用SLES(SUSE Linux Enterprise Server)自帶的多路徑軟件,對支持SCSI-3(使用Persistent Reservations)的存儲可以實現存儲資源的切換和隔離。由于現在比較新的存儲一般都支持SCSI-3命令集,因此這種模式支持的廠商最多。因為存儲這邊不用編程,只要測試就可以通過SAP HANA的認證。高端存儲里面目前HDS VSP在認證列表里面(配合日立的刀片服務器)。據了解,如果不是采用FC連接,采用iSCSI的話,那么存儲側可能需要一些簡單的編程,比如編寫腳本去支持SAP HANA的"Storage Connector API"。

2、共享NAS的情況

如果采用共享的文件系統,由于需要互鎖,因此,SAP建議采用集群文件系統,如IBM GPFS。GPFS自己有機制來實現文件的共享和隔離。如果是普通的NAS,如NFS文件系統,那么SAP建議開發相應的接口和Storage Connector API配合。當SAP HANA發現某個生產主機故障后,通知硬件的管理軟件,硬件的管理軟件然后發出一個指令去復位故障主機,讓故障主機釋放存儲資源。

各位看官可能為問,這個不是也需要服務器配合嗎?因為實際上是要重啟服務器啊。確實是這樣的,而且,SAP HANA的scale out架構認證也不單獨認證存儲,都是和服務器一起認證的。不過這種方式西瓜哥感覺挺怪的,應該不是主流的支持方式。

總的來說,SAP HANA對存儲主要的訴求在性能上,同時能夠支持集群主機的切換就可以了。

我們發現,由于SAP HANA的特殊性,因此并不需要和存儲有太多的配合,如I/O優先級、Cache協調等都不需要,因為工作的時候,數據基本都在內存里了。

希望大家積極反饋你的意見和建議,微信掃描如下二維碼,關注微信公眾號“高端存儲知識”,與作者微信互動。通過掌上DOIT移動客戶端,您可以訂閱西瓜哥專欄,第一時間獲得知名專家和業界領袖的深度剖析與趨勢分析。

未經允許不得轉載:存儲在線-存儲專業媒體 » 存儲專欄:數據庫定義存儲之SAP篇
分享到

xigua

相關推薦

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走