I. Préambule▲
Ce document ne concerne que DFSMS et son compagnon DFSMSdfp. Il ne parle pas des produits complémentaires (DFSMShsm, DFSMSdss, DFSMSrmm et autres) qui seront décrits éventuellement dans un autre document.
Ce document permet d'avoir une idée du concept SMS. Il ne décrit pas les paramètres d'initialisation système de DFSMS.
De la même manière, certaines fonctions ne sont pas décrites, car spécifiques ou complexes à mettre en œuvre :
- OAM (Object Access Method) permettant le stockage de fichiers audio, image ou vidéo ;
- RLS (Record Level Sharing) permettant la gestion d'un fichier VSAM au niveau de l'enregistrement dans un environnement SYSPLEX.
II. Historique▲
Le concept SMS à été annoncé officiellement par IBM en avril 1986, mais en mai 1984 j'ai assisté à sa présentation en interne au laboratoire de San José en Californie avec le système d'exploitation MVS/XA.
Ce concept répond aux attentes des clients (américains essentiellement) confrontés aux problèmes de la croissance de leur parc de mémoires externes :
- coût total du stockage ;
- coût des capacités non utilisées ;
-
complexité de la gestion de ces mémoires du fait :
- de la croissance,
- du besoin en performance,
- des externes, le JCL étant lié aux caractéristiques des unités,
- de l'architecture, les méthodes d'accès étant liées aux caractéristiques physiques des unités,
- du format des données,
- du temps disponible pour les sauvegardes qui se réduit dramatiquement.
Les objectifs en matière de gestion des mémoires externes tendent vers une solution intégrée :
- distinguant la représentation logique des données de l'organisation physique des supports ;
- simplifiant l'interface utilisateur (le JCL essentiellement).
Disposant d'une indépendance totale vis-à -vis des caractéristiques physiques des unités, la gestion des mémoires externes peut devenir « system managed » par l'intermédiaire de « user construct form » (devenu ACS routines) que l'on peut voir comme une extension du JCL décrivant :
- les données (taille, performances, etc.) ;
- la politique de gestion (date de rétention, backup, migration, etc.).
Ceci nécessite de la part des utilisateurs des efforts :
- de normalisation des noms de fichiers ;
- de centralisation de la gestion des mémoires externes (Storage Manager) ;
- d'isolation des allocations par rapport aux caractéristiques physiques des unités.
Comment faisait-on avant SMSÂ ?
Les volumes physiques (VOLSER disques) étaient attribués aux grandes applications par la production ou le système. Le préparateur d'une de ces applications devait faire le ménage dans ses volumes avant de lancer les batchs de nuit et devait s'assurer que l'espace disque était suffisant pour exécuter ses travaux. Chaque préparateur assurait la gestion de son espace disque.
Les conflits étaient nombreux, surtout avec des disques démontables comme les 2314 ou les 3330.
III. Les fichiers de contrôle de DFSMS▲
DFSMS nécessite trois fichiers pour fonctionner :
- le SCDS (Source Control Data Set) qui contient les règles de gestion des fichiers SMS ;
- l'ACDS (Active Control Data Set) qui contient une copie de la dernière configuration contenue dans le SCDS ;
- le COMMDS (Communication Data Set) qui permet de communiquer les informations de la configuration active aux autres partitions d'un complexe SMS (SMSPLEX).
Ces fichiers peuvent être SMS ou non SMS.
IV. Utilisation de ISMF▲
ISMF (Interactive Storage Management Facility) est la partie de DFSMSdfp qui est utilisée pour gérer SMS. L'écran suivant s'affiche si vous êtes STORAGE MANAGER (STGADMIN) :
Select one of the following options and press Enter:
0 ISMF Profile - Specify ISMF User Profile
1 Data Set - Perform Functions Against Data Sets
2 Volume - Perform Functions Against Volumes
3 Management Class - Specify Data Set Backup and Migration Criteria
4 Data Class - Specify Data Set Allocation Parameters
5 Storage Class - Specify Data Set Performance and Availability
6 Storage Group - Specify Volume Names and Free Space Thresholds
7 Automatic Class Selection - Specify ACS Routines and Test Criteria
8 Control Data Set - Specify System Names and Default Criteria
9 Aggregate Group - Specify Data Set Recovery Parameters
10 Library Management - Specify Library and Drive Configurations
11 Enhanced ACS Management - Perform Enhanced Test/Configuration Management
C Data Collection - Process Data Collection Function
L List - Perform Functions Against Saved ISMF Lists
P Copy Pool - Specify Pool Storage Groups for Copies
R Removable Media Manager - Perform Functions Against Removable Media
X Exit - Terminate ISMF
Les autorisations nécessaires pour être STORAGE MANAGER sont indiquées dans le document DFSMSdfp Storage Administration (SC23-6860-01) et ne fait pas partie de ce document.
Les options 3 à 8 d'ISMF seront utilisées.
V. Description de DFSMS▲
DFSMS est un sous-système de z/OS qui est initialisé lors de l'IPL de la partition. Aucune allocation n'est possible (SMS ou non SMS) avant qu'il ne soit initialisé.
Il permet de contrôler et d'affecter des valeurs complémentaires à celles fournies lors de l'allocation d'un fichier.
V-A. Les classes de gestion▲
Quatre types de classes sont à la disposition du gestionnaire de l'espace de stockage :
- les DATA CLASS pour contrôler et éventuellement modifier les paramètres d'allocation d'un fichier (règles de nommage, taille des allocations, etc.) ;
- les MANAGEMENT CLASS pour la gestion de ces fichiers (date d'expiration, migration et backup entre autres)Â ;
- les STORAGE CLASS pour affecter un support physique adapté pour ces fichiers ;
- les STORAGE GROUP pour affecter des volumes supports à ces STORAGE CLASS.
Il faut rappeler que les attributs (migration, backup, allocation secondaire, etc.) d'un fichier sont stockés dans un bloc de contrôle spécifique (DSCB ou Data Set Control Block) lors de son allocation. Un changement de classes de gestion n'affecte pas les caractéristiques SMS de ces fichiers.
V-A-1. Les DATA CLASS▲
Elles permettent de contrôler et éventuellement de modifier certaines caractéristiques du fichier à allouer. Elles sont définies par l'option 4.3 d'ISMF.
Les valeurs de la DATA CLASS peuvent être fusionnées avec celles spécifiées dans l'allocation du fichier. Ces valeurs sont substituées à celles de l'allocation quand elles ne sont pas nulles.
Par exemple, le type de fichier pour une bibliothèque (DSORG = PO) créée par un USERID sera forcé à PDSE par la routine d'affectation de la DATA CLASS (ACS routine) :
CDS Name . . . . . : SYS1.SMS.SCDS00
Data Class Name . . : DCPDSE
Data Set Name Type . . . . . : LIBRARY
La DATA CLASS imposera DSNTYPE = LIBRARY.
Seule une DATA CLASS peut être spécifiée dans les ACS routines de DATA CLASS.
V-A-2. Les MANAGEMENT CLASS▲
Elles permettent de contrôler et de modifier les paramètres de gestion des fichiers tels que :
- la durée d'existence (RETPD ou EXPDT) dans l'environnement z/OS ;
- la rétention limite autorisée par les normes de l'entreprise ;
- la durée de résidence des fichiers sur les disques de production avant d'être migrés sur des supports moins coûteux (disque SATA ou cassettes par exemple). C'est la durée d'inactivité de ces fichiers (c'est-à -dire qu'ils ne sont pas référencés en lecture ou en écriture durant cette période) ;
-
la sauvegarde automatique ou manuelle des fichiers :
- le nombre de versions conservées,
- la durée de rétention de ces versions.
Ces opérations sont généralement effectuées par un logiciel spécialisé (DFSMShsm pour IBM) ;
- le nombre de versions d'un GDG (Generation Data Group) conservées sur les disques de l'espace primaire ;
- etc.
Les valeurs de la MANAGEMENT CLASS sont fusionnées avec celles spécifiées dans l'allocation du fichier.
Par exemple, EXPDT=99365 dans le JCL indique un fichier qui n'est jamais supprimé (héritage du XXe siècle). Cela se traduit par l'information suivante dans les caractéristiques du fichier :
Creation date . . . : 1999/05/12
Expiration date . . : ***Perm***
Il est possible de modifier cette date d'expiration en indiquant dans la MANAGEMENT CLASS (option 3.4 de ISMF)Â :
CDS Name . . . . . . . : SYS1.SMS.SCDS00
Management Class Name . : MCSTD
Description : CLASSE POUR TOUT LE MONDE
Expiration Attributes
Expire after Days Non-usage . : 20
Expire after Date/Days . . . . : 0
Retention Limit . . . . . . . : 3650
La date d'expiration devient alors après l'allocation :
Creation date . . . : 1999/05/12
Expiration date . . : 2009/05/09
Seule une MANAGEMENT CLASS peut être spécifiée dans les ACS routines de MANAGEMENT CLASS.
V-A-3. Les STORAGE CLASS▲
Un fichier sur disque n'est réellement SMS que s'il possède une STORAGE CLASS et une DATA CLASS. La STORAGE CLASS permet d'attribuer ou non des services offerts par les unités de contrôle de disques tels que :
- « Mirroring » ;
- SNAPSHOTÂ ;
- FLASHCOPY.
Les STORAGE CLASS perdent beaucoup de leur intérêt et ne sont plus utilisées que pour indiquer que le fichier est SMS :
- les unités de contrôle actuelles des constructeurs (IBM, EMC et HDS) gèrent les entrées/sorties dans leur mémoire cache et utilisent des disques dits « en grappe » pour lire des données si elles ne sont pas dans le cache (en direct) ou écrire (en asynchrone sur disque) les données à partir de la mémoire spécifique à l'écriture (NVS Non Volatile Storage) ;
- ces unités de contrôle contiennent des logiciels qui associent les services évoqués précédemment avec des adresses d'unité de disques connues de z/OS et que l'on peut activer à partir de l'ordinateur.
Le PAV (Parallel Access Volume) est géré en dynamique par WLM. Aujourd'hui, ce dispositif est généralisé pour les volumes SMS et non SMS.
V-A-4. Les STORAGE GROUP▲
Elles permettent d'assigner un groupe de volume (VOL=SER) permettant l'allocation des fichiers.
Généralement, ces groupes sont spécialisés :
- un groupe dédié aux fichiers temporaires, aux DUMP ;
- un ou plusieurs groupes pour les data base DB2 (Data et index séparés par exemple) ;
- un groupe pour les fichiers du développement ;
- un ou plusieurs groupes pour les fichiers de production (petits et grands fichiers)Â ;
- un groupe pour les fichiers « strippés » ;
- etc.
Un volume ne peut appartenir qu'Ã un STORAGE GROUP.
Les volumes d'un STORAGE GROUP doivent être de même géométrie (pas de mélange 3380 et 3390 par exemple).
Les volumes d'un STORAGE GROUP peuvent être de tailles différentes (3390-3, 3390-9 et supérieur).
Les volumes d'un STORAGE GROUP doivent être initialisés avec ICKDSF avec le paramètre STORAGEGROUP.
Ne pas définir le STORAGE GROUP VIO, car la fonction VIO n'est plus utilisée.
Vous pouvez indiquer si le STORAGE GROUP doit être traité automatiquement par un logiciel de gestion des fichiers tel que DFSMShsm (Backup, migration, dump).
Afin de vous prémunir des conséquences d'un STORAGE GROUP qui ne permet pas à SMS d'allouer un fichier (STORAGE GROUP « plein », fragmentation excessive des disques, etc.), je vous conseille la création d'un STORAGE GROUP de type OVERFLOW qui permettra d'allouer des fichiers lorsque le STORAGE GROUP principal sera plein (pool de débordement). Dans ce cas, vous indiquez le nom de ce STORAGE GROUP dans le paramètre Extend SG Name du groupe principal.
Il ne peut y avoir qu'un seul pool de débordement pour un STORAGE GROUP. Par contre, un pool de débordement peut être commun à plusieurs STORAGE GROUP. Plusieurs pools de débordement peuvent être déclarés pour plusieurs STORAGE GROUP (exemple : un pool de débordement affecté aux Tables Spaces DB2, un autre pour les fichiers de production).
En général, le pool de débordement ne comprend que quelques volumes. Après agrandissement du pool principal, déplacez les fichiers dans ce groupe principal par un utilitaire adéquat (DFSMSdss par exemple). Veillez à ce que le pool de débordement soit toujours vide.
Si vous définissez un STORAGE GROUP VIO, ne pas oublier de lui définir un pool de débordement afin d'éliminer les problèmes d'allocation des VIO (bien que de moins en moins utilisées).
Il faut ensuite déclarer :
- le ou les volumes constituant ce STORAGE GROUP (VOLSER)Â ;
-
le statut de ces volumes pour les autres partitions :
- ENABLE : peut accéder aux volumes du pool pour créer des fichiers,
- DISALL : ne peut accéder aux volumes du pool,
- DISNEW : peut accéder aux fichiers existants sur les volumes du pool mais il n'est pas possible de créer des fichiers sur ces volumes,
- QUIALL : identique à DISALL pour JES3.
Le statut des STORAGE GROUP ou d'un volume SMS peut être changé par une commande z/OS (VARY SMS).
V-B. Les ACS Routines▲
Le gestionnaire de l'espace de stockage dispose des routines écrites dans un langage proche du REXX (ACS routines) pour affecter aux fichiers les différentes classes décrites précédemment lors de leur création.
Les ACS routines sont appelées essentiellement lors des opérations suivantes :
- carte DD du JCLÂ ;
- allocation dynamique ;
- les commandes de DFSMSdss COPY, RESTORE et CONVERTÂ ;
- les commandes de DFSMShsm RECALL et RECOVERÂ ;
- les commandes AMS ALLOCATE, DEFINE et IMPORT.
Les autres opérations ne sont pas traitées dans ce document (OAM, Distribued File Manager et Unix).
Il y a quatre ACS routines correspondant aux classes de gestion.
Les exemples donnés sont très simples pour la compréhension de l'écriture de ces ACS routines. Celles utilisées dans une entreprise sont plus complexes, car elles doivent intégrer la gestion de l'espace disque pré SMS (en particulier les FILTLIST).
V-B-1. Les variables disponibles▲
Elles sont de deux types :
- quatre variables READ/WRITE qui sont les classes de gestion : &DATACLAS, &MGMTCLAS, &STORCLAS et &STORGRP sont les seules qui peuvent être modifiées dans une ACS routine ;
- les autres variables qui ne peuvent pas, hélas, être modifiées comme le permettaient des logiciels tels que STOPX37. Elles représentent les caractéristiques d'allocation connues de DFSMS lors de l'appel de la routine (certaines variables peuvent être nulles) :
Variable Variable Variable Variable Variable
------------------------------------------------------------------
&ACCT_JOB &DEF_MGMTCLAS &GROUP &MEMNQUAL &SECLABL
&ACCT_STEP &DEF_STORCLAS &HLQ &MSPDEST &SECOND_QTY
&ACSENVIR &DSN &JOB &MSPARM &SIZE
&ACSENVR2* &DSNTYPE &LABEL &MSPOLICY &SPACE_TYPE
&ALLVOL &DSORG &LIBNAME &MSPOOL &SYSNAME
&ANYVOL &DSOWNER &LLQ &NQUAL &SYSPLEX
&APPLIC &DSTYPE &MAXSIZE &NVOL &UNIT
&BLKSIZE &EATTR &MEMHLQ &PGM &USER
&DD &EXPDT &MEMLLQ &RECORG &XMODE
&DEF_DATACLAS &FILENUM &MEMN &RETPD
* À partir de z/OS V2R1
Certaines variables concernent seulement OAM (&MEMHLQ, &MEMLLQ, &MEMN et &MEMNQUAL), d'autres concernent les cassettes gérées par DFSMSrmm (&MSPDEST, &MSPARM, &MSPOLICY et &MSPOOL).
Rappel : les variables READ/WRITE sont disponibles en lecture dans les ACS routines (sauf &STORGRP) tel qu'indiqué dans le tableau suivant :
ACS routine &STORGRP &MGMTCLAS &STORCLASS &DATACLAS
--------------------------------------------------------------------------
Storage Group SET/Compare Compare Compare Compare
Management Invalide SET/Compare Compare Compare
Class
Storage Class Invalide Compare SET/Compare Compare
Data Class Invalide Compare Compare SET/Compare
Seule l'ACS routine concernée peut modifier la classe de gestion correspondante (par exemple l'ACS routine de traitement de la MANAGEMENT CLASSS ne peut modifier que la variable &MGMTCLAS).
Pour plus d'information concernant les variables READ, se référer à la documentation IBM DFSMSdfp Storage Administration (SC23-6860-01).
V-B-1-a. Comparaison▲
Seuls les opérateurs de comparaison peuvent être utilisés :
Opérateur Signification
-------------------------------
GT ou > Plus grand
LT ou < Plus petit
NG ou ¬> Pas plus grand
NL ou ¬< Pas plus petit
EQ ou = Égal
NE ou != Non égal
GE ou >= Plus grand ou égal
LE ou <= Plus petit ou égal
V-B-1-b. Expressions booléennes▲
Deux opérateurs sont disponibles :
- AND ou &&
- OR ou |
V-B-2. Les opérateurs d'action (STATEMENT)▲
Appelés STATEMENT dans la terminologie d'IBM, ils sont au nombre de 9 et vous permettent d'écrire les ACS routines :
- PROC       Début d'une ACS routine ;
- FILTLIST  Définition de listes de filtrage (nom de fichier, unité, etc.) ;
- SET         Affectation d'une valeur à une classe de gestion ;
- DO          Début d'un groupe de STATEMENT ;
- IF           Permet l'exécution conditionnelle d'un STATEMENT ;
- SELECT    Définition conditionnelle d'un groupe de STATEMENT ;
- EXIT        Permet la fin de l'exécution d'une ACS routine. Peut être utilisé pour provoquer une erreur d'allocation (JCL ERROR) ;
- WRITE     Écriture d'un message dans la LOG du JOB ;
- ENDÂ Â Â Â Â Â Â Â Indique la fin d'un STATEMENT DO, SELECT ou d'une ACS routine.
Les FILTLIST représentent les fichiers ou groupe de fichiers qui peuvent être ou non éligibles de DFSMS. Ce sont en général les STATEMENTS les plus nombreux dans une ACS routine.
V-C. Exemple d'ACS Routine▲
Voici un exemple d'ACS routine de DATA CLASSÂ :
Si le fichier ne doit pas être SMS, mettre une DATA CLASS nulle (‘').
PROC 0 DATACLAS
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â FILTLIST POUR LA DATA CLASSÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
FILTLIST SYSTEM INCLUDE(SYS%.**)
Â
FILTLIST TAPE INCLUDE('3490','3590')
Â
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â PAS DE DATA CLASSÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
SET &DATACLAS = ''
Â
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â PAS DE DATA CLASS POUR LES FICHIERS SYSTEMEÂ Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
IF &DSN = &SYSTEM THEN EXIT
Â
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â PAS DE DATA CLASS POUR LES FICHIERS SUR CASSETTEÂ Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
IF &UNIT = &TAPE THEN EXIT
Â
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â DATA CLASS PAR DEFAUTÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
SET &DATACLAS = 'DEFAUT'
Â
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â FORCE PDSE POUR LES FICHIERS DES DEVELOPPEURSÂ Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
IF ((&DSORG = 'PO') AND (&HLQ = &USER)) THEN SET &DATACLAS = 'DCPDSE'
Â
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â PAS D'INDICATION DU TYPE DE FICHIER ON FORCE LES VALEURSÂ */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*********************************************************************/
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
ELSE
  IF &DSNTYPE = '' THEN DO
        SET &DATACLAS = 'DCALLOC'
        WRITE 'DATACLAS '&DATACLAS' PAR DEFAUT'
     END
Â
END
Voici un autre exemple très simple d'ACS routine STORAGE GROUP :
PROC 1 STORGRP
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â LISTE DES FILTRES SUR LES NOMS DE FICHIERSÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
FILTLIST TEST INCLUDE(COMPTA.TEST.**,ACHAT.TEST.**)
FILTLIST PROD INCLUDE(COMPTA.**,ACHAT.**)
Â
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â SI PAS DE STORCLAS ALORS SGNUL (PAS DE VOLUME)Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
  IF &STORCLAS = '' THEN DO
     SET &STORGRP = 'SGNUL'
     EXIT
  END
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â SELECTION DU STORAGE GROUPÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
Â
SET &STORGRP = 'SGPSTD'
Â
SELECT (&DSN)
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â TRAITEMENT DES FICHIERS DES DEVELOPPEURSÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
  WHEN ('TEST') SET &STORGRP = 'SGDEV'
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â TRAITEMENT DES FICHIERS DE PRODUCTIONÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
  WHEN ('PROD') DO
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â LES GROS FICHIERS VONT SUR UN STORAGE GROUP SPECIFIQUEÂ Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
     IF (&SPACE_TYPE EQ 'MB')THEN DO
           IF &SIZE > 500MB THEN SET &STORGRP = 'SGPBIG'
        END
        EXIT
     END
  OTHERWISE EXIT
  END
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â SI C'EST UN DUMP - IL VA SUR UN STG SPECIFIQUEÂ Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
  IF &HLQ = 'DUMP' THEN SET &STORGRP = 'SGDUMP'
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â SI C'EST UN FICHIER UTILISATEUR IL VA SUR SGDEVÂ Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
  IF &HLQ = &USER THEN SET &STORGRP = 'SGDEV'
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â TRAITEMENT DES FICHIERS TEMPORAIRESÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
/*Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
  IF &DSNTYPE = 'TEMP' THEN SET &STORGRP = 'SGTEMPO'
END
Il est dommage qu'IBM ait créé un langage spécifique pour cette fonction, car on mélange souvent du REXX avec ce langage.
V-D. Compilation et validation des ACS Routines▲
Dans ISMF, l'option 7.2 permet de « compiler » ces routines afin de les transformer en objet dans le fichier SCDS. Après avoir renseigné la bibliothèque de source et le nom de l'ACS routine, ISMF compile celle-ci.
Le résultat est stocké dans un fichier dont le nom est fourni dans cet écran.
Elle pourra être validée par SMS si le code retour de compilation de cette routine est 0.
La validation (option 7.3) consiste à vérifier que les classes de gestion décrites dans l'ACS routine existent bien dans le SCDS.
Afin de ne pas surcharger ce document, les résultats de ces opérations ne sont pas présentés entièrement.
Exemple de compilation :
ACS TRANSLATOR ***** TIME 12:59:11 DATE 02/20/2006 PAGE 0001 *****
SCDS NAME: SYS1.SMS.SCDS00
ACS SOURCE DATA SET: SYS1.SMS.ROUTINES
ACS SOURCE MEMBER: DCPROD
…..
Le listing de la routine
…..
TRANSLATION RETURN CODE: 0000
Exemple de validation :
VALIDATION RESULTS
VALIDATION RESULT: VALIDATION SUCCESSFUL
SCDS NAME: SYS1.SMS.SCDS00
ACS ROUTINE TYPE: DC
DATE OF VALIDATION: 2006/02/20
TIME OF VALIDATION: 13:04
V-E. Tests des ACS Routines▲
L'option 7.4 permet de tester une ou plusieurs ACS routines avant leur mise en production. Le test est très important afin de ne pas provoquer de perturbations de la production lors de leur activation.
Le « nec plus ultra » serait de créer autant de jeux de test qu'il y a de conditions d'affectation dans les ACS routines afin de vérifier que les modifications effectuées n'affectent pas l'environnement de test et de production. Cela n'est pas facile mais il faut se constituer une bibliothèque contenant les différents tests effectués et de pouvoir vérifier que le résultat pour chaque membre est bien identique à celui existant précédemment.
Exemple de test d'une ACS routine de DATA CLASSÂ :
ACS TESTING RESULTS
CDS NAME : SYS1.SMS.SCDS00
ACS ROUTINE TYPES: DC
ACS TEST LIBRARY : SYS1.ACS.TEST
ACS TEST
MEMBER EXIT CODE RESULTS
--------- ---------- ------------------------------------
DESCRIPTION: FICHIERS SYSTEME
EXPECTED RESULT: CLASSE DC NULLE
TEST01 0 DC = NULL VALUE ASSIGNED
V-F. Activation de la configuration▲
L'option 8.5 d'ISMF permet d'activer la configuration à partir du fichier SCDS. Cette activation nécessite la réponse à un REPLY à la console pour des raisons de sécurité :
12.53.22 INSTZOS TSU02990 *84 IGD043D REPLY 'Y' TO ALLOW ACTIVATION OF A
CONFIGURATION BY APPOLON, 'N' TO DENY THE REQUEST
Répondre Y permet d'activer une nouvelle configuration de SMS.
VI. De quoi sera fait demain ?▲
Il est prévisible que les évolutions de DSFSMS et de ses composants porteront sur la mise en œuvre complète d'EAV (Extended Address Volume) et de RLS (Record Level Sharing). Certaines évolutions apparaissent déjà dans z/OS V2R1.
VI-A. Les nouvelles unités de contrôle▲
Les unités de contrôle incluent dès à présent des disques SSD ou de la mémoire Flash et l'accès à des dérouleurs de cassettes inconnus de z/OS. La migration d'un support vers les autres s'effectuera en interne sans référence à DFSMS. La MANAGEMENT CLASS pourra disparaître au profit d'une classe de transition indiquant la durée maximale de présence sur les supports les plus performants (ML0 sur SSD ou mémoire Flash, ML1 sur disque en grappe et éventuellement ML2 sur cassette) et qui sera gérée par l'unité de contrôle. La migration d'un support vers l'autre sera transparente pour la production.
VI-B. Le Cloud▲
Celui-ci s'intégrera dans DFSMS, mais comment l'architecture et l'accès au « Cloud » seront résolus afin de centraliser sa gestion par DFSMS ? Car les concurrents sont déjà à l'œuvre.
VII. Remerciements▲
Cet article a été rédigé par egshuml (Gérard HUMLER) en quelques jours, il a souhaité partager son expérience sur le produit, et la communauté developpez.net l'en remercie.
Metalman (Fabrice BOISSIER) a réalisé la mise en forme du document pour l'adapter au format.
Il ne faut pas oublier f-leb qui a relu et corrigé l'ensemble du document, merci aussi à lui.
VIII. Liens utiles▲
Documentation DFSMS (z/OS 2.1)Â :
http://pic.dhe.ibm.com/infocenter/zos/v2r1/index.jsp?topic=%2Fcom.ibm.zos.v2r1.ida%2Fida.htm
DFSMSdfp Storage Administration (SC23-6860-01)Â :
http://pic.dhe.ibm.com/infocenter/zos/v2r1/index.jsp?topic=%2Fcom.ibm.zos.v2r1.idas200%2Ftoc.htm
IBM RedBooks :