voliod - Start, stop, and report on Logical Storage Manager (LSM) kernel daemons
/sbin/voliod set count
/sbin/voliod logio volume_major/volume_minor|volume_path ...
/sbin/voliod stoplogio -e volume_major/volume_minor|volume_path ...
The following options are used by
Do not print error messages that may be generated as a result
of starting a
daemon twice on the same volume.
Force the kill of the last error daemon. Without this option,
the error daemons can only be reduced to one.
utility starts, stops, or reports on Logical Storage Manager
error daemons and volume log I/O daemons. An error daemon is a process that
the volume driver uses for extended error-recovery and plex-recovery operations.
At least one error daemon is required by the volume driver to process these
recovery operations, with each error daemon serially processing one error
operation at a time. A volume log I/O daemon is used by the Logical Storage
Manager driver to schedule writes for volumes that require logging.
When invoked with no arguments, /sbin/voliod prints the current number of volume error daemons on the standard output.
When invoked with the set keyword, the number of daemons specified by count will be created. If more volume error daemons exist than are specified by count, then the excess processes will be terminated. If more than the maximum number are created (currently 20), the requested number will be silently truncated to that maximum.
The number of daemons to create for general I/O handling is dependent on system load and usage. The daemons are only used in the event of volume recoveries or errors. It is generally not necessary to start more than one daemon for each CPU on the system. If volume recovery seems to proceed slower at some times, then it may be worthwhile to create more daemons.
Each error daemon starts in the background and creates an asynchronously-running process, which detaches itself from the controlling terminal and becomes a volume error daemon. The voliod utility does not wait for these processes to complete.
Logging daemons are created and killed automatically by vold, but if they are not available for some reason, then they can be started manually using the following procedure.
When invoked with the keyword logio, voliod creates a volume log I/O daemon for the volume device or major/minor number pair specified in the operand list. If specified as a device path, the path should point to the block device file for the volume. This is usually specified as /dev/vol/... If specified as a major/minor number pair, the major number should relate to the block device major number of the Logical Storage Manager and the minor number to the minor number of the volume.
The log I/O daemon is started in the foreground and will only return
if it is killed using the
voliod. When invoked with the keyword
kills any logging daemons associated with the specified volume
device or major/minor number pair.
The voliod utility prints a diagnostic on the standard error, and exits if an error is encountered. If an error occurs within a forked error daemon process, then the error is not reflected in the exit status for voliod. Otherwise, voliod returns a nonzero exit status on errors.
Usage errors result in an exit status of 1 and a usage message. If the
requested number of daemons cannot be created, then the exit status is 2,
and the number of daemons that were successfully started is reported. If any
other error occurs, the exit status is 3.
is issued in the foreground from the command line, then the only way to release
the session is to stop the daemon using the
Volume log I/O daemons are created automatically by
when they are needed, and are killed automatically when they are no longer
needed. Log I/O daemons cannot be killed directly through the use of signals.
The device used to report on and start volume I/O daemon
fork(2), volintro(8), vold(8), voldctl(8)