Meilleures pratiques de déploiement de cluster GBase 8a MPP

Introduction à GBase 8a MPP Cluster

GBase 8a MPP Cluster utilise une architecture distribuée fédérée MPP + Shared Nothing, où les nœuds communiquent via un réseau TCP/IP et stockent les données sur des disques locaux. Cette solution prend en charge les déploiements symétriques et asymétriques.

Architecture produit GBase 8a MPP Cluster

Le produit GBase 8a MPP Cluster comprend trois composants essentiels et des fonctionnalités d'assistance :

  • GCWare : Composant du cluster de gestion distribuée, fournissant des services de cohérence pour le cluster. Il enregistre et conserve la structure du cluster, l'état des nœuds, l'état des ressources, le contrôle parallèle et les verrous de file d'attente distribuée.
  • GCluster : Composant du cluster d'ordonnancement distribué, agissant comme point d'entrée unique pour le cluster. Il accepte les connexions clients, analyse et optimise les requêtes SQL, génère des plans d'exécution distribués, sélectionne les nœuds appropriés pour l'exécution et renvoie les résultats.
  • GNode : Composant du cluster de stockage et de calcul distribué, servant comme unité de stockage et de calcul des données. Il stocke les données du cluster, exécute les requêtes SQL envoyées par GCluster et reçoit des données pour le chargement.
  • GCMonit : Surveille l'état de fonctionnement des composants GCluster et GNode, redémarre automatiquement les services si nécessaire.
  • GCware_Monit : Surveille l'état de fonctionnement du composant GCware, redémarre automatiquement les services si nécessaire.
  • GCRecover & GCSyncServer : Assurent la synchronisation des données entre les multiples répliques.

Concepts logiques et virtuels

Les composants peuvent être divisés en concepts logiques et virtuels :

Concepts logiques

  • GCluster Cluster : Ensemble de nœuds d'entrée unique pour le cluster d'ordonnancement distribué.
  • GCware Cluster : Ensemble de nœuds de gestion de cohérence pour le cluster de gestion distribuée.
  • Data Cluster : Ensemble de nœuds de stockage et de calcul de données pour le cluster de données distribué.

Concepts virtuels

  • VC (Virtual Cluster) : Regroupement logique des nœuds Data Cluster, permettant une isolation physique des différentes charges de travail.
  • RC (Root Cluster) : Ensemble de tous les nœuds GCluster, GCware et Data, ne fournissant pas de services directs aux utilisateurs.

Recommandations de déploiement

Pour les petites et moyennes tailles de cluster, un déploiement symétrique est recommandé : GCWare, GCluster et GNode sont déployés sur le même nœud, créant ainsi des nœuds Coordinateurs qui sont à la fois des nœuds de coordination et de données.

Préparation de l'environnement

Exigences système

  • Système d'exploitation : Redhat 7.x ou CentOS 7.x, avec les outils de développement installés
  • Version du système : Tous les nœuds au sein du même VC doivent utiliser la même version du système d'exploitation
  • Configuration matérielle recommandée : Processeur 2.0 GHz+, mémoire 4G+, espace disque libre 20G+, adresse IP statique
  • Réseau : Tous les nœuds doivent être sur le même réseau et pouvoir communiquer entre eux; SSH doit être activé; pare-feu et SELinux désactivés
  • Format de partition : EXT4 pour RHEL 6.X, XFS pour RHEL 7.X et SUSE
  • Partition Swap : Pour les machines avec moins de 64G de RAM, Swap égal à la RAM; pour plus de 64G, Swap égal à la moitié de la RAM ou 64G
  • Nom d'hôte : Doit être inférieur à 46 caractères

Vérification des ports

Vérifiez que les ports par défaut ne sont pas utilisés sur les nœuds :

lsof -i:port_number

Les ports requis :

  • Tous les ports GCluster doivent être cohérents entre les nœuds
  • Tous les ports Data doivent être cohérents entre les nœuds
  • Tous les ports gcware doivent être cohérents entre les nœuds

Pré-installation

Configuration du système

Exécutez les étapes suivantes en tant qu'utilisateur root :

Désactivation du pare-feu

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

Désactivation de SELinux

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sestatus

Création de l'utilisateur de base de données

useradd gbase
echo "gbase:gbase" | chpasswd

Création des répertoires d'installation

mkdir -p /opt/gbase
chown -R gbase:gbase /opt
chown gbase:gbase /tmp

Configuration des paramètres système

Utilisez le script Python SetSysEnv.py pour configurer automatiquement les paramètres système :

python /opt/SetSysEnv.py --dbaUser=gbase --installPrefix=/opt/gbase --cgroup

Installation des dépendances

Installez les packages nécessaires :

yum install -y libcgroup psmisc ncurses-libs libdb glibc keyutils-libs libidn libgpg-error libgomp libstdc++ libgcc python-libs libgcrypt nss-softokn-freebl

Configuration des limites de processus

sed -i 's/#DefaultTasksMax=/DefaultTasksMax=infinity/g' /etc/systemd/system.conf
systemctl daemon-reexec

Configuration des pages transparentes et du planificateur I/O

sed -i 's/quiet/quiet transparent_hugepage=never elevator=deadline/' /etc/default/grub

Déterminez le type de démarrage et régénrez la configuration GRUB :

# Pour le démarrage BIOS
grub2-mkconfig -o /boot/grub2/grub.cfg
# Pour le démarrage UEFI
grub2-mkconfig -o /boot/efi/EFI/<distro_name>/grub.cfg

Redémarrez le système pour appliquer les modifications.

Installation de GBase 8a MPP Cluster

Configuration des paramètres d'installation

Modifiez le fichier demo.options dans le répertoire d'installation :

installPrefix= /opt/gbase
coordinateHost = 192.168.6.72,192.168.6.73,192.168.6.74
coordinateHostNodeID = 72,73,74
dataHost = 192.168.6.72,192.168.6.73,192.168.6.74
gcwareHost = 192.168.6.72,192.168.6.73,192.168.6.74
gcwareHostNodeID = 72,73,74
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbase'
rootPwd = 'gbase8a'

Installatino du logiciel

Exécutez le script d'installation en tant qu'utilisateur gbase :

./gcinstall.py --silent=demo.options

Vérification de l'état du cluster

Après l'installation, vérifiez l'état du cluster :

gcadmin

Création du mode de distribution des données

Configurez le fichier gcChangeInfo.xml pour définir la distribution des données :

<?xml version="1.0" encoding="utf-8"?>
<servers>
    <rack>
        <node ip="192.168.6.72"/>
        <node ip="192.168.6.73"/>
        <node ip="192.168.6.74"/>
    </rack>
</servers>

Créez la distribution avec la commande :

gcadmin distribution gcChangeInfo.xml p 2 d 1 pattern 1

Initialisation du cluster

Initialisez le cluster avant d'exécuter des commandes SQL :

gccli -uroot
initnodedatamap;

Création de bases de données et de tables

Testez le déploiement en créant une base de données et une table :

create database test_db;
use test_db;
create table test_table(id int, name varchar(20));
insert into test_table values(1,'test');
select * from test_table;

Post-installation

Désinstallation du cluster

Arrêtez tous les services sur tous les nœuds :

gcluster_services all stop
gcware_services all stop

Exécutez le script de désinstallation sur le nœud principal :

cd /opt/gcinstall
./unInstall.py --silent=demo.options

Configuration du démarrage automatique

Configurez le démarrage automatique du cluster au démarrage du système :

cat<<-EOF>>/etc/rc.local
su - gbase <<-SG
gcware_services all start
gcluster_services all start
SG
EOF
chmod +x /etc/rc.local

Vérifiez que le cluster démarre correctement après le redémarrage du système :

gcadmin

Étiquettes: GBase 8a MPP Cluster base de données distribuée déploiement de cluster configuration système

Publié le 15 juin à 06h36