I’m going to talk a lot about disk storage and filesystems in this chapter. It is important to make sure you understand the difference between two related things: disk filesystems and Squid’s storage schemes.
Filesystems are features of particular operating systems. Almost every Unix variant has an implementation of the Unix File System (UFS). It is also sometimes known as the Berkeley Fast File System (FFS). Linux’s default filesystem is called ext2fs. Many operating systems also support newer filesystem technologies. These include names and acronyms such as advfs, xfs, and reiserfs.
Programs (such as Squid) interact with filesystems via a handful of system calls. These are functions such as
stat( ), and
unlink( ). The arguments to these system calls
are either pathnames (strings) or file descriptors (integers). Filesystem
implementation details are hidden from programs. They typically use
internal data structures such as inodes, but Squid doesn’t know about that.
Squid has a number of different storage schemes. The schemes have different
properties and techniques for organizing and accessing cache data on the
disk. Most of them use the filesystem interface system calls (e.g.,
write( ), etc.).
Squid has five different storage schemes: ufs, aufs, diskd, coss, and null. The first three use the same directory layout, and they are thus interchangeable. coss is an attempt to implement a new filesystem specifically ...