jul 052015
 

O Oracle RAC é composto de inúmeros daemons, com cada um tendo funções e responsabilidades especificas.

Um deles é o CSS, ou Cluster Synchronization Services.

Cluster Synchronization Services

Mas o que faz o CSS e por qual parâmetros ele é influenciado ?

Podemos dizer que o CSS é o deamon responsável por controlar os nós que pertecem ao Cluster.
Ele verifica e notifica quando um nó entra ou sai do Cluster.

Caso os nós percam a comunicação entre si, é esse mecanismo que esta envolvido no processo de identificação da falha.

Esse mecanismo é fundamental para evitar Split Brains.

E para verificar quais nós estão ativos no cluster o CSS faz uso de dois mecanismos de Heartbeat (regularmente o Oracle tenta enviar uma mensagem, como um pulso de coração, informando que aquele nó esta vivo):

Voting Disk

Regularmente o Oracle escreve no Voting Disk informando que o Nó esta disponível.

Network Heartbeat por meio da Rede Privada (interconnect)

Regularmente o Oracle envia uma mensagem via Rede Privada informando que o Nó esta disponível.

Desta forma, se não for possível que o nó se comunique com o Cluster via Rede Privada durante certo período de tempo, ele poderá ser evitado (removido do cluster).
Se algum nó não acessar a maioria dos Voting Disks (50%+1) ele não poderá entrar no cluster, e caso já faça parte do cluster, ele será evitado.

Mas que parâmetros influenciam esse comportamento ?

O CSS possui alguns parâmetros que controlam e afetam o timeout do Heartbeat:

Miscount

Tempo máximo em segundos que um heartbeat pode ocorrer. Caso demore mais que isso o nó poderá ser evitado.

Reboottime

Tempo máximo para que o nó seja reiniciado. Esse é o tempo que a maquina leva para dar shutdown.

DiskTimeOut

Tempo máximo em segundos que a escrita em um voting disk pode ocorrer. Caso demore mais que isso o nó poderá ser evitado. Lembrando que no caso do Votink Disk, para que isso aconteça, ele teria que ter acesso a menos de 50% + 1 dos voting disks. Exemplificando, caso o Cluster tenha 3 voting disks e ele perca o acesso a 1 desses discos, ele não será evitado. Já caso ele perca o acesso a 2, ele poderá ser evitado. É preciso ter acesso a mais de 50% dos voting disks sempre.

Para obter os valores configurados desses parâmetros e para altera-los você pode fazer assim:

# crsctl get css misscount
30
# crsctl set css misscount 90
Configuration parameter misscount is now set to 90.

# crsctl get css disktimeout
200
# crsctl set css disktimeout 600
Configuration parameter disktimeout is now set to 600.

Mas tome extremo cuidado ao alterar essas configurações.
Elas podem alterar o comportamento do seu cluster e você aumentar ou diminuir a necessidade de reconfiguração do cluster.

Esses parâmetros tem de ser definidos de ambiente para ambiente.
Normalmente quanto menor melhor, mas tem ambientes que tem um IO mais lento que o outro, e durante uma carga pesada, pode ser que por exemplo , o disktimeout de um ambiente tenha que ser maior que outro e assim por diante.
Por isso, tome cuidado e só altere esses parâmetros caso tenha certeza do que esta fazendo, e se esta ciente do seu comportamento.

  One Response to “Oracle RAC – Cluster Synchronization Services (CSS)”

  1. […] Os nodes não sabem que estão sozinhos no cluster, daí os dois podem alterar os mesmos dados de uma tabela sem saber. Isso é chamado de Split Brain. É por isso que o Oracle tem um sensível mecanismo de verificação dos nós que compõe o Cluster, para evitar os Split Brains. Mas que tipo de verificação ele faz e como ela funciona ? Vamos ver isso num próximo post. […]

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)