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

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

一個(gè)中端存儲(chǔ)的SPC-2可以達(dá)到17244 MBPS,世界第一,性價(jià)比肯定也是世界第一了。

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

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

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

為啥這么說(shuō),我們通過(guò)DBA的工作來(lái)說(shuō)明一下。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

分享到

xigua

相關(guān)推薦