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

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


咨詢
建站咨詢
