Overview of File Systems
A file system is a structure of directories that is used to
organize and store files. The term file system is used to describe the following:
A particular type of file system: disk-based, network-based, or virtual
The entire file tree, beginning with the root (/) directory
The data structure of a disk slice or other media storage device
A portion of a file tree structure that is attached to a mount point on the main file tree so that the files are accessible
Usually, you know from the context which meaning is intended.
The Solaris OS uses the virtual file system (VFS) architecture, which provides a standard interface
for different file system types. The VFS architecture enables the kernel to handle
basic operations, such as reading, writing, and listing files. The VFS architecture also
makes it easier to add new file systems.
Types of File Systems
The Solaris OS supports three types of file systems:
Disk-based
Network-based
Virtual
To identify the file system type, see Determining a File System's Type.
Disk-Based File Systems
Disk-based file systems are stored on physical media such as hard disks, CD-ROMs, and diskettes.
Disk-based file systems can be written in different formats. The available formats are
described in the following table.
Disk-Based File System |
Format Description |
UFS |
UNIX file system (based on the
BSD Fat Fast File system that was provided in the 4.3 Tahoe release).
UFS is the default disk-based file system for the Solaris OS. Before you
can create a UFS file system on a disk, you must format
the disk and divide it into slices. For information on formatting disks and
dividing disks into slices, see Chapter 10, Managing Disks (Overview). |
ZFS |
The ZFS file system is new in the
Solaris Express release. For more information, see the ZFS Administration Guide. |
HSFS |
High Sierra, Rock Ridge,
and ISO 9660 file system. High Sierra is the first CD-ROM file system.
ISO 9660 is the official standard version of the High Sierra file system.
The HSFS file system is used on CD-ROMs, and is a read-only file
system. Solaris HSFS supports Rock Ridge extensions to ISO 9660. When present on
a CD-ROM, these extensions provide all UFS file system features and file types,
except for writability and hard links. |
PCFS |
PC file system, which allows read- and
write- access to data and programs on DOS-formatted disks that are written for
DOS-based personal computers. |
UDFS |
The Universal Disk Format (UDFS) file system, the industry-standard format for
storing information on the optical media technology called DVD (Digital Versatile Disc or
Digital Video Disc). |
Each type of disk-based file system is customarily associated with a particular media
device, as follows:
UFS with hard disk
HSFS with CD-ROM
PCFS with diskette
UDF with DVD
However, these associations are not restrictive. For example, CD-ROMs and diskettes can have
UFS file systems created on them.
The Universal Disk Format (UDFS) File System
For information about creating a UDFS file system on removable media, see How to Create a File System on Removable Media.
The UDF file system is the industry-standard format for storing information on DVD
(Digital Versatile Disc or Digital Video Disc) optical media.
The UDF file system is provided as dynamically loadable 32-bit and 64-bit modules,
with system administration utilities for creating, mounting, and checking the file system on
both SPARC and x86 platforms. The Solaris UDF file system works with supported
ATAPI and SCSI DVD drives, CD-ROM devices, and disk and diskette drives. In
addition, the Solaris UDF file system is fully compliant with the UDF 1.50
specification.
The UDF file system provides the following features:
Ability to access the industry-standard CD-ROM and DVD-ROM media when they contain a UDF file system
Flexibility in exchanging information across platforms and operating systems
A mechanism for implementing new applications rich in broadcast-quality video, high-quality sound, and interactivity using the DVD video specification based on UDF format
The following features are not included in the UDF file system:
Support for write-once media, (CD-RW), with either the sequential disk-at-once recording and incremental recording
UFS components such as quotas, ACLs, transaction logging, file system locking, and file system threads, which are not part of the UDF 1.50 specification
The UDF file system requires the following:
At least the Solaris 7 11/99 release
Supported SPARC or x86 platform
Supported CD-ROM or DVD-ROM device
The Solaris UDF file system implementation provides the following:
Network-Based File Systems
Network-based file systems can be accessed from the network. Typically, network-based file systems reside on
one system, typically a server, and are accessed by other systems across the
network.
With NFS, you can administer distributed resources (files or directories) by exporting them
from a server and mounting them on individual clients. For more information, see
The NFS Environment.
Virtual File Systems
Virtual file systems are memory-based file systems that provide access to special kernel information and
facilities. Most virtual file systems do not use file system disk space. However,
the CacheFS file system uses a file system on the disk to contain
the cache. Also, some virtual file systems, such as the temporary file system
(TMPFS), use the swap space on a disk.
CacheFS File System
The CacheFSTM file system can be used to improve the performance of remote
file systems or slow devices such as CD-ROM drives. When a file system
is cached, the data that is read from the remote file system or
CD-ROM is stored in a cache on the local system.
If you want to improve the performance and scalability of an NFS
or CD-ROM file system, you should use the CacheFS file system. The CacheFS
software is a general purpose caching mechanism for file systems that improves NFS server
performance and scalability by reducing server and network load.
Designed as a layered file system, the CacheFS software provides the ability to
cache one file system on another. In an NFS environment, CacheFS software increases
the client per server ratio, reduces server and network loads, and improves performance
for clients on slow links, such as Point-to-Point Protocol (PPP). You can also
combine a CacheFS file system with the AutoFS service to help boost performance
and scalability.
For detailed information about the CacheFS file system, see Chapter 20, Using The CacheFS File System (Tasks).
NFS Version 4 and CacheFS Compatibility Issues
If both the CacheFS client and the CacheFS server are running NFS
version 4, files are no longer cached in a front file system. All
file access is provided by the back file system. Also, since no files
are being cached in the front file system, CacheFS-specific mount options, which are
meant to affect the front file system, are ignored. CacheFS-specific mount options do
not apply to the back file system.
Note - The first time you configure your system for NFS version 4, a warning
appears on the console to indicate that caching is no longer performed.
If you want to implement your CacheFS mounts as in previous Solaris releases,
then specify NFS version 3 in your CacheFS mount commands. For example:
mount -F cachefs -o backfstype=nfs,cachedir=/local/mycache,vers=3
starbug:/docs /docs
Temporary File System
The temporary file system (TMPFS) uses local memory for file system reads and
writes. Typically, using memory for file system reads and writes is much faster
than using a UFS file system. Using TMPFS can improve system performance by
saving the cost of reading and writing temporary files to a local disk
or across the network. For example, temporary files are created when you
compile a program. The OS generates a much disk activity or network activity
while manipulating these files. Using TMPFS to hold these temporary files can significantly
speed up their creation, manipulation, and deletion.
Files in TMPFS file systems are not permanent. These files are deleted when
the file system is unmounted and when the system is shut down
or rebooted.
TMPFS is the default file system type for the /tmp directory in the
Solaris OS. You can copy or move files into or out of the
/tmp directory, just as you would in a UFS file system.
The TMPFS file system uses swap space as a temporary backing store. If
a system with a TMPFS file system does not have adequate swap
space, two problems can occur:
The TMPFS file system can run out of space, just as regular file systems do.
Because TMPFS allocates swap space to save file data (if necessary), some programs might not execute because of insufficient swap space.
For information about creating TMPFS file systems, see Chapter 18, Creating UFS, TMPFS, and LOFS File Systems (Tasks). For information
about increasing swap space, see Chapter 21, Configuring Additional Swap Space (Tasks).
The Loopback File System
The loopback file system (LOFS) lets you create a new virtual file
system so that you can access files by using an alternative path name.
For example, you can create a loopback mount of the root (/)
directory on /tmp/newroot. This loopback mounts make the entire file system hierarchy appear as
if it is duplicated under /tmp/newroot, including any file systems mounted from NFS
servers. All files will be accessible either with a path name starting from
root (/), or with a path name that starts from /tmp/newroot.
For information on how to create LOFS file systems, see Chapter 18, Creating UFS, TMPFS, and LOFS File Systems (Tasks).
Process File System
The process file system (PROCFS) resides in memory and contains a list of
active processes, by process number, in the /proc directory. Information in the /proc
directory is used by commands such as ps. Debuggers and other development tools
can also access the address space of the processes by using file system
calls.
Caution - Do not delete files in the /proc directory. The deletion of
processes from the /proc directory does not kill them. /proc files do not
use disk space, so there is no reason to delete files from this
directory.
The /proc directory does not require administration.
Additional Virtual File Systems
These additional types of virtual file systems are listed for your information. They
do not require administration.
Virtual File System |
Description |
CTFS |
CTFS (the contract file system) is the
interface for creating, controlling, and observing contracts. A contract enhances the
relationship between a process and the system resources it depends on
by providing richer error reporting and (optionally) a means of
delaying the removal of a resource. The service management facility (SMF) uses
process contracts (a type of contract) to track the processes which compose a
service, so that a failure in a part of a multi-process service can
be identified as a failure of that service. |
FIFOFS (first-in first-out) |
Named pipe files that
give processes common access to data |
FDFS (file descriptors) |
Provides explicit names for
opening files by using file descriptors |
MNTFS |
Provides read-only access to the table of
mounted file systems for the local system |
NAMEFS |
Used mostly by STREAMS for dynamic mounts
of file descriptors on top of files |
OBJFS |
The OBJFS (object) file system describes the
state of all modules currently loaded by the kernel. This file system is
used by debuggers to access information about kernel symbols without having to access
the kernel directly. |
SPECFS (special) |
Provides access to character special devices and block devices |
SWAPFS |
Used
by the kernel for swapping |
libc_hwcap
The mount output on an x86 system might include a loopback mount
of a libc_hwcap library, a hardware-optimized implementation of libc. This libc implementation is intended
to optimize the performance of 32-bit applications.
This loopback mount requires no administration and consumes no disk space.
Extended File Attributes
The UFS, NFS, and TMPFS file systems have been enhanced to include
extended file attributes. Extended file attributes enable application developers to associate specific attributes to
a file. For example, a developer of an application used to manage a
windowing system might choose to associate a display icon with a file. Extended
file attributes are logically represented as files within a hidden directory that is
associated with the target file.
You can use the runat command to add attributes and execute shell commands
in the extended attribute namespace. This namespace is a hidden attribute directory that
is associated with the specified file.
To use the runat command to add attributes to a file, you first
have to create the attributes file.
$ runat filea cp /tmp/attrdata attr.1
Then, use the runat command to list the attributes of the file.
$ runat filea ls -l
For more information, see the runat(1) man page.
Many Solaris file system commands have been modified to support file system attributes
by providing an attribute-aware option. Use this option to query, copy, or find
file attributes. For more information, see the specific man page for each file
system command.
Swap Space
The Solaris OS uses some disk slices for temporary storage rather than for
file systems. These slices are called swap slices, or swap space. Swap space is
used for virtual memory storage areas when the system does not have enough
physical memory to handle current processes.
Since many applications rely on swap space, you should know how to
plan for, monitor, and add more swap space, when needed. For an overview
about swap space and instructions for adding swap space, see Chapter 21, Configuring Additional Swap Space (Tasks).