fs(4-vxfs) (VxFS) fs(4-vxfs)
NAME
fs (vxfs) - format of a Veritas File System volume (VxFS)
SYNOPSIS
#include <sys/types.h>
#include <sys/param.h>
#include <sys/fs/vxfs.h>
DESCRIPTION
The Veritas File System (VxFS) super-block always begins at byte
offset 1024 from the start of the file system. The super-block loca-
tion is fixed so utilities know where to look for it.
The super-block contains the following fundamental sizes and offsets:
fsmagic
The magic number for the file system (VXMAGIC). This number
identifies the file system as being a Veritas FSType.
fsversion
The version number of the file system layout (VXVERSION),
currently 1.
fsctime
The creation date of the file system. The time(2) system call
supplies the time.
fsectime
This field is a placeholder in instances when the creation date
for a file system is expanded for more precision. It currently is
zero.
fsobsolete1
Empty placeholder.
fsobsolete2
Empty placeholder.
fslogstart
The block address of the first Log Area block. It currently is 2.
fslogend
The block address of the last Log Area block. The Log Area size,
in blocks, may be specified as part of mkfs(1M). If not speci-
fied, a default of 256 blocks is used. A minimum size of 32
blocks is enforced.
fsbsize
The block size of the file system. The current choices are 1024,
2048, 4096, and 8192 bytes.
Page 1 Reliant UNIX 5.44 Printed 11/98
fs(4-vxfs) (VxFS) fs(4-vxfs)
fssize
The number of blocks in the file system, expressed as the number
of blocks of size fsbsize. The fssize field is a signed 32 bit
number. The maximum number of blocks in a Veritas file system is
limited to 31 bits.
fsdsize
The number of data blocks in the file system. A data block is a
block which may be allocated to a file in the file system.
fsninode
The number of inodes in the file system which is subject to the
following rules:
- The fsninode field is assigned 32 bit number.
- The number of inodes is rounded down such that the inode list
in each allocation unit is an integral number of inode list
blocks (see fsilbsize).
- The number of inodes may be specified as part of mkfs(1M). If
not specified, the default will be fsdsize divided by 4.
fsnau
The number of allocation units in the file system. The number of
allocation units may be specified as part of mkfs(1M). If not
specified, the default will be fssize rounded to the next
highest 32K block boundary, divided by 32K.
fsdefiextsize
The default size for indirect data extents, expressed in blocks.
The default size for indirect data extents may be specified as
part of mkfs(1M). If not specified, a default of 64 blocks is
used.
fsilbsize
The size of an inode list block, expressed in bytes. This size
may be specified as part of mkfs(1M). If not specified, the max-
imum of 2KB or fsbsize is used as the default.
fsimmedlen
The size, in bytes, of the immediate data area in each inode.
This value is 96 for the Veritas file system, version 1.
fsndaddr
The number of direct extents supported by the VXEXT4 mapping
type (see the section describing inode list). This value is 10
for the Veritas file system version 1.
Page 2 Reliant UNIX 5.44 Printed 11/98
fs(4-vxfs) (VxFS) fs(4-vxfs)
The preceding fields define the size and make up of the file system.
To reduce the calculations required in utilities, a number of values
are derived from the fundamental values and placed in the super-block.
The super-block contains the following derived offsets:
fsaufirst
The address, in blocks, of the first allocation unit. There can
be a gap between the end of the intent log and the first alloca-
tion unit. This gap could be used to align the first allocation
unit on a desired boundary.
fsemap
The offset, in blocks, of the free extent map (emap) from the
start of an allocation unit.
fsimap
The offset, in blocks, of the free inode map (imap) from the
start of an allocation unit.
fsiextop
The offset, in blocks, of the extended inode operation map from
the start of an allocation unit.
fsistart
The offset, in blocks, of the inode list (ilist) from the start
of an allocation unit.
fsbstart
The offset, in blocks, of the first data block from the start of
an allocation unit. An allocation unit header may contain padding
to align the first data block.
fsfemap
The offset, in blocks, of the first free extent map (emap) from
the start of the file system.
fsfimap
The offset, in blocks, of the first free inode map (imap) from
the start of the file system.
fsfiextop
The offset, in blocks, of the first extended inode operation map
from the start of the file system.
fsfistart
The offset, in blocks, of the first ilist from the start of the
file system.
fsfbstart
The offset, in blocks, of the first data block from the start of
the file system.
Page 3 Reliant UNIX 5.44 Printed 11/98
fs(4-vxfs) (VxFS) fs(4-vxfs)
fsnindir
The number of entries in an indirect address extent. An indirect
address extent is currently 8192 bytes in length, making the
current value for fsnindir 2048.
fsaulen
The length of an allocation unit in blocks.
fsauimlen
The length of a free inode map in blocks.
fsauemlen
The length of a free extent map in blocks.
fsailen
The length, in blocks, of the inode list for this allocation
unit.
fsaupad
The length, in blocks, of the allocation unit alignment padding.
fsaublocks
The number of data blocks in an allocation unit.
fsmaxtier
The log base 2 of fsaublocks.
fsinopb
The number of inode entries per fsbsize block in the inode list.
fsinopau
The number of inodes in an allocation unit.
fsinopilb
The number of inode entries per fsilbsize block in the inode
list.
fsndiripau
Expected number of directory inodes per allocation unit.
fsiaddrlen
The size, in blocks, of an indirect address block. An indirect
address block is 8K bytes. This field will be set to
(8K/fsbsize).
fsbshift
The log base 2 of fsbsize. Used to convert a byte offset into a
block offset.
fsinoshift
The log base 2 of fsinopb. Used to convert an inode number into
a block offset in the inode list.
Page 4 Reliant UNIX 5.44 Printed 11/98
fs(4-vxfs) (VxFS) fs(4-vxfs)
fsbmask
A mask value such that (byteoffset and fsbmask) rounds the
offset to the nearest smaller block boundary.
fsboffmask
A mask value such that (byteoffset and fsboffmask) yields the
offset from the start of the nearest smaller block boundary.
fsinomask
A mask value such that (inodenumber and fsinomask) yields the
offset from the start of the containing inode list block of the
corresponding inode list entry.
fschecksum
A simple checksum of the above fields. A macro, VXFSCHECKSUM, is
provided to verify or calculate the checksum.
The above fields, which are initialized when the file system is
created, do not change unless the file system is enlarged. These
fields are replicated in each allocation unit header.
There are additional fields which are considered to be dynamic:
fsfree
The current number of free data blocks.
fsifree
The current number of free inodes.
fsefree
An array of the current number of free extents of each extent
size in the file system.
fsflags
The following flags are recognized:
VXFULLFSCK
Set when a file system requires a full structural check to
recover from an error. If this flag is set, a full check
will be performed after the replay recovery is finished.
VXNOLOG
Set when the file system was mounted with the VXMSNOLOG
option. If this flag is set, then no log replay recovery
will be performed.
VXLOGBAD
Set when an I/O error has invalidated the log. If this flag
is set, then no log replay recovery will be performed.
Page 5 Reliant UNIX 5.44 Printed 11/98
fs(4-vxfs) (VxFS) fs(4-vxfs)
VXLOGRESET
Set when the log ID runs over VXMAXLOGID (2^30). The log ID
will be reset at the next appropriate opportunity (such as a
mount or 60-second sync).
VXRESIZE
Set when a file system expansion is in progress. If an
fsck(1M) sees this flag, it will have to perform resize
recovery. Refer to fsadm(1M) for a description of file sys-
tem expansion.
fsmod
Set whenever a mounted file system is modified. It is used to
indicate if the super-block needs to be written when a sync
operation is performed.
fsclean
Set to VXDIRTY when a file system is mounted for read/write
access. Set to VXCLEAN upon umount(1M) or successful fsck(1M).
The mount(1M) utility will not allow a file system to be mounted
for read/write if the fsclean field is VXDIRTY.
fsreserved
Reserved for future use.
fsfirstlogid
Starting intent log ID to use when the file system is next
mounted.
fstime
Last time the super-block was written to disk. This field is in
the same format as fsctime.
fsetime
Spare for when time becomes 8 bytes.
fsfname
File system name (6 characters).
fsfpack
File system pack label (6 characters).
SEE ALSO
fsck(1M), fsdb(1M), mkfs(1M), mount(2), inode(4-vxfs).
Page 6 Reliant UNIX 5.44 Printed 11/98