Files-11

From VSI OpenVMS Wiki
Jump to: navigation, search

Files-11 or the On-Disk Structure was developed by the Digital Equipment Corporation for RSX-11 and later for OpenVMS.

Structure levels

The Files-11 family of file systems consists of the following file systems, also called Structure Levels:

  • ODS-1
  • ODS-2
  • ODS-3
  • ODS-4
  • ODS-5

ODS-1

ODS-1 is the oldest one that is supported by OpenVMS only for RSX compatibility

ODS-2

ODS-2 is the standard file system that has case-insensitive filenames maximum length of the file name is 39 characters, supports page file, swap file, parameter (.PAR) file and other system files and files shared across a cluster with any version of VMS. It is supported by all hardware architectures.

ODS-3

ODS-3 is designed to support ISO 9660.

ODS-4

ODS-4 is designed to support the High Sierra file system

ODS-5

ODS-5 is an extended version of ODS-2 used on Alpha and Integrity. It supports longer case-sensitive filenames with non-ASCII characters (ISO Latin-1 and Unicode). Page file, swap file, parameter file and other system files are not supported, but ODS-5 volumes can serve as system disks starting with VMS 7.3-1. ODS-5 disks can be mounted by computers running OpenVMS 7.2 or later. ODS-5 also offers more levels of directory structure.

Obtaining information about the file system

To find out what file system is a particular device, use:

  • SHOW DEVICE/FULL:
$ show dev dka0 /full

Disk SMAN01$DKA0:, device type RZ73, is online, mounted, file-oriented device,
    shareable, available to cluster, error logging is enabled.

    Error count                    0    Operations completed               3983
    Owner process                 ""    Owner UIC                      [SYSTEM]
    Owner process ID        00000000    Dev Prot            S:RWPL,O:RWPL,G:R,W
    Reference count               85    Default buffer size                 512
    Total blocks             3907911    Sectors per track                     7
    Total cylinders             2621    Tracks per cylinder                 213
    Logical Volume Size      3907911    Expansion Size Limit         4261348350

    Volume label          "ALPHASYS"    Relative volume number                0
    Cluster size                  16    Transaction count                   214
    Free blocks              1874592    Maximum files allowed          16711679
    Extend quantity                5    Mount count                           1
    Mount status              System    Cache name      "_SMAN01$DKA0:XQPCACHE"
    Extent cache size             64    Max blocks in extent cache       187459
    File ID cache size            64    Blocks in extent cache            66496
    Quota cache size               0    Maximum buffers in FCP cache        574
    Volume owner UIC           [1,1]    Vol Prot    S:RWCD,O:RWCD,G:RWCD,W:RWCD

  Volume Status:  ODS-2, subject to mount verification, protected subsystems
      enabled, file high-water marking, write-through XFC caching enabled,
      write-through XQP caching enabled.
  • f$getdvi("dka0","ODS5")

Returns TRUE if the volume is ODS-5 and FALSE if it is not (which in reality almost always means that it's ODS-2).

Linux interaction

Files-11 are OpenVMS-specific file systems and there are differences between filenames in OpenVMS and other operating systems like Linux, which creates difficulties when accessing files via FTP and network-based file sharing utilities. One of the problems is escaping unusual characters that have special meanings in the file specification or otherwise:

  • period
  • comma
  • colon
  • semicolon
  • square brackets
  • percent sign
  • circumflex (up arrow)
  • ampersand

The circumflex is an escape character used to make sure that the system parses the symbols above as part of the filename and not special character in the specification. If you don’t use the circumflex, the system will try its best to determine if the character you used is a delimiter or part of the filename: for instance, if there are several periods, the last one will likely be interpreted as the version number if it is followed by numeric characters and/or minus signs. If you are interested in studying this topic in more detail, refer to the OpenVMS Guide to extended file specifications.

Structure

Files-11 systems are organized in the following layers:

  • the physical layer
  • the file layer
  • the RMS layer

The physical layer is the lowest layer of the file system that provides block access to a volume. On the real hardware, the physical layer consists of the VMS disk driver, and associated disk controller, interconnect, port driver, etc. In an emulated environment like FreeAXP it would include the emulated disk controller as well as the drivers and hardware of the host machine (e.g., Windows).

The file layer is built on the physical layer. It turns the blocks of the physical layer into files. The metadata used to manage files includes directories, file headers, the storage map, home blocks, and similar structures. F11BXQP is the primary body of code that implements the file layer for the ODS-2 / ODS-5 file structures; MTAAACP for ANSI magtape, and F11CACP and F11DACP for the High Sierra and ISO-9660 CD-ROM formats. Metadata integrity on this layer can be checked using the ANALYZE/DISK_STRUCTURE command.

The RMS layer implements record structured files with various capabilities from simple sequential files to indexed files with multiple keys. RMS embeds metadata as needed in the file’s data space. Metadata for sequential files is very simple (record lengths, at most), while metadata for indexed files is more complex. The ANALYZE/RMS utility checks RMS indexed file metadata for correctness and consistency.