[This is a real-world example used in production. I have edited the email only for anonymity. Again, this is food-for-thought, not prescriptive.] The key for this approach is the use of 'hard links'. The idea was given to me by an old developer that used to work with us. I had used 'hard links' and soft links on Unix system and had heard of them on OpenVMS, but had never used them there. 'Hard Links' can be used in many different ways. I'll present the way ********* uses it. ********* runs a SFTP/WASD cluster to serve their Application File Interface using independent system disks. WASD is installed on a cluster common disk. The prerequisite is that 'Hard Links' has to be enabled on the volume where WASD is installed. $set volume /VOLUME_CHARACTERISTICS=HARDLINKS DSA230 FTP228> sho dev dsa230/full Disk DSA230:, device type Generic SCSI disk, is online, mounted, file-oriented     device, shareable, available to cluster, shadow set virtual unit, error     logging is enabled, device supports bitmaps (no bitmaps active).     Error count                    0    Operations completed             315537     Owner process                 ""    Owner UIC [TBX,SYSTEM]     Owner process ID        00000000    Dev Prot S:RWPL,O:RWPL,G:R,W     Reference count                4    Default buffer size                 512     Total blocks            20971520    Sectors per track                    48     Total cylinders            54614    Tracks per cylinder                   8     Logical Volume Size     20971520    Expansion Size Limit           21954560     Volume label              "WASD"    Relative volume number                0     Cluster size                  16    Transaction count                     3     Free blocks             19539200    Maximum files allowed            616809     Extend quantity                5    Mount count                           2     Mount status              System    Cache name "_DSA21:XQPCACHE"     Extent cache size             64    Max blocks in extent cache      1953920     File ID cache size          4096    Blocks in extent cache                0     Quota cache size               0    Maximum buffers in FCP cache      10240     Volume owner UIC    [TBX,SYSTEM]    Vol Prot S:RWCD,O:RWCD,G:RWCD,W:RWCD   Volume Status:  ODS-5, subject to mount verification, write-through XFC       caching enabled, write-back XQP caching enabled,*hard links enabled,*       special files enabled.   Volume is also mounted on FTP128.   Members of shadow set DSA230: are $1$DGA12223:, $1$DGA11223:. The command for defining a hard link is: SET   FILE     /ENTER           /ENTER=new-filespec        The new-filespec parameter is used to create either an alias or        a hard link for the file specified in the SET FILE command. For        detailed information about using hard links and aliases, see the        VSI OpenVMS System Manager's Manual.        Normally you would use /ENTER to create an alias or a hard link        in a directory different from the one where the original filename        resides. If the names are not in different directories, you or        another user could subsequently lose data during a delete or        purge operation. The DELETE and PURGE commands and the file        version limit feature can behave unpredictably if the original        name and the new name are in the same directory.        To remove an alias or hard link, use the SET FILE /REMOVE        command. Exercise caution when using the DELETE and SET FILE        /REMOVE commands, or you could end up with either an inaccessible        file that has no name or a name that does not refer to a file.        Follow these guidelines to avoid such problems:        o  Use SET FILE /REMOVE to remove an alias; do not use the DELETE           command to remove an alias.        o  Do not use SET FILE /REMOVE to remove the original file name.        If you do not follow these guidelines and encounter problems, use        ANALYZE /DISK /REPAIR to move inaccessible files to the SYSLOST        directory and remove names that no longer refer to files. WASD is installed in version specific directories. This will involve the copying of the contents of the [.LOCAL] directory of the actual version to the [.LOCAL] directory of the new installed version. ********* makes use of the [IncludeFile] parameter in their AUTH and MAP configuration files so that the WASD DTAG user specific configuration is located independently of the WASD product configuration. Directory DSA230:[000000] wasd_root_V11-0-2.DIR;1 wasd_root_V11-1-0.DIR;1 wasd_root_V11-2-0.DIR;1 wasd_root_V11-3-0.DIR;1 wasd_root_V11-4-0.DIR;1 wasd_root_V11-5-1.DIR;1 wasd_root_V12-0-0.DIR;1 Each of the WASD OpenVMS systems has an individual WASD Startup file in SYS$STARTUP where the use of the 'hard link' comes to bear. $! WASD FTP128 Startup using Hardlinks $! $ set process/PARSE_STYLE=EXTENDED $ if f$search ("DSA230:[000000]WASD_ROOT_FTP128.DIR") .NES. "" $ then $     delete DSA230:[000000]WASD_ROOT_FTP128.DIR; $ endif $! $! set file/enter=DSA230:[000000]wasd_root_ftp128.dir DSA230:[000000]wasd_root_V11-0-2.DIR $! set file/enter=DSA230:[000000]wasd_root_ftp128.dir DSA230:[000000]wasd_root_V11-1-0.DIR $! set file/enter=DSA230:[000000]wasd_root_ftp128.dir DSA230:[000000]wasd_root_V11-2-0.dir $! set file/enter=DSA230:[000000]wasd_root_ftp128.dir DSA230:[000000]wasd_root_V11-3-0.dir $! set file/enter=DSA230:[000000]wasd_root_ftp128.dir DSA230:[000000]wasd_root_V11-4-0.dir $! set file/enter=DSA230:[000000]wasd_root_ftp128.dir DSA230:[000000]wasd_root_V11-5-1.dir $ set file/enter=DSA230:[000000]wasd_root_ftp128.dir DSA230:[000000]wasd_root_V12-0-0.dir $! $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv2,SSLv3)/SYSUAF=ID/profile" $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv2,SSLv3)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" !J.D. 05.09.2013 $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv3,TLSv1,TLSv1.1,TLSv1.2)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv3,TLSv1,TLSv1.1,TLSv1.2,TIMEOUT=5)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" $ define/sys WASD_STARTUP_SERVER "/SSL=(TLSv1,TLSv1.1,TLSv1.2,TLSv1.3,TIMEOUT=5)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" $ WASD_DECNET = 1 $ WASD_SSL = 1  ! 0 = off, 1 = on $ @ DSA230:[WASD_ROOT_ftp128.STARTUP]STARTUP.COM $exit $! WASD FTP228 Startup using Hardlinks $! $ set process/PARSE_STYLE=EXTENDED $ if f$search ("DSA230:[000000]WASD_ROOT_FTP228.DIR") .NES. "" $ then $     delete DSA230:[000000]WASD_ROOT_FTP228.DIR; $ endif $! $! set file/enter=DSA230:[000000]wasd_root_ftp228.dir DSA230:[000000]wasd_root_V11-0-2.DIR $! set file/enter=DSA230:[000000]wasd_root_ftp228.dir DSA230:[000000]wasd_root_V11-1-0.DIR $! set file/enter=DSA230:[000000]wasd_root_ftp228.dir DSA230:[000000]wasd_root_V11-2-0.dir $! set file/enter=DSA230:[000000]wasd_root_ftp228.dir DSA230:[000000]wasd_root_V11-3-0.dir $! set file/enter=DSA230:[000000]wasd_root_ftp228.dir DSA230:[000000]wasd_root_V11-4-0.dir $! set file/enter=DSA230:[000000]wasd_root_ftp228.dir DSA230:[000000]wasd_root_V11-5-1.dir $ set file/enter=DSA230:[000000]wasd_root_ftp228.dir DSA230:[000000]wasd_root_V12-0-0.dir $! $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv2,SSLv3)/SYSUAF=ID/profile" $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv2,SSLv3)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" !X.Y. 05.09.2013 $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv3,TLSv1,TLSv1.1,TLSv1.2)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" $! define/sys WASD_STARTUP_SERVER "/SSL=(SSLv3,TLSv1,TLSv1.1,TLSv1.2,TIMEOUT=5)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" $ define/sys WASD_STARTUP_SERVER "/SSL=(TLSv1,TLSv1.1,TLSv1.2,TLSv1.3,TIMEOUT=5)/SYSUAF=(VMS,ID,PROXY)/PROFILE/PERSONA" $ WASD_DECNET = 1 $ WASD_SSL = 1  ! 0 = off, 1 = on $ @ DSA230:[WASD_ROOT_ftp228.STARTUP]STARTUP.COM $exit Basically one can only see use of the hard links when examining the file id's of the WASD directories. Directory DSA230:[000000] wasd_root_ftp128.dir;1 *(16042,1,0) * 3  10-MAY-2022 15:14:06.93 wasd_root_ftp228.dir;1 *(16042,1,0) * 3  10-MAY-2022 15:14:06.93 wasd_root_V11-0-2.DIR;1                      (13,1,0)                         3 11-NOV-2016 07:05:03.27 wasd_root_V11-1-0.DIR;1                      (3017,1,0)                       3 26-JUN-2017 10:59:14.32 wasd_root_V11-2-0.DIR;1                      (5899,1,0)                       3 21-MAR-2018 07:33:40.00 wasd_root_V11-3-0.DIR;1                      (8823,1,0)                       3 26-MAR-2019 06:54:03.85 wasd_root_V11-4-0.DIR;1                      (13107,1,0)                      3 22-OCT-2019 08:24:22.24 wasd_root_V11-5-1.DIR;1                      (14539,2,0)                      3 27-OCT-2020 09:20:07.21 wasd_root_V12-0-0.DIR;1 *(16042,1,0) * 3  10-MAY-2022 15:14:06.93 wasd_root_ftp128.dir and wasd_root_ftp228.dirare both 'hard links' that point to the version WASD specific directory wasd_root_V12-0-0.DIR;. When examining the WASD_ROOT logical on the different systems one will see the following: FTP128> sho log wasd_root    "WASD_ROOT" = "DSA230:[WASD_ROOT_FTP128.]" (LNM$SYSTEM_TABLE) FTP228> sho log wasd_root    "WASD_ROOT" = "DSA230:[WASD_ROOT_FTP228.]" (LNM$SYSTEM_TABLE) Basically it gives ********** the ability to quickly shutdown and startup with a new WASD version. Minor updates/patches, ie. where I have to compile a new HTTPD_SSL.EXE for them, are done by replacing the existing HTTPD_SSL.EXE in the respective WASD version specific directory. Hopefully I haven't left anything out.