Veritas™ File System 5.0.1 Programmer's Reference Guide

CIO is a licensable feature of VxFS.
Unbuffered I/O
The I/O behavior of the VX_UNBUFFERED advisory is the same as the VX_DIRECT
advisory set with the same alignment constraints as direct I/O. However, for
unbuffered I/O, if the file is extended, or storage is allocated to the file, metadata
updates on the disk for extending the file are not performed synchronously before
the write returns to the user. The VX_UNBUFFERED advisory is maintained on a
per-file-descriptor basis.
Other advisories
The VX_SEQ advisory is a per-file advisory that indicates that the file is accessed
sequentially. A process setting this advisory on a file through its file descriptor
impacts the access pattern of other processes currently accessing the same file.
When a file with the VX_SEQ advisory is read, the maximum read-ahead is
performed. When a file with VX_SEQ advisory is written, sequential write access
is assumed and the modified pages with write operations are not immediately
flushed. Instead, modified pages remain in the system page cache and those pages
are flushed at some distance point behind the current write point (flush behind).
The VX_RANDOM advisory is a per-file advisory that indicates that the file is accessed
randomly. A process setting this advisory on a file through its file descriptor
impacts the access pattern of other processes currently accessing the same file.
This advisory disables read-ahead with read operations on the file, and disables
flush-behind on the file. The result of disabling flush behind is that the modified
pages in the system page cache from the recent write operations are not flushed
to the disk until the system pager is scheduled and run to flush dirty pages. The
rate at which the system pager is scheduled is based on availability of free memory
and contention.
Note: The VX_SEQ and VX_RANDOM are mutually exclusive advisories.
Extents
In general disk space is allocated in 512-byte or 1024-byte (DEV_BSIZE) sectors to
form logical blocks. VxFS supports logical block sizes of 1024, 2048, 4096, and
8192 bytes. The default block size is 1K for file systems up to 2 TB in size, and 8K
for other file system sizes. Users can choose any block when creating file systems
using the mkfs command. VxFS allocates disk space to files in groups of one or
more adjacent blocks called extents. An extent is a set of one or more consecutive
Veritas File System I/O
Extents
76