DFSMS & HSM — Storage & Data Management Guide
In this tutorial, you'll learn about DFSMS & HSM. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.
DFSMS (Data Facility Storage Management Subsystem) and HSM (Hierarchical Storage Manager) are IBM's automated storage management solutions for z/OS — intelligently placing data across performance tiers, migrating unused data to cost-effective storage, and ensuring enterprise data survives hardware failures.
What You'll Learn
DFSMS architecture, ACS routines, storage groups, SMS classes, HSM Migration and recall processing, backup and recovery policies, and Mainframe data management best practices.
Why It Matters
Data is the most valuable asset on a Mainframe. DFSMS and HSM ensure the right data is on the right storage at the right cost — automatically. Without DFSMS, storage administrators would manually manage millions of datasets. Without HSM, inactive data would consume expensive DASD.
DodaZIP uses HSM-inspired tiered storage for archive compression. Durga Antivirus Pro applies DFSMS-style policy management for scan result retention and archival.
Real-World Use
A bank's 50-terabyte Mainframe storage pool is managed entirely by DFSMS and HSM. Active Transaction datasets stay on high-speed DASD, datasets unused for 30 days migrate to HSM-managed tape, and critical datasets are backed up with automatic versioning — all without manual intervention.
Learning Path
flowchart LR A["z/OS Overview"] --> B["VSAM"] B --> C["DFSMS & HSM
You are here"] C --> D["JES2/JES3"] D --> E["Parallel Sysplex"] style C fill:#f90,color:#fff
What Is DFSMS?
DFSMS automates storage management through policy-based rules. It consists of:
| Component | Function |
|---|---|
| DFSMSdfp | Base storage management — catalog, VTOC, I/O |
| DFSMSdss | Data movement, backup, and restore |
| DFSMSrmm | Removable media (tape) management |
| HSM | Hierarchical storage management — migration and recall |
DFSMS Architecture
flowchart LR
subgraph "SMS Policies"
A[Storage Group]
B[Management Class]
C[Storage Class]
D[Data Class]
end
subgraph "ACS Routines"
E[Storage Group ACS]
F[Management ACS]
end
subgraph "Storage"
G[DASD Pool 1-SSD]
H[DASD Pool 2-FC]
I[Tape Library]
end
A --> E
B --> F
C --> E
D --> F
E --> G
E --> H
F --> I
style A fill:#f90,color:#fff
SMS Classes
SMS uses four class types to define behavior:
//* Storage Class - defines performance
//STORCLAS DEFINE STORCLAS(FASTSC) +
// GUARANTEEDSPACE(YES) +
// INITIALMB(500) MAXMB(5000)
//* Management Class - defines lifecycle
//MGMTCLAS DEFINE MGMTCLAS(STANDARD) +
// PARTIALRELEASE(YES) +
// MIGRATION(30) +
// BACKUP(DAILY) RETENTION(365)
//* Data Class - defines allocation defaults
//DATACLAS DEFINE DATACLAS(COBOL) +
// RECFM(FB) LRECL(80) BLKSIZE(27920)
ACS Routines
ACS (Automatic Class Selection) routines are REXX programs that assign SMS classes when a dataset is allocated:
/* ACS routine - storage group selection */
SELECT
WHEN (&DSN = 'PAYROLL.**') &
&STORGRP = 'PAYSSD'
WHEN (&DSN = 'TEMP.**' | &DSN = 'SYSUT*') &
&STORGRP = 'SCRATCH'
WHEN (&SIZE < 100) &
&STORGRP = 'SMALLPOOL'
OTHERWISE &
&STORGRP = 'GENERAL'
END
HSM — Hierarchical Storage Manager
HSM automates data movement across storage tiers:
Migration Process
- Level 0 (Primary DASD): Active data, immediate access
- Level 1 (ML1): Low-cost DASD, slightly slower access
- Level 2 (ML2): Tape or virtual tape, slower but cheaper
HSM Commands
HMIGRATE 'USER.INACTIVE.DATA' Migrate a dataset to ML1
HRECALL 'USER.INACTIVE.DATA' Recall a migrated dataset
HLIST 'USER.INACTIVE.DATA' Show dataset storage status
HBACKDS 'USER.PROD.DATA' Backup a dataset with versioning
HQUERY Display HSM status
HSM Backup Policies
//BACKUP DEFINE POLICY(BACKUP.PROD) +
// BACKUPTYPE(FULL) +
// FREQUENCY(DAILY) +
// VERSIONS(7) +
// RETPD(30)
Common Errors
1. Not setting management class on critical datasets
Datasets without management class fall to default, which may not have backup or Migration rules.
2. Over-Migration of active data
Aggressive Migration thresholds cause frequent recalls, hurting performance.
3. Insufficient ML1 space
If ML1 is full, Migration stops and HSM cannot free primary DASD space.
4. Ignoring HSM logs
HSM logs contain Migration and recall statistics critical for capacity planning.
5. ACS routine errors
ACS routines are REXX — syntax errors cause allocation failures. Test ACS routines in a sandbox.
Practice Questions
What does DFSMS stand for? Data Facility Storage Management Subsystem — IBM's automated storage management for z/OS.
What is the difference between a Storage Class and a Management Class? Storage Class defines performance (space, speed). Management Class defines lifecycle (Migration, backup, retention).
What does HSM do? Hierarchical Storage Manager automatically migrates inactive data to lower-cost storage and recalls it when needed.
What is an ACS routine? A REXX program that automatically assigns SMS classes based on dataset name, size, and other attributes.
What are the HSM storage levels? Level 0 (primary DASD), ML1 (low-cost DASD), and ML2 (tape/virtual tape).
Challenge: Design a DFSMS policy for a financial system with three data tiers: high-performance SSD for Transaction data, standard DASD for reference data, and tape for archived records older than 90 days.
FAQ
What's Next
| Tutorial | What You'll Learn |
|---|---|
| JES2 & JES3 Guide | Job entry and batch scheduling |
| Parallel Sysplex Guide | High-availability clustering |
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-24.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro