This chapter provides an introduction to programming considerations for the Logical Volume Manager (LVM), which consists of the library of LVM subroutines and the logical volume device driver.
The Logical Volume Manager (LVM) consists of two main components.
The first is the library of LVM subroutines. These subroutines define volume groups and maintain the logical and physical volumes of volume groups. They are used by the system management commands to perform system management tasks for the logical and physical volumes of a system. The programming interface for the library of LVM subroutines is available to anyone who wishes to provide alternatives or to expand the function of the system management commands for logical volumes.
The other main component of LVM is the logical volume device driver. The logical volume device driver is a pseudo-device driver that processes all logical I/O. It exists as a layer between the file system and the disk device drivers. The logical volume device driver converts a logical address to a physical address, handles mirroring and bad-block relocation, and then sends the I/O request to the specific disk device driver. Interfaces to the logical volume device driver are provided by the open, close, read, write, and ioctl subroutines.
A description of the readx and writex extension parameters and those ioctl operations specific to the logical volume device driver is found in Understanding the Logical Volume Device Driver in AIX 5L Version 5.2 Kernel Extensions and Device Support Programming Concepts.
See the Logical Volume Storage Overview in AIX 5L Version 5.2 System Management Guide: Operating System and Devices for more information on logical volumes.