The Question is:
I have a cluster environment with 16 individual disks. The disks report lower
free space than is actually there with show device d.
I found this by dir [...]/size/grand down each disk. The difference can be
1,000,000 blocks on a 4.3 gig disk.
I also have DFG V2.4 running to defragment the disks.
I have tried analyze/disk/repair, with no success.
I dont want to backup/image each disk and then restore.
Are there confused links lost somewhere ???
How do I get round this and reclaim my space ?
The Answer is :
On system disks and on any other disk with alias entries for files
or directories, the situation where the DCL command DIRECTORY shows
larger values for allocated storage than does SHOW DEVICE is entirely
normal and entirely expected (mis)behaviour -- this difference has to
do with the ways that the commands acquire the information displayed.
The DIRECTORY command does not account for file and directory alias
entries, and thus adds the storage required by alias-related file
accesses, once for each alias entry. This causes erroneously high
values for disk usage for disks with alias entries.
Further, the DIRECTORY/SIZE=ALLOCATED command will show you the value
of the amount of storage actually allocated, while the default DIRECTORY
command displays the amount of storage actually used. The amount of
storage allocated is at least equal to the amount actually used, and
is normally rather larger than the amount actually used. (To see this
difference in practice, experiment with the DIRECTORY/SIZE=ALL command.)
The SHOW DEVICE command looks at a value maintained (in a lock value
block) for the number of blocks used, and this value looks strictly at
the block-level storage and low-level disk storage allocation and
deallocation activity. This is generally the more reliable display
for total storage used (when considering disks with alias entries),
though there are cases where the value in the lock value block can
potentially drift due to certain unrecoverable error conditions that
can arise when (for instance) a cluster member exits the cluster in
an abrupt fashion.
The usual approach for resynchronizing the value in the lock value
block with the actual storage involves the use of the DCL command
ANALYZE/DISK/REPAIR and SET VOLUME/REBUILD[=FORCE] to resynchronize
the lock value block and to to free up any unallocated storage embedded
in the file structure (such as an extent cache -- maintained by each
node accessing the volume, and an area that is not deallocated during
a system crash), and dismounting and then remounting the disk to reload
the lock value block.