Este documento descreve como adicionar um data center (também chamado de região) a um data center de eventos.
Considerações antes de adicionar um data center
Antes de instalar um data center, você precisa saber como configurar o OpenLDAP, Servidores ZooKeeper, Cassandra e Postgres nos data centers. Você também deve garantir que o que as portas necessárias estejam abertas entre os nós nos dois data centers.
- OpenLDAP
Cada data center tem um servidor OpenLDAP configurado com replicação ativada. Quando você instalar o novo data center, configurar o OpenLDAP para usar a replicação e reconfigurar o servidor OpenLDAP no data center atual para usar a replicação.
- ZooKeeper
Para a propriedade
ZK_HOSTS
de nos dois data centers, especifique os endereços IP ou nomes DNS de todos os nós do ZooKeeper dos dois dados na mesma ordem e marcam os nós com o modificador “:observer”. Os nós sem o modificador:observer
são chamados de "eleitores". Você deve ter um número número de "eleitores" em sua configuração.Nessa topologia, o host do ZooKeeper no host 9 é o observador:
No arquivo de configuração de exemplo mostrado abaixo, o nó 9 é marcado com o Modificador
:observer
para ter cinco votantes: nós 1, 2, 3, 7 e 8.Para o
ZK_CLIENT_HOSTS
para cada data center, especifique os endereços IP ou nomes DNS somente do nós no data center, na mesma ordem, para todos os nós do ZooKeeper nos dados de eventos. - Cassandra (link em inglês)
Para o
CASS_HOSTS
de cada data center, especifique todos os endereços IP do Cassandra (não nomes DNS) para os dois dados em data centers locais. Para o data center 1, liste os nós do Cassandra nesse data center primeiro. Para data center 2. Liste os nós do Cassandra nesse data center primeiro. Liste os nós do Cassandra na mesma para todos os nós do Cassandra no data center.Todos os nós do Cassandra precisam ter um sufixo ':d,r'; por exemplo 'ip:1,1 = data center 1 e rack/zona de disponibilidade 1 e 'ip:2,1 = o data center 2 e o rack/zona de disponibilidade 1.
Por exemplo, "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"
O primeiro nó na zona de rack/disponibilidade 1 de cada data center será usado como semente. servidor. Neste modelo de implantação, a configuração do Cassandra ficará assim:
-
Postgres
Por padrão, o Edge instala todos os nós do Postgres no modo mestre. No entanto, quando você tem vários você configura os nós do Postgres para usar a replicação mestre em espera, de modo que, se os o nó mestre falhar, o nó de espera poderá continuar a acessar o tráfego do servidor. Normalmente, você configura o servidor Postgres mestre em um data center e o servidor de espera no segundo data center de eventos.
Se o data center atual já estiver configurado para ter dois nós do Postgres em execução modo mestre/de espera e, como parte desse procedimento, cancele o registro do nó de espera existente e e substituí-lo por um nó de espera no novo data center.
A tabela a seguir mostra a configuração antes e depois do Postgres para ambos cenários:
Antes Depois Um único nó mestre do Postgres em dc-1
Nó mestre do Postgres em dc-1
Nó do Postgres em espera em dc-2
Nó mestre do Postgres em dc-1
Nó do Postgres em espera em dc-1
Nó mestre do Postgres em dc-1
Nó do Postgres em espera em dc-2
Cancelar o registro do nó antigo do Standby Postgres em dc-1
- Requisitos de porta
Você precisa garantir que as portas necessárias estejam abertas entre os nós nos dois data centers. Para um diagrama de porta, consulte Requisitos de porta.
Atualizar o data center atual
Para adicionar um data center, é necessário seguir as etapas para instalar e configurar os novos dados do Google, mas também exige a atualização de nós no data center original. Esses modificações são necessárias porque você está adicionando novos nós do Cassandra e do ZooKeeper no novo que precisam estar acessíveis ao data center existente e você precisa reconfigurar OpenLDAP para usar a replicação.
Como criar os arquivos de configuração
Abaixo estão os arquivos de configuração silenciosa dos dois data centers, onde cada center tem seis nós, conforme mostrado em Topologias de instalação. O arquivo de configuração para dc-1 adiciona mais configurações para:
- Configurar o OpenLDAP com replicação em dois nós do OpenLDAP.
- Adicione os novos nós do Cassandra e do ZooKeeper de dc-2 ao arquivo de configuração 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>" |
Adicionar um novo data center
Use o procedimento abaixo para instalar um novo data center.
No procedimento, os data centers têm os seguintes nomes:
- dc-1: o data center atual
- dc-2: o novo data center
Para adicionar um novo data center:
- Em dc-1, execute setup.sh novamente nos nós originais do Cassandra com o novo dc-1
arquivo de configuração que inclua os nós do Cassandra de dc-2:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
- Em dc-1, execute setup.sh novamente no nó do servidor de gerenciamento:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
- No dc-2, instale
apigee-setup
em todos os nós. Consulte Instalar o utilitário de configuração da Apigee Apigee para mais informações informações. - No dc-2, instale o Cassandra e o ZooKeeper nos nós apropriados:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- Em dc-2, execute o comando "rebuild" em todos os nós do Cassandra, especificando a
nome da região dc-1:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
Você só precisará passar seu nome de usuário e sua senha se ativou a autenticação JMX para o Cassandra.
- No dc-2, instale o servidor de gerenciamento no nó apropriado:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- No nó do servidor de gerenciamento em dc-2, instale
apigee-provision
. que instala o utilitárioapigee-adminapi.sh
:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- No dc-2, instale os processadores de rotas e mensagens nos nós apropriados:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- Em dc-2, instale o Qpid nos nós apropriados:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- No dc-2, instale o Postgres no nó apropriado:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- Configure o mestre/em espera do Postgres para os nós do Postgres. O nó do Postgres em dc-1 é o
mestre, e o nó do Postgres em dc-2 é o servidor em espera.
- No nó mestre em dc-1, edite o arquivo de configuração para definir:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Ative a replicação no novo mestre:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- No nó de espera em dc-2, edite o arquivo de configuração para definir:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- No nó de espera em dc-2, interrompa o servidor e exclua os
dados atuais do Postgres:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/
Se necessário, faça backup desses dados antes de excluí-los.
- Configure o nó de espera em dc-2:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- No nó mestre em dc-1, edite o arquivo de configuração para definir:
- Em dc-1, atualize a configuração de análise e configure as organizações.
- No nó do servidor de gerenciamento de dc-1, acesse o UUID do Postgres
nó:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
O UUID aparece no final dos dados retornados. Salve esse valor.
- No nó do servidor de gerenciamento de dc-2, acesse o UUID do Postgres como mostrado na etapa anterior. Salve esse valor.
- No nó do servidor de gerenciamento de dc-1, determine o nome do
de análise de dados e grupos de consumidores. Muitos dos comandos abaixo exigem essas informações.
Por padrão, o nome do grupo de análise é "axgroup-001" e o nome do consumidor O grupo é "consumer-group-001". No arquivo de configuração silenciosa de uma região, você pode definir o nome do grupo de análise usando a propriedade
AXGROUP
.Se você não tiver certeza dos nomes dos grupos de análise e de consumidores, use o seguinte para exibi-los:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
Esse comando retorna o nome do grupo de análise no campo "Nome" e o grupo de consumidores no campo consumer-groups.
- No nó do servidor de gerenciamento de dc-1, remova o Postgres atual.
servidor do grupo de análise:
- Remova o nó do Postgres do grupo de consumidores:
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
Se dc-1 estiver configurado para ter dois nós do Postgres em execução modo mestre/em espera, remova ambos:
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
- Remova o nó do Postgres do grupo de análise:
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
Se dc-1 estiver configurado para ter dois nós Postgres em execução no modo mestre/de espera, remova ambos:
apigee-adminapi.sh analytics groups postgres_server \ remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \ --pwd adminPword --host localhost
- Remova o nó do Postgres do grupo de consumidores:
- No nó do servidor de gerenciamento de dc-1, adicione o novo mestre/de espera
Servidores Postgres para o grupo de análise:
- Adicione os dois servidores do Postgres ao grupo de análise:
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
Aqui, UUID_1 corresponde ao nó mestre do Postgres em dc-1 e UUID_2 correspondem ao Postgres em espera. nó em dc-2.
- Adicione os servidores PG ao grupo de consumidores como mestre/em espera:
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
- Adicione os dois servidores do Postgres ao grupo de análise:
- Adicione os servidores Qpid de dc-2 ao grupo de análise:
- No nó do servidor de gerenciamento de dc-1, acesse os UUIDs do Qpid
nós em dc-2:
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
Os UUIDs aparecem no final dos dados retornados. Salve esses valores.
- No nó do Servidor de gerenciamento de dc-1, adicione os nós Qpid ao
grupo de análise (execute os dois comandos):
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
- No nó do Servidor de gerenciamento de dc-1, adicione os nós Qpid ao
Consumer group (execute os dois comandos):
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 localhost
- No nó do servidor de gerenciamento de dc-1, acesse os UUIDs do Qpid
nós em dc-2:
- Cancele o registro e exclua o servidor em espera antigo do Postgres em dc-1:
- Cancele o registro do servidor em espera dc-1 Postgres em espera:
apigee-adminapi.sh servers deregister -u UUID -r dc-1 \ -p analytics -t postgres-server -Y --admin adminEmail \ --pwd adminPword --host localhost
Em que UUID é o antigo nó Postgres em espera em dc-1.
- Exclua o servidor em espera dc-1 Postgres em espera:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Cancele o registro do servidor em espera dc-1 Postgres em espera:
- No nó do servidor de gerenciamento de dc-1, acesse o UUID do Postgres
nó:
- Atualizar os keyspaces do Cassandra com o fator de replicação correto nos dois data centers. Você
só precisam executar essa etapa uma vez em qualquer servidor do Cassandra em um dos data centers:
- Inicie o utilitário
cqlsh
do Cassandra:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Execute os seguintes comandos CQL em "cqlsh>" prompt para definir a replicação
níveis para os keyspaces do 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' };
- Visualize os keyspaces usando o comando:
select * from system.schema_keyspaces;
- Saia de
cqlsh
:exit
- Inicie o utilitário
- Execute o seguinte comando
nodetool
em todos os nós do Cassandra em dc-1 sem custo financeiro memória:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Você só precisará passar seu nome de usuário e sua senha se ativou a autenticação JMX para o Cassandra.
- Para cada organização e para cada ambiente que você quer oferecer suporte em todos os data centers:
- No nó do servidor de gerenciamento de dc-1, adicione o novo MP_POD ao
Organização:
apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \ --admin adminEmail --pwd adminPword --host localhost
Em que gateway-2 é o nome do pod de gateway conforme definido pelo Propriedade MP_POD no arquivo de configuração dc-2.
- Adicione os novos processadores de mensagens à organização e ao ambiente:
- No nó do servidor de gerenciamento de dc-2, acesse os UUIDs do
Nós do processador de mensagens em dc-2:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
Os UUIDs aparecem no final dos dados retornados. Salve esses valores.
- No nó do servidor de gerenciamento de dc-1, para cada Processador de mensagens
em dc-2, adicione o processador de mensagens a um ambiente para a organização:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- No nó do servidor de gerenciamento de dc-2, acesse os UUIDs do
Nós do processador de mensagens em dc-2:
- No nó do servidor de gerenciamento de dc-1, verifique a organização:
apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \ --admin adminEmail --pwd adminPword --host localhost
Em que apiProxyName é o nome de um proxy de API implantado na organização.
- No nó do servidor de gerenciamento de dc-1, adicione o novo MP_POD ao
Organização: