中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

如何使用PostgreSQL數(shù)據(jù)庫集群部署高可用性Canvas LMS

發(fā)布于:2020-12-19 18:08:10

0

486

0

PostgreSQL 數(shù)據(jù)庫集群 Canvas LMS

在當(dāng)前的大流行時期,學(xué)習(xí)管理系統(tǒng)(LMS)平臺變得越來越重要,以使您無法再使用傳統(tǒng)的教育系統(tǒng)時繼續(xù)進行遠程學(xué)習(xí)。

如果沒有故障,擁有沒有高可用性的LMS平臺可能會成為問題,因為如果沒有數(shù)據(jù)庫始終可用,那么保持系統(tǒng)運行的所有努力就沒有意義。

在此博客中,我們將看到一個流行的LMS應(yīng)用程序,稱為Canvas LMS,以及如何使用PostgreSQL和ClusterControl以高可用性方式進行部署。

什么是畫布?

Canvas是基于Web的學(xué)習(xí)管理系統(tǒng)(LMS)。學(xué)習(xí)機構(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負載均衡器。

HAProxy是一種負載平衡器,可將流量從一個來源分發(fā)到一個或多個目的地,并可以為此任務(wù)定義特定的規(guī)則和/或協(xié)議。如果任何目的地停止響應(yīng),則將其標(biāo)記為脫機,并將流量發(fā)送到其余可用目的地。

Keepalived是一項服務(wù),使您可以在主動/被動服務(wù)器組中配置虛擬IP地址。該虛擬IP地址已分配給活動服務(wù)器。如果該服務(wù)器發(fā)生故障,則IP地址將自動遷移到“輔助”被動服務(wù)器,使其能夠以透明的方式繼續(xù)使用相同的IP地址,對系統(tǒng)而言。

因此,讓我們看看如何使用ClusterControl實現(xiàn)上述拓撲。

數(shù)據(jù)庫部署

要從ClusterControl執(zhí)行部署,只需選擇選項“ Deploy”,然后按照出現(xiàn)的說明進行操作。

Canvas LMS PostgreSQL數(shù)據(jù)庫部署

選擇PostgreSQL時,必須指定用戶,密鑰或密碼和端口以通過SSH連接到服務(wù)器。您還可以為新群集添加名稱,如果您想讓ClusterControl為您安裝相應(yīng)的軟件和配置,也可以為其添加名稱。

Canvas LMS PostgreSQL數(shù)據(jù)庫部署

設(shè)置SSH訪問信息后,您需要定義數(shù)據(jù)庫憑據(jù),版本和數(shù)據(jù)目錄(可選)。您還可以指定要使用的存儲庫。

在下一步中,您需要使用IP地址或主機名將服務(wù)器添加到要創(chuàng)建的群集中。

Canvas LMS PostgreSQL數(shù)據(jù)庫部署

在最后一步中,您可以選擇復(fù)制是同步還是異步,然后按“部署”

Canvas LMS PostgreSQL數(shù)據(jù)庫部署

任務(wù)完成后,您可以在ClusterControl主屏幕中看到新的PostgreSQL集群。

Canvas LMS PostgreSQL數(shù)據(jù)庫部署

現(xiàn)在,您已經(jīng)創(chuàng)建了集群,可以在其上執(zhí)行多個任務(wù),例如添加負載均衡器(HAProxy)或新副本。

負載均衡器部署

要執(zhí)行負載平衡器部署,請在集群操作中選擇選項“添加負載平衡器”,然后完成詢問的信息。

Canvas LMS PostgreSQL數(shù)據(jù)庫負載均衡器部署

您只需要添加IP或主機名,端口,策略以及要使用的節(jié)點。

持續(xù)部署

要執(zhí)行Keepalived部署,請在集群操作中選擇選項“添加負載均衡器”,然后轉(zhuǎn)到Keepalived選項卡。

Canvas LMS PostgreSQL數(shù)據(jù)庫部署-Keepalived

在這里,選擇HAProxy節(jié)點,然后指定將用于訪問數(shù)據(jù)庫的虛擬IP地址。

目前,您應(yīng)該具有以下拓撲:

Canvas LMS PostgreSQL數(shù)據(jù)庫部署

現(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

$ cat config/database.yml<font></font>

<font></font>

production:<font></font>

<font></font>

  adapter: postgresql<font></font>

<font></font>

  encoding: utf8<font></font>

<font></font>

  database: canvas_production<font></font>

<font></font>

  host: VIRTUAL_IPADDRESS<font></font>

<font></font>

  username: CANVAS_USER<font></font>

<font></font>

  password: CANVAS_PASSWD<font></font>

<font></font>

  timeout: 5000

在這里,替換:

  • 在Keepalived中配置的虛擬IP地址為VIRTUAL_IPADDRESS

  • CANVAS_USER用于Canvas數(shù)據(jù)庫用戶

  • CANVAS_PASSWD為Canvas數(shù)據(jù)庫密碼

確保可以使用虛擬IP地址作為主機訪問數(shù)據(jù)庫,并且在pg_hba.conf PostgreSQL配置文件中允許使用該數(shù)據(jù)庫。您可以通過從應(yīng)用程序服務(wù)器運行以下命令來對其進行測試

1個

$ psql -h VIRTUAL_IPADDRESS -U CANVAS_USER canvas_production


ClusterControl自動恢復(fù)功能

因此,問題是,除了部署過程之外,ClusterControl在這里的作用是什么?

如果發(fā)生故障,ClusterControl會將最高級的備用節(jié)點升級為主節(jié)點,并通知您該問題。它還會故障轉(zhuǎn)移備用節(jié)點的其余部分,以從新的主服務(wù)器復(fù)制。

默認(rèn)情況下,HAProxy配置有兩個不同的端口:讀寫和只讀。在讀寫端口中,主節(jié)點處于聯(lián)機狀態(tài),其余節(jié)點處于脫機狀態(tài);在只讀端口中,主節(jié)點和備用節(jié)點均處于聯(lián)機狀態(tài)。

當(dāng)HAProxy檢測到您的節(jié)點之一不可訪問時,它將自動將其標(biāo)記為脫機,并且不考慮將節(jié)點發(fā)送給它。通過部署時由ClusterControl配置的運行狀況檢查腳本來完成檢測。這些命令檢查實例是否啟動,正在恢復(fù)還是只讀。

當(dāng)ClusterControl提升備用節(jié)點時,HAProxy將兩個端口的舊主節(jié)點標(biāo)記為脫機,并將提升后的節(jié)點置于讀寫端口中。

如果為主動HAProxy分配了系統(tǒng)要連接到的虛擬IP地址,該主動HAProxy失敗,則Keepalived會自動將此IP地址遷移到被動HAProxy。這意味著您的系統(tǒng)隨后可以繼續(xù)正常運行。

結(jié)論

在此博客中,我們討論了將高可用性PostgreSQL環(huán)境與Canvas LMS平臺一起使用的重要性,以及ClusterControl如何幫助您完成部署和自動恢復(fù)任務(wù)。我們還提到了如何通過添加HAProxy和Keepalived來實現(xiàn)此環(huán)境,以實現(xiàn)高可用性。