Add first ocf related resources

This commit is contained in:
2022-01-16 20:22:05 +01:00
parent 0d043ef2ef
commit fe647ee115
2 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
:PROPERTIES:
:ID: 7a81bb2d-a6cf-4a2d-8308-0de97fab1856
:mtime: 20220111174057
:ctime: 20220110091205
:END:
#+title: OCF resource agent
#+filetags: :Pacemaker:Cluster:
* Présentation
* /Open Cluster Framework resource agent/ est un exécutable permettant de controller une ressource d'un cluster,
* Une resource = tout ce qui peut être géré par un cluster (IP, FS, BDD ou une VM par exemple),
* Un /OCF resource agent/ peut être utilisé par les applications de gestion de cluster /Pacemaker/ et /RGmanager/,
* Implémentation
* Pas de language dédié (shell généralement),
* Règle de nommage: lower kebab case (a-ocf-agent-exemple).
* Howto
* Installer ~resource-agents~ package:
#+BEGIN_SRC shell
apt-get install resource-agents
#+END_SRC
* Pour tester la conformité d'un ~resource-agent~ créé :
#+BEGIN_SRC shell
ocf-tester -n <nom du resource-agent> <chemin vers le script du resource agent>
#+END_SRC
* A installer dans le répertoire ~/usr/lib/ocf/resource.d/<provider>/~ du noeud concerné
* Pour créer une nouvelle ressource:
#+BEGIN_SRC shell
sudo pcs resource create <id de la resource> [<standard>:[<provider>:]]<type>
#+END_SRC
* Références
* https://github.com/ClusterLabs/resource-agents/blob/main/doc/dev-guides/ra-dev-guide.asc
* https://dopensource.com/2017/04/27/creating-custom-ocf-resource-agents/

View File

@@ -0,0 +1,43 @@
:PROPERTIES:
:ID: 40a6cfb0-aec4-4caa-9e9f-2428e419d2c0
:mtime: 20220111154319
:ctime: 20220110094054
:END:
#+title: OCF remote and guest node
* Présentation
Un /Open Cluster Framework guest node/ est un noeud de cluster n'implémentant pas la stack du cluster. Cela a pour
conséquence qu'il ne contribue pas à la redondance (n'impacte pas le quorum, impossibilité de devenir /Designated Controller/) et ne pilote pas les [[id:7a81bb2d-a6cf-4a2d-8308-0de97fab1856][OCF resource agent]].
Un /Open Cluster Framework remote node/ est un /guest node/ hébergé sur une CPU/VM n'hébergeant pas de noeud du cluster.
* Communication avec les /remote nodes/ du cluster et le /Designated Controller/
* Est sécurisée (TLS/PSK + authentification),
* Bind du port TCP 3121 (par défaut),
* Les noeuds du cluster et celui exécutant le /pacemaker_remote/ doit partager la même clé privée (à placer dans le
répertoire /etc/pacemaker/authkey des noeuds.
* Howto
* Installation de ~pacemaker_remote~ sur les noeuds pour lesquels un ou des ressources doivent être gérés par le cluster:
#+BEGIN_SRC shell
apt-get install --no-install-recommends --no-install-suggests pacemaker-remote resource-agents pcs
#+END_SRC
* La clé privée à partager avec les noeuds du cluster est générée lors de l'installation. L'écraser par celle des
noeuds du cluster (~/etc/pacemaker/authkey~).
* Authentification du noeud nouvellement créée:
#+BEGIN_SRC shell
pcs host auth <host> -u hacluster -p <hacluster_password>
#+END_SRC
* Supprimer les précédentes et éventuelles configurations du noeud (en cas d'erreur ~cluster configuration files found, the host seems to be in a cluster already~):
#+BEGIN_SRC shell
systemctl stop pacemaker_remote.service
rm -f /var/lib/pacemaker/cib/cib.xml /etc/corosync/corosync.conf
#+END_SRC
* Ajout de la ressource nouvellement créée au cluster:
#+BEGIN_SRC shell
* pcs cluster node add-remote <host>
#+END_SRC
* Références
* https://clusterlabs.org/pacemaker/doc/deprecated/en-US/Pacemaker/1.1/html/Pacemaker_Remote/_guest_nodes.html
* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/pacemaker_remote