Ce document explique comment ajouter un centre de données (également appelé région) à un centre de données existant.
Éléments à prendre en compte avant d'ajouter un centre de données
Avant d'installer un centre de données, vous devez comprendre comment configurer les serveurs OpenLDAP, ZooKeeper, Cassandra et Postgres dans les centres de données. Vous devez également vous assurer que les ports nécessaires sont ouverts entre les nœuds des deux centres de données.
- OpenLDAP
Chaque centre de données possède son propre serveur OpenLDAP configuré avec la réplication activée. Lorsque vous installez le nouveau centre de données, vous devez configurer OpenLDAP pour qu'il utilise la réplication, et vous devez reconfigurer le serveur OpenLDAP dans le centre de données existant pour qu'il utilise la réplication.
- ZooKeeper
Pour la propriété
ZK_HOSTSdes deux centres de données, spécifiez les adresses IP ou les noms DNS de tous les nœuds ZooKeeper des deux centres de données, dans le même ordre, et marquez tous les nœuds avec le modificateur ":observer". Les nœuds sans le modificateur:observersont appelés "votants". Votre configuration doit comporter un nombre impair de "votants" dans votre configuration.Dans cette topologie, l'hôte ZooKeeper sur l'hôte 9 est l'observateur :

Dans l'exemple de fichier de configuration ci-dessous, le nœud 9 est balisé avec le
:observermodificateur, ce qui vous donne cinq votants : les nœuds 1, 2, 3, 7 et 8.Pour la propriété
ZK_CLIENT_HOSTSde chaque centre de données, spécifiez les adresses IP ou les noms DNS uniquement des nœuds ZooKeeper du centre de données, dans le même ordre, pour tous les nœuds ZooKeeper du centre de données. - Cassandra
Pour
CASS_HOSTSde chaque centre de données, assurez-vous de spécifier toutes les adresses IP Cassandra (et non les noms DNS) pour les deux centres de données. Pour le centre de données 1, listez d'abord les nœuds Cassandra de ce centre de données. Pour le centre de données 2, listez d'abord les nœuds Cassandra de ce centre de données. Listez les nœuds Cassandra dans le même ordre pour tous les nœuds Cassandra du centre de données.Tous les nœuds Cassandra doivent avoir le suffixe ":d,r" ; par exemple "ip:1,1 = centre de données 1 et rack/zone de disponibilité 1" et "ip:2,1 = centre de données 2 et rack/zone de disponibilité 1".
Par exemple, "192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1"
Le premier nœud du rack/de la zone de disponibilité 1 de chaque centre de données sera utilisé comme serveur d'amorçage. Dans ce modèle de déploiement, la configuration de Cassandra se présente comme suit :

-
Postgres
Par défaut, Edge installe tous les nœuds Postgres en mode maître. Toutefois, lorsque vous disposez de plusieurs centres de données, vous configurez les nœuds Postgres pour qu'ils utilisent la réplication maître/de secours. Ainsi, si le nœud maître échoue, le nœud de secours peut continuer à desservir le trafic. En règle générale, vous configurez le serveur Postgres maître dans un centre de données et le serveur de secours dans le deuxième centre de données.
Si le centre de données existant est déjà configuré pour que deux nœuds Postgres s'exécutent en mode maître/de secours, désinscrivez le nœud de secours existant et remplacez-le par un nœud de secours dans le nouveau centre de données dans le cadre de cette procédure.
Le tableau suivant présente la configuration Postgres avant et après pour les deux scénarios :
Avant Après Nœud Postgres maître unique dans dc-1
Nœud Postgres maître dans dc-1
Nœud Postgres de secours dans dc-2
Nœud Postgres maître dans dc-1
Nœud Postgres de secours dans dc-1
Nœud Postgres maître dans dc-1
Nœud Postgres de secours dans dc-2
Désinscrire l'ancien nœud Postgres de secours dans dc-1
- Exigences concernant les ports
Vous devez vous assurer que les ports nécessaires sont ouverts entre les nœuds des deux centres de données. Pour obtenir un schéma des ports, consultez Exigences concernant les ports.
Mettre à jour le centre de données existant
L'ajout d'un centre de données nécessite d'effectuer les étapes d'installation et de configuration des nouveaux nœuds de centre de données, mais aussi de mettre à jour les nœuds du centre de données d'origine. Ces modifications sont nécessaires, car vous ajoutez de nouveaux nœuds Cassandra et ZooKeeper dans le nouveau centre de données qui doivent être accessibles au centre de données existant, et vous devez reconfigurer OpenLDAP pour qu'il utilise la réplication.
Créer les fichiers de configuration
Vous trouverez ci-dessous les fichiers de configuration silencieuse pour les deux centres de données, où chaque centre de données comporte six nœuds, comme indiqué dans Topologies d'installation. Notez que le fichier de configuration de dc-1 ajoute des paramètres supplémentaires à :
- Configurer OpenLDAP avec la réplication sur deux nœuds OpenLDAP.
- Ajouter les nouveaux nœuds Cassandra et ZooKeeper de dc-2 au fichier de configuration de dc-1.
# Datacenter 1 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP1 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP7 APIGEE_LDAPPW=secret MP_POD=gateway-1 REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
# Datacenter 2 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP7 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=2 LDAP_PEER=$IP1 APIGEE_LDAPPW=secret MP_POD=gateway-2 REGION=dc-2 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
Ajouter un centre de données
Suivez la procédure ci-dessous pour installer un nouveau centre de données.
Dans la procédure, les centres de données portent les noms suivants :
- dc-1 : centre de données existant
- dc-2 : nouveau centre de données
Pour ajouter un centre de données :
- Sur dc-1, réexécutez setup.sh sur les nœuds Cassandra d'origine avec le nouveau fichier de configuration dc-1 qui inclut les nœuds Cassandra de dc-2 :
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
- Sur dc-2, installez apigee-setup sur tous les nœuds. Pour en savoir plus, consultez Installer l'utilitaire apigee-setup Edge.
- Sur dc-2, installez Cassandra et ZooKeeper sur les nœuds appropriés :
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- Sur dc-1, réexécutez setup.sh sur le nœud du serveur de gestion :
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
Le cas échéant, réexécutez la configuration de la monétisation :
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
- Sur dc-2, exécutez la commande de reconstruction sur tous les nœuds Cassandra, en spécifiant le nom de région de dc-1 :
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
Vous n'avez besoin de transmettre votre nom d'utilisateur et votre mot de passe que si vous avez activé l'authentification JMX pour Cassandra.
- Sur dc-2, installez le serveur de gestion sur le nœud approprié :
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- Sur le nœud du serveur de gestion dans dc-2, installez
apigee-provision, qui installe l'utilitaireapigee-adminapi.sh:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- Sur dc-2, installez les routes et les processeurs de messages sur les nœuds appropriés :
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- Sur dc-2, installez Qpid sur les nœuds appropriés :
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- Sur dc-2, installez Postgres sur le nœud approprié :
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- Configurez le mode maître/de secours pour les nœuds Postgres. Le nœud Postgres de dc-1 est le
maître, et le nœud Postgres de dc-2 est le serveur de secours.
- Sur le nœud maître de dc-1, modifiez le fichier de configuration pour définir :
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Activez la réplication sur le nouveau maître :
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- Sur le nœud de secours de dc-2, modifiez le fichier de configuration pour définir :
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Sur le nœud de secours de dc-2, arrêtez le serveur, puis supprimez toutes les données Postgres existantes :
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/Si nécessaire, vous pouvez sauvegarder ces données avant de les supprimer.
- Configurez le nœud de secours dans dc-2 :
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- Sur le nœud maître de dc-1, modifiez le fichier de configuration pour définir :
- Sur dc-1, mettez à jour la configuration Analytics et configurez les organisations.
- Sur le nœud du serveur de gestion de dc-1, récupérez l'UUID du nœud Postgres
:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
L'UUID apparaît à la fin des données renvoyées. Enregistrez cette valeur.
- Sur le nœud du serveur de gestion de dc-2, récupérez l'UUID du nœud Postgres comme indiqué à l'étape précédente. Enregistrez cette valeur.
- Sur le nœud du serveur de gestion de dc-1, déterminez le nom des
groupes "analytics" et "consumer". De nombreuses commandes ci-dessous nécessitent ces informations.
Par défaut, le nom du groupe "analytics" est "axgroup-001" et le nom du groupe "consumer" est "consumer-group-001". Dans le fichier de configuration silencieuse d'une région, vous pouvez définir le nom du groupe "analytics" à l'aide de la
AXGROUPpropriété.Si vous n'êtes pas sûr des noms des groupes "analytics" et "consumer", utilisez la commande suivante pour les afficher :
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
Cette commande renvoie le nom du groupe "analytics" dans le champ "name" et le nom du groupe "consumer" dans le champ "consumer-groups".
- Sur le nœud du serveur de gestion de dc-1, supprimez le serveur Postgres existant du groupe "analytics" :
- Supprimez le nœud Postgres du groupe "consumer" :
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u UUID \ -Y --admin adminEmail --pwd adminPword --host localhost
Si dc-1 est configuré pour que deux nœuds Postgres s'exécutent en mode maître/de secours, supprimez-les tous les deux :
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" \ -Y --admin adminEmail --pwd adminPword --host localhost
- Supprimez le nœud Postgres du groupe "analytics" :
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
Si dc-1 est configuré pour que deux nœuds Postgres s'exécutent en mode maître/de secours, supprimez-les tous les deux :
apigee-adminapi.sh analytics groups postgres_server \ remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \ --pwd adminPword --host localhost
- Supprimez le nœud Postgres du groupe "consumer" :
- Sur le nœud du serveur de gestion de dc-1, ajoutez les nouveaux serveurs Postgres maître/de secours
au groupe "analytics" :
- Ajoutez les deux serveurs Postgres au groupe "analytics" :
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
Où UUID_1 correspond au nœud Postgres maître dans dc-1 et UUID_2 correspond au nœud Postgres de secours dans dc-2.
- Ajoutez les serveurs PG au groupe "consumer" en tant que maître/de secours :
apigee-adminapi.sh analytics groups consumer_groups datastores \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
- Ajoutez les deux serveurs Postgres au groupe "analytics" :
- Ajoutez les serveurs Qpid de dc-2 au groupe "analytics" :
- Sur le nœud du serveur de gestion de dc-1, récupérez les UUID des nœuds Qpid
dans dc-2 :
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
Les UUID apparaissent à la fin des données renvoyées. Enregistrez ces valeurs.
- Sur le nœud du serveur de gestion de dc-1, ajoutez les nœuds Qpid au groupe
analytics (exécutez les deux commandes) :
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_1" --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_2" --admin adminEmail \ --pwd adminPword --host localhost - Sur le nœud du serveur de gestion de dc-1, ajoutez les nœuds Qpid au
groupe "consumer" (exécutez les deux commandes) :
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \ --admin adminEmail --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \ --admin adminEmail --pwd adminPword --host localhostSi vous utilisez Monétisation, ajoutez les nœuds Qpid au groupe MINT sur le nœud du serveur de gestion de dc-1 :
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u UUID_1 --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u UUID_2 --admin adminEmail \ --pwd adminPword --host localhost
- Sur le nœud du serveur de gestion de dc-1, récupérez les UUID des nœuds Qpid
dans dc-2 :
- Désinscrivez et supprimez l'ancien serveur de secours Postgres de dc-1 :
- Désinscrivez le serveur de secours Postgres dc-1 existant :
apigee-adminapi.sh servers deregister -u UUID -r dc-1 \ -p analytics -t postgres-server -Y --admin adminEmail \ --pwd adminPword --host localhost
Où UUID correspond à l'ancien nœud Postgres de secours dans dc-1.
- Supprimez le serveur de secours Postgres dc-1 existant :
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Désinscrivez le serveur de secours Postgres dc-1 existant :
- Sur le nœud du serveur de gestion de dc-1, récupérez l'UUID du nœud Postgres
:
- Mettez à jour les espaces de clés Cassandra avec le facteur de réplication approprié pour les deux centres de données. Vous
n'avez besoin d'exécuter cette étape qu'une seule fois sur n'importe quel serveur Cassandra dans l'un des centres de données :
- Démarrez l'utilitaire
cqlshde Cassandra :/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Exécutez les commandes CQL suivantes dans l'invite "cqlsh>" pour définir les niveaux de réplication
des espaces de clés Cassandra :
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };- Affichez les espaces de clés à l'aide de la commande :
SELECT * FROM system_schema.keyspaces;
- Quittez
cqlsh:exit
- Démarrez l'utilitaire
- Exécutez la commande
nodetoolsuivante sur tous les nœuds Cassandra de dc-1 pour libérer la mémoire :/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Vous n'avez besoin de transmettre votre nom d'utilisateur et votre mot de passe que si vous avez activé l'authentification JMX pour Cassandra.
- Pour chaque organisation et pour chaque environnement que vous souhaitez prendre en charge dans les centres de données :
- Sur le nœud du serveur de gestion de dc-1, ajoutez le nouveau MP_POD à l'
organisation :
apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \ --admin adminEmail --pwd adminPword --host localhost
Où gateway-2 est le nom du pod de passerelle tel que défini par la propriété MP_POD dans le fichier de configuration dc-2.
- Ajoutez les nouveaux processeurs de messages à l'organisation et à l'environnement :
- Sur le nœud du serveur de gestion de dc-2, récupérez les UUID des
nœuds du processeur de messages dans dc-2 :
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
Les UUID apparaissent à la fin des données renvoyées. Enregistrez ces valeurs.
- Sur le nœud du serveur de gestion de dc-1, pour chaque processeur de messages
dans dc-2, ajoutez le processeur de messages à un environnement pour l'organisation :
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- Sur le nœud du serveur de gestion de dc-2, récupérez les UUID des
nœuds du processeur de messages dans dc-2 :
- Sur le nœud du serveur de gestion de dc-1, vérifiez l'organisation :
apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \ --admin adminEmail --pwd adminPword --host localhost
Où apiProxyName est le nom d'un proxy API déployé dans l'organisation.
- Sur le nœud du serveur de gestion de dc-1, ajoutez le nouveau MP_POD à l'
organisation :
Si vous utilisez Monétisation, installez le nœud de monétisation dans DC2.
Exécutez la commande de configuration MINT dans les nœuds du serveur de gestion et du processeur de messages dans DC2 :
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1