ZS3-4其實就是一個中端存儲,為什么打敗了所有的高端存儲?我們來看一下配置,ZS3-4就是一個兩個節(jié)點的集群,但每個節(jié)點配置了1TB的CACHE。每個節(jié)點也就是一臺SUN的服務(wù)器,配置INTEL的CPU,我猜上面跑的是Solaris的操作系統(tǒng),當(dāng)然,應(yīng)該還有SUN開發(fā)了近10年的集群文件系統(tǒng)ZFS,然后在ZFS上再提供數(shù)據(jù)塊服務(wù),感覺思路和NETAPP差不多,都是以文件系統(tǒng)為基礎(chǔ)。

ZS3-4集群的連接還是傳統(tǒng)集群服務(wù)器的連接方式,采用兩個串口做心跳,一個GE以太口做通訊。因此,西瓜哥認為ZFS文件系統(tǒng)還是很厲害的,一般的高性能集群都用高速連接,如Infiband,但ZFS集群只需要GE口的連接就足夠了,說明ZFS的設(shè)計比較好,元數(shù)據(jù)交互不多。

一個中端存儲的SPC-2可以達到17244 MBPS,世界第一,性價比肯定也是世界第一了。

ORACLE把ZFS存儲叫做Application Engineered Storage(AES),也就是應(yīng)用定制存儲,確實是名不虛傳的,今天就拿ORACLE和ZFS存儲的配合為例,來講講ORACLE做存儲的思路。

西瓜哥曾經(jīng)在10多年前拿過一個ORACLE 8 OCP(Oracle Certified Professional)認證,當(dāng)時也是費老勁了,考了5門課,據(jù)說當(dāng)時的含金量和CCIE差不多。但后來轉(zhuǎn)行做硬件了,這些知識基本還回給ORACLE了。因此,今天分析得不對,大家不要扔磚頭哦。

不懂存儲的DBA不是好DBA。現(xiàn)在的存儲越來越復(fù)雜,原來只有FC盤,而且存儲很直觀,對DBA可見?,F(xiàn)在下面的存儲介質(zhì)很多,特別是SSD加了進來,還有現(xiàn)在虛擬化技術(shù)大行其道,DBA根本不知道自己的數(shù)據(jù)實際存放的位置,是否是thin卷,是否壓縮,是否重刪,是否分層,DBA真是一個頭,八個大。

為啥這么說,我們通過DBA的工作來說明一下。

1、性能調(diào)優(yōu)。調(diào)優(yōu)是目前DBA最大的工作量之一,但存儲現(xiàn)在都虛擬化了,如果你不懂存儲,是無法調(diào)優(yōu)的。

2、SSD介質(zhì)管理。SSD介質(zhì)現(xiàn)在在數(shù)據(jù)庫領(lǐng)域發(fā)揮了巨大的加速作用。但SSD不是萬能的,他寫的單位是page,即一次寫一個塊,不像傳統(tǒng)硬盤一次寫一個位(bit),而且page寫前還得擦除,還有寫次數(shù)壽命問題。DBA如果不懂這些知識,是做不好DBA的。

3、效率提升。目前的存儲支持高效的空間管理,包含瘦分配、壓縮和重刪。但他們是有區(qū)別的,瘦分配減少浪費,但并沒有真正節(jié)省空間;壓縮一般是局部的,在一個文件或者一個卷內(nèi)部,數(shù)據(jù)壓縮后是無損的,安全的;而重刪一般是全局的,是采用hash(指紋)判斷數(shù)據(jù)塊是否有重復(fù),如果重復(fù)只保留一份COPY,不同的數(shù)據(jù)塊可能會產(chǎn)生相同的指紋(雖然概率很?。?,hash沖突處理不好是有數(shù)據(jù)丟失隱患的。如果你作為DBA,不懂這些行嗎?

4、排錯。數(shù)據(jù)庫出了問題,你需要端到端排錯,你需要懂OS、網(wǎng)絡(luò)、存儲,仔細分析,看擁堵點在哪里,存儲的問題還是網(wǎng)絡(luò)的問題等等。

5、數(shù)據(jù)保護。備份是DBA的主要工作之一,現(xiàn)在數(shù)據(jù)量愈來愈多,但留給DBA的備份窗口越來越小,因此,不能簡單采用數(shù)據(jù)庫的備份工具進行備份,需要結(jié)合存儲的快照和復(fù)制技術(shù),來實現(xiàn)快速的備份、歸檔、容災(zāi)和恢復(fù)。而快照的時候,需要數(shù)據(jù)庫靜默,數(shù)據(jù)庫Cache刷新,數(shù)據(jù)按順序落盤后再做快照,否則可能造成數(shù)據(jù)庫啟動不起來。

6、大量的人工勞動。大家從上面的分析可以看到,DBA其實需要做很多和存儲相關(guān)的工作,內(nèi)容還是比較繁瑣的。

7、編寫腳本。由于存儲和數(shù)據(jù)庫不能很好配合,DBA需要寫很多的腳本來完成日常的工作,如備份。但這些腳本由于是個人寫的,因此沒有經(jīng)過嚴格測試,質(zhì)量得不到保證。

8、TCO控制?,F(xiàn)在數(shù)據(jù)在增長,但IT投資并沒有同步增長。因此,DBA必須善于利用各種存儲技術(shù),比如各種壓縮技術(shù),減少容量損耗,減低TCO。公司希望你就像會巫毒教的還魂術(shù)一樣,通過新技術(shù)的引用,讓數(shù)據(jù)庫起死回生。

ORACLE看到了這些問題,因此,它讓ORACLE數(shù)據(jù)庫和自己家的存儲緊密配合,在最新發(fā)布的12c數(shù)據(jù)庫版本融入了很多私有協(xié)議和ORACLE存儲進行通訊,來解決這些問題。

我們先來看看ZS3存儲的情況,前面我們說過,就是一個雙控的中端存儲(支持單控配置)。但和傳統(tǒng)的中端存儲不同,是采用服務(wù)器的集群方式實現(xiàn)的,類似NETAPP控制器分散部署的情況。這種方式我感覺應(yīng)該就不支持cache鏡像了吧。ZFS存儲的的核心還是Zettabyte file systems(ZFS),雖然ZFS存儲也支持SAN功能。我記得我做DBA的時候,ORACLE都是建議數(shù)據(jù)庫采用裸設(shè)備,這樣性能最好。但現(xiàn)在ORACLE采用ZFS存儲的NAS功能,而不是SAN功能。

ZFS存儲采用多種介質(zhì)和數(shù)據(jù)庫協(xié)調(diào)工作,這些介質(zhì)組成Hybrid Storage Pools(HSP),ORACLE數(shù)據(jù)庫通過私有協(xié)議告知存儲數(shù)據(jù)如何存放,這個有點類似DB2和DS8000的CACHE協(xié)調(diào),但ORACLE不僅僅是Cache協(xié)調(diào),而是整個數(shù)據(jù)的生命周期管理協(xié)調(diào)。由于ZFS存儲采用大容量的DRAM,ORACLE宣傳90%的I/O可以在DRAM內(nèi)完成,這個就是ZFS存儲性能那么好的主要原因。大家知道,DRAM比SSD一般還要快10倍-20倍。

由于ZFS有大容量的DRAM,因此也可以優(yōu)化對SSD的訪問,ORACLE叫這個技術(shù)Dynamic SSD Optimization(DSO)。也就是數(shù)據(jù)先寫到DRAM,然后把大塊的數(shù)據(jù)再順序?qū)懙絊SD中,這樣SSD的page size就可以設(shè)置得大一些,時延更小,使得ZFS有更高的效率,更好的性能。

由于有大容量DRAM,數(shù)據(jù)的重刪在可以內(nèi)存里完成,性能更高。

當(dāng)然,ZFS存儲利用SMP,多線程和多核技術(shù)實現(xiàn)多Cache的并行訪問。

Hybrid Columnar Compression(HCC)混合列壓縮是Oracle Database 11gR2推出的新特性。這個特性針對數(shù)據(jù)庫的壓縮是非常有效的,大家知道,數(shù)據(jù)庫的列一般冗余數(shù)據(jù)最多。比如你統(tǒng)計全國的人口,那么年齡那一列肯定就是從1-150內(nèi)的數(shù)字,重復(fù)的數(shù)值肯定非常多,因此按列壓縮,效率肯定非常高。關(guān)鍵是這個壓縮不僅能減少空間,而且還可以提高性能,因為ORACLE數(shù)據(jù)庫查詢這些值的時候不需要解壓縮就可以查詢。而ZFS存儲支持這個特性,據(jù)說空間可以壓縮50倍,同時查詢性能可以提高3-8倍。

在ORACLE最新發(fā)布的 database 12c里有一個新特性Advanced Data Optimization,HCC可以感知數(shù)據(jù)的活躍度,從而采取不同的壓縮策略。比如常用的數(shù)據(jù)就不壓縮,一般的數(shù)據(jù)壓縮率不用太高,如果是冷數(shù)據(jù),則采取最高壓縮率進行壓縮。好處是顯而易見的,壓縮效率得到提升。

當(dāng)然,ZFS存儲提供了整合的圖形化分析工具,這些分析工具和ORACLE數(shù)據(jù)庫聯(lián)動,DBA非常容易看出來性能瓶頸在哪里。而一般的存儲分析工具是做不到的。

ZFS存儲還支持通過API和ORACLE的RMAN, DATA GUARD, FLASHBACK聯(lián)動。比如存儲做快照的時候通知數(shù)據(jù)庫靜默,RMAN備份的時候直接備份存儲HCC壓縮的數(shù)據(jù)而不用再解壓縮等等。ORACLE說他們采用ZFS專業(yè)備份存儲,采用InfiniBand和數(shù)據(jù)庫連接,備份速度高達25TB/hr,如果算上HCC壓縮,那么每小時可以備份1.25PB原始數(shù)據(jù),哇,相當(dāng)厲害?;謴?fù)的速度也很快,可以做到10TB/hr。

ZS3存儲可以和最新的12c數(shù)據(jù)庫配合,采用數(shù)據(jù)庫的heat map來把不同的熱點的數(shù)據(jù)放到不同的介質(zhì)中,同時可以和數(shù)據(jù)庫的partition分區(qū)功能配合實現(xiàn)自動歸檔。比如每一年的數(shù)據(jù)存儲在一個分區(qū)里,2013年的時候,可以把2012年的數(shù)據(jù)歸檔了。這些都可以自動去做,而不需要人工參與。

實現(xiàn)ORACLE和ZFS存儲的通信的關(guān)鍵是ORACLE在最新的數(shù)據(jù)庫版本12c中發(fā)布了一個Oracle Intelligent Storage Protocol(OISP)。OISP是一個私有協(xié)議,只能和ORACLE的存儲通訊,嗚嗚,ORACLE太不厚道了。

通過上面我們的分析可以看到,如果采用ORACLE數(shù)據(jù)庫+ORACLE ZFS存儲,在OLAP應(yīng)用方面,確實可以達到降低TCO的目的。

對比IBM DB2和DS8000的結(jié)合,我們發(fā)現(xiàn)ORACLE缺少一個端到端的I/O優(yōu)先級協(xié)作。但我們前面講過ORACLE的PA600支持ORACLE的數(shù)據(jù)庫QOS模板部署,可以針對ORACLE提供QOS配置模板,但我認為這種不算感知,是單向的。當(dāng)然,PA600也支持HCC壓縮。

總結(jié)一下,ORACLE DATABASE 12c以后,提供了更多的特性和ORACLE存儲聯(lián)動。目前看主要是ZS3存儲。數(shù)據(jù)庫和存儲采用專有的通訊協(xié)議OISP。我查了相關(guān)的資料,OISP利用了一個ORACLE數(shù)據(jù)庫的特性direct NFS(dNFS),這個特性就是數(shù)據(jù)庫繞開操作系統(tǒng),直接和NFS存儲通訊。也就是說,就算ORACLE開放這個特性,也只能支持NAS存儲,這也就是PA600為什么也不支持OISP的原因。有了dNFS和OISP,傳統(tǒng)的DBA認為數(shù)據(jù)庫建在SAN上更快的老觀念可能要更新了。

最后,我再來總結(jié)一下ORACLE的存儲思路,不賣通用存儲,在軟件上開發(fā)更多的專用接口技術(shù)和存儲聯(lián)動,提高存儲的附加值,利用軟件的市場地位帶動存儲的銷售。雖然ZFS存儲也支持SAN,PA600也支持NAS,但從目前的跡象看,ORACLE軟件和ZFS存儲的結(jié)合更加緊密些,也就是在NAS方面。

由于ORACLE不開放OISP協(xié)議,其他的廠商估計暫時沒有辦法和ORACLE聯(lián)動了,EMC也就是發(fā)布了一個ORACLE管理插件,可以在OEM(ORACLE ENTERPRISE MANAGER)界面里管理存儲而已,當(dāng)然,華為在上海HCC發(fā)布會上和ORACLE聯(lián)合發(fā)布了DIX方案,可以實現(xiàn)端到端的數(shù)據(jù)保護。但這些合作我認為太初級了。

不知道有沒有別的手段逼ORACLE開放OISP?告ORACLE壟斷,或者學(xué)習(xí)華為當(dāng)初數(shù)通兼容CISCO EIGRP協(xié)議的情況,開發(fā)出兼容OISP協(xié)議的存儲?從技術(shù)上感覺可以辦到,但不知道是否有知識產(chǎn)權(quán)的糾紛。

不過,ORACLE這種自我封閉的發(fā)展道路是否被用戶接受?這種相當(dāng)變相捆綁銷售。西瓜哥其實認為ORACLE應(yīng)該學(xué)習(xí)VMWARE,更加開放一些,畢竟核心的產(chǎn)品是ORACLE DATABASE,而不是存儲。

好了,今天的分享就到這里。

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

分享到

xigua

相關(guān)推薦