Before you can change the contents of a DCSS, you must
add the DCSS to Linux,
access it in a writable mode, and mount the file system on it.
About this task
The scenario that follows is based on these assumptions:
- The Linux instance
runs as a z/VM guest with
class E user privileges.
- A DCSS is set up and can be accessed in exclusive-writable
mode by the Linux instance.
- The DCSS does not overlap with the guest's main storage.
- There is only a single DCSS named
MYDCSS
.
- The DCSS block device driver is set up and ready to be used.
The description in this scenario can readily be extended to
changing the content of a set of DCSSs that form a contiguous memory
space. The only change to the procedure would be mapping the DCSSs
in the set to a single DCSS device in step
1. The assumptions about
the set of DCSSs would be:
- The contiguous memory space that is formed by the set does not
overlap with the guest storage.
- Only the DCSSs in the set are added to the Linux instance.
Procedure
Perform the following steps to change the contents of
a DCSS:
- Add the DCSS to the block device
driver.
# echo MYDCSS > /sys/devices/dcssblk/add
- Ensure that there is a device node for the
DCSS block device.
If it is not created for you, for example
by udev, create it yourself.
- Find out the major number that is used for DCSS block
devices. Read /proc/devices:
# cat /proc/devices
...
Block devices
...
254 dcssblk
...
The major number in the example is 254.
- Find out the minor number that is used for MYDCSS.
If MYDCSS is the first DCSS that to be added, the minor number
is 0. To be sure, you can read a symbolic link that is created when
the DCSS is added.
# readlink /sys/devices/dcssblk/MYDCSS/block
../../../block/dcssblk0
The trailing 0 in the standard device
name dcssblk0 indicates that the minor number is, indeed, 0.
- Create the node with the mknod command:
# mknod /dev/dcssblk0 b 254 0
- Set the access mode to exclusive-write.
# echo 0 > /sys/devices/dcssblk/MYDCSS/shared
- Mount the file system in the DCSS on a spare
mount point.
# mount /dev/dcssblk0 /mnt
- Update the data in the DCSS.
- Create a save request to save the changes.
# echo 1 > /sys/devices/dcssblk/MYDCSS/save
- Unmount the file system.
# umount /mnt
The
changes to the DCSS are now saved. When the last
z/VM guest stops accessing the
old version of the DCSS, the old version is discarded. Each guest
that opens the DCSS accesses the updated copy.
- Remove the device.
# echo MYDCSS > /sys/devices/dcssblk/remove
- Optional: If you have created
your own device node, you can clean it up.