新聞中心
在當(dāng)今數(shù)字化時(shí)代,數(shù)據(jù)量和數(shù)據(jù)流量的不斷增長(zhǎng),對(duì)于企業(yè)的數(shù)據(jù)處理能力提出了更高的要求。云數(shù)據(jù)庫(kù)作為一種有效的解決方案,已經(jīng)成為了企業(yè)必需品,而如何優(yōu)化云數(shù)據(jù)庫(kù)的輸入輸出(I/O)能力,實(shí)現(xiàn)高性能數(shù)據(jù)處理,則是企業(yè)用戶關(guān)注的重點(diǎn)。

成都創(chuàng)新互聯(lián)一直通過(guò)網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、全網(wǎng)整合營(yíng)銷推廣服務(wù)為核心業(yè)務(wù)。10年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開(kāi)發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
1. 優(yōu)化磁盤選型
優(yōu)化磁盤選型是影響云數(shù)據(jù)庫(kù)io性能最為直接的因素。建議考慮使用高性能磁盤,如固態(tài)硬盤(SSD),而不是傳統(tǒng)的機(jī)械硬盤(HDD)。此外,采用RD技術(shù)也可以提升磁盤的數(shù)據(jù)傳輸速度和故障容忍度。
2. 合理規(guī)劃數(shù)據(jù)存儲(chǔ)路徑
為了避免I/O操作的瓶頸出現(xiàn)在存儲(chǔ)路徑的選擇上,建議將數(shù)據(jù)存儲(chǔ)路徑規(guī)劃在不同的分區(qū)上。例如,將數(shù)據(jù)和日志存儲(chǔ)在不同的分區(qū)中,可以減少日志讀取對(duì)數(shù)據(jù)I/O的影響。
3. 采用數(shù)據(jù)庫(kù)緩存
數(shù)據(jù)庫(kù)緩存是提高云數(shù)據(jù)庫(kù)性能的重要手段。緩存機(jī)制通過(guò)將頻繁訪問(wèn)的數(shù)據(jù)存儲(chǔ)在緩存中,減少了對(duì)數(shù)據(jù)庫(kù)的直接訪問(wèn)次數(shù),提高了I/O效率。緩存大小的設(shè)置應(yīng)該根據(jù)實(shí)際業(yè)務(wù)需求來(lái)進(jìn)行平衡調(diào)節(jié)。
4. 使用預(yù)讀取技術(shù)
預(yù)讀取技術(shù)是在數(shù)據(jù)庫(kù)查詢前就可以將部分?jǐn)?shù)據(jù)緩存到內(nèi)存中,以確保查詢時(shí)數(shù)據(jù)的可用性。在數(shù)據(jù)庫(kù)讀取數(shù)據(jù)時(shí),該技術(shù)可以減少磁盤訪問(wèn)時(shí)間,提高數(shù)據(jù)處理速度。
5. SQL優(yōu)化
I/O瓶頸的另一個(gè)常見(jiàn)原因是低效的SQL查詢。通過(guò)優(yōu)化查詢語(yǔ)句、索引和表結(jié)構(gòu),可以減少I/O次數(shù),提高查詢速度。例如,合理使用索引可以減少磁盤訪問(wèn)次數(shù),提高查詢速度。
6. 負(fù)載均衡
負(fù)載均衡可以將請(qǐng)求平均分配到不同的數(shù)據(jù)庫(kù)節(jié)點(diǎn)上,從而避免某個(gè)節(jié)點(diǎn)過(guò)載導(dǎo)致性能下降。通過(guò)負(fù)載均衡技術(shù)可以實(shí)現(xiàn)云數(shù)據(jù)庫(kù)的橫向擴(kuò)展,在數(shù)量和性能上都能夠滿足企業(yè)的業(yè)務(wù)需求。
優(yōu)化云數(shù)據(jù)庫(kù)的I/O性能需要多方面的工作,需要在硬件、軟件、負(fù)載均衡和網(wǎng)絡(luò)等方面入手,均衡數(shù)據(jù)流量,盡可能壓縮I/O請(qǐng)求時(shí)間,才能夠達(dá)到高性能和高效率的要求。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220云物理主機(jī)系統(tǒng)盤一般采用什么級(jí)別
云主機(jī)使用的云硬盤類型和對(duì)應(yīng)的存儲(chǔ)類型如下所述::
普通IO:提供SATA類型的存儲(chǔ),該類型云硬盤的更大IOPS為1000,適用于大容量、讀寫(xiě)速率中等、事務(wù)性處理較少的應(yīng)用場(chǎng)景,例如企業(yè)的日常辦公應(yīng)用或者小型測(cè)試等。
高IO:提供SAS類型的存儲(chǔ),該類型云硬盤的更大IOPS可達(dá)3000,更低讀寫(xiě)時(shí)延為1 ms,適用于主流的高性能、高可靠應(yīng)用場(chǎng)景,例如企業(yè)應(yīng)用、大型開(kāi)發(fā)測(cè)試以及Web服務(wù)器日志等。
超高IO:提供SSD類型的存儲(chǔ),該類型云硬盤的更大IOPS可達(dá)20230,更低讀寫(xiě)時(shí)延為1 ms,適用于超高IO,超大帶寬的讀寫(xiě)密集型應(yīng)用場(chǎng)景,例如高性能計(jì)算應(yīng)用場(chǎng)景,用來(lái)部署分布式文件系統(tǒng),或者I/O密集型應(yīng)用場(chǎng)景,用來(lái)部署各類NoSQL/關(guān)系型數(shù)據(jù)庫(kù)。
VBD類型:當(dāng)您通過(guò)控制中心創(chuàng)建云硬盤時(shí),云硬盤的磁盤模式默認(rèn)為VBD類型。VBD類型的云硬盤只支持簡(jiǎn)單的SCSI讀寫(xiě)命令。
SCSI類型:您可以通過(guò)控制中心創(chuàng)建SCSI類型的云硬盤,該類型的云硬盤支持SCSI指令透?jìng)?,允許云主機(jī)操作系統(tǒng)直接訪問(wèn)底層存儲(chǔ)介質(zhì)。除了簡(jiǎn)單的SCSI讀寫(xiě)命令,SCSI類型的云硬盤還可以支持更高級(jí)的SCSI命令。
云硬盤是提供數(shù)據(jù)塊級(jí)別的持久性存儲(chǔ)設(shè)備,通常用作需要頻繁更新、細(xì)粒度更新的數(shù)據(jù)(如文件系統(tǒng)、數(shù)據(jù)庫(kù)等)的主存儲(chǔ)設(shè)備。
云硬盤是一種高可用、高可靠、低成本、可定制化的網(wǎng)絡(luò)塊設(shè)備,可作為云服務(wù)器的獨(dú)立可擴(kuò)展硬盤使用。它提供數(shù)據(jù)塊級(jí)別的數(shù)據(jù)存儲(chǔ),采用三副本的分布式。高性能云硬盤:高性能云硬盤是騰訊云推出的混合型存儲(chǔ)類型,通過(guò) cache 機(jī)制提供接近固態(tài)存儲(chǔ)的高性能存儲(chǔ)能力。
電腦硬盤是計(jì)算機(jī)最主要的存儲(chǔ)設(shè)備。硬盤(港臺(tái)稱之為硬碟,英文名:Hard Disk Drive, 簡(jiǎn)稱HDD 全名溫徹斯特式硬盤)由一個(gè)或者多個(gè)鋁制或者玻璃制的碟片組成。這些碟片外覆蓋有鐵磁性材料。
絕大多數(shù)硬盤都是固定硬盤,被永久性地密封固定在硬盤驅(qū)動(dòng)器中。早期的硬盤存儲(chǔ)媒介是可替換的,不過(guò)今日典型的硬盤是固定的存儲(chǔ)媒介,被封在硬盤里 (除了一個(gè)過(guò)濾孔,用來(lái)平衡空氣壓力)。隨著發(fā)展,可移動(dòng)硬盤也出現(xiàn)了,而且越來(lái)越普及,種類也越來(lái)越多。大多數(shù)微機(jī)上安裝的硬盤,由于都采用溫切斯特(winchester)技術(shù)而被稱之為“溫切斯特硬盤”,或簡(jiǎn)稱“溫盤”。
云硬盤是可以掛載到云主機(jī)上,和物理硬盤一樣使用。云硬盤相當(dāng)于RAID1的標(biāo)準(zhǔn),偏重模擬硬盤的性能。云硬盤是塊數(shù)據(jù)服務(wù),像是一個(gè)超級(jí)巨大的硬盤。你不需要做任何的改造即可在云硬盤之上部署原先的數(shù)據(jù)應(yīng)用,如構(gòu)建各種文件系統(tǒng)、搭建各種數(shù)據(jù)庫(kù)等。云硬盤的數(shù)據(jù)訪問(wèn)響應(yīng)大多是毫秒以下級(jí)別的。而云硬盤更適合為數(shù)據(jù)庫(kù)之類的數(shù)據(jù)服務(wù)提供存儲(chǔ)支撐。
硬盤(英語(yǔ):Hard Disk Drive,縮寫(xiě):HDD)是計(jì)算機(jī)上使用的以旋轉(zhuǎn)盤片為基礎(chǔ)的非易失性存儲(chǔ)器,它在平整的磁性表面存儲(chǔ)和檢索數(shù)字?jǐn)?shù)據(jù),數(shù)據(jù)通過(guò)離磁性表面很近的磁頭由電磁流來(lái)改變極性的方式被寫(xiě)入到磁盤上,數(shù)據(jù)可以通過(guò)盤片被讀取。
硬盤的讀寫(xiě)是采用半隨機(jī)存取的方式,可以以任意順序讀取硬盤中的數(shù)據(jù),但讀取不同位置的資料速度不相同。
云硬盤是可以掛載到云主機(jī)上,和物理硬盤一樣使用。云硬盤相當(dāng)于RAID1的標(biāo)準(zhǔn),偏重模擬硬盤的性能。云硬盤是塊數(shù)據(jù)服務(wù),像是一個(gè)超級(jí)巨大的硬盤。你不需要做任何的改造即可在云硬盤之上部署原先的數(shù)據(jù)應(yīng)用,如構(gòu)建各種文件系統(tǒng)、搭建各種數(shù)據(jù)庫(kù)等。云硬盤的數(shù)據(jù)訪問(wèn)響應(yīng)大多是毫秒以下級(jí)別的。而云硬盤更適合為數(shù)據(jù)庫(kù)之類的數(shù)據(jù)服務(wù)提供存儲(chǔ)支撐。
硬盤(英語(yǔ):Hard Disk Drive,縮寫(xiě):HDD)是計(jì)算機(jī)上使用的以旋轉(zhuǎn)盤片為基礎(chǔ)的非易失性存儲(chǔ)器,它在平整的磁性表面存儲(chǔ)和檢索數(shù)字?jǐn)?shù)據(jù),數(shù)據(jù)通過(guò)離磁性表面很近的磁頭由電磁流來(lái)改變極性的方式被寫(xiě)入到磁盤上,數(shù)據(jù)可以通過(guò)盤片被讀取。
硬盤的讀寫(xiě)是采用半隨機(jī)存取的方式,可以以任意順序讀取硬盤中的數(shù)據(jù),但讀取不同位置的資料速度不相同。
1.
云硬盤是提供數(shù)據(jù)塊級(jí)別的持久性存儲(chǔ)設(shè)備,通常用作需要頻繁更新、細(xì)粒度更新的數(shù)據(jù)(如文件系統(tǒng)、數(shù)據(jù)庫(kù)等)的主存儲(chǔ)設(shè)備。 云硬盤是一種高可用、高可靠、低成本、可定制化的網(wǎng)絡(luò)塊設(shè)備,可作為云服務(wù)器的獨(dú)立可擴(kuò)展硬盤使用。它提供數(shù)據(jù)塊級(jí)別的數(shù)據(jù)存儲(chǔ),采用三副本的分布式。
2.
高性能云硬盤:高性能云硬盤是騰訊云推出的混合型存儲(chǔ)類型,通過(guò) cache 機(jī)制提供接近固態(tài)存儲(chǔ)的高性能存儲(chǔ)能力。
NewSQL分布式數(shù)據(jù)庫(kù)發(fā)展策略討論
作者 石默研
本文對(duì)新一代NewSQL分布式數(shù)據(jù)庫(kù)發(fā)展策略中的普遍困擾進(jìn)行討論,包括云原生(Cloud Native)與本地部署(On Premise)、HTAP進(jìn)展方向、分布式與單機(jī)需求等分布式數(shù)據(jù)庫(kù)商業(yè)與技術(shù)發(fā)展中難以決策的問(wèn)題。
1. 困擾
分布式NewSQL數(shù)據(jù)庫(kù)近年來(lái)蓬勃興起,其原因顯而易見(jiàn):切中了業(yè)務(wù)與數(shù)據(jù)量不斷增長(zhǎng)的用戶對(duì)關(guān)系型數(shù)據(jù)庫(kù)RDBMS需求,這在傳統(tǒng)RDBMS到大數(shù)據(jù)的發(fā)展階段中,有相當(dāng)一段時(shí)間是空白。同時(shí),隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展與普及,用云計(jì)算模式滿足IT需求似乎已經(jīng)成為未來(lái) 社會(huì) 產(chǎn)業(yè)互聯(lián)網(wǎng)發(fā)展的明確趨勢(shì),也就是說(shuō),有一種共識(shí):不久的將來(lái),絕大多數(shù)產(chǎn)業(yè)的IT服務(wù)是從公共的、行業(yè)的或者私有的、混合的云計(jì)算中心提供的。這一共識(shí)又帶來(lái)了云原生(Cloud Native)概念與技術(shù)的興起,而分布式NewSQL數(shù)據(jù)庫(kù)自然也應(yīng)該是云原生的,這決定了其相當(dāng)多的產(chǎn)品設(shè)計(jì)決策應(yīng)以符合這一趨勢(shì)為原則。然而,在當(dāng)今的現(xiàn)實(shí)中,滿足業(yè)務(wù)與數(shù)據(jù)量不斷增長(zhǎng)的RDBMS需求的用戶,與云原生的用戶,除了互聯(lián)網(wǎng)企業(yè)外,大多數(shù)情況下,并不重合,需要On-Premise部署的用戶仍然占有很大比重,這就帶來(lái)了之一個(gè)困擾:云原生(Cloud Native)與本地部署(On Premise)對(duì)產(chǎn)品發(fā)展要求的矛盾。
另一個(gè)困擾,是關(guān)于HTAP,即交易與分析混合負(fù)載。HTAP是當(dāng)今非?;鸬囊粋€(gè)概念與技術(shù),在交易庫(kù)上直接進(jìn)行分析,而不再是將“數(shù)據(jù)從交易庫(kù)搬下來(lái),挪到另一個(gè)數(shù)據(jù)庫(kù)中去”這樣的繁瑣過(guò)程??梢院敛豢鋸埖恼f(shuō): 歷史 上規(guī)模性企業(yè)IT復(fù)雜度的相當(dāng)一部分,都來(lái)自于“搬數(shù)據(jù)”,這導(dǎo)致了數(shù)據(jù)采集、實(shí)時(shí)采集、全增量合并、數(shù)據(jù)傳輸、數(shù)據(jù)加載、數(shù)據(jù)建模、數(shù)據(jù)質(zhì)量、數(shù)據(jù)標(biāo)準(zhǔn)、企業(yè)級(jí)元數(shù)據(jù)管理等繁雜多樣的技術(shù)環(huán)節(jié)的產(chǎn)生,導(dǎo)致了企業(yè)數(shù)據(jù)分布、數(shù)據(jù)流向、數(shù)據(jù)模型、主數(shù)據(jù)、基礎(chǔ)數(shù)據(jù)平臺(tái)、ODS/數(shù)據(jù)倉(cāng)庫(kù)/數(shù)據(jù)集市、數(shù)據(jù)治理等復(fù)雜的數(shù)據(jù)架構(gòu)設(shè)計(jì)優(yōu)化領(lǐng)域,導(dǎo)致了由于多系統(tǒng)大規(guī)模數(shù)據(jù)搬遷而帶來(lái)的如數(shù)據(jù)交換平臺(tái)之類的復(fù)雜調(diào)度工程……。咋眼一看,感覺(jué)該企業(yè)的數(shù)據(jù)技術(shù)好厲害,相關(guān)各領(lǐng)域的技術(shù)產(chǎn)品好豐富,技術(shù)人員的相關(guān)技能也好受歡迎。但如果在交易遲核宏庫(kù)就能直接滿足分析需求而不影響生產(chǎn)效能的話,這些復(fù)雜高級(jí)的技術(shù)環(huán)節(jié)不都成了“自己給自己造了一座山,還說(shuō)自己爬的好辛苦”?然而,現(xiàn)實(shí)卻是,問(wèn)題并不這么簡(jiǎn)單,除了在交易庫(kù)中進(jìn)行分析會(huì)影響業(yè)務(wù)效能外,還有很多原因?qū)е逻@一現(xiàn)象產(chǎn)生:交易庫(kù)并不需要存儲(chǔ)那么長(zhǎng)的 歷史 數(shù)據(jù),而分析往往是需要建立在大量 歷史 數(shù)據(jù)之上的;交易庫(kù)的模型往往并不適合分析需求,多碼冊(cè)數(shù)情況下需要重要建模,如非常流行且價(jià)值不菲的各行業(yè)數(shù)倉(cāng)主題模型;用于交易的OLTP數(shù)據(jù)庫(kù)與用于分析的OLAP數(shù)據(jù)庫(kù),其技術(shù)體系完全不同;以及大型企業(yè)已固化的內(nèi)部業(yè)務(wù)結(jié)構(gòu)并沒(méi)有留給交易/分析整合可實(shí)施的可行空間……等等。由于, 歷史 積累的企業(yè)級(jí)數(shù)據(jù)體系相當(dāng)復(fù)雜,HTAP的發(fā)明者迄今為止都沒(méi)有系統(tǒng)表達(dá)完全替代數(shù)據(jù)分析需求、自頂而下重構(gòu)企業(yè)數(shù)據(jù)體系的架構(gòu)級(jí)策略,而是將產(chǎn)品重點(diǎn)定位在技術(shù)優(yōu)化層面:在交易庫(kù)上直接完成實(shí)時(shí)統(tǒng)計(jì)分析,滿足高并發(fā)需求且不影響業(yè)務(wù)效能;或者是為實(shí)時(shí)分析統(tǒng)計(jì)/查詢而建設(shè)的數(shù)據(jù)服務(wù)中間平臺(tái)。然而,即使是暫時(shí)沒(méi)有這種策略性的意向,在面向AP的產(chǎn)品具體研發(fā)中,又會(huì)發(fā)現(xiàn)明確的界限確實(shí)不好把握,隨著一個(gè)個(gè)具體功能的不斷完善,似乎假以時(shí)日,技術(shù)上也不是沒(méi)有完全替代純OLAP平臺(tái)的可能性。那么,HTAP究竟如何定位呢?
再者就是規(guī)?;姆植际叫枨螅c小規(guī)模的單機(jī)數(shù)據(jù)庫(kù)需求(這里指邏輯上的單機(jī))之間的矛盾:分布式數(shù)據(jù)庫(kù),自然而然是要應(yīng)對(duì)規(guī)?;臄?shù)據(jù)管理需求的,長(zhǎng)尾的小規(guī)模需求當(dāng)然不應(yīng)在產(chǎn)品設(shè)計(jì)考慮之列,同時(shí),大炮轟蒼蠅經(jīng)常還打不好;然而,分布式NewSQL數(shù)據(jù)庫(kù)又應(yīng)該是云原生的,如果把云原生的業(yè)務(wù)含義理解為“全自助”,它應(yīng)該以支持什么樣的需求為主呢?現(xiàn)實(shí)看來(lái),小規(guī)模長(zhǎng)尾業(yè)務(wù)對(duì)云氏并原生數(shù)據(jù)庫(kù)的需求最起碼應(yīng)該是占據(jù)相當(dāng)大的比重的。顯而易見(jiàn),如果是大規(guī)模的數(shù)據(jù)管理需求,即使是部署在云上,DBPaaS的“全自助”是其核心需求嗎?這種規(guī)?;臉I(yè)務(wù),如果是云上的On-Premise又需要做出哪些方面的改變?從互聯(lián)網(wǎng)與云計(jì)算發(fā)展的 歷史 來(lái)看,“云自助”,其最核心的商業(yè)動(dòng)機(jī)當(dāng)然包括給用戶側(cè)的運(yùn)維帶來(lái)了方便,但更重要的可能是給云服務(wù)運(yùn)營(yíng)商應(yīng)對(duì)海量長(zhǎng)尾客戶的安裝與運(yùn)維帶來(lái)了極大的成本優(yōu)勢(shì)。這正如銀行的小微及個(gè)人消費(fèi)貸款都要走互聯(lián)網(wǎng)線上模式,而重客、大客甚至中小企業(yè)信貸仍然是以線下為主的策略一樣,本質(zhì)是成本問(wèn)題,而不是客戶方便性問(wèn)題。于是,矛盾顯而易見(jiàn):分布式是面向規(guī)??蛻舻模鸫a是中、大型客戶,而云原生卻有可能、最起碼相當(dāng)一段時(shí)間內(nèi)是要以長(zhǎng)尾客戶為主要服務(wù)對(duì)象的。
以上困擾實(shí)質(zhì)上,都涉及到了NewSQL分布式數(shù)據(jù)庫(kù)的產(chǎn)品發(fā)展策略問(wèn)題。
2. 討論
問(wèn)題是客觀而又普遍的,但分析與應(yīng)對(duì)策略往往包含主觀因素:人們的一個(gè)決定與決策,很多情況下并不由嚴(yán)格推理而來(lái),而是心中已經(jīng)有一個(gè)答案,再來(lái)找理由支持它。這里的討論或許也并不能例外。
首先,來(lái)看看Cloud Native與On Premise。云原生本應(yīng)是數(shù)據(jù)庫(kù)即服務(wù),然而目前真正有規(guī)模化數(shù)據(jù)增長(zhǎng)需求的NewSQL應(yīng)用相當(dāng)多的情況下卻是付費(fèi)On Premise與免費(fèi)On Premise區(qū)別,很多互聯(lián)網(wǎng)企業(yè)的應(yīng)用也可能只是部署在云基礎(chǔ)設(shè)施上而已,真正的云原生更多是一些實(shí)驗(yàn)性、嘗試性的需求。但云原生數(shù)據(jù)庫(kù)在公有云、行業(yè)云以及大型私有云上已經(jīng)逐漸在形成一種意識(shí)上的共識(shí),其商業(yè)前景不可。也就是說(shuō),未來(lái)的數(shù)字化轉(zhuǎn)型進(jìn)程中,產(chǎn)業(yè)互聯(lián)網(wǎng)的數(shù)據(jù)庫(kù)部署,會(huì)逐漸向云基礎(chǔ)設(shè)施遷移,長(zhǎng)在云上。它可能是公有云,也可能是行業(yè)云,也可能是私有云,它們都是被定義為云原生NewSQL數(shù)據(jù)庫(kù)的市場(chǎng)范圍。當(dāng)然,肯定還會(huì)有相當(dāng)一部分?jǐn)?shù)據(jù)庫(kù)長(zhǎng)在云下,這也不用糾結(jié),將其排除在云原生市場(chǎng)戰(zhàn)略目標(biāo)之外即可,就是說(shuō),不需要考慮這部分客戶需求對(duì)產(chǎn)品規(guī)劃的影響,因?yàn)榍耙徊糠值姆蓊~已經(jīng)足夠大了。這樣看來(lái),以云原生為目標(biāo)進(jìn)行產(chǎn)品規(guī)劃的邏輯沒(méi)有問(wèn)題,不過(guò),還是要明確一點(diǎn):長(zhǎng)在云上的數(shù)據(jù)庫(kù)是不是一定符合我們對(duì)“云原生”的既有理解?這里認(rèn)為,即使未來(lái),在云上形成了產(chǎn)業(yè)互聯(lián)網(wǎng)數(shù)據(jù)庫(kù)市場(chǎng)的主體,需要“全自助”的數(shù)據(jù)庫(kù)即服務(wù)可能也是以面向長(zhǎng)尾客戶最為迫切、必不可少并且是核心本質(zhì),而對(duì)中大型以上的需求,“全自助”的意義相對(duì)有限,同時(shí)比較而言商業(yè)模式的轉(zhuǎn)變或者更關(guān)鍵些。那么,如果是以“長(zhǎng)在云上”為市場(chǎng)目標(biāo),似乎可以將其定義為“廣義的云原生”,同時(shí),只要是“長(zhǎng)在云上”,那么“云原生”概念中高彈性、高可用、低成本、快速迭代、存算分離等技術(shù)優(yōu)勢(shì)也都能方便獲得。而對(duì)“云原生”策略中“云原生”一詞的理解不同,對(duì)產(chǎn)品規(guī)劃決策的影響也應(yīng)該有所不同:一是目前被認(rèn)為是On Premise的客戶需求,或許也就是未來(lái)“云原生”主體市場(chǎng)的需求;二是NewSQL數(shù)據(jù)庫(kù)關(guān)于云原生服務(wù)的產(chǎn)品策劃,對(duì)用戶側(cè)“自助”水平的決策或許可以更靈活實(shí)用。高水平自助確實(shí)可以減輕客戶對(duì)IT的依賴程度,但這里認(rèn)為,云原生與用戶自行在云上購(gòu)買資源進(jìn)行On-Premise部署相比,最關(guān)鍵的價(jià)值在于商業(yè)模式的改變,能自助多少,不一定是最重要的,因?yàn)槌蔀樵品?wù)商后,運(yùn)營(yíng)運(yùn)維的工作只會(huì)更多,責(zé)任可能會(huì)更大,甚至有時(shí)連IaaS的運(yùn)維也需要PaaS服務(wù)商兜底。但從一個(gè)個(gè)客戶的本地服務(wù),變成集中化云服務(wù),就已經(jīng)是本質(zhì)性的模式轉(zhuǎn)變了。總之,需要就事論事,回到原點(diǎn),仔細(xì)分析后決策,而不是用概念教條的判斷,因?yàn)楦拍畋旧淼亩x并不見(jiàn)得準(zhǔn)確對(duì)應(yīng)實(shí)際的業(yè)務(wù)需求。
再來(lái)看看HTAP,對(duì)這個(gè)問(wèn)題,正如在其它文章中表達(dá)過(guò)的一樣,本文的觀點(diǎn)較為明確。一是隨著計(jì)算能力與架構(gòu)的升級(jí),從技術(shù)上講,AP與TP的界限會(huì)越來(lái)越模糊;另外特別是在云原生的新世界里,數(shù)據(jù)庫(kù)的這一特性又猶為重要,因?yàn)樵圃闹匾饔弥痪褪且尶蛻舯M量擺脫對(duì)IT運(yùn)維的依賴,將越來(lái)越多的精力集中到自己的業(yè)務(wù)發(fā)展上來(lái);同時(shí)端到端的能力提升對(duì)云原生商業(yè)模式的貫徹也至關(guān)重要(需要仔細(xì)分析下目前DBPaaS的技術(shù)要求是否完全符合這一原點(diǎn)的、本質(zhì)性的動(dòng)力),過(guò)去與純OLAP數(shù)據(jù)庫(kù)的優(yōu)勢(shì)比較糾結(jié)在這里也可以得到正面支持;再者,既然架構(gòu)上已經(jīng)走向了AP,就很難做到在產(chǎn)品規(guī)劃上時(shí)刻厘清純AP與混合負(fù)載的需求后,再將前者排除在外。于是,以“混合負(fù)載滿足部分AP需求”應(yīng)該是由于投入與階段性市場(chǎng)策略導(dǎo)致的階段性產(chǎn)品規(guī)劃,而長(zhǎng)遠(yuǎn)來(lái)講,以一套技術(shù)架構(gòu)滿足大多數(shù)需求,應(yīng)該是云原生NewSQL數(shù)據(jù)庫(kù)的追求。
接下來(lái),就是關(guān)于規(guī)模化分布式與小規(guī)模單機(jī)需求的矛盾了?,F(xiàn)在看來(lái),經(jīng)過(guò)上面的討論,這一點(diǎn)已經(jīng)不是什么問(wèn)題了:因?yàn)椤伴L(zhǎng)在云上”、從分散服務(wù)向集中服務(wù)的商業(yè)模式轉(zhuǎn)變就是指廣義的云原生,而不一定要以小微的、迫切需要全自助的長(zhǎng)尾為主流,那么,云原生NewSQL數(shù)據(jù)庫(kù)仍然應(yīng)以規(guī)?;植际綖槠渲黧w的需求方向,而小規(guī)模單機(jī)則暫時(shí)可以不做為重點(diǎn)來(lái)考慮。
最后指出一點(diǎn),希望也能引發(fā)進(jìn)一步的思考:我們所批判的主機(jī),也聲稱自己是分布式架構(gòu),暫且不論其是否客觀,但在現(xiàn)實(shí)中主機(jī)需要被替代的核心問(wèn)題并不是有沒(méi)有分布式,而是:一、擴(kuò)展不靈活帶來(lái)成本問(wèn)題:“我只需要擴(kuò)展一個(gè)節(jié)點(diǎn),你卻讓我再買一臺(tái)主機(jī)”;二、不自主可控;三、往往是軟硬件結(jié)合的設(shè)計(jì)策略,包括內(nèi)存、網(wǎng)絡(luò)、存儲(chǔ)與IO上的軟硬融合設(shè)計(jì),而這一點(diǎn),是否需要云原生數(shù)據(jù)庫(kù)從廣義的定義出發(fā)進(jìn)行學(xué)習(xí)參考,也是需要進(jìn)一步討論的。
我們是否應(yīng)該將數(shù)據(jù)庫(kù)也容器化?
Docker不適合部署數(shù)據(jù)庫(kù)的7大原因
1、數(shù)據(jù)安全問(wèn)題
不要將數(shù)據(jù)儲(chǔ)存在容器中,這也是 Docker 官方容器使用技巧中的一條。容器隨時(shí)可以停止、或者刪除。當(dāng)容器被rm掉,容器里的數(shù)據(jù)將會(huì)丟失。為了避免數(shù)據(jù)丟失,用戶可以使用數(shù)據(jù)卷掛載來(lái)存儲(chǔ)數(shù)據(jù)。但是容器的 Volumes 設(shè)計(jì)是圍繞 Union FS 鏡像層提供持久存儲(chǔ),數(shù)據(jù)安全缺乏保證。如果容器突然崩潰,數(shù)據(jù)庫(kù)未正常關(guān)閉,可能會(huì)損壞數(shù)據(jù)。另外,容器里共享數(shù)據(jù)卷組,對(duì)物理機(jī)硬件損傷也比較大。
即使你要把 Docker 數(shù)據(jù)放在主機(jī)來(lái)存儲(chǔ) ,它依然不能保證不丟數(shù)據(jù)。Docker volumes 的設(shè)計(jì)圍繞 Union FS 鏡像層提供持久存儲(chǔ),但它仍然缺乏保證。
使用當(dāng)前的存儲(chǔ)驅(qū)動(dòng)程序,Docker 仍然存在不可靠的風(fēng)險(xiǎn)。如果容器崩潰并數(shù)據(jù)庫(kù)未正確關(guān)閉,則可能會(huì)損壞數(shù)據(jù)。
2、性能問(wèn)題
大家都知道,MySQL 屬于關(guān)系型數(shù)據(jù)庫(kù),對(duì)IO要求較高。當(dāng)一臺(tái)物理機(jī)跑多個(gè)時(shí),IO就會(huì)累加,導(dǎo)致IO瓶頸,大大降低 MySQL 的讀寫(xiě)性能。
在一次Docker應(yīng)用的十大難點(diǎn)專場(chǎng)上,某國(guó)有銀行的一位架構(gòu)師也曾提出過(guò):“數(shù)據(jù)庫(kù)的性能瓶頸一般出現(xiàn)在IO上面,如果按 Docker 的思路,那么多個(gè)docker最終IO請(qǐng)求又會(huì)出現(xiàn)在存儲(chǔ)上面?,F(xiàn)在互聯(lián)網(wǎng)的數(shù)據(jù)庫(kù)多是share nothing的架構(gòu),可能這也是不考慮遷移到 Docker 的一個(gè)因素吧”。
針對(duì)性能問(wèn)題有些同學(xué)可能也有相對(duì)應(yīng)的方案來(lái)解決:
(1)數(shù)據(jù)庫(kù)程序與數(shù)據(jù)分離
如果使用Docker 跑 MySQL,數(shù)據(jù)庫(kù)程序與數(shù)據(jù)需要進(jìn)行分離,將數(shù)據(jù)存放到共享存儲(chǔ),程序放到容器里。如果容器有異?;?MySQL 服務(wù)異常,自動(dòng)啟動(dòng)一個(gè)全新的容器。另外,建議不要把數(shù)據(jù)存放到宿主機(jī)里,宿主機(jī)和容器共享卷組,對(duì)宿主機(jī)損壞的影響比較大。
(2)跑輕量級(jí)或分布式數(shù)據(jù)庫(kù)
Docker 里部署輕量級(jí)或分布式數(shù)據(jù)庫(kù),Docker 本身就推薦服務(wù)掛掉,自動(dòng)啟動(dòng)新容器,而不是繼續(xù)重啟容器服務(wù)。
(3)合理布局應(yīng)用
對(duì)于IO要求比較高的應(yīng)用或者服務(wù),將數(shù)據(jù)庫(kù)部署在物理機(jī)或者KVM中比較合適。目前TX云的TDSQL和阿里的Oceanbase都是直接部署在物理機(jī)器,而非Docker 。
3、網(wǎng)絡(luò)問(wèn)題
要理解 Docker 網(wǎng)絡(luò),您必須對(duì)網(wǎng)絡(luò)虛擬化有深入的了解。也必須準(zhǔn)備應(yīng)付好意外情況。你可能需要在沒(méi)有支持或沒(méi)有額外工具的情況下,進(jìn)行 bug 修復(fù)。
我們知道:數(shù)據(jù)庫(kù)需要專用的和持久的吞吐量,以實(shí)現(xiàn)更高的負(fù)載。我們還知道容器是虛擬機(jī)管理程序和主機(jī)虛擬機(jī)背后的一個(gè)隔離層。然而網(wǎng)絡(luò)對(duì)于數(shù)據(jù)庫(kù)復(fù)制是至關(guān)重要的,其中需要主從數(shù)據(jù)庫(kù)間 24/7 的穩(wěn)定連接。未解決的 Docker 網(wǎng)絡(luò)問(wèn)題在1.9版本依然沒(méi)有得到解決。
把這些問(wèn)題放在一起,容器化使數(shù)據(jù)庫(kù)容器很難管理。我知道你是一個(gè)頂級(jí)的工程師,什么問(wèn)題都可以得到解決。但是,你需要花多少時(shí)間解決 Docker 網(wǎng)絡(luò)問(wèn)題?將數(shù)據(jù)庫(kù)放在專用環(huán)境不會(huì)更好嗎?節(jié)省時(shí)間來(lái)專注于真正重要的業(yè)務(wù)目標(biāo)。
4、狀態(tài)
在 Docker 中打包無(wú)狀態(tài)服務(wù)是很酷的,可以實(shí)現(xiàn)編排容器并解決單點(diǎn)故障問(wèn)題。但是數(shù)據(jù)庫(kù)呢?將數(shù)據(jù)庫(kù)放在同一個(gè)環(huán)境中,它將會(huì)是有狀態(tài)的,并使系統(tǒng)故障的范圍更大。下次您的應(yīng)用程序?qū)嵗驊?yīng)用程序崩潰,可能會(huì)影響數(shù)據(jù)庫(kù)。
**知識(shí)點(diǎn):**在 Docker 中水平伸縮只能用于無(wú)狀態(tài)計(jì)算服務(wù),而不是數(shù)據(jù)庫(kù)。
Docker 快速擴(kuò)展的一個(gè)重要特征就是無(wú)狀態(tài),具有數(shù)據(jù)狀態(tài)的都不適合直接放在 Docker 里面,如果 Docker 中安裝數(shù)據(jù)庫(kù),存儲(chǔ)服務(wù)需要單獨(dú)提供。
目前,TX云的TDSQL(金融分布式數(shù)據(jù)庫(kù))和阿里云的Oceanbase(分布式數(shù)據(jù)庫(kù)系統(tǒng))都直接運(yùn)行中在物理機(jī)器上,并非使用便于管理的 Docker 上。
5、資源隔離
資源隔離方面,Docker 確實(shí)不如虛擬機(jī)KVM,Docker是利用Cgroup實(shí)現(xiàn)資源限制的,只能限制資源消耗的更大值,而不能隔絕其他程序占用自己的資源。如果其他應(yīng)用過(guò)渡占用物理機(jī)資源,將會(huì)影響容器里 MySQL 的讀寫(xiě)效率。
需要的隔離級(jí)別越多,獲得的資源開(kāi)銷就越多。相比專用環(huán)境而言,容易水平伸縮是Docker的一大優(yōu)勢(shì)。然而在 Docker 中水平伸縮只能用于無(wú)狀態(tài)計(jì)算服務(wù),數(shù)據(jù)庫(kù)并不適用。
我們沒(méi)有看到任何針對(duì)數(shù)據(jù)庫(kù)的隔離功能,那為什么我們應(yīng)該把它放在容器中呢?
6、云平臺(tái)的不適用性
大部分人通過(guò)共有云開(kāi)始項(xiàng)目。云簡(jiǎn)化了虛擬機(jī)操作和替換的復(fù)雜性,因此不需要在夜間或周末沒(méi)有人工作時(shí)間來(lái)測(cè)試新的硬件環(huán)境。當(dāng)我們可以迅速啟動(dòng)一個(gè)實(shí)例的時(shí)候,為什么我們需要擔(dān)心這個(gè)實(shí)例運(yùn)行的環(huán)境?
這就是為什么我們向云提供商支付很多費(fèi)用的原因。當(dāng)我們?yōu)閷?shí)例放置數(shù)據(jù)庫(kù)容器時(shí),上面說(shuō)的這些便利性就不存在了。因?yàn)閿?shù)據(jù)不匹配,新實(shí)例不會(huì)與現(xiàn)有的實(shí)例兼容,如果要限制實(shí)例使用單機(jī)服務(wù),應(yīng)該讓 DB 使用非容器化環(huán)境,我們僅僅需要為計(jì)算服務(wù)層保留彈性擴(kuò)展的能力。
7、運(yùn)行數(shù)據(jù)庫(kù)的環(huán)境需求
常看到 DBMS 容器和其他服務(wù)運(yùn)行在同一主機(jī)上。然而這些服務(wù)對(duì)硬件要求是非常不同的。
數(shù)據(jù)庫(kù)(特別是關(guān)系型數(shù)據(jù)庫(kù))對(duì) IO 的要求較高。一般數(shù)據(jù)庫(kù)引擎為了避免并發(fā)資源競(jìng)爭(zhēng)而使用專用環(huán)境。如果將你的數(shù)據(jù)庫(kù)放在容器中,那么將浪費(fèi)你的項(xiàng)目的資源。因?yàn)槟阈枰獮樵搶?shí)例配置大量額外的資源。在公有云,當(dāng)你需要 34G 內(nèi)存時(shí),你啟動(dòng)的實(shí)例卻必須開(kāi) 64G 內(nèi)存。在實(shí)踐中,這些資源并未完全使用。
怎么解決?您可以分層設(shè)計(jì),并使用固定資源來(lái)啟動(dòng)不同層次的多個(gè)實(shí)例。水平伸縮總是比垂直伸縮更好。
總結(jié)
針對(duì)上面問(wèn)題是不是說(shuō)數(shù)據(jù)庫(kù)一定不要部署在容器里嗎?
答案是:并不是
我們可以把數(shù)據(jù)丟失不敏感的業(yè)務(wù)(搜索、埋點(diǎn))就可以數(shù)據(jù)化,利用數(shù)據(jù)庫(kù)分片來(lái)來(lái)增加實(shí)例數(shù),從而增加吞吐量。
docker適合跑輕量級(jí)或分布式數(shù)據(jù)庫(kù),當(dāng)docker服務(wù)掛掉,會(huì)自動(dòng)啟動(dòng)新容器,而不是繼續(xù)重啟容器服務(wù)。
數(shù)據(jù)庫(kù)利用中間件和容器化系統(tǒng)能夠自動(dòng)伸縮、容災(zāi)、切換、自帶多個(gè)節(jié)點(diǎn),也是可以進(jìn)行容器化的。
見(jiàn)仁見(jiàn)智,一般不推薦用容器做狀態(tài)或持久化的東西,因?yàn)闊o(wú)法保證數(shù)據(jù)安全。當(dāng)然,你如果是類似于一主多從,并對(duì)數(shù)據(jù)一致性沒(méi)有變態(tài)的要求,那用容器跑幾個(gè)只讀從庫(kù)也沒(méi)啥不可以
關(guān)于云數(shù)據(jù)庫(kù)io的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技公司主營(yíng):網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、小程序制作、成都軟件開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫(huà)冊(cè)、網(wǎng)頁(yè)、VI設(shè)計(jì),網(wǎng)站、軟件、微信、小程序開(kāi)發(fā)于一體。
分享題目:高性能云數(shù)據(jù)庫(kù)IO優(yōu)化技巧(云數(shù)據(jù)庫(kù)io)
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/djodihj.html


咨詢
建站咨詢
