Oracle Automatic Storage Management
Oracle Automatic Storage Management (ASM) is a method for managing your storage needs in and outside the database. Yes, ASM does not only apply to database storage but can also be used as a clustered file system for storing non-database files across nodes in your network. Heck, you don't even need a database to take advantage of ASM. One value of ASM is that if you are an Oracle licensee for other products, ASM is free of charge on your licensed machines.
ASM was originally deployed with Oracle 10g to help with the storage challenges presented when using Oracle Real Application Clusters (RAC). Not only does it help with RAC, it also improves manageability by simplifying storage provisioning. For example, you can add and remove physical storage from your database without incurring any downtime. Granted, this is nothing novel in the storage industry, but it makes a formerly expensive feature, only available on high end storage systems, available to anyone with any type of storage. You can also use ASM to automatically load balance your IO across devices. Again, IO load balancing is a feature of high end storage systems. However, with ASM, you can load your data onto a JBOD (Just a Bunch Of Disks) array and let ASM take care of mirroring, striping, and load balancing your data.
As of Oracle 11gR2, ASM is a part of the Grid Infrastructure. Therefore, you have to install the Grid Infrastructure to able to use ASM. Prior to 11gR2, ASM was delivered as part of the database software. Many improvements, however, were integrated into the software when it was moved in the Grid Infrastructure realm. For example, a tool called ASM Configuration Assistant (ASMCA) helps you set up and manage your ASM and storage.
ASM runs as an Oracle instance on the machines on which ASM storage has been provisioned. It is not the same as a database instance but does have some similarities. The differentiating parameter between starting an Oracle instance as an ASM instance versus a database instance is:
The ASM instance does not have the care and feeding required by an Oracle database instance. However, some tuning can be done depending on the number of databases and users you have accessing the storage on the ASM instance. For example, things like memory and process parameters can be adjusted. There is no native storage associated with an ASM instance; only the storage that is provisioned for cluster file systems or databases. There are no control files or redo logs either. The overhead of running an ASM instance is negligible. There are many processes that are similar to that of an Oracle database instance but they consume very little memory or CPU time.
If you are interested in learning more about setting up and managing your own ASM instance, please see the Oracle Automatic Storage Management Administrator's Guide for Oracle 12c.