Ordonnancer depuis SAS® Management Console sans Platform LSF

Depuis SAS 9.1.3 service pack 3, il existe une alternative à Platform LSF : l'Ordonnanceur du système d'exploitation. Ce type de serveur d'application est gratuit, et répond à des besoins simples. Cet article présente une comparaison de celui-ci avec LSF, et la mise en place de ce type de serveur dans les métadonnées.

Présentation de « Services du Système d'exploitation »

Depuis le service pack 3, un nouveau modèle de serveur d'ordonnancement est disponible dans SAS Management Console : 'Services du Système d'exploitation' (ou 'Operating System Services'). Il permet de créer et d'ordonnancer un exécutable contenant l'appel d'un ou plusieurs programmes SAS. L'utilisateur peut choisir :

  • de créer l'exécutable et de l'exécuter immédiatement (l'ordonnanceur AT ou CRON sera utilisé implicitement),
  • de créer l'exécutable et de l'exécuter en dehors de SAS Management Console quand il le désire (soit manuellement, soit en planifiant avec les outils système dont il dispose).

Comparaison avec Platform LSF

Le 'Services du Système d'exploitation' sera utile pour l'administrateur qui a un besoin simple : planifier dans le temps l'exécution d'un programme. Dès lors que l'administrateur a un besoin plus complexe, il faudra se tourner vers LSF.
De plus, ce type d'ordonnancement ne nécessite ni un contrat spécifique ni une licence particulière.

Voici une liste non exhaustive des différences majeures entre les deux méthodes (les fonctionnalités décrites sont disponibles via la SAS Management Console ou via le Flow Manager) :

  • La gestion des dépendances :

    - LSF permet des dépendances au niveau du job (autrement dit sur chaque .sas inclus dans le flux), tandis que le système d'exploitation permettra une dépendance au niveau du flux (par exemple 'le .bat sera exécuté à 15h00').

    - Dans SAS Management Console, l'utilisateur pourra définir des dépendances de jobs (exemple : exécution si le job précédent s'est terminé avec succès) et de fichiers (exemple : exécution si le fichier xxx a été mis à jour) au niveau de chaque job, seulement pour un ordonnancement avec LSF. Ces dépendances peuvent de plus être choisies comme déclencheur lors de l'ordonnancement.

  • Le grid computing : avec une licence Grid, LSF peut répartir une exécution sur plusieurs machines, tandis que le système d'exploitation sera le seul à supporter la charge de travail.
  • Pour les définitions répétitives (par exemple, exécution tous les lundis à 3h00), LSF permet d'interrompre momentanément la planification, sachant qu'elle peut être reprise à tout moment, via un simple menu ('On Hold').
  • LSF propose d'avertir par courriel lorsqu'une exécution commence ou se termine.
  • LSF permet de spécifier le UserID qui exécutera la tâche.
  • LSF offre un outil de suivi des exécutions, et permet de gérer ses propres calendriers.

L'interface disponible dans la SAS Management Console et Flow Manager permettent de gérer ces fonctionnalités simplement avec LSF. En utilisant l'Ordonnanceur du système, l'approche sera différente : il faudra peut-être découper les flux, ou bien modifier les programmes SAS pour qu'ils s'exécutent sous certaines conditions, ou qu'ils génèrent des courriels. La mise en place de conditions complexes ou de calendrier particulier sera plus délicate sans LSF.

Configuration des métadonnées

1. Dans le gestionnaire de serveurs (ou 'server manager'), il faut tout d'abord ajouter un serveur de type 'Services du Système d'exploitation' (ou 'OS services'). Ses caractéristiques sont :
- Répertoire de contrôle: C:\SAS\Lev1\SchedulingServer
- Commande: C:\Program Files\SAS\SAS 9.1\sas -metaserver "votre.serveur" -metaport 8561 -metarepository "Foundation" -metaprotocol BRIDGE -log C:\SAS\Lev1\SchedulingServer\logs\scheduling_server#Y.#m.#d_#H.#M.#s.log -logparm rollover=session
- Domaine d'authentification : DefaultAuth
- Nom de l'hôte : votre.serveur
- Numéro de port: 8451

Le rôle de ce serveur est de créer le .bat, et éventuellement de l'ordonnancer via AT ou CRON. Dans ce cas, l'exécution sera immédiate.

2. Dans le gestionnaire de serveurs, il faut éditer les propriétés du spawner, et dans l'onglet 'Serveurs', ajouter ce nouveau serveur dans la liste 'Serveurs sélectionnés'.

3. Dans le gestionnaire de serveurs, il faut ensuite ajouter un composant 'Serveur de batch SAS pour les étapes Data' (ou 'SAS Data Step Batch Server') au serveur d'applications SAS (SASMAIN) :
- Machine associée : votre.serveur
- Ligne de commande : C:\SAS\Lev1\SASMain\BatchServer\sasbatch.bat
- Répertoire des journaux : C:\SAS\Lev1\SASMain\BatchServer\logs

Le rôle de ce serveur est de déterminer l'appel de la session SAS qui exécutera le programme.

4. Ensuite, il faut indiquer où seront stockés les programmes déployés, c'est-à-dire les programmes à ordonnancer. Pour cela, il faut faire un clic droit sur le gestionnaire d'ordonnancement et sélectionner 'Répertoires de déploiement…' (ou 'deployment directories…'). Cette fenêtre permet d'indiquer de nouveaux répertoires, de les modifier ou de les supprimer. Les répertoires doivent exister sur la machine hébergeant SAS.

Les étapes 3 et 4 sont communes à la mise en place de l'ordonnancement avec Platform LSF.

Ordonnancer un job

Dans le gestionnaire d'ordonnancement, il faut suivre ces étapes :
1. Faire un clic droit et choisir « Nouveau flux ».
2. Entrer un nom, sélectionner le serveur d'ordonnancement, et sélectionner les jobs.
3. Faire un clic droit sur le flux, et choisir « Ordonnancer le flux ». Il y a alors 2 possibilités :
- exécuter une fois : le flux est exécuté immédiatement.
- exécuter manuellement dans le serveur d'ordonnancement : l'exécutable est créé mais non lancé. Il faudra programmer son exécution avec les outils mis à disposition par le système d'exploitation (cf. Technical Support Document 648 ).

Une fois que le choix est fait :

  • l'utilisateur s'identifie,
  • la session SAS définie dans le serveur « Service du système d'exploitation » est démarrée. Elle créé le .bat, et l'exécute éventuellement (si le choix était « exécuter une fois »).
    Pour voir le contenu du fichier, cliquez ICI 
  • Cette session se ferme.
  • Lorsque le .bat est exécuté, c'est le « Serveur de batch SAS pour les étapes Data » qui est lancé. Un fichier .status est créé pour donner le code retour du .bat.

En cas d'erreurs

Voici une check-list des points à vérifier en cas de problème :
Si le .bat n'est pas créé :

  • Vérifier le nom de la machine et le numéro de port du « Service du Système d'exploitation »
  • Vérifier que le « Service du Système d'exploitation » a été ajouté à la liste des serveurs de l'Object Spawner

Si le .bat est créé, mais que le statut est 1, alors refaire un test en supprimant l'option LOGPARM de la ligne de commande.

Les journaux à consulter sont :

  • Le code retour du .bat : C:\SAS\Lev1\SchedulingServer\pcdel090_sasadm\Flow_product\*.status
  • La log du serveur « Service du Système d'exploitation » : ~\SchedulingServer\logs\
  • La log du « Serveur de batch SAS pour les étapes Data » : ~\BatchServer\logs\

  Pour plus de détails sur ce type de serveur d’ordonnancement, vous pouvez consulter le SAS® 9.1.3 Intelligence Platform: System Administration Guide : Cliquez ICI

Géraldine Deschamps
Consultant Support Clients - SAS France