Capítulo 13. Colocando recursos de cluster
Para especificar que a localização de um recurso depende da localização de outro recurso, você configura uma restrição de colocação.
Há um importante efeito colateral de criar uma restrição de colocação entre dois recursos: ela afeta a ordem na qual os recursos são atribuídos a um nó. Isto porque não se pode colocar o recurso A em relação ao recurso B, a menos que se saiba onde está o recurso B. Portanto, quando você estiver criando restrições de colocação, é importante considerar se você deve colocar o recurso A com o recurso B ou o recurso B com o recurso A.
Outra coisa a ter em mente ao criar restrições de colocação é que, supondo que o recurso A esteja colocado com o recurso B, o agrupamento também levará em conta as preferências do recurso A ao decidir qual nó escolher para o recurso B.
O seguinte comando cria uma restrição de colocação.
pcs constraint colocation add [master|slave] source_resource com [master|slave] target_resource [score] [options]
Tabela 13.1, “Propriedades de uma Restrição de Colocação”, resume as propriedades e opções para a configuração de restrições de colocação.
Campo | Descrição |
---|---|
fonte_resource | A fonte de colocação. Se a restrição não puder ser satisfeita, o agrupamento pode decidir não permitir que o recurso funcione de forma alguma. |
target_resource | O alvo da colocação. O agrupamento decidirá onde colocar este recurso em primeiro lugar e depois decidirá onde colocar o recurso fonte. |
pontuação |
Os valores positivos indicam que o recurso deve funcionar no mesmo nó. Os valores negativos indicam que os recursos não devem ser executados no mesmo nó. Um valor de |
13.1. Especificar a colocação obrigatória de recursos
A colocação obrigatória ocorre sempre que a pontuação da restrição é INFINITY
ou -INFINITY
. Nesses casos, se a restrição não puder ser satisfeita, então o source_resource não tem permissão para funcionar. Para score=INFINITY
, isto inclui casos em que o target_resource não está ativo.
Se você precisar que myresource1
funcione sempre na mesma máquina que myresource2
, você acrescentaria a seguinte restrição:
# pcs constraint colocation add myresource1 with myresource2 score=INFINITY
Como INFINITY
foi utilizado, se myresource2
não puder funcionar em nenhum dos nós de cluster (por qualquer razão), então myresource1
não será permitido funcionar.
Alternativamente, você pode querer configurar o oposto, um cluster no qual myresource1
não pode funcionar na mesma máquina que myresource2
. Neste caso, use score=-INFINITY
# pcs constraint colocation add myresource1 with myresource2 score=-INFINITY
Mais uma vez, especificando -INFINITY
, a restrição é vinculativa. Portanto, se o único lugar que resta para correr é onde já está myresource2
, então myresource1
não pode correr em nenhum lugar.