發(fā)布于:2021-01-27 11:38:26
0
800
0
在ClusterControl 1.5中,我們添加了對(duì)MySQL NDB Cluster 7.5的支持。在這篇博文中,我們將介紹一些使ClusterControl成為管理MySQL NDB集群的好工具的特性。首先也是最重要的一點(diǎn),因?yàn)橛泻芏喈a(chǎn)品的名稱(chēng)中都有“Cluster”,所以我們想對(duì)MySQL NDB Cluster本身以及它與其他解決方案的區(qū)別說(shuō)幾句話(huà)。
MySQL NDB集群
MySQL NDB Cluster是一個(gè)基于NDB引擎的MySQL無(wú)共享同步集群。它是一個(gè)具有自己的特性列表的產(chǎn)品,與Galera Cluster或MySQL InnoDB Cluster有很大的不同。一個(gè)主要的區(qū)別是使用NDB引擎,而不是InnoDB,后者是MySQL的默認(rèn)引擎。在NDB集群中,數(shù)據(jù)被劃分到多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,而Galera集群或MySQL InnoDB集群包含每個(gè)節(jié)點(diǎn)上的完整數(shù)據(jù)集。這對(duì)MySQL NDB集群處理使用連接和大數(shù)據(jù)塊的查詢(xún)的方式產(chǎn)生了嚴(yán)重的影響。
在體系結(jié)構(gòu)方面,MySQL NDB集群由三種不同的節(jié)點(diǎn)類(lèi)型組成。數(shù)據(jù)節(jié)點(diǎn)使用NDB引擎存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)被鏡像以實(shí)現(xiàn)冗余,最多有4個(gè)數(shù)據(jù)副本。請(qǐng)注意,ClusterControl將為每個(gè)節(jié)點(diǎn)組部署2個(gè)副本,因?yàn)檫@是經(jīng)過(guò)測(cè)試最穩(wěn)定的配置。管理節(jié)點(diǎn)旨在控制集群—出于高可用性的原因,通常有兩個(gè)這樣的節(jié)點(diǎn)。SQL節(jié)點(diǎn)用作集群的入口點(diǎn)。它們解析SQL,從數(shù)據(jù)節(jié)點(diǎn)請(qǐng)求數(shù)據(jù),并在需要時(shí)聚合結(jié)果集。
MySQL NDB群集的ClusterControl功能
部署方式
ClusterControl 1.5支持MySQL NDB Cluster 7.5的部署。它是通過(guò)與其他集群類(lèi)型相同的部署向?qū)瓿傻摹?/span>
在第一步中,您需要配置ClusterControl如何通過(guò)SSH登錄到主機(jī)—這是ClusterControl的標(biāo)準(zhǔn)要求—它是無(wú)代理的,因此它需要根SSH直接訪(fǎng)問(wèn)根帳戶(hù)或通過(guò)(密碼或無(wú)密碼)sudo訪(fǎng)問(wèn)。
在下一步中,將為集群定義管理節(jié)點(diǎn)。
在這里,您需要決定要有多少個(gè)數(shù)據(jù)節(jié)點(diǎn)。如前所述,每2個(gè)節(jié)點(diǎn)將是一個(gè)節(jié)點(diǎn)組的一部分,因此這應(yīng)該是偶數(shù)。
最后,您需要決定要在集群中部署多少SQL節(jié)點(diǎn)。單擊deploy后,ClusterControl將連接到主機(jī),安裝軟件并配置所有服務(wù)。過(guò)一段時(shí)間,您應(yīng)該會(huì)看到您的集群已部署。
MySQL NDB集群的擴(kuò)展
對(duì)于MySQL NDB集群,clustercontrol1.5.0支持SQL節(jié)點(diǎn)的伸縮。您可以從“群集作業(yè)”下拉列表中訪(fǎng)問(wèn)作業(yè)。
在這里,您可以填寫(xiě)要添加的節(jié)點(diǎn)的主機(jī)名,這就是您所需要的全部?jī)?nèi)容—ClusterControl將處理其余的內(nèi)容。
MySQL NDB集群的管理
ClusterControl幫助您管理MySQL NDB集群。在本節(jié)中,我們將介紹一些我們擁有的管理特性。
備份
備份對(duì)于任何生產(chǎn)環(huán)境都至關(guān)重要。在發(fā)生災(zāi)難時(shí),只有良好的備份才能最大限度地減少數(shù)據(jù)丟失,并幫助您從問(wèn)題中快速恢復(fù)。復(fù)制可能并不總是有效的解決方案—DROP TABLE將在拓?fù)渲械乃兄鳈C(jī)上刪除該表。即使是一個(gè)被耽擱的奴隸也只能耽擱那么多。
ClusterControl支持MySQL ndb群集的ndb備份。
您可以輕松地創(chuàng)建由ClusterControl執(zhí)行的備份計(jì)劃。
代理層
ClusterControl允許您在MySQL NDB集群上部署一個(gè)完整的高可用性堆棧。對(duì)于代理層,我們支持HAProxy和MaxScale的部署。
如上面的屏幕截圖所示,部署看起來(lái)與其他集群類(lèi)型非常相似。您需要決定是使用現(xiàn)有HAProxy還是部署新HAProxy。然后您需要選擇如何安裝它—使用節(jié)點(diǎn)上可用的存儲(chǔ)庫(kù)中的軟件包,或者從最新版本的源代碼編譯它。
如果您決定使用HAProxy,則可以使用Keepalived和virtualip配置高可用性。
過(guò)程如下-定義一個(gè)虛擬IP和應(yīng)該在其上啟動(dòng)它的接口。然后,您可以為安裝的每個(gè)HAProxy部署它。其中一個(gè)Keepalived進(jìn)程將被確定為“主進(jìn)程”,它將在其節(jié)點(diǎn)上啟用VIP。然后,您的應(yīng)用程序?qū)⑦B接到此特定IP。當(dāng)當(dāng)前活動(dòng)的HAProxy不可用時(shí),VIP將移動(dòng)到另一個(gè)可用的HAProxy,從而恢復(fù)連接。
恢復(fù)管理
雖然MySQL NDB集群可以容忍單個(gè)節(jié)點(diǎn)的故障,但是及時(shí)對(duì)這些故障做出反應(yīng)是很重要的。ClusterControl為群集的所有組件提供自動(dòng)恢復(fù)。無(wú)論發(fā)生什么故障(管理節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)或SQL節(jié)點(diǎn)),ClusterControl都會(huì)自動(dòng)重新啟動(dòng)它們。
監(jiān)控MySQL NDB集群
必須監(jiān)控任何生產(chǎn)就緒的環(huán)境。ClusterControl為您提供了一系列要監(jiān)控的指標(biāo)。在“概述”頁(yè)面中,我們將根據(jù)集群的最重要指標(biāo)顯示圖表。您還可以創(chuàng)建自己的儀表板,顯示在您的環(huán)境中有用的其他數(shù)據(jù)。
除了這些圖之外,“概述”頁(yè)面還根據(jù)一些MySQL NDB集群度量(如已用索引內(nèi)存、數(shù)據(jù)內(nèi)存和一些緩沖區(qū)的狀態(tài))來(lái)深入了解集群的狀態(tài)。
它還提供對(duì)主機(jī)指標(biāo)的監(jiān)視,包括CPU利用率、RAM、磁盤(pán)或網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)。這些圖表對(duì)于構(gòu)建集群健康狀況的視圖也至關(guān)重要。
ClusterControl還可以通過(guò)允許您訪(fǎng)問(wèn)查詢(xún)監(jiān)視器來(lái)幫助您提高數(shù)據(jù)庫(kù)的性能,查詢(xún)監(jiān)視器保存有關(guān)您的流量的統(tǒng)計(jì)信息。
如上面的屏幕截圖所示,您可以看到針對(duì)集群運(yùn)行的查詢(xún)類(lèi)型、給定類(lèi)型的查詢(xún)數(shù)量、它們的執(zhí)行時(shí)間和總執(zhí)行時(shí)間。這有助于確定哪些查詢(xún)速度慢,哪些查詢(xún)負(fù)責(zé)大部分流量。然后,您可以將注意力集中在能夠?yàn)槟峁┳畲笮阅芨倪M(jìn)的查詢(xún)上。
作者介紹
熱門(mén)博客推薦