Capítulo 23. Configuração de uma estratégia de posicionamento do nó
O pacemaker decide onde colocar um recurso de acordo com as pontuações de alocação de recursos em cada nó. O recurso será alocado ao nó onde o recurso tiver a pontuação mais alta. Esta pontuação de alocação é derivada de uma combinação de fatores, incluindo restrições de recursos, configurações resource-stickiness
, histórico anterior de falhas de um recurso em cada nó, e utilização de cada nó.
Se as pontuações de alocação de recursos em todos os nós forem iguais, pela estratégia de colocação padrão o Pacemaker escolherá um nó com o menor número de recursos alocados para equilibrar a carga. Se o número de recursos em cada nó for igual, o primeiro nó elegível listado na CIB será escolhido para executar o recurso.
Muitas vezes, porém, recursos diferentes utilizam proporções significativamente diferentes das capacidades de um nó (como memória ou E/S). Nem sempre é possível equilibrar a carga de forma ideal levando em conta apenas o número de recursos alocados a um nó. Além disso, se os recursos forem colocados de forma que suas necessidades combinadas excedam a capacidade fornecida, eles podem não conseguir iniciar completamente ou podem funcionar com desempenho degradado. Para levar estes fatores em consideração, o Pacemaker permite configurar os seguintes componentes:
- a capacidade que um determinado nó proporciona
- a capacidade que um determinado recurso requer
- uma estratégia global para a colocação de recursos
23.1. Atributos de utilização e estratégia de colocação
Para configurar a capacidade que um nó fornece ou um recurso requer, você pode usar utilization attributes para nós e recursos. Você faz isso definindo uma variável de utilização para um recurso e atribuindo um valor a essa variável para indicar o que o recurso requer, e então definindo essa mesma variável de utilização para um nó e atribuindo um valor a essa variável para indicar o que o nó fornece.
Você pode nomear atributos de utilização de acordo com suas preferências e definir tantos pares de nomes e valores quanto suas necessidades de configuração. Os valores dos atributos de utilização devem ser números inteiros.
23.1.1. Configuração do nó e da capacidade de recursos
O exemplo a seguir configura um atributo de utilização da capacidade da CPU para dois nós, definindo este atributo como a variável cpu
. Ele também configura um atributo de utilização da capacidade de RAM, definindo este atributo como a variável memory
. Neste exemplo:
- O Nó 1 é definido como fornecendo uma capacidade de CPU de dois e uma capacidade de RAM de 2048
- O Nó 2 é definido como fornecendo uma capacidade de CPU de quatro e uma capacidade de RAM de 2048
#pcs node utilization node1 cpu=2 memory=2048
#pcs node utilization node2 cpu=4 memory=2048
O exemplo a seguir especifica os mesmos atributos de utilização que três recursos diferentes exigem. Neste exemplo:
-
recurso
dummy-small
requer uma capacidade de CPU de 1 e uma capacidade de RAM de 1024 -
recurso
dummy-medium
requer uma capacidade de CPU de 2 e uma capacidade de RAM de 2048 -
recurso
dummy-large
requer uma capacidade de CPU de 1 e uma capacidade de RAM de 3072
#pcs resource utilization dummy-small cpu=1 memory=1024
#pcs resource utilization dummy-medium cpu=2 memory=2048
#pcs resource utilization dummy-large cpu=3 memory=3072
Um nó é considerado elegível para um recurso se tiver capacidade livre suficiente para satisfazer as necessidades do recurso, conforme definido pelos atributos de utilização.
23.1.2. Configuração da estratégia de colocação
Após ter configurado as capacidades que seus nós fornecem e as capacidades que seus recursos requerem, você precisa definir a propriedade do cluster placement-strategy
, caso contrário, as configurações de capacidade não terão efeito.
Quatro valores estão disponíveis para a propriedade do cluster placement-strategy
:
-
default
-
utilization
-
balanced
-
minimal
O seguinte exemplo de comando estabelece o valor de placement-strategy
para balanced
. Após executar este comando, Pacemaker assegurará que a carga de seus recursos será distribuída uniformemente por todo o cluster, sem a necessidade de complicados conjuntos de restrições de colocação.
# pcs property set placement-strategy=balanced