# Automatic Storage Management

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).

## Features

* IO channels can take advantage of data striping and software mirroring
* DBAs can automate online redistribution of data, along with the addition and removal of disks/storage
* the system maintains redundant copies and provides 3rd-party RAID functionality
* Oracle supports third-party multipathing IO technologies (such as failover or load balancing to SAN access)
* the need for hot spares diminish

## Architecture overview

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.

## Implementation and usage

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 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).
In summary, ASM provides the following functionality:
* manages groups of disks, called disk groups
* manages disk redundancy within each disk group
* provides near-optimal I/O balancing without any manual tuning
* enables management of database objects without specifying mount-points or filenames
* supports large files

## Redundancy

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.
* In the case of external redundancy, ASM does not do any software mirroring, but only stripes its files across all the disks that belong to the disk group that does external redundancy.
* In the case of normal redundancy, ASM does two-way mirroring, meaning that ASM maintains two copies of the data through software mirroring. When querying for mirror information, DBAs will see two mirrors in this case.
* In the case of high redundancy, ASM does three-way mirroring, maintaining three copies of the data through software mirroring. When querying for mirror information, DBAs will see three mirrors in this case.