Virtual Storage Access Method VSAM is an IBM DASD file storage access method, first used in the OS/VS1, OS/VS2 Release 1 SVS and Release 2 MVS operating systems, later used throughout the Multiple Virtual Storage MVS architecture and now in z/OS. Originally a record-oriented filesystem, VSAM comprises four data set organizations: Key Sequenced Data Set KSDS, Relative Record Data Set RRDS, Entry Sequenced Data Set ESDS and Linear Data Set LDS. The KSDS, RRDS and ESDS organizations contain records, while the LDS organization added later to VSAM simply contains a sequence of pages with no intrinsic record structure, for use as a memory-mapped file.
IBM uses the term data set in official documentation as a synonym of file, and direct access storage device DASD because it supported other devices similar to disk drives.
VSAM records can be of fixed or variable length. They are organised in fixed-size blocks called Control Intervals CIs, and then into larger divisions called Control Areas CAs. Control Interval sizes are measured in bytes – for example 4 kilobytes – while Control Area sizes are measured in disk tracks or cylinders. Control Intervals are the units of transfer between disk and computer so a read request will read one complete Control Interval. Control Areas are the units of allocation so, when a VSAM data set is defined, an integral number of Control Areas will be allocated.
The Access Method Services utility program IDCAMS is commonly used to manipulate "delete and define" VSAM data sets.
Custom programs can access VSAM datasets through Data Definition DD statements in Job Control Language JCL, via dynamic allocation or in online regions such as in Customer Information Control System CICS.
Both IMS/DB and DB2 are implemented on top of VSAM and use its underlying data structures.