Understanding File System Taxonomy
When thinking about file systems, it is useful to break the group into categories. In particular, there are five broad categories of file system available in the Solaris OS.
Local file systems operate within the context of a single system image. They provide naming, data access, and attribute interpretation services to the system on which they run, and no other. Examples of local file systems are the UNIX® file system (UFS), VERITAS File System (VxFS), and storage, archiving, and migration file system (SAMFS). QFS has a number of operating modes, one of which is simply as a local file system; this mode is called QFS/local for the purposes of this discussion.
As the name implies, shared file systems provide ways of sharing data between more than one system. Examples of shared file systems are network file system (NFS), common internet file system (CIFS), the SunTM Cluster Proxy File System (PxFS), and the Shared Writer feature of QFS (QFS/SW). Most shared file systems require a supporting local file system on the file server or network attached storage (NAS) appliance.
Special file systems have peculiar properties, but store data in the traditional sense. Probably the best example of a special file system is tmpfs, which hosts files in virtual memory. CacheFS is another example of a special file system; in some senses it does not even store data, instead it acts as a relatively efficient means of accessing data in some other file system.
Media-specific file systems are associated in some way to the media on which they are typically found. The most common example is universal disk format (UDF), the file system format found on most DVDs. (It is certainly possible to use a DVD, or especially a DVD-RW/DVD+RW, to host some other type of file system on a DVD, such as UFS or PCFS.) Other media-specific file systems are ISO9660 (a CD-ROM file system format). PCFS, an implementation of the Microsoft FAT-32 file system, is technically a local file system (specially on a Windows machine), but in Solaris, it is effectively a media-specific file system associated with diskettes.
The last category is pseudo file systems. These are actually abstractions of data that are merely presented to users or administrators in file system form. Because file systems are a convenient and powerful mechanism for representing data, the Solaris OS is built on a surprising number of pseudo file systems. Probably the best known of these is procfs, which provides access to details of a running process, but devfs is an abstraction that categorizes device data in a convenient fashion, and xmemfs aggregates information about physical memory usage. There are more than a dozen others!
Although intellectually interesting and often useful for observing the way a system functions, pseudo file systems are typically not flexible; there is usually just one way to use them. In contrast, many of the other file systems can be used in a multitude of ways. Most of the remainder of this article is devoted to figuring out which file system to apply to what task, and how one might best go about applying them.