大家可能會(huì)問(wèn),SAP HANA既然是內(nèi)存數(shù)據(jù)庫(kù),和存儲(chǔ)有啥關(guān)系,因?yàn)閿?shù)據(jù)都在內(nèi)存里進(jìn)行計(jì)算了啊?

SAP內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)并不是只在內(nèi)存里,也會(huì)不停寫(xiě)到硬盤(pán)里。SAP HANA使用存儲(chǔ)主要體現(xiàn)在下面幾個(gè)方面:

1、保存安裝文件;

2、日常備份;

3、數(shù)據(jù)保存。內(nèi)存里面更新的數(shù)據(jù),缺省5分鐘保存到硬盤(pán)里面一次;

4、redo log存儲(chǔ)。

因此,內(nèi)存數(shù)據(jù)庫(kù)也是需要存儲(chǔ)的,但這些要求對(duì)存儲(chǔ)只是一個(gè)性能的要求,數(shù)據(jù)量一般也不大,因此,服務(wù)器本身插一些SSD盤(pán)基本就可以滿(mǎn)足要求了。因此,我們看到很多SAP HANA的一體機(jī),包括華為的服務(wù)器也在兼容性列表里。

但SAP HANA橫向擴(kuò)展(scale out)場(chǎng)景,外置存儲(chǔ)就是比較合適的了。我們先來(lái)看看SAP HANA的Scale out的原理。

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

當(dāng)任何一個(gè)工作主機(jī)出現(xiàn)故障,備份主機(jī)需要接替工作主機(jī)。

SAP HANA架構(gòu)邏輯上是一種shared-nothing架構(gòu),也就是說(shuō)每個(gè)主機(jī)有自己獨(dú)立的data和logs文件。當(dāng)備份節(jié)點(diǎn)上沒(méi)有數(shù)據(jù),怎么辦,只能從外置存儲(chǔ)里面取。也就是所有的主機(jī)都可以訪問(wèn)一套共享存儲(chǔ)。

主機(jī)自己的切換SPA HANA可以自己搞定,但是,數(shù)據(jù)的切換如何做?如何保證故障的主機(jī)不要再寫(xiě)存儲(chǔ),釋放存儲(chǔ)的資源給新的接管主機(jī)來(lái)獨(dú)占使用。為了解決這個(gè)協(xié)調(diào)問(wèn)題,SAP HANA開(kāi)發(fā)了一個(gè)"Storage Connector API",硬件廠商支持這個(gè)API,就可以配合實(shí)現(xiàn)存儲(chǔ)資源的共享和隔離。

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

1、共享SAN的情況

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

2、共享NAS的情況

如果采用共享的文件系統(tǒng),由于需要互鎖,因此,SAP建議采用集群文件系統(tǒng),如IBM GPFS。GPFS自己有機(jī)制來(lái)實(shí)現(xiàn)文件的共享和隔離。如果是普通的NAS,如NFS文件系統(tǒng),那么SAP建議開(kāi)發(fā)相應(yīng)的接口和Storage Connector API配合。當(dāng)SAP HANA發(fā)現(xiàn)某個(gè)生產(chǎn)主機(jī)故障后,通知硬件的管理軟件,硬件的管理軟件然后發(fā)出一個(gè)指令去復(fù)位故障主機(jī),讓故障主機(jī)釋放存儲(chǔ)資源。

各位看官可能為問(wèn),這個(gè)不是也需要服務(wù)器配合嗎?因?yàn)閷?shí)際上是要重啟服務(wù)器啊。確實(shí)是這樣的,而且,SAP HANA的scale out架構(gòu)認(rèn)證也不單獨(dú)認(rèn)證存儲(chǔ),都是和服務(wù)器一起認(rèn)證的。不過(guò)這種方式西瓜哥感覺(jué)挺怪的,應(yīng)該不是主流的支持方式。

總的來(lái)說(shuō),SAP HANA對(duì)存儲(chǔ)主要的訴求在性能上,同時(shí)能夠支持集群主機(jī)的切換就可以了。

我們發(fā)現(xiàn),由于SAP HANA的特殊性,因此并不需要和存儲(chǔ)有太多的配合,如I/O優(yōu)先級(jí)、Cache協(xié)調(diào)等都不需要,因?yàn)楣ぷ鞯臅r(shí)候,數(shù)據(jù)基本都在內(nèi)存里了。

希望大家積極反饋你的意見(jiàn)和建議,微信掃描如下二維碼,關(guān)注微信公眾號(hào)“高端存儲(chǔ)知識(shí)”,與作者微信互動(dòng)。通過(guò)掌上DOIT移動(dòng)客戶(hù)端,您可以訂閱西瓜哥專(zhuān)欄,第一時(shí)間獲得知名專(zhuān)家和業(yè)界領(lǐng)袖的深度剖析與趨勢(shì)分析。

分享到

xigua

相關(guān)推薦