ASM is an acronym for Automatic Storage Management. ASM is the storage solution developed by Oracle for configuring and managing the storage used by Oracle databases. ASM has been available as a FREE storage solution since Jan 2004, when Oracle 10g Release 1 was released to the market. This is because the ASM technology was added to the Oracle database technology for the first time in Oracle 10g Release 1.
In the initial THREE Oracle database versions following the release of ASM, ASM was embedded in the Oracle database software. Therefore upon the installation of the database software, ASM was also available for use to configure and manage the storage used to store the files that make up the PHYSICAL element of the Oracle database. The initial THREE Oracle database versions that had the ASM embedded in the RDBMS software are as listed listed below:
- Oracle 10g Release 1 (10.1), released in January 2004
- Oracle 10g Release 2 (10.2), released in July 2005
- Oracle 11g Release 1 (11.1), released in August 2007
Starting with Oracle 11g Release 2 (11.2) which was released in September 2009, the ASM technology was removed from the RDBMS software and added to the Oracle Grid Infrastructure [GI]. GI is the Oracle Clusterware, the software that is used to build an Oracle cluster at the software layer. Consequently, in order to use ASM, the GI software must be installed, even if the Oracle database compute tier is not a cluster, and even if RAC One (Real Application Clusters One Node) option of the database is not going to be configured.
ASM provides TWO storage functions, namely:
- Volume management
- File System management
The hardware infrastructure components utilized by databases are provided or configured by system or hardware engineers, who might not have sufficient insight into the requirements of database engines. Such infrastructure components include:
- Compute [also known as the database server]
- Storage [normally a portion of an external storage from a storage appliance that is attached to the compute server via a high-speed network]
- Network [normally the network links to the storage, application or middleware server[s] and backup appliances]
The focus here is on the storage element.
At the enterprise level, storage is normally procured in the form of a centralized storage appliance, from which various compute servers are allocated some storage portions depending on the requirements of the applications hosted on those compute servers. These compute servers include database servers.
The commonest mistake [from the hardware engineers’ state-of-the-practice] is to configure RAID on the storage appliance without regard to the needs of the database: because there are some RAID configuration that are not suitable for database operations. This leads to a myriad of performance bottlenecks for database systems, because database management systems [DBMS’s] are read-and-write [I/O] intensive.
Oracle developed ASM to address those storage related issues. To indicate the extent of the database storage issues that ASM came to solve, consider the following:
- Best practice database storage configuration requires data files that store table data to be on different storage (hard disk drives or solid-state drives) from the data files that store indexes to avoid I/O contention
- The storage for data files for table data and for data files for index data ought to be attached to different storage controllers to avoid I/O contention
- The storage volumes attached to a database compute server ought to be created from multiple hard disk drives in order to increase the number of read-write heads that collectively undertake the physical I/O on the actual disk media. If sufficient storage is availed to a database compute server but the storage is curved out of just two or a few physical disks, the physical I/O mechanism easily maxes out on its I/O capacity, since I/O activities are carried out by just a few read/write heads [one read/write head per hard disk drive]
ASM was designed to provide a solution to most of the storage issues related to the above requirements. Even though it is not a silver bullet to all database storage issues, it has artificial intelligence (AI) built into it that resolves most storage issues in the background.
ASM stores data in raw blocks, which can be stored anywhere within the file systems which it [ASM] manages within the storage volume available to it. ASM then studies the I/O behaviour of the blocks in its files [mainly data files], and if a lot of blocks in a given file are experiencing very high I/Os, then ASM relocates some of those blocks to locations within the volume that are, at the physical layer, curved out of [or belong to] different disk drives. ASM can achieve this because it stripes its files across the volume, which may comprise of multiple physical drives while. As it relocates blocks within a file, ASM takes into considerations the I/O demands of the blocks within a given file, and the impact of the blocks’ I/O demands on the underlying physical media.
Blocks are the unis of I/O. Data is read from, or written to, the physical storage media in units of blocks. The capability to move blocks belonging to a given file in the background enables ASM to work in synchrony with the DBMS, to allow the DBMS to performance its I/O operations, while ASM reshuffles or relocates the blocks within the volume to avoid some disk drives having very high I/Os while others within the volume are relatively idle. This keeps the I/O activities distributed almost equally among the underlying physical storage devices. As a result, ASM enables databases to experience a higher performance than the traditional Operating System based file system storage.
ASM is a FREE-TO-USE tool, which does not require a license, so long as the database using it is licensed. The question then becomes, why do many organizations, including organizations in critical industries and sectors not make use of this storage goodie, and instead keep their DBAs and system administrators in never ending agony while they try to address database I/O performance related issues?
Many a time, the performance of a database is related to storage bottlenecks and deploying ASM could make those performance issues disappear into thin air. In case you need assistance to deploy ASM or to convert your databases from using Operating System based file system storage to ASM storage, please do not hesitate to get in touch with us.