sam-releaser - Oracle HSM disk space releaser process
∕opt∕SUNWsamfs∕sbin∕sam-releaser
file_system
low_water_mark
weight_size
[weight_age]
SUNWsamfs
The sam-releaser process controls the activities of the
Oracle HSM releaser. The releaser makes disk cache available
by identifying archived files and releasing their disk cache copy.
This process is started automatically by the file system when disk cache
utilization reaches the high-water mark.
If the releaser command file is present
in ∕etc∕opt∕SUNWsamfs∕releaser.cmd,
the sam-releaser process reads that file.
Directives in the releaser.cmd file are
overridden by the equivalent command-line arguments, if present.
For more information on the releaser command file, see
the releaser.cmd (4) man page.
This command accepts the following arguments:
This is the file system whose disk space is to be released. The argument may be either the name of the file system, or its mount_point. The releaser attempts to release the disk space of archived files on the file system mounted on the mount_point until low_water_mark is reached.
A percentage of the file system that is allowed to be
completely occupied with files at all times.
Specify an integer number that is at least 0
but no more than 100.
The releaser attempts to release disk space until the file
system is at or below this threshold.
A weighting factor that is used to
prioritize release candidates.
Specify a floating-point value that is at least
0.0 but no more than 1.0.
For more information on weight_size, see
the PRIORITY WEIGHTS section of this man page.
A weighting factor that is used to
prioritize release candidates.
Specify a floating-point value that is at least
0.0 but no more than 1.0.
For more information on weight_age, see
the PRIORITY WEIGHTS section of this man page.
The releaser reads the Oracle HSM .inodes file and builds
an ordered list of the files that can be released.
The position of each file on the
list depends on a priority calculated for each inode by the
releaser (see the PRIORITY WEIGHTS section of this man page.)
Only the top list_size files are kept on the list. The default
list_size is 30000 for file systems with less than 1M inodes, and
100000 with more than 1M inodes. See releaser.cmd (4) for a
description of list_size.
Starting with the file with the numerically largest priority, the disk space used by each file is released until the low_water_mark has been reached. If the list is exhausted before the low_water_mark is reached, the process is repeated. If, while repeating the process, no files are found that can be released, the releaser stops. If the file system is still above high-water mark, the file system restarts the releaser.
Each inode is assigned a priority based on its size and age. The size of the file (expressed in units of 4-kilobyte blocks) is multiplied by the weight_size parameter. This result is added to the priority calculated for the age of the file to form the file's final priority.
The releaser can use one of the following two methods for determining the contribution of the age of a file to the file's release priority:
The first method is to take the most recent of the file's access, modification, and residence-change age and multiply by weight_age.
The second method allows specification of weights for each of the
access, modification, and residence-change times. These are specified
by the weight_age_access=float,
weight_age_modify=float, and
weight_age_residence=float directives,
respectively, in the releaser.cmd file.
The sum of the
product of the weight and corresponding age is the contribution of the
age to the file's priority. To specify any of these priority weights,
you must use the releaser.cmd file. For information on the
releaser.cmd file, see the releaser.cmd (4) man page.
For both methods, the ages are expressed in minutes.
Within the releaser.cmd file,
you can specify a log file for each Oracle HSM file system.
If the releaser.cmd file does not exist, or
if no logfile=filename directive exists in the file,
no logging occurs.
For more information on the logfile=filename directive,
see the releaser.cmd (4) man page.
The releaser creates the log file (if it does not exist) and appends the following to it for each run:
Releaser begins at Tue Sep 29 15:31:15 1998
inode pathname ∕sam1∕.inodes
low-water mark 40%
list_size 10000
weight_size 1
weight_age 0.5
fs equipment number 1
family-set name samfs1
started by sam-fsd? no
release files? no
release rearch files? yes
display_all_candidates? no
---before scan---
blocks_now_free: 117312
lwm_blocks: 233750
---scanning---
64122.5 (R: Tue Sep 29 11:33:21 CDT 1998) 237 min, 64004 blks S0 ∕sam1∕250m
5131.5 (R: Tue Sep 22 17:39:47 CDT 1998) 9951 min, 156 blks S0 ∕sam1∕filecq
5095.5 (R: Tue Sep 22 17:39:49 CDT 1998) 9951 min, 120 blks S0 ∕sam1∕filecu
5062 (R: Tue Sep 22 18:38:50 CDT 1998) 9892 min, 116 blks S0 ∕sam1∕filebz
5039.5 (R: Tue Sep 22 17:40:01 CDT 1998) 9951 min, 64 blks S0 ∕sam1∕filedi
5036.5 (R: Tue Sep 22 17:37:34 CDT 1998) 9953 min, 60 blks S0 ∕sam1∕fileio
5035.5 (R: Tue Sep 22 17:40:13 CDT 1998) 9951 min, 60 blks S0 ∕sam1∕filedw
5032.5 (R: Tue Sep 22 17:38:08 CDT 1998) 9953 min, 56 blks S0 ∕sam1∕filejq
5031.5 (R: Tue Sep 22 17:39:56 CDT 1998) 9951 min, 56 blks S0 ∕sam1∕fileda
5024.5 (R: Tue Sep 22 17:38:00 CDT 1998) 9953 min, 48 blks S0 ∕sam1∕filejh
5024 (R: Tue Sep 22 17:38:22 CDT 1998) 9952 min, 48 blks S0 ∕sam1∕fileka
5023.5 (R: Tue Sep 22 17:40:07 CDT 1998) 9951 min, 48 blks S0 ∕sam1∕filedn
5019 (R: Tue Sep 22 17:40:44 CDT 1998) 9950 min, 44 blks S0 ∕sam1∕filefk
5015 (R: Tue Sep 22 17:40:28 CDT 1998) 9950 min, 40 blks S0 ∕sam1∕fileep
5011.5 (R: Tue Sep 22 17:40:14 CDT 1998) 9951 min, 36 blks S0 ∕sam1∕filedx
5011.5 (R: Tue Sep 22 17:39:58 CDT 1998) 9951 min, 36 blks S0 ∕sam1∕filede
5011 (R: Tue Sep 22 17:41:07 CDT 1998) 9950 min, 36 blks S0 ∕sam1∕filegk
5007.5 (R: Tue Sep 22 17:39:51 CDT 1998) 9951 min, 32 blks S0 ∕sam1∕filecw
5007 (R: Tue Sep 22 17:41:10 CDT 1998) 9950 min, 32 blks S0 ∕sam1∕filegr
5007 (R: Tue Sep 22 17:40:42 CDT 1998) 9950 min, 32 blks S0 ∕sam1∕filefg
5007 (R: Tue Sep 22 17:40:30 CDT 1998) 9950 min, 32 blks S0 ∕sam1∕filees
5004.5 (R: Tue Sep 22 17:38:14 CDT 1998) 9953 min, 28 blks S0 ∕sam1∕filejv
5004 (R: Tue Sep 22 17:38:57 CDT 1998) 9952 min, 28 blks S0 ∕sam1∕filelm
5002 (R: Tue Sep 22 18:38:54 CDT 1998) 9892 min, 56 blks S0 ∕sam1∕filecd
4996.5 (R: Tue Sep 22 17:38:06 CDT 1998) 9953 min, 20 blks S0 ∕sam1∕filejp
4995.5 (R: Tue Sep 22 17:39:57 CDT 1998) 9951 min, 20 blks S0 ∕sam1∕filedc
4992.5 (R: Tue Sep 22 17:37:24 CDT 1998) 9953 min, 16 blks S0 ∕sam1∕fileig
4992 (R: Tue Sep 22 17:39:06 CDT 1998) 9952 min, 16 blks S0 ∕sam1∕filelv
4986 (R: Tue Sep 22 18:38:50 CDT 1998) 9892 min, 40 blks S0 ∕sam1∕fileca
4982 (R: Tue Sep 22 17:36:54 CDT 1998) 9954 min, 5 blks S0 ∕sam1∕filehk
4981 (R: Tue Sep 22 17:41:09 CDT 1998) 9950 min, 6 blks S0 ∕sam1∕filegn
4980.5 (R: Tue Sep 22 17:40:15 CDT 1998) 9951 min, 5 blks S0 ∕sam1∕filedz
---after scan---
blocks_now_free: 0
blocks_freed: 65452
lwm_blocks: 233750
archnodrop: 0
already_offline: 647
damaged: 0
extension_inode: 0
negative_age: 0
nodrop: 0
not_regular: 7
number_in_list: 32
rearch: 1
released_files: 32
too_new_residence_time: 0
too_small: 1
total_candidates: 32
total_inodes: 704
wrong_inode_number: 14
zero_arch_status: 3
zero_inode_number: 0
zero_mode: 0
CPU time: 0 seconds.
Elapsed time: 1 seconds.
Releaser ends at Tue Sep 29 15:31:16 1998
The first block of lines shows the arguments with which the releaser
was invoked, the name of the .inodes file, the low-water mark,
the size and age weight parameters, the equipment number of the
file system, the family set name of the file system, whether the releaser
was started by sam-fsd or by the command line, whether files
should be released, and whether each inode should be logged as
encountered.
The second block of lines begins
with the heading ---before scan---.
It shows the number of blocks
currently free in the cache and the number that would be free if the
file system were exactly at the low-water mark. The goal of
the releaser is to increase blocks_now_free so that it is equal
to or larger than lwm_blocks.
The third block of lines begins with the heading ---scanning---.
This block lists the files released by the releaser and contains
information for each file in separate fields. The fields are as follows:
Field NumberContent
This field contains the release priority.
This field contains the date and time in the following format:
(tag: date_and_time).
The tag is either A for access, M for modify,
or R for residency, depending on if the date that
follows represents the access, modify or residency time.
The date_and_time is the most recent of the three dates listed.
This field contains the age and size of the file. The age of the file is expressed in minutes. The size of the file is expressed in blocks. These two figures are multiplied by their respective weights and the sum taken to yield the release priority.
This field contains an S followed by the segment number.
This is the number of the segment that was released.
This field contains the full path name of the released file.
Note that if the weight_age_access=float,
weight_age_modify=float or
weight_age_residence=float directives are specified in the
releaser.cmd file, these lines show only
the priority, size, and pathname.
The fourth block of lines begins with the heading ---after scan---.
This block shows the statistics accumulated by the releaser
during the previous scan pass are shown. These statistics are as follows:
StatisticMeaning
archnodropThe number of inodes marked archnodrop.
These files are never released because the archiver
is trying to keep them in cache.
already_offlineThe number of inodes that were offline.
damagedThe number of inodes marked as damaged.
extension_inodeThe number of extension inodes found. Used by volume overflow.
negative_ageThe number of inodes that had an age in the future. This is usually caused by personal computers with incorrect clock settings acting as NFS clients.
nodropThe number of inodes marked with release -n.
For more information on marking files as never release,
see the release (1) man page.
not_regularThe number of inodes that were not regular files.
number_in_listThe number of inodes that were on the releaser's candidate list when the releaser was finished scanning.
rearchThe number of files with a copy marked for rearchiving.
released_filesThe number of files released.
too_new_residence_timeThe number of inodes whose residence-change time was
within minimum residence age
of the current time as specified on
the min_residence_age=time directive
in the releaser.cmd file.
too_smallThe number of files that were too small to be released.
total_candidatesThe number of inodes found that were viable candidates for releasing.
total_inodesThe total number of inodes scanned.
wrong_inode_numberThe number of inodes whose inode number did not match their offset in
the inode file.
This is usually not a concern, but
you should run samfsck (1m) to rescue any orphan inodes.
If you have already run samfsck (1m) and this field remains
nonzero, no further action is required.
For more information on the samfsck (1m) command,
see the samfsck (1m) man page.
zero_arch_statusThe number of inodes that had no archive copies.
zero_inode_numberThe number of inodes that had zero as their inode number.
zero_modeThe number of inodes that were unused.
CPU timeThe number of CPU seconds used in the current scan.
Elapsed timeThe number of wall-clock seconds used in the current scan.
When a file is created, the residency age is set to the creation time.
The residency age of a file must be at least the value set by the
min_residence_age=time directive before the file
is considered for release.
This is to prevent a file which was
recently staged in from being released.
The default time is 10 minutes.
If the releaser selects a file as a release candidate, and immediately thereafter the file is accessed, the file might still be released by the file system even though the file has been recently accessed. This can happen because the file system only prohibits release of a file that is currently in use. It does not check the access age of the file again when it is released.