阿里云POLARDB:創(chuàng)新的云托管數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)是全球性企業(yè)的基石,也是公司運(yùn)營(yíng)和數(shù)字轉(zhuǎn)型的必備條件。
然而,內(nèi)部部署RDBMS就需要在基礎(chǔ)設(shè)施、時(shí)間、成本和人員方面大量投入,才能保持技術(shù)先進(jìn),可以根據(jù)業(yè)務(wù)增長(zhǎng)需要進(jìn)行擴(kuò)展,還能實(shí)現(xiàn)數(shù)字轉(zhuǎn)型支持。要跨越這些障礙,可以采用云計(jì)算解決方案,它儼然已經(jīng)成為了大大小小的組織使用的主流技術(shù)。
關(guān)系型數(shù)據(jù)庫(kù)作為云托管服務(wù)應(yīng)用廣泛,稱為數(shù)據(jù)庫(kù)即服務(wù)(DBaaS)解決方案。但是基于云的RDBMS可能本身存在難題。因此,云托管關(guān)系型數(shù)據(jù)庫(kù)解決方案必須實(shí)現(xiàn)數(shù)字轉(zhuǎn)型。常見的數(shù)據(jù)庫(kù)有MySQL*和Oracle數(shù)據(jù)庫(kù)*,但不管是內(nèi)部托管,還是云托管,它們可能均難以保護(hù)、管理和擴(kuò)展,而且可能達(dá)不到所需性能和服務(wù)質(zhì)量(QoS)。
阿里云開發(fā)并推出了創(chuàng)新性的商業(yè)級(jí)云托管關(guān)系型數(shù)據(jù)庫(kù)POLARDB,解決了這些問題,為企業(yè)提供了一種新的DBaaS模式。POLARDB以分布式共享存儲(chǔ)架構(gòu)為基礎(chǔ),使用了英特爾?傲騰?DC固態(tài)盤(SSD)和英特爾?3DNAND固態(tài)盤。
云托管數(shù)據(jù)庫(kù)的傳統(tǒng)難題
在公共云計(jì)算環(huán)境中,用戶數(shù)量、用戶服務(wù)和數(shù)據(jù)量的增長(zhǎng)可能會(huì)帶來二進(jìn)制日志文件備份、性能、遷移、升級(jí)、磁盤容量和延遲問題。擴(kuò)展、備份和遷移數(shù)據(jù)所需的時(shí)間隨著數(shù)據(jù)量增長(zhǎng)而延長(zhǎng)。備份TB級(jí)數(shù)據(jù)需要幾個(gè)小時(shí),甚至幾天的時(shí)間。升級(jí)、擴(kuò)展、備份和數(shù)據(jù)遷移可能需要數(shù)據(jù)庫(kù)下線并重新啟動(dòng),這可能會(huì)影響企業(yè)、企業(yè)用戶及企業(yè)IT人員。數(shù)據(jù)遷移可能會(huì)拖慢任務(wù)關(guān)鍵型應(yīng)用的性能。維持每日業(yè)務(wù)運(yùn)營(yíng)可能需要大量CPU資源,再加上數(shù)百萬個(gè)事務(wù),可能產(chǎn)生延遲,導(dǎo)致性價(jià)比下降。
POLARDB重新打造了數(shù)據(jù)庫(kù)云托管服務(wù)
POLARDB對(duì)現(xiàn)有的DBaaS模式進(jìn)行了創(chuàng)新。它采用了的軟件定義擴(kuò)展系統(tǒng)具有創(chuàng)新性,使用了快速、低延遲的英特爾?傲騰?DC固態(tài)盤和低成本、高容量的英特爾?3DNAND固態(tài)盤。企業(yè)如果數(shù)據(jù)量大,而且不斷增長(zhǎng),又始終要求低延遲、高吞吐量、高QoS以及良好的性價(jià)比,則可從POLARDB獲益。
POLARDB的存儲(chǔ)范例與其他創(chuàng)新相結(jié)合,可在DBaaS模式中實(shí)現(xiàn)商業(yè)級(jí)數(shù)據(jù)庫(kù)的性能和可用性。阿里云在設(shè)計(jì)POLARDB時(shí)側(cè)重于企業(yè)客戶的云計(jì)算成本、在線事務(wù)處理(OLTP)性能、業(yè)務(wù)連續(xù)性、業(yè)務(wù)增長(zhǎng)和安全性。所有軟硬件設(shè)計(jì)均采用高可靠性、高可用性的云原生設(shè)計(jì),為了實(shí)現(xiàn)高效協(xié)同,包含與底層英特爾?硬件的協(xié)同。該架構(gòu)性能強(qiáng)勁,只需要傳統(tǒng)上內(nèi)部部署的關(guān)系型數(shù)據(jù)庫(kù)的大約一成成本。
POLARDB的架構(gòu)保證吞吐量高,最高可達(dá)到標(biāo)準(zhǔn)MySQL5.6和5.7在基于NAND的PCIe*和NVMe*固態(tài)盤上運(yùn)行時(shí)的吞吐量的六倍之多。POLARDB可以實(shí)現(xiàn)高達(dá)一百萬每秒輸入/輸出(IOPS),而且只有毫秒級(jí)的延遲。1POLARDB還可以在10分鐘內(nèi)按需縱向或橫向伸縮。每個(gè)數(shù)據(jù)庫(kù)實(shí)例可以達(dá)到100TB容量。相比之下,同類解決方案只能達(dá)到64TB。存儲(chǔ)容量和克隆操作可自動(dòng)伸縮。而且,POLARDB與MySQL5.6和5.7完全向后兼容。
英特爾?傲騰?DC固態(tài)盤優(yōu)化了存儲(chǔ)性能
POLARDB分布式存儲(chǔ)設(shè)計(jì)與英特爾?傲騰?DC固態(tài)盤和英特爾?3DNAND固態(tài)盤相結(jié)合,實(shí)現(xiàn)了卓越的存儲(chǔ)效率、高QoS、高IOPS、高吞吐量和始終如一的性能。英特爾?固態(tài)盤還有助于降低成本,調(diào)優(yōu)性能。英特爾?傲騰?DC固態(tài)盤幫助阿里云消除了數(shù)據(jù)中心存儲(chǔ)瓶頸,可容納更大、更經(jīng)濟(jì)實(shí)惠的的數(shù)據(jù)集,加快了應(yīng)用速度,降低了對(duì)延遲敏感的工作負(fù)載的事務(wù)成本,降低了POLARDB的數(shù)據(jù)中心總擁有成本(TCO)。
POLARDB在軟件層將高速、高容量的英特爾?傲騰?DC固態(tài)盤和高吞吐量的英特爾?3DNAND固態(tài)盤結(jié)合起來,實(shí)現(xiàn)了一個(gè)混合型存儲(chǔ)層,可以始終實(shí)現(xiàn)低延遲、高吞吐量、高QoS。而且與存儲(chǔ)層只使用英特爾?3DNAND固態(tài)盤相比,整體性價(jià)比高出很多。
借助英特爾?傲騰?DC固態(tài)盤和英特爾?3DNAND固態(tài)盤,阿里云實(shí)現(xiàn)了:
•POLARDB每秒查詢數(shù)(QPS)提升30%,改善了客戶體驗(yàn)2
•POLARDB第95百分位延遲降低76%2
POLARDB架構(gòu)
軟件定義的POLARDB架構(gòu)使用分布式存儲(chǔ)、存儲(chǔ)性能開發(fā)套件(SPDK)、遠(yuǎn)程直接內(nèi)存訪問(RDMA)和其他創(chuàng)新來打造高性能、高伸縮的云數(shù)據(jù)庫(kù)。POLARDB架構(gòu)將計(jì)算資源池和存儲(chǔ)資源池分離開來。CPU資源和內(nèi)存不足時(shí),計(jì)算資源池獨(dú)立于存儲(chǔ)資源池進(jìn)行擴(kuò)展;容量或IOPS較低時(shí),存儲(chǔ)資源池獨(dú)立于計(jì)算資源池進(jìn)行擴(kuò)展。
POLARDB分布式存儲(chǔ)架構(gòu)使用三個(gè)副本或節(jié)點(diǎn),而不是本地存儲(chǔ)空間。一個(gè)副本用于讀寫實(shí)例,另外兩個(gè)用于只讀實(shí)例。需要新增只讀實(shí)例時(shí),不需要復(fù)制任何數(shù)據(jù)。不管新數(shù)據(jù)量有多大,都可以在5分鐘內(nèi)完成。相比于傳統(tǒng)數(shù)據(jù)庫(kù),如果數(shù)據(jù)量超過3TB,添加新實(shí)例需要長(zhǎng)達(dá)70小時(shí)的時(shí)間。2主實(shí)例和只讀實(shí)例共用相同的存儲(chǔ)資源,既提高了只讀復(fù)制性能,又不需要額外增加新增存儲(chǔ)的成本。用戶只需要支付只讀實(shí)例使用的CPU和內(nèi)存成本。POLARDB使用此分布式存儲(chǔ)配置來查找數(shù)據(jù),并以比傳統(tǒng)數(shù)據(jù)庫(kù)更快的速度伸縮。
每個(gè)POLARDB存儲(chǔ)節(jié)點(diǎn)都使用一個(gè)英特爾?傲騰?DC固態(tài)盤P4800X系列硬盤來快速創(chuàng)建日志記錄和索引,同時(shí)可以使用若干英特爾?DC固態(tài)盤P4500系列硬盤來存儲(chǔ)數(shù)據(jù)。SPDK將數(shù)據(jù)寫入每個(gè)英特爾?3DNAND固態(tài)盤的NVMe接口,而不必訪問同步的內(nèi)存。在部署英特爾?傲騰?DC固態(tài)盤之前,日志記錄和數(shù)據(jù)一并存儲(chǔ)在數(shù)據(jù)中心內(nèi)基于NVMe的英特爾?固態(tài)盤上,需要訪問同步的內(nèi)存。繞過同步的內(nèi)存可以提高POLARDB的性能,降低延遲。
使用POLARDB還有其他性能優(yōu)勢(shì),因?yàn)椋?/p>
•使用基于融合以太網(wǎng)的RDMA(RoCE)網(wǎng)絡(luò)協(xié)議來降低延遲,減輕CPU負(fù)載,提高帶寬
•借助軟件定義的堆棧繞過Linux*內(nèi)核,可以讓POLARDB以用戶模式運(yùn)行,有助于降低開銷
•無需使用二進(jìn)制日志,縮短了事務(wù)時(shí)間,降低了輸入/輸出(I/O)開銷
英特爾?傲騰?DC固態(tài)盤 提升30%每秒查詢數(shù)(QPS),改善了POLARDB客戶體驗(yàn)*2 降低76%的POLARDB第95百分位延遲2 分配100TB容量給每個(gè)POLARDB數(shù)據(jù)庫(kù)實(shí)例
POLARDB使用的英特爾?傲騰?DC固態(tài)盤和英特爾?3DNAND固態(tài)盤
POLARDB開發(fā)最初是為了滿足阿里云在線購(gòu)物中心的需求。阿里云最開始在POLARDB中使用英特爾?傲騰?DC固態(tài)盤和英特爾?3DNAND固態(tài)盤,是為了解決購(gòu)物中心高峰期問題。阿里云后來發(fā)現(xiàn),與只在基于NAND的PCIe*NVMe*固態(tài)盤上運(yùn)行MySQL相比,MySQL*性能提升高達(dá)六倍。
如今,阿里云在POLARDB產(chǎn)品中使用英特爾?傲騰?DC固態(tài)盤P4800X系列,使用的固態(tài)盤:
•是采用英特爾?傲騰?技術(shù)、響應(yīng)速度最快的數(shù)據(jù)中心固態(tài)盤3
•提供高達(dá)750GB的容量
•能夠提高POLARDB的性能
使用英特爾?3DNAND固態(tài)盤和英特爾?傲騰?DC固態(tài)盤,數(shù)據(jù)存儲(chǔ)既經(jīng)濟(jì)實(shí)惠,質(zhì)量也高,十分可靠,非常易于管理和維護(hù),可以最大限度地保證POLARDB的服務(wù)連續(xù)性。
英特爾與阿里云等客戶密切合作,努力實(shí)現(xiàn)數(shù)據(jù)庫(kù)創(chuàng)新,不斷地幫助全球客戶改善企業(yè)數(shù)據(jù)庫(kù)體驗(yàn)。
圖1.使用英特爾?固態(tài)盤的阿里云POLARDB*架構(gòu)
訪問商業(yè)級(jí)數(shù)據(jù)庫(kù)即服務(wù)
部署DBaaS可以解放企業(yè)IT團(tuán)隊(duì)。他們不需要管理內(nèi)部數(shù)據(jù)庫(kù),也不需要購(gòu)買和維護(hù)內(nèi)部部署的數(shù)據(jù)庫(kù)所需的硬件。
因此,IT團(tuán)隊(duì)可以集中精力進(jìn)行核心業(yè)務(wù)需求創(chuàng)新,有助于企業(yè)數(shù)字轉(zhuǎn)型,增加企業(yè)競(jìng)爭(zhēng)力。其他DBaaS解決方案可能困難重重,但是阿里云推出的POLARDB可借助商業(yè)級(jí)DBaaS解決方案克服這些困難。POLARDB為企業(yè)配備按需解決方案,有助于保持良好的性價(jià)比。作為商業(yè)級(jí)數(shù)據(jù)庫(kù),它可幫助企業(yè)管理大量數(shù)據(jù),同時(shí)實(shí)現(xiàn)低延遲、高吞吐量、高QoS和快速伸縮。