[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hylndr::dclreview

Title:DCLREVIEW
Moderator:HYLNDR::SYSTEM
Created:Sun Apr 19 1987
Last Modified:Fri May 23 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:773
Total number of notes:5391

770.0. "OpenVMS Snapshot Services" by MOVIES::PARSONS () Thu Apr 17 1997 11:20

Product           OpenVMS Snapshot Services Version 1.0

contact name      Judy Parsons
email address     MOVIES::PARSONS
DTN               7-824-3318
role              OpenVMS technical writer

Product Summary

   OpenVMS Snapshot Services is a new product that will ship as a
   SIP (Separately Integrated Product) with OpenVMS Alpha Version
   7.2.

   OpenVMS Snapshot Services gives you online back up for the data
   stored in your Files-11 volumes.  It lets you make instantaneous
   virtual copies (snapshots) of your data.  You can make a virtual
   copy while your users are accessing and updating their data.  You
   can then use your existing backup tools to back up the virtual
   copy online, while your users access and update the real thing.

   OpenVMS Snapshot Services also gives you:

   o  The ability to test software on live data, for example, you
      can use it to test year 2000 applications

   o  Online hardware upgrade (via the ability to add and remove
      units from a snapshot pool)

   o  Ability to carve up a large disk into smaller units so that
      the file system can make better use of the avaialable disk
      space

   For more information on OpenVMS Snapshot Services, see the
   functional specification:

     AVOLUB::DISK$PUBLIC02:[OFST.SCD.DOCS]FS-SNAPCAPDISK.PS

Command Summary

              ___________________________________________________________
              New_Command_____Description________________________________

              ADD /POOL       Adds storage units to a snapshot pool

              BIND /DISK      Binds a disk in a snapshot pool to a
                              virtual DG device

              BIND /POOL      Binds a snapshot pool to a virtual DG
                              device

              CREATE /DISK    Creates a disk in a snapshot pool, either
                              by creating a brand new empty disk of
                              a specified capacity or by taking a snapshot
                              of an existing disk

              CREATE /POOL    Creates a snapshot pool on one or more
                              storage units

              DELETE /DISK    Deletes a disk from a snapshot pool

              REMOVE /POOL    Removes storage units from a snapshot pool

              UNBIND /DISK    Unbinds a disk in a snapshot pool from a
                              virtual DG device

              UNBIND /POOL    Unbinds a snapshot pool from a virtual DG
              ________________device_____________________________________


              ___________________________________________________________
              Existing
              Command_________Description________________________________

              INITIALIZE      The new /POOL qualifier initializes a
                              storage unit for use in a snapshot pool

              MOUNT           The new /POOL qualifier mounts a storage
                              unit for use in a snapshot pool

              SET DEVICE      The new /FULL_ACTION qualifier changes the
                              full action of a snapshot pool, and the new
                              /NAME qualifier changes the name of a disk
                              in a snapshot pool
              ___________________________________________________________

Syntax Description: New Commands

        ADD /POOL

              Adds storage units to a snapshot pool.

              Requires OPER and VOLPRO privileges.

        Format

              ADD /POOL  pool-DGdevice storage-unit[,...]

        Parameters

              pool-DGdevice
              The pool that you want to add the storage units to.

              You must have previously used the BIND /POOL command to
              bind the pool to a virtual DG device on your computer. This
              parameter is either the name of the device, for example,
              DGP9, or a logical name that points to it.

              storage-unit[,...]
              The storage units that you want to add to the pool. Each
              storage-unit is either the name of a device (for example,
              DKA100 or DSA12) or a logical name that points to a device
              name. Each unit must be initialized with the Files-11 ODS-2
              file system, and must be mounted on your computer with the
              /POOL qualifier.

              If any of the units is already in a pool, that pool must
              not be bound to a DG device on any computer in your OpenVMS
              Cluster.

              The maximum number of units you can have in a pool is 40.

        Description

              The ADD /POOL command adds one or more storage units to a
              snapshot pool, increasing the number of free segments in
              the pool.

              Before you use the ADD /POOL command, set up each of the
              storage units that you are adding as follows:

              1. Initialize the unit using the INITIALIZE command with
                 the /POOL qualifier.

                 You can skip this step if the unit has already been set
                 up for a pool, in other words, if it already contains a
                 pool and you are now erasing that pool to add the unit
                 to a different pool.

              2. Mount the unit using the MOUNT command with the /POOL
                 qualifier.

        Example

              $ADD /POOL DGP9: DKA700:

              This command adds the SCSI unit DKA700 to the pool that is
              currently bound to the DGP9 device.

        BIND /DISK

              Allows users on your computer to access a disk in a
              snapshot pool by creating a virtual DG device on your
              computer and binding the disk to it.

              Requires OPER and VOLPRO privileges.

        Format

              BIND /DISK  disk-DGdevice pool-DGdevice diskname

        Parameters

              disk-DGdevice
              The DG device that you want to bind the disk to.

              This parameter must have the format DGcn, where c is any
              letter of the alphabet except Z and n is any integer in the
              range 0 to 9999. It must not include the allocation class.

              We recommend that you use the letter, c, to identify which
              family the disk belongs to, and the number, n, to identify
              its relationship within the family. For example, DGA1
              is the founder member of family A. DGA11 and DGA12 were
              created by taking snapshots of DGA1, and DGA111 was created
              by taking a snapshot of DGA11.

              The new device automatically inherits its allocation class
              from the SD_ALLOCLASS system parameter.

              The DG device must not already exist on your computer.

              If the DG device already exists on another computer in your
              OpenVMS Cluster, it must be bound to the same disk on that
              computer. You can't bind a disk to different devices on
              different computers in an OpenVMS Cluster.

              pool-DGdevice
              The pool that contains the disk that you want to bind.

              You must have previously used the BIND /POOL command to
              bind the pool to a virtual DG device on your computer. This
              parameter is either the name of the device (for example,
              DGP9) or a logical name that points to it.

              diskname
              The name of the disk that you want to bind.

              Each disk in a snapshot pool has a name that is unique
              within that pool. You specify the name when you create the
              disk, using the CREATE /DISK command, and you can change
              the name later, using the SET DEVICE command with the /NAME
              qualifier.

        Description

              The BIND /DISK command allows users on your computer to
              access a disk in a snapshot pool by creating a virtual DG
              device on your computer and binding the disk to it.

              The BIND /DISK command fails if the specified disk is
              currently being MSCP served to your computer.

        Qualifiers

              /CLUSTER
              /NOCLUSTER (default)
              Use this qualifier if you want to bind the disk on every
              computer in your OpenVMS Cluster. It effectively issues
              a BIND /DISK command on every computer in your OpenVMS
              Cluster.

        Examples

              1. $BIND /DISK DGA1: DGP9: "Judy"

                 This command binds the disk Judy to the DGA1 device
                 on the local computer. Judy is in the pool that is
                 currently bound to DGP9. The command uses quotes to
                 stop the name, Judy, being converted to uppercase.

              2. $BIND /DISK DGA11: DGP9: "Judy__2.10.97"

                 This command binds the disk Judy__2.10.97 to the DGA11
                 device on the local computer.Judy__2.10.97 is in the
                 pool that is currently bound to DGP9. The command uses
                 quotes to stop the name, Judy__2.10.97, being converted
                 to uppercase.

        BIND /POOL

              Allows users on your computer to access a snapshot pool by
              creating a virtual DG device on your computer and binding
              the pool to it.

              Requires OPER and VOLPRO privileges.

        Format

              BIND /POOL  pool-DGdevice storage-unit[,...]

        Parameters

              pool-DGdevice
              The DG device that you want to bind the pool to. This
              parameter must have the format DGcn, where c is any letter
              of the alphabet except Z and n is any integer in the range
              0 to 9999. It must not include the allocation class. We
              recommend that you use the letter P for all of your pools,
              so that you can easily identify them when you use the SHOW
              DEVICES command.

              The new device automatically inherits its allocation class
              from the SD_ALLOCLASS system parameter.

              The DG device must not already exist on your computer.

              If the DG device already exists on another computer in your
              OpenVMS Cluster, it must be bound to the same pool on that
              computer. You can't bind a pool to different devices on
              different computers in an OpenVMS Cluster.

              storage-unit[,...]
              The storage units that are in the pool that you want to
              bind.

              Each storage-unit is either the name of a device (for
              example, DKA100 or DSA12) or a logical name that points
              to a device name. Every storage unit in the pool must
              be mounted on your computer with the /POOL qualifier,
              including any units not listed here.

        Description

              The BIND /POOL command creates a new virtual DG device on
              your computer and binds a snapshot pool to it, allowing
              users on your computer to:

              o  Create a new disk in the pool, using the CREATE /DISK
                 command

              o  Bind an existing disk in the pool, using the BIND /DISK
                 command

              o  Delete a disk from the pool, using the DELETE /DISK
                 command

              o  Add a unit to and remove a unit from the pool, using the
                 ADD /POOL and REMOVE /POOL commands

              Snapshots must be enabled on your computer; the value of
              the SD_ALLOCLASS system parameter must be non-zero.

        Qualifiers

              /AUTOMATIC
              /NOAUTOMATIC (default)
              By default, the BIND /POOL command fails if the second
              parameter does not list all of the storage units in the 
	      pool.

              If you use the /AUTOMATIC qualifier, the BIND /POOL command
              reads the first unit in the list to find out the device
              names of the other storage units in the pool.

              If the device name of any storage unit in the pool has
              changed since the pool was last bound, you must use the
              /NOAUTOMATIC qualifier (the default) and list the device
              names of all the storage units in the pool. 

              /CLUSTER
              /NOCLUSTER (default)
              Use this qualifier if you want to bind the pool on every
              computer in your OpenVMS Cluster. It effectively issues
              a BIND /POOL command on every computer in your OpenVMS
              Cluster.

        Examples

              1. $BIND /POOL DGP4: DSA41:, DSA42:

                 This command binds a pool to the DGP4 device on the
                 local computer. The pool is made up of two shadow sets,
                 DSA41 and DSA42.

              2. $BIND /POOL DGP9: DKA200: /AUTOMATIC

                 This command binds a pool to the DGP9 device on the
                 local computer. The pool is made up of three SCSI disks,
                 DKA100, DKA200, and DKA300, but only one of these device
                 names is specified on the command line. The /AUTOMATIC
                 qualifier makes the command read that unit to find out
                 the other two device names.

        CREATE /DISK

              Creates a disk in a snapshot pool. You can either use the
              /CAPACITY qualifier to create a brand new empty disk of a
              specified capacity, or you can use the /SNAPSHOT qualifier
              to take a snapshot of an existing disk in the pool.

              Requires OPER and VOLPRO privileges.

        Format

              CREATE /DISK  pool-DGdevice diskname

        Parameter

              pool-DGdevice
              The pool that you want to create the new disk in.

              You must have previously used the BIND /POOL command to
              bind the pool to a virtual DG device on your computer. This
              parameter is either the name of the device, for example,
              DGP9, or a logical name that points to it.

              diskname
              The name of the new disk.

              The name can be up to 32 characters long, and can contain
              any printable ASCII characters.

        Description

              The CREATE /DISK command creates a disk in a snapshot pool.
              You can either use the /CAPACITY qualifier to create a
              brand new empty disk of a specified capacity, or you
              can use the /SNAPSHOT qualifier to take a snapshot of an
              existing disk in the pool.

              If you use the /CAPACITY qualifier, the new disk starts a
              new family; it is the founder member of the family. If you
              use the /SNAPSHOT qualifier, the new disk is in the same
              family as the existing disk.

              You can have up to 8 different families in a pool.

              Use the BIND /DISK command to bind the new disk to a DG
              device so that users can access it.

        Qualifiers

              /CAPACITY=blocks
              This qualifier is compulsory if you do not use the
              /SNAPSHOT qualifier. It specifies the capacity of the new
              disk in blocks.

              The nearest number of whole segments are allocated to the
              new disk; the number of free segments in the pool decreases
              by that number.

              You cannot use the /CAPACITY qualifier with the /SNAPSHOT
              qualifier.

              /RECORD
              /NORECORD (default)
              This qualifier is only allowed with the /SNAPSHOT
              qualifier.

              This controls whether the event of taking the snapshot
              is recorded, which affects what is saved when you do
              incremental backups.

              /SNAPSHOT=disk-DGdevice
              Use this qualifier to create a new disk by taking a
              snapshot of an existing disk in the pool.

              You must have previously used the BIND /DISK command to
              bind the existing disk to a virtual DG device on your
              computer; disk-DGdevice is either the name of the device
              (for example, DGA1) or a logical name that points to it.

              The CREATE /DISK command creates a new disk that is a
              virtual copy of this disk. It is in the same family and has
              the same capacity, and to begin with it contains exactly
              the same data but takes up no disk space. It only starts to
              take up disk space when you make changes to either its own
              contents or to the contents of the original disk.

              You cannot have more than 12 members in a family.

              The /SNAPSHOT qualifier is not allowed with the /CAPACITY
              qualifier. When you use the /SNAPSHOT qualifier, the
              capacity of the new disk is always equal to that of the
              original disk.

        Examples

              1. $CREATE /DISK DGP9: "Judy" /CAPACITY=1000000

                 This command creates a brand new empty disk called Judy
                 in the pool that is currently bound to DGP9. The new
                 disk has a capacity of 1,000,000 blocks. The command
                 uses quote marks to stop the name, Judy, being converted
                 to uppercase.

              2. $BIND /DISK DGA1: DGP9: "Judy"
                 $CREATE /DISK DGP9: "Judy__2.10.97" /SNAPSHOT=DGA1:

                 In this example, the CREATE /DISK command creates a disk
                 called Judy__2.10.97 in the pool that is currently
                 bound to DGP9. It creates the new disk by taking a
                 snapshot of the disk Judy, which is currently bound
                 to DGA1.

        CREATE /POOL

              Creates a snapshot pool on one or more storage units.

              Requires OPER and VOLPRO privileges.

        Format

              CREATE /POOL  storage-unit[,...]

        Parameter

              storage-unit[,...]
              The storage units on which you want to create the new pool.

              Each storage-unit is either the name of a device (for
              example, DKA100 or DSA12) or a logical name that points
              to a device name. Each unit must be initialized with the
              Files-11 ODS-2 file system, and must be mounted on your
              computer with the /POOL qualifier.

              If any of the units is already in a pool, that pool must
              not be bound to a DG device on any computer in your OpenVMS
              Cluster.

              The maximum number of units you can have in a pool is 40.

        Description

              The CREATE /POOL command creates a snapshot pool on the
              specified storage units. Use the BIND /POOL command to bind
              the new pool to a virtual DG device, then use the CREATE
              /DISK command to create a disk in it.

              Before you use the CREATE /POOL command, set up each of the
              storage units as follows:

              1. Initialize the unit using the INITIALIZE command with
                 the /POOL qualifier.

              2. Mount the unit using the MOUNT command with the /POOL
                 qualifier.

              Snapshots must be enabled on your computer; the value of
              the SD_ALLOCLASS system parameter must be non-zero.

        Qualifiers

              /FULL_ACTION=FAIL
              /FULL_ACTION=STALL (default)
              This qualifier controls whether writes to the pool should
              stall (the default) or fail if the pool subsequently runs
              out of free segments and becomes full.

              If the number of free segments drops to zero, the pool
              cannot satisfy any write I/O requests that require a
              segment copy operation, including requests to delete,
              create and rename files. These requests are either stalled
              or they are failed with the DEVICEFULL error status.

              If the pool becomes full, you must increase the number of
              free segments in the pool by either:

              o  Deleting one of the disks from the pool, using the
                 DELETE /DISK command

              o  Adding another storage unit to the pool, using the ADD
                 /POOL command

              You can use the SET DEVICE command with the /FULL_ACTION
              qualifier to change the pool's full action. Use SHOW
              DEVICES /FULL to check its current setting.

              /SEGMENT_SIZE=blocks
              Use this qualifier to specify the segment size of the pool
              in blocks. The segment size can be in the range 10 to 1,000
              blocks; by default it is 64 blocks.

              A segment is the smallest unit that is copied when you take
              a snapshot of a disk in the pool and then update one block
              of either the original disk or its snapshot.

        Examples

              1. $CREATE /POOL DKA100:, DKA200:, DKA300:

                 This command creates a pool on three SCSI disks, DKA100,
                 DKA200, and DKA300.

              2. $CREATE /POOL DSA41:, DSA42:

                 This command creates a pool on two shadow sets, DSA41
                 and DSA42.

              3. $CREATE /POOL DPA51:, DPA52:, DPA53:, DPA54:

                 This command creates a pool on four partitions of a RAID
                 5 array, DPA51, DPA52, DPA53, and DPA54.

        DELETE /DISK

              Deletes a disk from a snapshot pool.

              Requires OPER and VOLPRO privileges.

        Format

              DELETE /DISK  pool-DGdevice diskname

        Parameter

              pool-DGdevice
              The pool that contains the disk that you want to delete.

              You must have previously used the BIND /POOL command to
              bind the pool to a virtual DG device on your computer. This
              parameter is either the name of the device, for example,
              DGP9, or a logical name that points to it.

              diskname
              The name of the disk that you want to delete.

              Each disk in a snapshot pool has a name that is unique
              within that pool. You specify the name when you create the
              disk using the CREATE /DISK command, and you can change
              the name later, using the SET DEVICE command with the /NAME
              qualifier.

              The disk must not be bound to a DG device on any computer
              in your OpenVMS Cluster.

              If the disk is the founder member of a family, it must
              be the only member of the family. You cannot delete the
              founder member until you have deleted all of the other
              members of its family.

        Description

              The DELETE /DISK command deletes a disk from a snapshot
              pool. It frees up the segments used by the disk that are
              not shared with any other disks in its family; the number
              of free segments in the pool increases by the Delfree value
              of the disk you deleted.

        Example

              $DELETE /DISK DGP9: "Judy__2.10.97"

              This command deletes the disk called Judy__2.10.97 from
              the pool that is currently bound to the DGP9 device.

        REMOVE /POOL

              Removes storage units from a snapshot pool.

              Requires OPER and VOLPRO privileges.

        Format

              REMOVE /POOL  pool-DGdevice storage-unit[,...]

        Parameter

              pool-DGdevice
              The pool that you want to remove the storage units from.

              You must have previously used the BIND /POOL command to
              bind the pool to a virtual DG device on your computer. This
              parameter is either the name of the device, for example,
              DGP9, or a logical name that points to it.

              storage-unit[,...]
              The storage units that you want to remove from the pool.
              Each storage-unit is either the name of a device (for
              example, DKA100 or DSA12) or a logical name that points
              to a device name.

        Description

              The REMOVE /POOL command removes one or more storage units
              from a snapshot pool. It can take some time, because it
              copies all the data on the units being removed to other
              units in the pool.

              The REMOVE /POOL command first works out how many segments
              it needs to copy, then it allocates or reserves that number
              of segments on the remaining storage units so that no one
              else can use them. 

              If your computer fails while the REMOVE /POOL command is
              executing, when it reboots you may find some but not all
              of the specified storage units removed from the pool. The
              remove operation is atomic on a storage unit by storage
              unit basis; each unit is either removed from the pool, or
              it is not removed from the pool.

        Example

              $REMOVE /POOL DGP9: DKA700:

              This command removes the unit DKA700 from the pool that is
              currently bound to the DGP9 device.

        UNBIND /DISK

              Unbinds a disk in a snapshot pool from a virtual DG device
              on your computer, stopping users on your computer from
              being able to access the disk.

              Requires the OPER privilege.

        Format

              UNBIND /DISK  disk-DGdevice

        Parameter

              disk-DGdevice
              The disk that you want to unbind.

              This parameter is either the name of the virtual DG device
              to which it is currently bound (for example, DGA1) or a
              logical name that points to that device name.

              The DG device must not be mounted on your computer or
              have an I/O channel assigned to it by any process on your
              computer.

        Description

              The UNBIND /DISK command stops users on your computer from
              being able to access a disk in a snapshot pool. It unbinds
              the disk from the virtual DG device on your computer and
              deletes the DG device on your computer.

        Example

              $UNBIND /DISK DGA1:

              This command unbinds the disk currently bound to DGA1,
              stopping users on the local computer from accessing the
              disk.

        UNBIND /POOL

              Unbinds a snapshot pool from a virtual DG device on your
              computer.

              Requires the OPER privilege.

        Format

              UNBIND /POOL  pool-DGdevice

        Parameter

              pool-DGdevice
              The pool that you want to unbind. This parameter is either
              the name of the virtual DG device to which it is currently
              bound (for example, DGP9) or a logical name that points to
              that device name.

        Description

              The UNBIND /POOL command unbinds a snapshot pool from a
              virtual DG device on your computer. It stops users on your
              computer from being able to:

              o  Create a new disk in the pool, using the CREATE /DISK
                 command

              o  Bind an existing disk in the pool, using the BIND /DISK
                 command

              o  Delete a disk from the pool, using the DELETE /DISK
                 command

              o  Add a unit to or remove a unit from the pool, using the
                 ADD /POOL and REMOVE /POOL commands

              The UNBIND /POOL command deletes the DG device on your
              computer. It fails if any disk in the pool is currently
              bound on any computer in your OpenVMS Cluster.

              When the pool is unbound, you can dismount its storage
              units, using the DISMOUNT command.

        Example

              $UNBIND /POOL DGP9:

              This command unbinds the pool currently bound to DGP9 on
              the local computer.

Syntax Description: New Qualifiers for Existing Commands

        INITIALIZE

        Qualifiers

              /POOL
              Requires the VOLPRO privilege.

              Use this qualifier if you want to create a snapshot pool
              on the specified device. It is shorthand for the following
              six qualifiers, which you need to use when you initialize a
              unit for use in a snapshot pool:

                 /HOMEBLOCKS=CONTIGUOUS
                 /INDEX=BEGINNING
                 /MAXIMUM_FILES=12
                 /NOHIGHWATER
                 /STRUCTURE_LEVEL=2
                 /SYSTEM

              The /POOL qualifier saves you having to type these six
              qualifiers.

        Example

              1. $ INITIALIZE DKA100: VOL1 /POOL

                 This command initializes a unit for use in a pool.

        MOUNT

        Qualifiers

              /POOL
              Requires the OPER privilege.

              This qualifier prepares a volume for use in a snapshot
	      pool.

        Example

              1. $ MOUNT DKA100: VOL1 /POOL

                 This command mounts a unit that is in a snapshot pool.

        SET DEVICE

        Qualifiers

              /FULL_ACTION=FAIL
              /FULL_ACTION=STALL
              Requires OPER and VOLPRO privileges.

              This qualifier applies only to snapshot pool virtual DG
              devices. It controls whether writes to the pool should
              stall or fail if the pool subsequently runs out of free
              segments and becomes full.

              You must have previously used the BIND /POOL command to
              bind the pool to a virtual DG device on your computer. The
              parameter of the SET DEVICE command must be either the name
              of the device (for example, DGP9) or a logical name that
              points to it.

              For more information, see the CREATE /POOL command's
              description of the /FULL_ACTION qualifier.

              /NAME=new-diskname
              Requires OPER and VOLPRO privileges.

              This qualifier applies only to disks in snapshot pools.

              Each disk in a snapshot pool has a name that is unique
              within that pool. You specify the name when you create the
              disk, using the CREATE /DISK command.

              This qualifier changes the name of the disk. You must have
              previously used the BIND /DISK command to bind the disk to
              a virtual DG device on your computer. The parameter of the
              SET DEVICE command must be either the name of the device
              (for example, DGA1) or a logical name that points to it.

        Examples

              1. $SET DEVICE DGP4: /FULL_ACTION=FAIL

                 This command sets the full action to Fail for the
                 snapshot pool that is currently bound to the DGP4
                 device.

              2. $SET DEVICE DGA1: /NAME="Judy Parsons"

                 This command changes the name of a disk in a snapshot
                 pool. It changes the name of the disk that is currently
                 bound to DGA1. It uses quote marks to stop the new name,
                 Judy Parsons, being converted to uppercase.
T.RTitleUserPersonal
Name
DateLines
770.1TLE::REAGANAll of this chaos makes perfect senseWed Apr 23 1997 16:1549
Sorry, I haven't gotten around to this until now.  It got buried on
my desk.

1) Technically, you say the following are "new commands", but really
they are additions to existing commands, yes?

              CREATE /DISK    Creates a disk in a snapshot pool, either
                              by creating a brand new empty disk of
                              a specified capacity or by taking a snapshot
                              of an existing disk

              CREATE /POOL    Creates a snapshot pool on one or more
                              storage units

              DELETE /DISK    Deletes a disk from a snapshot pool

2) Ah, the dreaded "Snapshot" word.  This word has been used several
times since the early years of VMS along with "checkpoint".  I don't
have any particular comment other than "good luck trying to overcome
the years of mythical meaning to 'snapshot' with OpenVMS".

3) This just screams for a single management tool to do the various
jobs.  It seems odd to me to have a top-level DCL command like ADD
(I know, I'm usually arguing in the other direction), etc.

Given the complex set of operations that a system manager will have
to do (bind things, add things, create things, init things, etc.), 
it seems to me that you will always be doing many of these commands
at the same time.  Also since only a privileged system manager/operator
will do them, grouping them into a single entity like we have for
managing DFS disks or LAT services or system management functions
(ie, SYSMAN) seems more reasonable to me than a whole bunch of
"independent" DCL commands.

4) /FULL_ACTION.  That caught me off guard.  I couldn't even guess
what you meant by it until I read the words.  How about something
like SET AUDIT's /FAILURE_MODE?  That is a similar concept about
what to do when some resource is exhausted.  It has CRASH, IGNORE,
and WAIT.  Perhaps you can have /FAILURE_MODE=(ERROR|WAIT)?


Besides that, I don't really have a problem with the rest of the DCL.
Without reading the functional spec, I think the multiple concepts
presented here might be confusing without some "master" administrator
utility that might prompt you along and present a visualization of
what you are doing.

			    -John
    
770.2OpenVMS Snapshot ServicesMOVIES::PARSONSMon Apr 28 1997 08:40117
Hi John,

Well I never got to see you when I was in ZK two weeks ago - sorry.
The week just rushed by; it was a crazy blurr of meetings! Maybe next
time...

Thanks for your comments. My comments are marked >>

Judy

Sorry, I haven't gotten around to this until now.  It got buried on
my desk.

1) Technically, you say the following are "new commands", but really
they are additions to existing commands, yes?

>> Yes, you're quite right.  The three commands you list below are not
>> really new commands - well it depends on how you define "new
>> command".  What I meant was that they will be presented to
>> customers as separate commands in the documentation in the same way
>> that CREATE /DIRECTORY is presented as a different command from
>> CREATE, and SET HOST /DTE is presented as a different command from
>> SET HOST, and INITIALIZE /QUEUE is presented as a different command
>> from INITIALIZE.

              CREATE /DISK    Creates a disk in a snapshot pool, either
                              by creating a brand new empty disk of
                              a specified capacity or by taking a snapshot
                              of an existing disk

              CREATE /POOL    Creates a snapshot pool on one or more
                              storage units

              DELETE /DISK    Deletes a disk from a snapshot pool

2) Ah, the dreaded "Snapshot" word.  This word has been used several
times since the early years of VMS along with "checkpoint".  I don't
have any particular comment other than "good luck trying to overcome
the years of mythical meaning to 'snapshot' with OpenVMS".

>>  Product management are very keen on the word snapshot because
>>  that's what everyone else is in the world is calling this
>>  technolgy.  I've already pointed out to them that in OpenVMS this
>>  word has already been ascribed other meanings.  I must say that I
>>  think this is a case where we should go with the rest of the world
>>  and use standard terminlogy.  In other words I agree with prod
>>  man, but I'll forward your comment to them.

3) This just screams for a single management tool to do the various
jobs.  It seems odd to me to have a top-level DCL command like ADD
(I know, I'm usually arguing in the other direction), etc.

Given the complex set of operations that a system manager will have
to do (bind things, add things, create things, init things, etc.), 
it seems to me that you will always be doing many of these commands
at the same time.  Also since only a privileged system manager/operator
will do them, grouping them into a single entity like we have for
managing DFS disks or LAT services or system management functions
(ie, SYSMAN) seems more reasonable to me than a whole bunch of
"independent" DCL commands.

>>  I agree and argued this case months ago, but product management
>>  were very opposed on the grounds that they want this thing to
>>  appear to be well integrated into OpenVMS and not like a layered
>>  product (as in Spiralog or the NTDS Open Disk Services for Windows
>>  NT).  I will raise this with them again, but am not optimistic
>>  that they will change their minds.

4) /FULL_ACTION.  That caught me off guard.  I couldn't even guess
what you meant by it until I read the words.  How about something
like SET AUDIT's /FAILURE_MODE?  That is a similar concept about
what to do when some resource is exhausted.  It has CRASH, IGNORE,
and WAIT.  Perhaps you can have /FAILURE_MODE=(ERROR|WAIT)?

>> I think it caught you off guard because it's something you (and
>> OpenVMS customers) have never come across before.  Nothing else has
>> a feature remotely like this; this is something totally
>> alien to OpenVMS customers, and we need to make sure we teach them
>> about it well.  
>>
>> /FULL_ACTION controls what happens when the new abstraction
>> called the "pool" gets full - we can either stall I/Os to the
>> disks in the "pool" or we can fail those I/Os.  When the pool is
>> full it's no use deleting files (and an attempt to delete a file
>> may either stall or fail, depending on which full action you
>> chose).  There are only two ways out of a pool full scenario: you
>> must either delete a whole "disk" (as in nuke a file system volume) 
>> or you must add a storage unit to the pool to increase the pool's 
>> capacity.
>>
>> The concept of fullness (in our case pool fullness) is a standard
>> feature of snapshot technology - when you have multiple "versions"
>> of a volume sharing the same (finite number of) disk blocks, you
>> can run out of space, although your file system says there's
>> plenty of free space.  Snapshot technology introduces some strange
>> new concepts, which are the price you pay for the good things the
>> technology gives you.
>>
>> I think /FAILURE_MODE is confusing because it could be to do with
>> what happens when an underlying storage unit fails.  I think
>>  /FULL_ACTION will make it easier for me to describe the new
>> concepts...

Besides that, I don't really have a problem with the rest of the DCL.
Without reading the functional spec, I think the multiple concepts
presented here might be confusing without some "master" administrator
utility that might prompt you along and present a visualization of
what you are doing.

>> Funny you should mention that!  ARGUS, as in OpenVMS Management
>> Station, are currently working on putting a nice visual front end
>> onto OpenVMS Snapshot Services!  Meanwhile, there's the DCL, for
>> the masochists and the people who need to write command scripts.

			    -John
    

770.3TLE::REAGANAll of this chaos makes perfect senseMon Apr 28 1997 10:3034
>>  I agree and argued this case months ago, but product management
>>  were very opposed on the grounds that they want this thing to
>>  appear to be well integrated into OpenVMS and not like a layered
>>  product (as in Spiralog or the NTDS Open Disk Services for Windows
>>  NT).  I will raise this with them again, but am not optimistic
>>  that they will change their minds.

    Tell product managers to their job and let engineers do their job :-)
    
    Having a separate interface doesn't mean you aren't integrated.  Look
    at tools like INSTALL, SYSGEN, SYSMAN, AUTHORIZE, etc.  Just because
    you have a single DCL verb and a sub-system doesn't mean you aren't
    integrated.  What would people think if we add ADD/USER as a top level
    DCL command instead of being inside of AUTHORIZE?  Would that make
    it any more integrated?  Any more useful?
    
>> I think it caught you off guard because it's something you (and
>> OpenVMS customers) have never come across before.  Nothing else has
>> a feature remotely like this; this is something totally
>> alien to OpenVMS customers, and we need to make sure we teach them
>> about it well.  
>>
    Well, as I mentioned SET AUDIT has almost the exact case (at least to
    me), namely, what to do when a critical resource is gone.  
    
    I suppose the word FAILURE might be scary to some people, but
    when I read /FULL_ACTION, I read the word "FULL" like I do
    when I see SHOW DEVICE/FULL, not the word "FULL" like you wanted
    me to read it.
    
			    -John
    

    
770.4QUARK::LIONELFree advice is worth every centMon Apr 28 1997 12:5310
The big problem with tacking on various features to existing verbs is that it
makes it very confusing for customers to find all of the relevant commands.
It makes MUCH more sense for there to be one "master" command with subcommands
(and even its own help library).  

I agree with John that using generic verbs such as ADD and CREATE are a bad
idea (and I don't think ADD exists - I'd object to it being created for this
purpose.)

				Steve (not a DCLRB member)