Automatic Storage Management (ASM) is a feature provided by Oracle Corporation within the Oracle Database from release Oracle 10g (revision 1) onwards. ASM aims to simplify the management of database datafiles, control files and log files. To do so, it provides tools to manage file systems and volumes directly inside the database, allowing database administrators (DBAs) to control volumes and disks with familiar SQL statements in standard Oracle environments. Thus DBAs do not need extra skills in specific file systems or volume managers (which usually operate at the level of the operating system).
ASM creates extents out of datafiles, log-files, system files, control files and other database structures. The system then spreads these extents across all disks in a "diskgroup". One can think of a diskgroup in ASM as a Logical Volume Manager volume group — with an ASM file corresponding to a logical volume. In addition to the existing Oracle background processes, ASM introduces two new ones - OSMB and RBAL. OSMB opens and creates disks in a diskgroup. RBAL provides the functionality of moving data between disks in a diskgroup.
Automatic Storage Management (ASM) simplifies administration of Oracle-related files by allowing the administrator to reference disk groups (rather than individual disks and files) which ASM manages. ASM extends the Oracle Managed Files (OMF) functionality[1] that also includes striping and mirroring to provide balanced and secure storage. DBAs can use the ASM functionality in combination with existing raw and cooked file-systems, along with OMF and manually managed files.
An ASM instance controls the ASM functionality. It isn't a full database instance, it provides just the memory structures, and as such is very small and lightweight.
The main components of ASM are disk groups, each of which comprise several physical disks controlled as a single unit. The physical disks are known as ASM disks, while the files that reside on the disks are known as ASM files. The locations and names for the files are controlled by ASM, but user-friendly aliases and directory structures can be defined by the DBA for ease of reference.
The level of redundancy and the granularity of the striping can be controlled using templates. Oracle Corporation provides default templates for each file-type stored by ASM, but additional templates can be defined as needed.
Failure groups are defined within a disk group to support the required level of redundancy. For two-way mirroring, a disk group might contain two failure groups, in which case individual files are written to two locations.
Oracle ASM Dynamic Volume Manager provides the foundation for the ASM Cluster File System (ACFS).[2]
In summary, ASM provides the following functionality:
One can configure ASM diskgroups to have no redundancy (external), two-way mirroring (normal), or three-way mirroring (high). In the case of normal and high mirrors, good practice suggests having fail groups that talk to different controllers for performance and fail-safe reasons.