#DICA - Erro ao instalar o cluster 19c - CLSRSC-119: Start of the exclusive mode cluster failed


Durante a instalação de um ambiente Oracle RAC 19c (19.3), ao executar a etapa root.sh ocorreu o erro abaixo.


[root@lamimprd01:+asm1 ~]$/orabin01/app/19.3/grid/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /orabin01/app/19.3/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /orabin01/app/19.3/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /orabin01/app/grid/crsdata/lamimprd01/crsconfig/rootcrs_lamimprd01_2019-12-26_09-57-31AM.log
2019/12/26 09:57:40 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2019/12/26 09:57:41 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2019/12/26 09:57:41 CLSRSC-363: User ignored prerequisites during installation
2019/12/26 09:57:41 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2019/12/26 09:57:43 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2019/12/26 09:57:43 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2019/12/26 09:57:43 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2019/12/26 09:57:44 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2019/12/26 09:57:57 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2019/12/26 09:58:01 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2019/12/26 09:58:04 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2019/12/26 09:58:14 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2019/12/26 09:58:15 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2019/12/26 09:58:19 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2019/12/26 09:58:20 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2019/12/26 09:59:28 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2019/12/26 09:59:33 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2019/12/26 10:00:56 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2019/12/26 10:01:01 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
CRS-2672: Tentativa de iniciar 'ora.evmd' em 'lamimprd01'
CRS-2672: Tentativa de iniciar 'ora.mdnsd' em 'lamimprd01'
CRS-2676: Inicialização de 'ora.mdnsd' em 'lamimprd01' bem-sucedida
CRS-2676: Inicialização de 'ora.evmd' em 'lamimprd01' bem-sucedida
CRS-2672: Tentativa de iniciar 'ora.gpnpd' em 'lamimprd01'
CRS-2676: Inicialização de 'ora.gpnpd' em 'lamimprd01' bem-sucedida
CRS-2672: Tentativa de iniciar 'ora.cssdmonitor' em 'lamimprd01'
CRS-2672: Tentativa de iniciar 'ora.gipcd' em 'lamimprd01'
CRS-2676: Inicialização de 'ora.cssdmonitor' em 'lamimprd01' bem-sucedida
CRS-2674: Falha na inicialização de 'ora.gipcd' em 'lamimprd01'
CRS-2673: Tentativa de interromper 'ora.cssdmonitor' em 'lamimprd01'
CRS-2677: Interrupção de 'ora.cssdmonitor' em 'lamimprd01' bem-sucedida
CRS-2673: Tentativa de interromper 'ora.gpnpd' em 'lamimprd01'
CRS-2677: Interrupção de 'ora.gpnpd' em 'lamimprd01' bem-sucedida
CRS-2673: Tentativa de interromper 'ora.mdnsd' em 'lamimprd01'
CRS-2677: Interrupção de 'ora.mdnsd' em 'lamimprd01' bem-sucedida
CRS-2673: Tentativa de interromper 'ora.evmd' em 'lamimprd01'
CRS-2677: Interrupção de 'ora.evmd' em 'lamimprd01' bem-sucedida
CRS-4000: O comando Start falhou ou foi concluído com erros.
2019/12/26 10:02:04 CLSRSC-119: Start of the exclusive mode cluster failed
Died at /orabin01/app/19.3/grid/crs/install/crsinstall.pm line 2439.
[root@lamimprd01:+asm1 ~]$

Existem inúmeros DOCs no MOS referentes a erros na execução do root.sh. Porém neste caso o erro estava relacionado ao tamanho do nome do cluster, que deve ter entre 1 e 15 caracteres. Acontece que essa condição não é verificada pelo instalador e com isso é possível definir um nome com mais de 15 caracteres, o que ocorreu neste caso.
Como pode ser verificado abaixo, o nome definido possuí 16 caracteres (lamimprd-cluster).



#DICA - Disativar a inicialização automatica do TFA em ambientes Database Cloud Service


Recentemente identificamos em alguns ambientes Database Oracle Cloud, que os serviços do TFA (instalado automaticamente) estavam apresentando um elevado consumo de CPU, o que estava comprometendo a performance do ambiente e desta forma, decidimos desabilita-lo.

É possível desativar o TFA e desabilitar a sua inicialização automática, conforme abaixo.
  •  Parar o TFA

[root@lamimdba ~]#
[root@lamimdba ~]# /etc/init.d/init.tfa shutdown

Shutting down TFA
oracle-tfa stop/waiting
. . . . .


Killing TFA running with pid 31598
. . .
Successfully shutdown TFA..
[root@lamimdba ~]#


  • Desabilitar o TFA


[root@labcloud ~]#
[root@labcloud ~]# /etc/init.d/init.tfa disable

TFA autostart has been disabled ..

[root@labcloud ~]#


Criando uma instância NAT na Oracle Cloud Infrastructure - OCI


INTRODUÇÃO

Neste artigo estaremos abordando a criação de uma instância que servirá como NAT Gateway entre uma private network e uma public network.

Esta configuração permitirá que as instâncias alocadas na private network se conectem a internet, mas evita que uma conexão a partir da internet seja realizada com essas instâncias.

Quando o tráfego é encaminhado para a Internet, o endereço IPv4 de origem é substituído pelo endereço da instância NAT e do mesmo modo, quando a o tráfego de resposta volta para essas instâncias na private network, a instância NAT converte o endereço de volta nos endereços IPv4 privados dessas instâncias.

Diagrama de conexão através de uma Nat Instance.

CONFIGURAÇÕES

1 – Partindo do principio da criação de um ambiente do zero, primeiramente será criada uma VCN utilizando a opção Virtual Cloud Network Only, definindo o CIDR Block como 10.0.0.0/16 e deixando a opção DNS RESOLUTION marcada.




2- Após a criação da VCN, será editada a default security list e criada uma regra de entrada para o CIDR 10.0.1.0/24 (rede privada) e definindo como all protocols. Também é necessário a criar uma regra de saída liberando para a internet 0.0.0.0/0 all protocols.





3 – Concluída a alteração da Default Security List, o próximo passo é a criação do Internet Gateway.



4 – Agora será criada a regra de roteamento para a internet na default route table. Para isso é necessário a criação de uma nova rule na default route table, com os dados abaixo:
·         Destination: 0.0.0.0/0
·         Target Type: Internet Gateway Target
·         Compartment: Chose a compartment

·         Target Selection: InternetGateway


5 – A próxima etapa é a criação da public subnet.
·         Nome: Public Subnet
·         Compartmen: selecionar compartimento desejado
·         Subnet Type: Regional
·         CIDR Block: 10.0.0.0/24
·         Route Table: Default Route Table for VCN01
·         Subnet Access: Public Subnet
·         DHCP Options: Default DHCP Options for VCN01

·         Security Lists: Default Security List for VCN01


6 – Criação da instância NAT. Para isso, utilizaremos as configurações abaixo:
·          Name: NatInstance
·         Availability Domains: Pode ser qualquer um desejado
·         Image: Oracle Linux 7.7
·         Shape: Utilizando o shape free (VM.Standard.E2.1.Micro (Virtual Machine))
·         Virtual Cloud Network: VCN01
·         Subnet: Public Subnet
·         Marcar a opção Assign a public IP address
·         Private IP Address: 10.0.0.2

·         SSH Keys: Adicionar a chave publica


8 - Concluída a criação da compute instance NatInstance é necessário acessa-la com o usuário root e configurar o firewall e o kernel para realizarem o roteamento nat para outros hosts na rede.

Comandos:

echo net.ipv4.ip_forward = 1 > /etc/sysctl.d/98-ip-forward.conf
firewall-offline-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o ens3 -j MASQUERADE
firewall-offline-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens3 -j ACCEPT
/bin/systemctl restart firewalld
sysctl -p /etc/sysctl.d/98-ip-forward.conf


9 –Após os ajustes acima, é necessário editar a vnic da mesma e selecionar a opção Skip Source/Destination Check. Sem essa opção as demais intâncias não podem trafegar através da NatInstance.


10 – Agora iremos criar uma Security List para a private network e posteriormente uma route table, apontando para o private IP da nossa instância NatInstance.

Dados para a Security List:
·         Name: Sec List Private IP
·         Egress rule: 0.0.0.0/0 All Protocols
·         Ingress Rules: Devem ser criadas de acordo com a necessidade do ambiente (ex acesso ssh).



Dados para a Route Table:
·         Name: Private Route Table        
·         Destination: 0.0.0.0/0
·         Target Type: Private IP
·         Target Selection: 10.0.0.2



11 – Criaremos agora a private subnet, com as configuração para que todos os recursos abaixo da mesma e que necessitem de trafego à internet, utilizem nossa NatInstace.

Nome: Private Subnet
Availability Domain: selecionar qualquer um
CIDR Block: 10.0.1.0/24
Route Table: Private Route Table
Subnet Access: Private Subnet
DHCP Options: Default DHCP Options

Security Lists: Sec List Private IP


Concluídas as configurações acima, todas as instâncias que forem criadas na private network e que precisem trafegar pela internet, farão acesso através da nossa instance NatInstance e a nossa rede não estará exposta para a internet.


Abaixo, temos uma conexão em uma vm instance na private subnet e podemos verificar através do traceroute para o endereço www.google.com.br, que o tráfego está sendo direcionado para a NatIstance.



Configurando uma VPN entre a Oracle Cloud Classic e Oracle Cloud OCI

INTRODUÇÃO

Neste artigo iremos abordar o processo de criação de uma VPN IPSec utilizando o libreswan para integrar um ambiente Oracle Cloud Classic e Oracle Cloud OCI, ambos localizados no datacenter de São Paulo.

Atualmente no datacenter Oracle de São Paulo não é possível ativar uma VPNaaS (VPN as a Service) diretamente entre os ambientes Oracle Cloud Classic e Oracle Cloud OCI. Por isso temos a necessidade de utilizar uma ferramenta para implementação e configuração de conexões VPN IPSec. Em nosso artigo utilizaremos o libreswan.

O libreswan é um software open source para implementação de VPN baseado em (IPsec) e Internet Key Exchange (IKE). A maioria das distribuições Linux incluem o libreswan ou são compatíveis com a instalação do mesmo.

Vale destacar que o libreswan também é recomendado para a conexões entre a  Oracle Cloud e outras nuvens ou mesmo com ambientes on premisses.


Diagrama da conexão entre a Oracle Cloud Classic e Oracle Cloud OCI:

CONFIGURAÇÕES

A primeira configuração a ser feita é a criação de uma compute instance Linux no ambiente OCI para a instalação e configuração do libreswan. Para realizarmos esta configuração podemos utilizar o novo shape VM.Standard.E2.1.Micro que é um shape gratuito disponibilizado recentemente.

Desta forma, a máquina utilizada não irá gerar custos adicionais. A compute instance criada precisa ter um IP Público associado, para que seja possível fechar a conexão VPN.

Tendo em vista que o objetivo deste artigo se restringe a implementação e configuração da VPN, o processo de criação da compute instance não será detalhado.


Após a criação da máquina libreswan, é necessário editar a VNIC anexada a mesma, marcando a opção skipe Source/Destination Check. 



Concluída a edição da VNIC, será necessário criar as rotas para que a VPN possa se comunicar entre a rede do Classic e do OCI.
Para isso, serão criadas duas rotas. A rota Internet Gateway 0.0.0.0/0 para que o libreswan possa se comunicar com a VPN e a rota CIDR para o endereço da rede Classic 192.168.1.0/24.

Rede Classic:

Adição das rotas na default route table da VCN na qual a máquina libreswan foi criada.


Concluída a criação das rotas, a próxima etapa é a criação das regras de segurança permitindo o tráfego de entrada UDP na porta 500 para o Internet Key Exchange (IKE), UDP na porta 4500 para o IKE Nat Transverssal, IPsec para o Encapsulated Security Payload (ESP), TCP em todas as portas para o CIDR 192.168.1.0/24 (Rede Classic) e saída para internet 0.0.0.0/0.

Regras de entrada:

Regras de saída:


O próximo passo a ser executado é a criação da VPNaaS no ambiente Classic. Pra isso, vamos em network, VPNaaS, VPN Connections, clicar em Create VPN Connection.


Devem ser preenchidos os seguintes itens e posteriormente clicar em create VPN Connection.

Name:VPNaaSOCI
IP Network:CIDR para a rede IP do Classic
Customer Gateway: IP público da instância OCI do libreswan
Customer Reachable Routes: OCI VCN CIDR
Pre-shared key: pwdvpnociclassic

Name:VPNaaSOCI
IP Network:192.168.1.0/24
Customer Gateway: 152.67.35.47
Customer Reachable Routes: 172.0.0.0/24
Pre-shared key: pwdvpnociclassic


Após criar a VPNaaS no Classic, a mesma não ficará com status Up/Ready pois ainda é preciso instalar e configurar o libreswan. Porém precisamos do IP Público da VPNaaS Classic, para podermos configurar no libreswan.


Agora vamos acessar a máquina libreswan via ssh e realizar a instalação do aplicativo libreswan. Para isso basta utilizar o comando yum -y install libreswan.


Neste artigo a versão instalada foi a 4.14.35-1902.5.2.2, porém o procedimento para versões anteriores é o mesmo.


Feita a instalação do libreswan, iremos realizar a configuração do mesmo. Inicialmente, precisaremos adicionar as linhas abaixo no arquivo /etc/sysctl.conf.

net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens3.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.ens3.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.ens3.rp_filter = 0
net.ipv4.conf.ip_vti0.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0


Após o ajuste, devemos executar o comando o comando sysctl -p para que as alterações realizadas sejam aplicadas.


Também iremos realizar a liberação das regras no firewall para que o libreswan possa trafegar.

firewall-cmd --zone=trusted --add-port=500/udp --permanent
firewall-cmd --zone=trusted --add-port=4500/udp --permanent
firewall-cmd --zone=trusted --add-protocol=50 --permanent
firewall-cmd --zone=trusted --add-protocol=51 --permanent 

Agora devemos ajustar as configurações do /etc/ipsec.conf, adicionando os dados conforme abaixo. Vale ressaltar que a identação deve ser mantida para que não apresente erro na inicialização.

config setup
          plutoopts="--perpeerlog"
          protostack=auto
          nat_traversal=yes
include /etc/ipsec.d/*.conf


O próximo passo é realizar as configurações da VPN com o Classic, para isso, criaremos o arquivo /etc/ipsec.d/VPNaaS.conf

vi /etc/ipsec.d/VPNaaS.conf
    conn vpnaas1
         authby=secret
         auto=start
         pfs=yes
         leftid=144.22.68.211     #OCI-C VPNaaS IPSec IP Pubico
         left=144.22.68.211       #OCI-C VPNaaS IPSec IP Publico
         leftsubnets={192.168.1.0/24} #OCI-C IP-Network CIDR
         right=172.0.0.2            #OCI Libreswan local VPC endereço interno
         rightid=152.67.35.47    #OCI Libreswan IP Publico
         rightsubnet=172.0.0.0/16    #OCI VPC CIDR

Por último, é preciso criar e configurar o arquivo /etc/ipsec.d/VPNaaS.secrets, que conterá a Pre-shared Key utilizada pela VPN.

#OCI-C_VPNaaS-IP-Publico  OCI_LibreSWAN-IP-Publico   :   PSK    "Secret Key(VPNaaS Pre-shared key)"
144.22.68.211 152.67.35.47   :    PSK    "pwdvpnociclassic"


Concluídas as configurações, podemos realizar um restart do ipsec na máquina libreswan e posteriormente um verify para validar as configurações.


Para configurar a inicialização automática do libreswan, basta executar comando systemctl enable ipsec.


É possível verificar o status da conexão através do comando ipsec auto --status.


Podemos atualizar a pagina da VPNaaS Classic e validar que agora a conexão está UP/Ready. Também é possível validar que os endereços estão pingando normalmente de uma rede para outra.


Ping da rede 192.168.1.0/24 para 172.0.0.0/16.


Ping da rede 172.0.0.0/16 para 192.168.1.0/24

Desta forma, concluímos a configuração e implementação da VPN entre os ambientes Oracle Cloud Classic e Oracle Cloud OCI.

Fonte:
https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/libreswan.htm