Pacemaker é um software de cluster de alta disponibilidade para Linux. PCS é um, ou seja, um interpretador de comandos. Nesse caso, trata-se de interpretador de comandos para gerenciamento de Cluster.
Sim. o “shell pcs” se refere a uma interface de linha de comando (CLI) chamada “Pacemaker Configuration System” (PCS) e permite configurar e gerenciar clusters de alta disponibilidade usando o Pacemaker, fornecendo comandos e recursos para manipular recursos(resources), nós(node), restrições(constraint) e outras configurações do cluster.
Constraint em Cluster
Em Pacemaker e PCS (Pacemaker Configuration System), as constraints (restrições) são usadas para definir regras e limitações no comportamento do cluster. Elas incluem restrições de localização (location), ordem de inicialização (ordering), restrições de colocalização (colocation) e restrições de recursos (resource). Essas restrições garantem que os recursos sejam implantados e executados de acordo com as políticas e dependências definidas.
Vamos ver exemplos de como criar e usar corretamente a sintaxe de cada comando. Bom, se você é novo, sintaxe são regras de como escrever algo corretamente. Esse termo se refere a praticamente qualquer coisa na vida, como em programação de softwares e linhas de comando.
Sintaxe para Criação da constraint location
Podemos criar uma constraint location para preferir que um resource(programa) prefira ficar mais em um nó(computador) do que em outro.
Prefers – Prefira um nó
Crie uma restrição de localização em um recurso para preferir o nó e a pontuação especificados (pontuação padrão: INFINITY)
pcs constraint location <resource id> prefers <node[=score]>...
Avoid – Evite um nó
Crie uma restrição de localização em um recurso para evitar o nó e a pontuação especificados (pontuação padrão: INFINITY)
location <resource id> avoids <node[=score]>...
Rule – Crie uma regra
pcs constraint location <resource id> rule [id=<rule id>] [resource-discovery=<option>] [role=master|slave] [constraint-id=<id>] [score=<score>|score-attribute=<attribute>] <expression>
Cria uma regra de localização no recurso especificado onde a expressão se parece com uma das seguintes:
defined|not_defined <attribute>
<attribute> lt|gt|lte|gte|eq|ne [string|integer|version] <value>
date gt|lt <date>
date in_range <date> to <date>
date in_range <date> to duration <duration options>…
date-spec <date spec options>…
<expression> and|or <expression>
( <expression> )
onde as opções de duração e de especificação de data são: horas(hour), dias do mês, dias da semana, dias do ano, meses, semanas, anos, anos da semana, lua. Se a pontuação for omitida, o padrão será INFINITY. Se id for omitido, um será gerado a partir do id do recurso. Se a descoberta de recursos for omitida, o padrão será ‘sempre’.
Add – Adicione
location add <id> <resource id> <node> <score> [resource-discovery=<option>]
Adicione uma restrição de localização com o ID, ID do recurso, nome do nó e pontuação apropriados. (Para uso mais avançado do pacemaker)
Sintaxe para Criação da constraint order
Adicione uma restrição de ordem especificando ações (iniciar, parar, promover, rebaixar) e se nenhuma ação for especificada, a ação padrão será iniciada.
Order
order [action] <resource id> then [action] <resource id> [options]
As opções disponíveis são kind=Optional/Mandatory/Serialize, symmetric=true/false, require-all=true/false e id=<constraint-id>.
order set
Cria um conjunto ordenado de recursos.
order set <resource1> [resourceN]... [options] [set <resourceX> ... [options]] [setoptions [constraint_options]]
As opções disponíveis são sequencial=true/false, require-all=true/false, action=start/promote/demote/stop e role=Stopped/Started/Master/Slave.
As opções_de_restrição disponíveis são id=<constraint-id>, kind=Optional/Mandatory/Serialize e symmetric=true/false.
Sintaxe para Criação da constraint colocation
colocation add
colocation add [master|slave] <source resource id> with [master|slave] <target resource id> [score] [options] [id=constraint-id]
Solicite que <recurso de origem> seja executado no mesmo nó onde o pacemaker determinou que <recurso de destino> deve ser executado. Valores positivos de pontuação significam que os recursos devem ser executados no mesmo nó, valores negativos significam que os recursos não devem ser executados no mesmo nó. Especificar ‘INFINITY’ (ou ‘-INFINITY’) para a pontuação força <source resource> a ser executado (ou não executado) com <target resource> (a pontuação padrão é “INFINITY”). Uma função pode ser mestre ou escravo (se nenhuma função for especificada, o padrão é ‘started’).
colocation set
colocation set <resource1> [resourceN]... [options] [set <resourceX> ... [options]] [setoptions [constraint_options]]
Crie uma restrição de colocation com um conjunto de recursos. As opções disponíveis são sequencial=true/false, require-all=true/false, action=start/promote/demote/stop e role=Stopped/Started/Master/Slave. As opções de restrição disponíveis são id, score, score-attribute e score-attribute-mangle.