\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{lun. janv. 26 14:09:22 CET 2015}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={corosync.conf},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Fichier de configuration de corosync},
CreationDate={D:20150126140922},
ModDate={D:20150126140922},
Keywords={clustering;cluster messaging layer}
}}
\begin{document}
 
\begin{center}
{\Huge corosync.conf }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Fichier de configuration de corosync}
 
\vspace{10mm}
 
\vspace{1cm}{\huge Description }
 
\
 
\hspace{1mm}  Le fichier de configuration consiste de directives en accolades. Les choix possibles sont:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} totem \{\}]{Contient les options de configuration pour le protocole totem}
\item[\hspace{1mm} logging \{\}]{Contient les options de configuration pour le logging}
\item[\hspace{1mm} quorum \{\}]{Contient les options de configuration pour le quorum}
\item[\hspace{1mm} nodelist \{\}]{Contient les options de configuration pour les nœuds dans le cluster}
\item[\hspace{1mm} qb \{\}]{Contient les options de configuration liées à libqb}
\end{description}
 
\vspace{1cm}{\huge Options totem }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} ringnumber]{Spécifie le numéro pour l'interface. En utilisant le protocole ring redondant, chaque interface devrait avoir un numéro ring séparé pour identifier les membres du protocole que l'interface utilise pour le ring. doit commencer à 0.}
\item[\hspace{1mm} bindnetaddr]{Spécifie l'adresse réseaux auquel corosync devrait se lier. Doit être une IP dans le système, ou un réseau.}
\item[\hspace{1mm} broadcast]{Optionnel et peut être mis à yes. Permet d'utiliser le broadcast pour les communications.}
\item[\hspace{1mm} mcastaddr]{Adresse de multicast pour corosync. Le défaut devrait fonctionner sur la plupart des réseaux. Éviter 224.x.x.x parce que c'est une adresse multicast de config.}
\item[\hspace{1mm} mcastport]{Port UDP pour le multicast.}
\item[\hspace{1mm} ttl]{Si le cluster fonctionne sur un réseau routé, un TTL de 1 sera trop petit.}
\item[\hspace{1mm} version]{Spécifie la version du fichier de configuration. Actuellement la seule version valide est 2.}
\item[\hspace{1mm} clear\_node\_high\_bit]{Optionnel et est seulement utile quand aucun nodeid n'est spécifié. Certains client corosync nécessitent un nodeid 32-bits signé supérieur à 0, cependant corosync utilise tous les 32-bits de l'espace d'adressage IPv4 en générant un nodeid. À yes, cette options force le MSB à 0.}
\item[\hspace{1mm} crypto\_hash]{Spécifie l'algorithme d'authentification HMAC utilisé pour authentifier tous les messages. Les valeurs valides sont: none, md5, sha1, sha256, sha384 et sha512.}
\item[\hspace{1mm} crypto\_cipher]{Spécifie l'algorithme de chiffrement à utiliser pour chiffrer les messages. Les valeurs valides sont: none, aes256, aes192, aes128, et 3des.}
\item[\hspace{1mm} rrp\_mode]{Spécifie le mode de ring redondant, qui peut être: none, active, ou passive. La réplication active offre les latences les plus faibles mais est moins performant. La réplication passive peut presque doubler la vitesse du protocole totem. none spécifie que seul l'interface réseau sera utilisé pour opérer le protocole totem.}
\item[\hspace{1mm} netmtu]{Spécifie l'unité de transmission maximum réseaux. Pour définir cette valeur au-delà de 1500, le support des jumbo frames est nécessaire sur tous les nœuds.}
\item[\hspace{1mm} transport]{Contrôle le mécanisme de transport utilisé. Si l'interface auquel corosync est lié est une interface RDMA, le paramètre "iba" peut être spécifié. Pour éviter l'utilisation du multicast, un paramètre de transport unicast "udpu" peut être spécifié. Cela nécessite de spécifier la liste des membres dans la directive nodelist. Défaut: udp.}
\item[\hspace{1mm} cluster\_name]{Spécifie le nom du cluster et son utilisation pour la génération automatique d'adresse multicast.}
\item[\hspace{1mm} config\_version]{Spécifie la version du fichier de configuration. C'est convertit en entier non-signé 64-bits. Par défaut: 0. Permet d'éviter de joindre d'anciens nœud sans configuration à jours.}
\item[\hspace{1mm} ip\_version]{Spécifie la version d'IP à utiliser pour les communications. ipv4 ou ipv6.}
\item[\hspace{1mm} token]{Ce timeout spécifié en millisecondes le délai au delà duquel une perte de token est déclaré. C'est le temps passé à détecter une panne d'un processeur dans la configuration courante. Réformer une nouvelle configuration prend 50 ms en plus de ce timeout.}
\item[\hspace{1mm} token\_coefficient]{Utilisé seulement quand la section \textbf{nodelist} est spécifiée et contient au moins 3 nœuds. Le vrai timeout de token est calculé par \textbf{token + (number\_of\_nodes -2) * token\_coefficient}. Cela permet au cluster de s'agrandir sans changer manuellement le timeoute de token à chaque fois qu'un nœud est ajouté. Défaut: 650ms}
\item[\hspace{1mm} token\_retransmit]{Ce timeout spécifie, en ms, après combien de temps avant de recevoir un token le token est retransmis. Ce sera automatiquement calculé si le token est modifié. Il n'est pas recommandé d'altérer cette valeur. Défaut: 238ms.}
\item[\hspace{1mm} hold]{Ce timeout spécifie, en ms, combien de temps le token devrait être maintenu quand le protocole est en sous-utilisation. Il n'est pas recommandé d'altérer ce paramètre. Défaut: 180ms}
\item[\hspace{1mm} token\_retransmits\_before\_loss\_const]{Cette valeur identifie combien de token retransmis devraient être tentés avnt de former une nouvelle configuration. Si cette valeur est définie, la retransmission et le maintient sera automatiquement calculé depuis retransmits\_before\_loss et token. Défaut: 4 retransmissions.}
\item[\hspace{1mm} join]{Ce timeout spécifie, en ms, combien de temps attendre les messages join dans le protocole membership.}
\item[\hspace{1mm} send\_join]{Ce timeout spécifie, en ms, une plage entre 0 et send\_join d'attente avant d'envoyer un message join. Pour les configuration inférieur à 32 nœuds, ce paramètre n'est pas nécessaire. Pour les ring plus grands, ce paramètre est nécessaire pour s'assurer que l'interface n'est pas surchargée avec des messages join. Une valeur raisonnable pour les grands ring (128 nœuds) est de 80ms. Défaut: 0}
\item[\hspace{1mm} consensus]{Ce timeout spécifie, en ms, combien de temps attendre pour que le consensus soit achevé avant de commencer un nouveau tour de configuration de membership. a valeur minimum pour le consensus doit être 1.2 * token. Ce calcul est automatique si cette option n'est pas spécifiée}
\item[\hspace{1mm} merge]{Ce timeout spécifie, en ms, combien de temps attendre avant de vérifier une partition quand aucun trafique multicast n'a été envoyé. Si un trafique multicast est envoyé, la detection du merge se produit automatiquement en tant que fonction du protocole. Défaut: 200ms}
\item[\hspace{1mm} downcheck]{Ce timeout spécifie, en ms, combien de temps attendre avant de vérifie qu'une interface réseaux est de nouveau disponible après une indisponibilité. Défaut: 1000ms}
\item[\hspace{1mm} fail\_recv\_constf]{Cette constante spécifie combien de rotations du token sans recevoir de messages quand les message devaient être reçus peuvent se produire avant qu'une nouvelle configuration ne soit formée. Défaut: 2500 échecs de réception de message.}
\item[\hspace{1mm} seqno\_unchanged\_const]{Cette constante spécifie combient de rotation du token sans trafique multicast devrait se produire avant que le timer hold soit démarré. Défaut: 30 rotations.}
\item[\hspace{1mm} heartbeat\_failures\_allowed]{Mécanisme HeartBeating. Configure le mécanisme HeartBeating pour une détection d'erreur plus rapide. Garder en mémoire qu'engager ce mécanisme dans un réseau avec beaucoup de perte peut causer les déclaration de fausse perte vu que le mécanisme ne se base que sur le réseau. Défaut: 0 (désactivé)}
\item[\hspace{1mm} max\_network\_delay]{Mécanisme HeartBeating. Cette constante spécifie, en ms, le délai approximatif que le réseau prend pour transporter un packet d'une machine à une autre. Cette valeur doit être définie par les ingénieurs système. Défaut: 50ms}
\item[\hspace{1mm} window\_size]{Cette constante spécifie le nombre de messages qui peuvent être envoyés en une rotation de token. Si tous les processeurs traitent de manière égale, cette valeur peut être grande (300). pour réduire la latence dans les grand ring (>=16), le défaut est un compromis de sûreté. Si un ou plusieurs processeur sont lents, window\_size ne devrait pas être supérieur à 256000 / netmtu pour éviter la surchage des tampon. Défaut: 50 messages.}
\item[\hspace{1mm} max\_messages]{Cette constante spécifie le nombre maximum de messages qui peuvent être envoyés par un processeur à la réception du token. Ce paramètre est limité à 256000 / netmtu pour empêcher la saturation des tampons de transmission.}
\item[\hspace{1mm} miss\_count\_const]{Définie le nombre maximum de fois à la réception d'un token qu'un message est vérifié pour retransmission avant qu'une retransmission se produise. Défaut: 5 messages.}
\item[\hspace{1mm} rrp\_problem\_count\_timeout]{Spécifie le temps en ms d'attente avant de décrémenter le compteur de problème de 1 pour un ring particulier pour s'assurer qu'un lien n'est pas marqué en panne. (Défaut: 2000 ms)}
\item[\hspace{1mm} rrp\_problem\_count\_threshold]{Spécifie le nombre de fois qu'un problème est détecté avec un lien avec de définir ce lien en faute. Une fois en faute, plus aucune donnée n'est émise sur ce lien. Également, le compteur de problème n'est plus décrémenté quand le timeout de compteur de problème expire. Un problème est détecté quand tous les tokens d'un processeur n'a pas été reçus dans le rrp\_token\_expired\_timeout. Les rrp\_problem\_count\_threshold * rrp\_token\_expired\_timeout devrait être au moins à 50ms inférieur au timeout du token, ou une reconfiguration complète peut se produire. Défaut: 10 problèmes.}
\item[\hspace{1mm} rrp\_problem\_count\_mcast\_threshold]{Spécifie le nombre de fois qu'un problème est détecté avec un multicast avant de définis le lien en faute pour un mode rrp passif. Cette variable n'est pas utilisée pour un mode rrp actif.}
\item[\hspace{1mm} rrp\_token\_expired\_timeout]{Spécifie le temps en ms pour incrémenter le compteur de problème pour le rrp après avoir reçu un token de tous les rings pour un processeur particulier. Cette valeur est automatiquement calculée du timeout de token et problem\_count\_threshold mais peut être écrasé. Défaut: 47ms}
\item[\hspace{1mm} rrp\_autorecovery\_check\_timeout]{Spécifie le temps en ms pour vérifier si le ring en panne peut être auto-récupéré.}
\end{description}
 
\vspace{1cm}{\huge Options logging }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} timestamp]{Spécifie si un horodatage est placé dans les messages de log. Défaut: off}
\item[\hspace{1mm} fileline]{spécifique que le fichier et la ligne devrait être affichés. Défaut: off}
\item[\hspace{1mm} function\_name]{Spécifie que le nom de la fonction devrait être affiché. Défaut: off}
\item[\hspace{1mm} to\_stderr]{}
\item[\hspace{1mm} to\_logfile]{}
\item[\hspace{1mm} to\_syslog]{spécifient la sortie de logging. peut être yes ou no. Défaut: syslog et stderr}
\item[\hspace{1mm} logfile]{si to\_logfile est à yes, cette option spécifie le chemin du fichier de log.}
\item[\hspace{1mm} logfile\_priority]{Priorité du logfile pour un sous-système particulier. Ignoré si debug est on. (alert,crit, debug, emerg, err, info, notice, warning) Défaut: info.}
\item[\hspace{1mm} syslog\_facility]{Type de facilité syslog ( daemon, local0, local1, local2, local3, local4, local5, local6 et local7). Défaut: daemon}
\item[\hspace{1mm} syslog\_priority]{Log level pour le sous-système particulier ( alert, crit, debug, emerg, err, info, notice, warning ) Défaut: info}
\item[\hspace{1mm} debug]{Active le debug. Défaut: off.}
\end{description}
 
\vspace{1cm}{\huge Options logger\_subsys }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} ]{Toutes les options de la directive logging sont valide, plus:}
\item[\hspace{1mm} subsys]{Spécifie le nom du sous-système pour lequel le logging est spécifié. C'est le nom utilisé par un service dans l'appel log\_init. Cette directive est requise.}
\end{description}
 
\vspace{1cm}{\huge Options quorum }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} provider]{seul corosync\_votequorum est supporté.}
\end{description}
 
\vspace{1cm}{\huge Options nodelist }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} ringX\_addr]{Spécifie l'adresse IP d'un des nœuds. X est le numéro du ring.}
\item[\hspace{1mm} nodeid]{Requis pour IPv6, optionnel pour IPv4. valeur 32bits spécifiant l'identifiant du nœud délivré au service de cluster membership. 0 est réservé et ne doit pas être utilisé.}
\end{description}
 
\vspace{1cm}{\huge Options qb }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} ipc\_type]{Type d'IPC à utiliser. Peut être native, shm et socket. Native signifie soit shm soit socket, en fonction de ce qui est supporté par l'OS. shm est généralement plus rapide, mais nécessite d'allouer un tampon ring dans /dev/shm.}
\end{description}
\end{flushleft}
\end{document}
