發(fā)布于:2020-12-19 18:08:10
0
474
0
在當(dāng)前的大流行時期,學(xué)習(xí)管理系統(tǒng)(LMS)平臺變得越來越重要,以使您無法再使用傳統(tǒng)的教育系統(tǒng)時繼續(xù)進(jìn)行遠(yuǎn)程學(xué)習(xí)。
如果沒有故障,擁有沒有高可用性的LMS平臺可能會成為問題,因為如果沒有數(shù)據(jù)庫始終可用,那么保持系統(tǒng)運(yùn)行的所有努力就沒有意義。
在此博客中,我們將看到一個流行的LMS應(yīng)用程序,稱為Canvas LMS,以及如何使用PostgreSQL和ClusterControl以高可用性方式進(jìn)行部署。
什么是畫布?
Canvas是基于Web的學(xué)習(xí)管理系統(tǒng)(LMS)。學(xué)習(xí)機(jī)構(gòu),教育工作者和學(xué)生使用它來訪問和管理在線課程學(xué)習(xí)材料,并交流有關(guān)技能發(fā)展和學(xué)習(xí)成果的信息。
Canvas包括各種可自定義的課程創(chuàng)建和管理工具,課程和用戶分析與統(tǒng)計信息以及內(nèi)部通信工具。
Canvas LMS PostgreSQL數(shù)據(jù)庫部署
首先,讓我們部署一個PostgreSQL集群,Canvas LMS應(yīng)用程序?qū)⑹褂盟榇?,我們將使用ClusterControl部署3個PostgreSQL節(jié)點(1個主節(jié)點和2個備用節(jié)點),以及2個在其間配置了Keepalived的HAProxy負(fù)載均衡器。
HAProxy是一種負(fù)載平衡器,可將流量從一個來源分發(fā)到一個或多個目的地,并可以為此任務(wù)定義特定的規(guī)則和/或協(xié)議。如果任何目的地停止響應(yīng),則將其標(biāo)記為脫機(jī),并將流量發(fā)送到其余可用目的地。
Keepalived是一項服務(wù),使您可以在主動/被動服務(wù)器組中配置虛擬IP地址。該虛擬IP地址已分配給活動服務(wù)器。如果該服務(wù)器發(fā)生故障,則IP地址將自動遷移到“輔助”被動服務(wù)器,使其能夠以透明的方式繼續(xù)使用相同的IP地址,對系統(tǒng)而言。
因此,讓我們看看如何使用ClusterControl實現(xiàn)上述拓?fù)洹?/span>
數(shù)據(jù)庫部署
要從ClusterControl執(zhí)行部署,只需選擇選項“ Deploy”,然后按照出現(xiàn)的說明進(jìn)行操作。
選擇PostgreSQL時,必須指定用戶,密鑰或密碼和端口以通過SSH連接到服務(wù)器。您還可以為新群集添加名稱,如果您想讓ClusterControl為您安裝相應(yīng)的軟件和配置,也可以為其添加名稱。
設(shè)置SSH訪問信息后,您需要定義數(shù)據(jù)庫憑據(jù),版本和數(shù)據(jù)目錄(可選)。您還可以指定要使用的存儲庫。
在下一步中,您需要使用IP地址或主機(jī)名將服務(wù)器添加到要創(chuàng)建的群集中。
在最后一步中,您可以選擇復(fù)制是同步還是異步,然后按“部署”
任務(wù)完成后,您可以在ClusterControl主屏幕中看到新的PostgreSQL集群。
現(xiàn)在,您已經(jīng)創(chuàng)建了集群,可以在其上執(zhí)行多個任務(wù),例如添加負(fù)載均衡器(HAProxy)或新副本。
負(fù)載均衡器部署
要執(zhí)行負(fù)載平衡器部署,請在集群操作中選擇選項“添加負(fù)載平衡器”,然后完成詢問的信息。
您只需要添加IP或主機(jī)名,端口,策略以及要使用的節(jié)點。
持續(xù)部署
要執(zhí)行Keepalived部署,請在集群操作中選擇選項“添加負(fù)載均衡器”,然后轉(zhuǎn)到Keepalived選項卡。
在這里,選擇HAProxy節(jié)點,然后指定將用于訪問數(shù)據(jù)庫的虛擬IP地址。
目前,您應(yīng)該具有以下拓?fù)洌?/span>
現(xiàn)在,讓我們將此環(huán)境連接到Canvas LMS以獲得高可用性。
如何配置Canvas LMS
首先,您需要安裝它。使用Docker上的自動設(shè)置,手動或什至使用不同的方法(例如QuickStart或面向生產(chǎn)的安裝)來執(zhí)行此操作的方式有多種。您可以查看官方文檔以選擇最適合您的方法。
一旦安裝了Canvas LMS,就可以繼續(xù)配置database.yml文件以使用剛部署的PostgreSQL HighAvailability環(huán)境。
1個 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
在這里,替換:
在Keepalived中配置的虛擬IP地址為VIRTUAL_IPADDRESS
CANVAS_USER用于Canvas數(shù)據(jù)庫用戶
CANVAS_PASSWD為Canvas數(shù)據(jù)庫密碼
確??梢允褂锰摂MIP地址作為主機(jī)訪問數(shù)據(jù)庫,并且在pg_hba.conf PostgreSQL配置文件中允許使用該數(shù)據(jù)庫。您可以通過從應(yīng)用程序服務(wù)器運(yùn)行以下命令來對其進(jìn)行測試:
1個 |
|
ClusterControl自動恢復(fù)功能
因此,問題是,除了部署過程之外,ClusterControl在這里的作用是什么?
如果發(fā)生故障,ClusterControl會將最高級的備用節(jié)點升級為主節(jié)點,并通知您該問題。它還會故障轉(zhuǎn)移備用節(jié)點的其余部分,以從新的主服務(wù)器復(fù)制。
默認(rèn)情況下,HAProxy配置有兩個不同的端口:讀寫和只讀。在讀寫端口中,主節(jié)點處于聯(lián)機(jī)狀態(tài),其余節(jié)點處于脫機(jī)狀態(tài);在只讀端口中,主節(jié)點和備用節(jié)點均處于聯(lián)機(jī)狀態(tài)。
當(dāng)HAProxy檢測到您的節(jié)點之一不可訪問時,它將自動將其標(biāo)記為脫機(jī),并且不考慮將節(jié)點發(fā)送給它。通過部署時由ClusterControl配置的運(yùn)行狀況檢查腳本來完成檢測。這些命令檢查實例是否啟動,正在恢復(fù)還是只讀。
當(dāng)ClusterControl提升備用節(jié)點時,HAProxy將兩個端口的舊主節(jié)點標(biāo)記為脫機(jī),并將提升后的節(jié)點置于讀寫端口中。
如果為主動HAProxy分配了系統(tǒng)要連接到的虛擬IP地址,該主動HAProxy失敗,則Keepalived會自動將此IP地址遷移到被動HAProxy。這意味著您的系統(tǒng)隨后可以繼續(xù)正常運(yùn)行。
結(jié)論
在此博客中,我們討論了將高可用性PostgreSQL環(huán)境與Canvas LMS平臺一起使用的重要性,以及ClusterControl如何幫助您完成部署和自動恢復(fù)任務(wù)。我們還提到了如何通過添加HAProxy和Keepalived來實現(xiàn)此環(huán)境,以實現(xiàn)高可用性。
作者介紹