For critical applications, high availability has become a requirement. A corporation must put significant thought, effort, and money into making sure that the applications that drive its business are available. Wherever a company can gain a competitive edge by judicious use of its data, that data must be available to its business processes, such as e-commerce, customer relationship management (CRM), and manufacturing processes. Critical applications whose data is especially time-sensitive (e.g., medical-records management) depend on high availability.

Storage management is an important component of high-availability solutions. In today's enterprise environment, companies will probably use a mix of software and hardware solutions to ensure the availability that business-critical applications need. IT uses hardware components to create redundancy, including clustered servers, mirrored disks, duplicate networking components, and multiple NICs and/or host bus adapters (HBAs). Hardware components must be redundant—if one fails, another must be available to take over.

Although redundant hardware configurations protect corporate data, software is the component that ensures highly available applications. Software functions that contribute to highly available data and applications range from basic file-system tools to complex policy-based knowledge-management systems. Practicality, cost, and willingness to accept risk determine which types of tools systems administrators deploy.

At one end of the software function range, file systems provide basic tools to sustain some degree of data and application availability. For example, file-system utilities (e.g., Chkdsk) let you scan all file metadata to look for inconsistencies in the file system and take action where necessary. Because such system utilities maintain some degree of data coherence, they comprise a form of storage management.

At the other end of the range, failover management software, or server-clustering software, monitors applications, restarts application components, and redirects I/O to appropriate alternate locations if one server fails to perform its functions. Clustering software synchronizes data and applications between clustered servers by mirroring data, metadata, and application-related registry entries. Good failover-management software should notify you when a failure occurs and should provide information about any changes in the state of the environment. These tools should be able to resume business processes without manual intervention. Tools that let you view and configure the environment, either locally or remotely, add to the ease with which you can resume processes and applications.

In addition, storage management tools such as Hierarchial Storage Management (HSM) software and data-replication software contribute to high application and data availability. HSM based on application-specific policies lets you move critical data to protected secondary storage while also ensuring transparent access to the data. Clustering HSM servers increases the speed with which users and applications can get to their data in the event of most types of server failures.

Software-based data replication technologies add a level of intelligence to basic hardware replication. You can manage copies of data independently and according to the needs of the application. Good replication technologies should not only replicate files but also directories, volumes, shares, and select registry keys, from one to many servers. Deploying replication software should ensure rapid recovery of the most critical servers.

Keeping data and applications highly available can be complex and extremely costly. When you design and build a 24 x 7 organization, you'll find that storage management is a key factor in high availability.