Oracle Real Application Clusters (RAC) is an option to the Oracle Database. Oracle RAC is a cluster database with a shared cache architecture that overcomes the limitations of traditional shared-nothing and shared-disk approaches to provide highly scalable and available database. This architecture is an example of what is commonly called horizontal scaling or “scale-out”. Scale-out allows multiple computers to be networked together to increases both compute capacity and the tolerance of individual system failure. This is contrasted with vertical scaling which adds compute capacity to an individual computer, but with major limitations. There are limits to how much a single computer can scale with a balanced configuration. Also, vertical scaling increases the impact of a single system failure.
One of the benefits of this approach is the ability to achieve more “elastic” application infrastructure, deal with seasonal spikes, and relieve the pressure to reduce over-provisioning of compute cycles. With the growing power of commodity X86-based servers and the Linux operating system, this scale-out has also come to be seen as a cost-effective approach to database scalability and reliability.
A similar trend is now being played out in the storage components of the database infrastructure. Scale-out storage is built on modular storage building blocks or “nodes”, each of which contains storage media, memory, networking and controller resources. The capacity, performance and throughput of a scale-out storage system grow with the number of storage nodes in the system. The more traditional approach of scale-up storage systems features a single enclosure or “frame” with front-end connectivity, internal bandwidth and storage media. The capacity, throughput and performance are limited by the constraints of the frame.
Scale-out storage is a great choice to complement an Oracle RAC implementation. The benefits include lower CAPEX because storage can start small and grow over time as needed. Unlike scale-up storage, there is no need to purchase up-front a large frame which can accommodate possible storage needs for the life of the project. In terms of OPEX, in addition to reducing hardware to manage, many newer scale-out offerings provide very strong benefits in terms of management simplification. These systems virtualize storage to abstract storage objects from the underlying storage hardware allowing the simple and quick provisioning of new storage resources without specialized knowledge of storage hardware configuration.
Many of the pure scale-up architectures have been around for a long time and have some mainframe-like characteristics from the perspective of tunability. These systems can be, and must be highly customized. Though this tuning can lead to achieving extreme performance on the high-end, it is a cause for longer lead times when adding new storage and higher cost-of-ownership. Time consuming and disruptive data migrations are a fact of life when moving to a new storage frame. A migration is required when moving to a new capacity or in the case of a periodic storage architecture refresh.
So take a look at your storage options when planning an Oracle RAC deployment. The economic and scalability advantages of scale-out storage are a good match for Linux-x86 grid-based database deployments. In a future post I’ll discuss some performance benchmarking that has been done that demonstrates the simple scalability of these types of systems.