Saisir un mot clé:
 
 


Logiciels libres > Utilitaires >

Diogene87

La problématique

Les entreprises qui gérent un grand parc de serveurs ont souvent à lancer des traitements informatiques (batch) à période régulière, sur certains serveurs et dans un certain ordre.

Une solution peut consister à utiliser les démons "at" et "cron" de ces serveurs pour planifier les traitements. Mais des difficultés d’exploitation se posent rapidement :

  • synchronisation des traitements entre serveurs : comment s’assurer qu’un traitement attendra la fin d’un ou plusieurs autres traitements sur un autre serveur (problème de dépendances).
  • suivi de l’exploitation : comment suivre la bonne exécution de tous ces traitements et comment relancer ou annuler facilement des traitements.
  • gestion multi-plateforme : les serveurs ne fonctionnent pas forcément sous les mêmes OS (Unix, AS400, WindowsNT...). Les outils de planification ne sont pas les mêmes d’un OS à l’autre.

Les automates d’ordonnancement

Les automates d’ordonnancement sont des solutions logicielles complètes qui permettent de résoudre ces problèmes. Généralement ces programmes proposent les fonctionnalités suivantes :

  • centralisation : un seul programme se charge de lancer les traitements sur les serveurs distants (quel que soit l’OS du serveur).
  • planification souple : les règles de planification de travaux sont souples et permettent de gérer les jours ouvrés, les jours fériés.
  • condition de départ des travaux : un travail peut attendre plusieurs types de conditions comme une heure minimum, une heure maximum, la présence d’un fichier...
  • dépendances des travaux : les dépendances permettent de synchroniser les démarrages des travaux. Il devient possible de forcer un traitement à attendre la fin d’un autre traitement (même s’il passe sur un serveur distant).
  • suivi de l’exploitation : la liste de tous les travaux en erreur, en attente, en exécution est mise à disposition des opérateurs (humains). Ceux-ci peuvent facilement relancer ou annuler les traitements à distance.
  • gestion des logs : tous les sorties écran faites par les traitements batch sont historisées et peuvent être consultées par la suite.
  • gestion des statistiques : les durées d’exécution (minimum, maximum et moyenne) sont disponibles pour chaque traitement.

« Diogene87 »

Diogene87 est un logiciel libre qui permet l’ordonnancement de travaux pour Linux.

Voici ses caractéristiques :

Travaux et tâches

Avec Diogene87, un travail correspond à l’envoi d’un traitement (script ou exécutable). Pour faciliter la gestion et le suivi, les travaux sont regroupés en tâches. Ainsi, certains paramètres (comme les lois de planification) sont précisés une seule fois au niveau de la tâche et sont valables pour tous les travaux de cette tâche.

Planification

Pour chaque tâche, il est nécessaire de préciser quand elle doit être exécutée.

La planification des tâches se fait en lui associant une ou plusieurs règles. Chaque règle ajoute ou supprime des jours à ceux sélectionnés par les règles précédentes.

Différents types de règles existent : sélection d’un jour de la semaine, d’un jour du mois, d’un jour de l’année, d’une semaine du mois, d’une semaine de l’année, d’une date de l’année (jour et mois) ou d’une date (jour, mois, année).

Un exemple de règles de planification serait : ajouter les lundi puis ajouter les mardi, puis enlever le mois de mars, puis enlever la semaine 52.

Dépendances

Il est possible de déclarer des dépendances entre travaux pour obliger un travail à attendre la fin d’un ou plusieurs autres travaux. Des dépendances peuvent également être déclarées entre tâches.

Le type de dépendance permet de tester la terminaison du travail amont pour décider si le travail aval doit être effectué ou annulé : ainsi le travail aval pourra n’être effectué que si le travail amont se termine mal ou que s’il termine bien.

Par exemple, cette fonctionnalité est utile pour lancer une restore de base de données si le traitement amont sur cette base s’est mal terminé.

Conditions de départ

Il est possible de fixer plusieurs types de conditions pour le départ d’une tâche (en plus des dépendances) :

  • attente d’un fichier : le job ne démarrera pas tant qu’un fichier, dont on précise le chemin, n’existe pas.
  • attente de validation manuelle : en ajoutant ce type de condition, il est possible d’obliger un travail à attendre une confirmation qui viendra soit d’un opérateur humain, soit d’un programme extérieur.
  • attente d’heure : Il est possible de préciser une heure minimal que le job attendra avant de s’exécuter. Une heure maximale peut également être précisée. Dans ce cas, le travail s’exécutera, même si les autres conditions (fichier, manuel) ne sont pas remplies. Une heure de type "trop tard" peut également être indiquée : si le travail est toujours en attente à cette heure, alors l’exécution de ce travail sera annulée.

Les cibles

Les travaux peuvent être exécutés sur la machine locale ou sur des machines distantes. A chaque machine où des travaux doivent s’exécuter correspond une cible (target). Une cible peut être ouverte ou fermée. Lorsqu’une cible est fermée, les travaux nouveaux sont mis en attente jusqu’à ce que la cible soit à nouveau ouverte. Les travaux en cours d’exécution continuent de fonctionner.

Cette fonctionalité est pratique lorsque des tâches de maintenance doivent être effecutées sur un serveur : l’opérateur ferme la cible associée au serveur, il attend ensuite la fin des travaux en cours (ou les annule). La machine peut alors être arrêtée pour la maintenance : les nouveaux travaux qui arrivent sont mis en attente. Lorsque la maintenance est terminée, il suffit d’ouvrir à nouveau la cible pour libérer les travaux retenus.

Job queues

Les travaux passent dans des queues (job queue) qui peuvent être ouvertes ou fermées et dont le "débit" peut être contrôlé. Il peut y avoir une ou plusieurs queues par cible (target).

Le contrôle du débit permet de préciser le nombre maximum de travaux qui peuvent être exécutés au même moment dans une queue. Les travaux excédentaires seront retenus jusqu’à ce que d’autres travaux de cette queue se terminent.

Ainsi, si vous désirez faire passer des sauvegardes et que vous n’avez qu’un seul lecteur de bande, vous pouvez créer une queue fixée à un débit de 1. Une seule sauvegarde pourra passer à la fois et les autres seront mises en attente.

Autre avantage de créer ce type de queue : si le lecteur de bande est indisponible à la suite d’une panne, il suffit de fermer la queue associée pour que toutes les nouvelles sauvegardes qui arrivent soient retenues.

Suivi des travaux

Des journées d’exploitation sont montées quotidiennement : les règles de planification sont évaluées pour décider quelles tâches doivent être exécutées ce jour là. Les dépendances entre tâches sont recalculées pour tenir compte des tâches qui n’ont pas été sélectionnées :

Imaginons par exemple qu’il existe trois tâches T1, T2 et T3 et que T3 dépende de T2 et que T2 dépende de T1. Si pour une journée, les tâches T1 et T3 sont sélectionnées, une dépendance entre T3 et T1 est automatiquement créée pour compenser le fait que T2 n’a pas été sélectionnée.

Différentes fonctions permettent de contrôler le bon déroulement de l’exécution des travaux. Il est ainsi possible de voir facilement quels sont les travaux en cours d’exécution, en erreur, en attente.

Un opérateur humain peut intervenir sur l’exécution des travaux en relancant ou en annulant des travaux plantés. Il peut également annuler des dépendances ou des conditions de départ de travaux pour en forcer le départ.

Nouveautés de la version 0.9.1

La version 0.9.1 gère la création et la suppression automatique des journées de production.

Si la propriété "auto planned" d’un référentiel est à vrai, chaque jour à minuit, une nouvelle journée de production est créée à partir du référentiel. Si la propriété "auto purged" d’une journée est à vrai, alors elle sera supprimée automatiquement au bout de quelques jours (7 jours par défaut).

Fonctionalités manquantes

La prochaine version de Diogene87 sera la 0.9.2. Une « révolution » va se produire avec la fusion des 5 démons (dg87d,x,r,s,l) en un seul. Cette demande, faite par plusieurs utilisateurs, apportera de nombreuses simplifications dans la configuration et l’utilisation du programme.

Le projet "Narcisse81" a été créé afin de fournir à Diogene87 une interface graphique de qualité. Le projet est actuellement suspendu car le développement de Diogene87 est jugé prioritaire.

Comment commencer

Le programme est disponible sous forme d’un paquet source (archive .tar.gz compilable avec un classique ./configure make make install) ou sous forme de plusiers paquets pour Debian Woody (.deb) et Fedora Core 2 (.rpm).

Une documentation qui regroupe un didacticiel et une référence des commandes est disponible au format texinfo (info diogene87_fr). Cette documentation est également disponible sur le site web de diogene87.

SITE OFFICIEL
Url d'origine: framasoft.net
Licence: Creative Common
Logiciels libre, petite définition : L'expression logiciel libre correspond au terme anglais free software. Comme ce dernier est ambigu en anglais, free pouvant signifier « libre » ou « gratuit », on voit le terme français « libre » de plus en plus utilisé, même en anglais.
URL origine: www.framasoft.net
Sauf mention contraire, les documents publiés sur le site sont placés sous licence libre Creative Commons BY-SA
Home

Données
A la une
Articles
Formatons en lignes
Téléchargement
Licence GNU
Encyclopedie
Portail logiciels libres

Partenaires

beyrouthsurseine.com
Sonnerie & Logos
Photos-Video
Ringtones-Sonnerie
Actualite.org
Terrain tennis

  
Juillet 2008
L
M
M
J
V
S
D
123456
78910111213
14 151617181920
21222324252627
28293031
     
Tous les Logos et Marques sont déposés, les commentaires sont sous la responsabilité de ceux qui les ont publiés, le reste © technicmania.com