sql >> Databáze >  >> RDS >> PostgreSQL

Nasazení multicloudového clusteru PostgreSQL

Multi-cloudové prostředí je dobrou volbou pro plán obnovy po havárii (DRP), ale může to být časově náročný úkol, protože potřebujete nakonfigurovat konektivitu mezi různými poskytovateli cloudu. pak je třeba nasadit a spravovat váš databázový cluster na dvou různých místech.

V tomto blogu si ukážeme, jak provést multicloudové nasazení pro PostgreSQL u dvou momentálně nejpopulárnějších cloudových poskytovatelů, AWS a Google Cloud. Pro tento úkol použijeme některé funkce, které vám ClusterControl může nabídnout, jako je škálování a replikace mezi clustery.

Předpokládáme, že máte spuštěnou instalaci ClusterControl a již jste vytvořili dva různé účty poskytovatelů cloudu.

Příprava cloudového prostředí

Nejprve si musíte vytvořit prostředí ve svém hlavním poskytovateli cloudu. V tomto případě použijeme AWS se 2 PostgreSQL uzly:

Ujistěte se, že máte povolen provoz SSH a PostgreSQL ze serveru ClusterControl úprava vaší skupiny zabezpečení:

Potom přejděte k sekundárnímu poskytovateli cloudu a vytvořte alespoň jeden virtuální počítač to bude podřízený uzel. Budeme používat Google Cloud Platform s 1 PostgreSQL uzlem.

A znovu se ujistěte, že povolujete provoz SSH a PostgreSQL z vašeho ClusterControl server:

V tomto případě povolujeme provoz bez jakéhokoli omezení zdroje , ale je to jen příklad a v reálném životě se to nedoporučuje.

Nasazení clusteru PostgreSQL v cloudu

Pro tento úkol použijeme ClusterControl, takže předpokládáme, že jej máte nainstalovaný.

Přejděte na svůj server ClusterControl a vyberte možnost „Deploy“. Pokud již máte spuštěnou instanci PostgreSQL, musíte místo toho vybrat „Importovat existující server/databázi“.

Při výběru PostgreSQL musíte zadat uživatele, klíč nebo heslo a port pro připojení pomocí SSH k vašim PostgreSQL uzlům. Potřebujete také název svého nového clusteru a pokud chcete, aby ClusterControl nainstaloval odpovídající software a konfigurace za vás.

Další informace o tomto kroku naleznete v uživatelských požadavcích ClusterControl.

Po nastavení přístupových informací SSH musíte definovat uživatele databáze, verze a datadir (volitelné). Můžete také určit, které úložiště chcete použít. V dalším kroku musíte přidat své servery do clusteru, který se chystáte vytvořit.

Při přidávání serverů můžete zadat IP nebo název hostitele. V tomto kroku můžete také přidat uzel umístěný v sekundárním poskytovateli cloudu, protože ClusterControl nemá žádná omezení ohledně sítě, která má být použita, ale abychom to upřesnili, přidáme jej v další části. Jediným požadavkem je mít SSH přístup k uzlu.

V posledním kroku si můžete vybrat, zda bude vaše replikace synchronní nebo Asynchronní.

V případě, že sem přidáváte svůj vzdálený uzel, je důležité použít asynchronní replikaci, pokud ne, může být váš cluster ovlivněn latencí nebo problémy se sítí.

Stav vytvoření můžete sledovat v monitoru aktivity ClusterControl.

Po dokončení úlohy můžete svůj nový cluster PostgreSQL vidět v hlavní obrazovka ClusterControl.

Přidání vzdáleného podřízeného uzlu do cloudu

Jakmile budete mít svůj cluster vytvořený, můžete na něm provádět několik úkolů, jako je nasazení/import nástroje pro vyrovnávání zatížení nebo replikačního slave uzlu.

Přejděte na akce clusteru a vyberte „Přidat slave replikace“:

Použijme možnost „Přidat novou podřízenou replikaci“, protože předpokládáme, že vzdálený uzel je nová instalace, pokud ne, můžete místo toho použít možnost „Importovat existující replikační slave“.

Zde stačí vybrat váš hlavní server, zadat IP adresu pro váš nový podřízený server a port databáze. Poté si můžete vybrat, zda chcete, aby ClusterControl nainstaloval software a zda má být replikační slave synchronní nebo asynchronní. Opět platí, že pokud přidáváte uzel v jiném datovém centru, měli byste použít asynchronní replikaci, abyste se vyhnuli problémům souvisejícím s výkonem sítě.

Tímto způsobem můžete přidat tolik replik, kolik chcete, a rozložit mezi ně provoz čtení pomocí nástroje pro vyrovnávání zatížení, který můžete také implementovat pomocí ClusterControl.

Vytvoření replikačního slave zařízení můžete sledovat v monitoru aktivity ClusterControl.

A svou konečnou topologii zkontrolujte v části Zobrazení topologie.

Replikace mezi clustery v cloudu

Místo použití možnosti „Add Replication Slave“ pro prostředí s více cloudy můžete použít funkci ClusterControl Cluster-to-Cluster Replication a přidat vzdálený cluster. V tuto chvíli má tato funkce omezení pro PostgreSQL, které vám umožňuje mít pouze jeden vzdálený uzel, takže je to docela podobné předchozímu způsobu, ale pracujeme na tom, abychom toto omezení brzy odstranili v budoucí verzi.

Chcete-li vytvořit nový Slave Cluster, přejděte na ClusterControl -> Vyberte Cluster -> Akce clusteru -> Vytvořit Slave Cluster.

Podřízený cluster bude vytvořen streamováním dat z aktuálního hlavního clusteru.

V této části musíte vybrat hlavní uzel aktuálního clusteru z která budou data replikována.

Když přejdete k dalšímu kroku, musíte zadat uživatele, klíč nebo Heslo a port pro připojení pomocí SSH k vašim serverům. Potřebujete také název svého Slave Clusteru a pokud chcete, aby ClusterControl nainstaloval odpovídající software a konfigurace za vás.

Po nastavení přístupových informací SSH musíte definovat verzi databáze, datadir, port a přihlašovací údaje správce. Protože bude používat streamingovou replikaci, ujistěte se, že používáte stejnou verzi databáze a přihlašovací údaje jako v hlavním clusteru. Můžete také určit, které úložiště použít.

V tomto kroku je třeba přidat server pro nový Slave Cluster . Pro tento úkol můžete zadat IP adresu nebo název hostitele uzlu databáze.

Vytvoření Slave Clusteru můžete sledovat na monitoru aktivity ClusterControl. Po dokončení úlohy můžete vidět cluster na hlavní obrazovce ClusterControl.

Závěr

Tyto funkce ClusterControl vám umožní rychle nastavit replikaci mezi různými poskytovateli cloudu pro databázi PostgreSQL (a různé technologie) a spravovat nastavení snadným a přátelským způsobem. Co se týče komunikace mezi Cloud Providery, z bezpečnostních důvodů musíte omezit provoz pouze ze známých zdrojů, tedy pouze z Cloud Provider 1 na Cloud Provider 2 a naopak.


  1. Jak odečíst hodiny od datatime v MySQL?

  2. Co zkontrolovat, zda je využití paměti MySQL vysoké

  3. Jak funguje Ceiling() v PostgreSQL

  4. Chyba nesprávné hodnoty řetězce MySQL při ukládání řetězce unicode v Django