image
Design
In this chapter, you will learn how to
• Identify the components of a storage architecture
• Implement redundant storage components for high availability
• Explain the functions and types of storage replication
image
Storage architecture is the description of a storage system’s parts and functions and how they are combined to achieve the storage goal. I have saved this topic until now so that the concepts leading into the architecture could be discussed first, but designing a storage architecture is the first step before implementing a storage system.
Storage Architecture Components
Storage architecture has to do with the way a storage system is designed. The architecture defines how components such as hosts and storage systems will communicate, whether that communication will be over optical or copper cables, and whether the storage provided will be locally attached or via a storage network. The storage architecture must take into account the required space and speed necessary to support the applications that will reside on it. Various principles may guide how the system is designed. Let’s compare the construction of a building to the implementation of a network. If you were going to design a building, you would have to ask certain questions first:
• Is this building commercial or residential?
• How many people will live/work in this building?
• What is the budget for this building?
Similarly, when designing a storage solution, you must consider whether the storage will be file based, as in a network attached storage (NAS) solution; block based, as in storage resources mapped as logical units to end machines; or a solution that uses both.
Just like a building would be sized for the number of people, a storage solution needs to be adequate for the number of nodes that will connect to it and the number of users it will serve.
Budget is always a concern, and any solution that will actually be implemented must be within the budget. The budget often determines what is most important to implement.
image
imageNOTE  Storage vendors will usually give you the best pricing when purchasing a system. Additional components such as more disk shelves and disk drives usually cost much more later than they do when first purchasing. If possible, obtain quotes for such components when purchasing the initial system and make sure the quotes are valid over the period during which you plan to own the equipment.
Availability is another component that needs to be considered. How much can the organization tolerate an outage of the storage system? Can certain systems tolerate more downtime than others? Availability is increased by minimizing single points of failure through redundancy. Sometimes more than a single point of failure is protected against with redundancy. For example, a critical system may be clustered to protect against the failure of more than one node.
Types of Storage Architecture
When designing a storage solution, you must consider whether the storage will be file based as in a NAS system, block based with storage resources mapped as logical units to end machines, or a solution that uses both. For example, if you, as the storage administrator, are setting up a new database cluster that requires access to shared disks, a block-level architecture would be required because database systems require disks that function like local disks because of the high number of transactions that are performed. A file-level architecture would result in too much overhead for each transaction because of the protocols used to establish and manage communication to a share. However, if you are setting up a series of network shares for Windows and Linux servers and workstations, you would use a file-level architecture with the Network File System (NFS) and Common Internet File System (CIFS) protocols. Many situations require both systems to be implemented. Some storage systems support both block and file architecture, whereas other implementations may require separate systems to manage different types of access.
Imagine the situation mentioned earlier with the clustered database server, but now the requirement is to implement a document management application that will be used 24/7, requiring high availability. A clustered database would be used for the back end of the system, while application servers would point to a series of shared folders for accessing the documents. A hybrid block/file architecture would be well suited here because the files could be hosted on a file server that allowed concurrent access to all the servers in the application farm, but the database servers would need a block-level architecture to support the transactions on the disks.
The choice of architecture will shape some decisions made later. For example, backing up a block-level architecture would be achieved by executing backup jobs through the hosts that access the storage or by utilizing storage functions to make a copy of the logical units presented to hosts. However, a file-level architecture may retrieve data for backups over the network just as other hosts would interact with the network share. Furthermore, backups of a file-level architecture can take place concurrently with user access, with the possibility of the backups impacting performance.
Block-Level Architecture
Systems utilizing a block-level architecture present data to hosts like local storage would appear to them so that they can interact with it in the same way. Block-level disk access is used by disk drivers such as Small Computer System Interface (SCSI). Block-level architectures require few operations to access the disk as compared with file-level architecture implemented in protocols such as File Transfer Protocol (FTP) or Common Internet File System/Server Message Block (SMB). This makes the block-level architecture very efficient. Chapter 5’s discussion of block and file virtualization illustrates in more detail how storage systems accomplish this.
Block-level storage architecture is more flexible and versatile when compared with file-level architecture. The basic functionality of block-level storage is as follows: The storage space on the server is distributed in the form of raw volumes, which are then virtually converted to individual hard disks. Once this is done, the file system or virtual machine can use the volumes and mount them to execute applications, host files, or house database systems. Since the block-level architecture presents just a logical volume to a host, the host can utilize whatever file system is best for the host and applications that reside on it.
The block-level architecture provides a translation layer in the storage area network (SAN) between the hosts and the storage arrays. Multiple distributed physical disks can be mapped to a single logical volume or interface with block virtualization. Hosts reference locations in storage by blocks using logical block addressing (LBA). LBA, introduced in Chapter 1, is a way of referencing a location on a disk without a device having knowledge of the physical disk geometry. LBA provides a system with the number of blocks contained on the drive, while the system keeps track of the data contained on each block. It requests the data by block number, and the drive then maps the block to a cylinder, head, and sector (CHS) location on physical disks in the storage array. The data at this location is then retrieved and sent back to the host.
File-Level Architecture
Systems utilizing a file-level architecture present data to hosts as shares on a network. Network shares residing on different servers increase fragmentation and underutilization of storage capacity because each server is logically and physically independent. Systems utilizing a file-level architecture implement protocols such as File Transfer Protocol or Common Internet File System/Server Message Block to share data with other machines.
High Availability
High availability describes a system with little downtime. This is achieved through redundant components and systems, the ability to detect component failures, and the ability to switch between redundant components effectively. When designing a system, it is important to understand how available the system must be. This will determine how much redundancy is needed in the solution.
Redundant components are discussed in the next section, but systems can also be redundant. Redundant systems include clusters and replicated systems. High availability with replicated systems is discussed in the “Replication” section.
Failover
Failover is the transfer of services from one component to another in a redundant system. In failover, the functions of a system component—be it processor, server, network, or database—are assumed by another system’s components when the primary component becomes unavailable. Unavailability can be the result of a failure or scheduled downtime. A system capable of failover is used to make systems more fault tolerant. An example of hardware failover is the transfer of power distribution from one power supply to another.
Service Level Agreement
A service level agreement (SLA) for a technology service is part of a contract that defines the required availability of the system in terms of a percentage, such as 99 percent uptime. SLA numbers are sometimes referred to by the number of nines in the percentage, referred to also as the class of nines, with Class 1 being one nine. Three nines is 99.9 percent, while five nines is 99.999 percent. Table 9-1 shows how many minutes of downtime are allowed per month and per year for each nine.
image
Table 9-1  Downtime Allotted per Class of Nine
SLAs will typically assign fees or credits due to the customer if the SLA percentage is not met. Depending on the agreement, these fees may be a single fee for breach of contract or a set of fees that increase based on the amount of downtime over what is allowed per month or year in the agreement.
Internet access or WAN access is critical for businesses today, and storage administrators should be familiar with the SLAs governing their Internet connections and WAN links so that they know how much downtime to expect and can plan accordingly.
Storage administrators may also be required to meet SLAs for other companies or for internal operations. Storage administrators should be aware of which SLAs govern their systems and track metrics to ensure that they are meeting SLAs. Some methods for meeting SLAs are providing redundant components to systems that require high availability. Also, it is important to implement a change management program. A change management program requires that changes be documented and approved before they are implemented. This ensures that the required amount of consideration is given to changes prior to implementation and that those changes are documented in case something goes wrong. Often, the first question to ask when there is a problem is, what has changed? A change management system can effectively display that information to aid in troubleshooting.
Single Point of Failure
A single point of failure is a result of malfunction of a single configuration, network, hardware, or software causing the entire system or process to fail. Consider an environment where there is one server in which more than one application runs. A fault in the server would result in the server crashing, which would result in all the applications running on the server to be stopped. This could potentially result in data loss and corruption of data, and most certainly will result in downtime for the application. The solution to a single point of failure is redundancy. When architecting a solution, consider what would happen if any single component in the system failed. If this component will result in the application being unavailable, consider implementing redundancy to protect against this.
Online Transaction Processing
Online transaction processing (OLTP) refers to a system that provides immediate response and high availability. OLTP systems often require high throughput and consistency between systems. Critical systems such as automated teller machines (ATMs), line-of-business applications such as banking terminals, order kiosks, airline ticketing stations, enterprise resource planning (ERP) applications, and online sales systems are examples of OLTP.
Some components of an OLTP solution include a database, management portals, business intelligence systems, reporting functionality, scheduling, analysis, web services, searching, document management, and workflow.
Some examples of OLTP systems include the following:
• Financial planning
• Product planning
• Manufacturing
• Service delivery
• Marketing and sales
• Inventory management
• Product development
• Shipping and logistics
• Accounts receivable and payable
Cloud Services
Cloud services are remote technology resources made available for organizational use but are managed and maintained by a third party. Cloud services offer flexibility because an organization needs to pay only for the resources it uses, but it can have access to high-quality, high-value resources that the organization may not be able to procure on its own. Cloud services are typically used to provide high availability, and these services come with an SLA to guarantee a minimum level of availability. Cloud servers also offer fast provisioning. Even with an existing storage system, storage administrators must add to it by ordering disks and placing them into shelves and possibly ordering shelves too. Some business ventures cannot wait for a product to be ordered. With the cloud, additional resources can be allocated as soon as a contract is initiated. Cloud services are provided on a subscription basis with monthly fees based on how much of the cloud services are utilized.
Cloud services can be classified based on the amount of services provided. If you think of an application as the highest-level service, then you can work backward to understand the elements that support an application. These would be a database, the operating system the database resides on, the computing resources running the operating system, the storage resources holding the data, and the networking resources connecting it all together. This is pictured in Figure 9-1. The application is a tool that is used by end users, such as a program for composing documents, editing pictures, or storing data. Most applications utilize a database to organize the information that they work with. Some systems may not require a database, and in these cases, the database layer does not exist. The operating system is the software that interfaces with the Basic Input/Output System (BIOS) and computing hardware. Computing is a computer, laptop, cell phone, terminal, or other device that allows the user to provide input or display output. Storage is used to retain data such as documents, movies, music, application files, and other data that users work with. Lastly, networking connects computing equipment so that different equipment can communicate.
image
image
Figure 9-1  Cloud services
Software as a Service
Cloud services that provide an entire application to a company are known as Software as a Service (SaaS). SaaS applications can be accessed via a web browser such as web e-mail, instant messaging, and social networking or via a virtual interface where the application appears to run on a local machine but is actually running remotely. Many SaaS solutions require no client software installation other than a web browser, and they can run entirely within a web browser. Other SaaS applications may require virtual client software or other local components to be installed. SaaS can be deployed quickly since little or no local software is required, and they can be updated when the application changes with similar ease.
Some examples of cloud services include Office 365, Google Docs, Google Voice, Salesforce.com, and Dropbox. Some cloud services are free or ad supported, but many are subscription services with regular fees to continue access to the software.
Security is a concern with SaaS since the application and its data are hosted on the cloud provider’s servers; another concern is performance, which is constrained by the client’s Internet connection. Some users of cloud services may automatically be presented with the latest version of software, requiring users to learn the new software. Some SaaS solutions allow for data exports or for data to be stored locally. For example, Office 365 and Google Docs allow for documents to be saved either in the cloud or to a local machine, whereas Dropbox stores files on each machine that has the Dropbox software installed on it and also in the cloud. This provides users with fast access to files and allows for access even if the SaaS solution is unavailable.
Platform as a Service
Cloud services that provide an operating system and database for the user to install an application on are referred to as Platform as a Service (PaaS). PaaS is pictured in Figure 9-2. PaaS allows a customer to install an application, but prerequisite applications may or may not be installed on the PaaS solution. These prerequisites such as .NET, Java, PHP, or application-specific libraries may require support from the cloud provider to configure. For example, GoDaddy and other web hosting services are PaaS. They provide the operating system, database, computing, storage, and networking to allow a site to function, but customers can put their own content on the web site.
image
image
Figure 9-2  Platform as a Service (PaaS)
Infrastructure as a Service
Infrastructure as a Service (IaaS) is a cloud service that provides customers with computing resources and the underlying storage and networking so that they can run their own operating system, database, and applications on it. IaaS is pictured in Figure 9-3. For example, Amazon Cloud and Windows Azure provide servers in their clouds that you can install software on as you see fit.
image
image
Figure 9-3  Infrastructure as a Service (IaaS)
Storage as a Service
Storage as a Service (StaaS) provides customers with the storage and networking to host data for their applications. Such systems are especially popular as archiving or backup solutions. StaaS is pictured in Figure 9-4.
image
image
Figure 9-4  Storage as a Service (StaaS)
Redundancy
Various storage components are available that would satisfy the requirements of providing high availability and therefore prevent a single point of failure. Most of these storage components are often referred to as redundant storage components because they provide more than would be absolutely necessary to provide the service with protection in case a component fails.
Clustering
A cluster is a group of two or more systems that operate under a single namespace and addressing scheme to service requests. The goal of clustering is to place fault tolerance on the applications and services that run on the systems. Applications on clustered systems can run on any node in the cluster. Cluster nodes can take over a crashed application from a failed node when failures occur. In the absence of clustering, the application becomes unavailable for users when the server crashes. This condition will prevail until the server is restored to working condition. The process of moving services from one node to another in a clustered system is known as failover, and it can occur automatically or manually.
With automatic failover, crashed applications can be resumed, or failed over, from the primary node to a secondary node in the cluster. Hence, high-availability clusters are used with critical databases, e-mail systems, mission-critical business applications, and even some file shares.
Administrators can also transfer services to another node in a cluster, freeing up a node when updates are required in a process known as manual failover. Automatic failover is triggered by an event, most often a failure of some component in the system. Manual failover is a user-initiated failover usually issued to perform system maintenance.
Failover Clustering
Failover clustering is the combination of multiple redundant nodes or servers to enable the transfer of services from one node to another within the redundant system, known as a cluster. One example of this would be a transfer of a service or application hosted on the cluster to another node in a cluster. Clustering is the use of two or more devices together to provide load balancing and failover services. For example, a clustered e-mail server would allow for users to continue accessing their mailboxes, send and receive e-mail, and perform other messaging tasks even if a node in the cluster was offline. Resources such as mailbox stores and services that communicate with other mail servers using Simple Mail Transport Protocol (SMTP) would be moved from one node in the cluster to another if that node failed, with minimal or no impact to the users of the system.
In failover, the functions of a system component—be it processor, server, network, or database—are assumed by another system component when the primary component becomes unavailable. Unavailability can be the result of failed hardware, failed software, or scheduled downtime. A system capable of failover is used to make systems more fault tolerant by having multiple nodes in the cluster that can handle the workload.
Active-Active
Active-active is a phrase used to describe two or more independent processing nodes or systems that operate as a single unit. Both nodes can service requests at the same time, and the load is spread between them. Active-active is also referred to as dual active. Each of the nodes in this network has access to the same or identical resources, such as disks, which gives each node the access and usage of a single application. Requests in an active-active system are balanced across available processing capacity. If one of the nodes fails, another node in the active-active cluster will take over all processing. However, performance may suffer while a node in the cluster is in a failed state.
Active-Passive
An active-passive network configuration provides a fully redundant instance of a node. The secondary node is brought online only when its primary node fails. This type of configuration usually requires more hardware than active-active clusters, but performance does not suffer when a node fails. More hardware is required because each node in the cluster must be capable of servicing all requests at full performance. Similar to active/active, each of the nodes in the active/passive cluster has access to the same or identical resources, such as disks.
Power Supply
All computer systems run off power of some sort. Without power, these systems cannot continue functioning. Multiple power supplies guard against the failure of a single power supply.
image
imageEXAM TIP  A redundant power supply should be configured so that each is equipped with necessary wattage for the device.
Having dual power supplies alone will not protect against all power failures. Ensure that redundancy is put in place along the entire chain from device to power supplier. This would include separate power distribution units (PDUs) for each power supply, and each of these PDUs would go into a separate circuit. If these circuits are protected by an uninterruptable power supply (UPS), one UPS should be allocated to the primary power, called A power, and another to the secondary power, called B power.
Controller
Dual controller storage arrays are standard in enterprise storage arrays where most components are configured in a redundant fashion. Dual controller units are equipped with two identical controller heads that are each capable of operating the entire storage array. Disk enclosures must have at least one back-end connection to each controller in a dual controller unit, and each front-end path to a host or switch needs to be cabled to both controllers so that if one controller fails, the other controller can connect to all the back-end disks and front-end devices. Dual controller units are a bit more complex in design than single controller units because the controllers must be kept in sync so that one can take over the other’s operations in the case of a controller failure.
image
imageEXAM TIP  Twice as many cables and ports are required to implement a dual controller unit, and this increases the cost.
Dual controllers can be configured as active/passive or active/active. Active/passive configurations route all input/output (I/O) through a single controller, while the second controller simply stays aware of all I/O. If the active controller fails, the passive controller becomes active and assumes all the duties that were being performed on the failed controller. Active/passive solutions result in consistent performance even when a single controller has failed, but the maximum performance of the unit is equivalent to that of a single controller unit.
Active/active controllers distribute the I/O between both controllers to achieve higher performance. Both controllers stay aware of their counterpart’s operations and will assume those operations if the other device fails. Controller failure does result in a loss of performance while the storage array is operating on a single controller. Keeping the two controllers in sync while both are performing work requires more complexity, leading to a higher cost for active/active controllers.
Redundant Paths to Disks
Redundant paths to disks are used to achieve high availability within a storage system or between local devices and remote disks. When one path to a disk or disk shelf becomes unavailable, I/O can be directed to another available path. Redundant paths to disks can exist between the host and a storage system. When using dual-domain and dual-path architectures, redundant pathways are created from servers to storage. The redundant paths created by these configurations are meant to reduce or eliminate single points of failure within the storage network, as shown in Figure 9-5.
image
image
Figure 9-5  Dual-domain and dual-path redundancy
The techniques for creating redundant paths to remote disks are discussed in the “Path/Bus” section. This section is concerned with redundant paths internal to storage. Disk shelves in a storage system are connected to storage controllers using an interface such as Fibre Channel (FC) or Serial Attached SCSI (SAS) using the back-end ports on the storage controller(s). Some arrays may be configured with a single path to each disk shelf. This is most common with storage systems that have only a single controller. However, this presents a single point of failure for the system. If that link fails, access to the disks in that shelf will be terminated, which will most likely result in a loss of availability to storage resources contained on those disks, as shown in Figure 9-6.
image
image
Figure 9-6  Single path
Given the criticality of the data hosted on many storage systems, often storage systems are configured with redundant pathways to redundant controllers. Each shelf would have two connections, one to the back-end port on controller A and another to the back-end port on controller B, as shown in Figure 9-7.
image
image
Figure 9-7  Redundant paths
Hot Spare
Hot spares are disks that remain idle in a storage system until a disk fails. At this point, the hot spare is added into the failed array as a new disk so that rebuilding operations can begin immediately. As discussed in Chapter 1, Redundant Array of Independent Disks (RAID) 1 and RAID 5 can support the loss of a single drive without the loss of data. If, however, a second drive fails before the first failed drive can be replaced, data loss will occur. Hot spares minimize this period of vulnerability by allowing the rebuild to start immediately. Hot spares must be of the same type, so if SATA and SAS disks exist in the array, a hot spare would be needed for both. Also, hot spares must be of equal or greater size than the failed disk, so if an array consists of 1TB and 2TB drives, the hot spare would need to be at least 2TB to cover a failure of either disk size.
image
imageEXAM TIP  Be sure that each drive type is covered by a hot spare.
Multipath I/O
Multipath I/O (MPIO) is a framework that is designed to mitigate the effects of a device such as a host bus adapter (HBA) failure by providing an alternative data path between storage devices and a Windows operating system. MPIO allows up to 32 alternative paths to add redundancy and load balancing for storage environments, and it is built into many common systems today such as Microsoft Windows; storage systems from EMC, IBM, or Hitachi; and Linux, Solaris, BSD, Mac OS, and VMS. MPIO needs at least two network devices or two ports connected from host to the storage device. MPIO can provide load balancing and link failover services.
Load Balancing
Load balancing is the aggregation of traffic over multiple connections. Load balancing improves performance and resource utilization by dividing the traffic over two or more ports. Load balancing often requires software to be installed on the host or storage device to configure the load-balanced ports, but some systems come with load balancing built into the operating system.
Link Failover
Link failover is the transfer of network services from one network interface card (NIC), HBA, or converged network adapter (CNA) to another. Network functions can be assumed by another network device when the primary component becomes unavailable.
Hot-Swap
Various parts of the storage array are hot-swappable, meaning that the component can be removed without powering off the device. This allows for failed components to be replaced without impacting the functionality of the device or service. Such devices include power supplies, interface cards, hard disks, controllers, and fan units. The process for replacing a failed component that is hot-swappable is as simple as removing the failed component and then inserting the new component. Systems that are hot-swappable will detect the loss of the redundant component and run all operations on the other component and then configure the new component when it is added. Some manual configuration may be required when replacing components depending on the device replaced and the manufacturer of the hardware.
Path/Bus
Buses and paths in a network are the transmission path that is used by the signals to transmit data to the devices present in the line. The devices across the line that are addressed by the bus will receive the signals, while others may discard them if the data is not addressed to them since buses are shared mediums. Buses may be of various capacities, and the size of a bus is called its width.
A path is the connection between one or more devices in a network. Paths can be redundant by configuring multiple cables and interface devices at each point along the network. Redundant paths are known as multipath, but nonredundant paths are known as single path.
Multipath
Multipath connections have more than one path from source to destination. A multipath server would have two connections to a storage device. These connections would need to go through different systems to prevent a failure of one system along the path from disrupting communications for both paths. This requires at least two switches and two connections at the destination storage device, as depicted in Figure 9-8.
image
image
Figure 9-8  Redundant paths from server to storage array
Single Path
Single-path systems have only one path of communication between devices. Single-path systems suffer from a single point of failure because the loss of a single port, cable, or switch will make the device inaccessible.
Switch
Switches can be configured in redundant pairs with more than one switch performing the same function. Switches can also be equipped with redundant components and hot-swappable components to increase their availability. Switch power supplies, Ethernet modules, Small Form-factor Pluggable (SFP), and Gigabit Interface Converters (GBICs) can be redundant and/or hot-swapped on certain switch models. This also applies to other network devices such as routers, firewalls, and directors, as mentioned in Chapter 4.
HBA
Host bus adapters are hardware devices that are essential in storage area networks in providing interconnection between a host or storage device and the storage network. Redundant HBAs provide protection in case one HBA fails. Multipath software will need to be loaded on the host or storage device in order to fail over traffic to another port if a port fails. Some software can also balance the load between both HBAs.
NIC
Network interface cards are important hardware devices that connect computers with their networks. Earlier they were connected with the system using expansion cards, but of late, motherboards come with NICs built on them. NICs provide necessary circuitry and hardware support for connecting the system with the network. It is essential to provide redundancy because one failure in a NIC may present a communication failure over the network. Similarly to HBAs, NICs will need to be combined into a single logical network interface so that automatic failover and/or load balancing can be configured. This is sometimes referred to as teaming the NICs.
Link Aggregation
Link aggregation is the use of multiple parallel network connections in order to increase throughput beyond the limit that one link can achieve. Link aggregation is especially useful for increasing bandwidth between switches on a network because these are common congestion points, but it can be used for NICs, HBAs, and CNAs as well.
Array
Redundant arrays can provide fault tolerance for an entire array. Redundant arrays are most often seen in remote replication sites and cold sites. Remote replication sites are those that are located in another office or data center physically separate from the primary location. Software and a communication link between the two sites are used to replicate data between the two arrays to keep the data consistent. If the array at one site fails, the other can pick up the load. Redundant arrays can also be used at the same site to provide local fault tolerance, but this is much less common than remote replication.
Cache Redundancy
Cache battery backup is used to protect against power loss to the cache. The cache battery may be used to store data until power is restored, or it could be used to write the cache data out to a disk called a vault disk. In this case, when the storage array is powered on again, the data is written from the vault disk to cache again. This is simpler than flushing the data out to various disks because only one disk or disk set needs to be powered up, and the controller can write the data out sequentially to the disk or disks quickly.
Cache Battery Backup
Cache is high-speed memory that can be used to service I/O requests faster than accessing a disk. Controller head cache is used for storing data that is waiting to be sent over the interface in response to a read request or for storing data that is waiting to be written, or flushed, to the disks in response to a write request. Data may also remain in cache when the controller head considers it likely that the data will be requested for further read or write operations.
As you can see, the data in cache is important to the reliability of the storage system. Storage arrays make use of a battery-backed cache to prevent loss of data in the case of a power failure to the array. A battery-backed cache can keep unwritten data alive in case of power failure so that the data can be written to the disk once power has been restored.
Cache Mirroring
Cache mirroring stores identical pages in independent memory. If one memory location is lost, the other will be used to service requests. Cache is usually mirrored on redundant controllers. A mirrored cache must be kept in a consistent state called cache coherency.
A cache-mirroring mechanism is applied to a storage device to make sure that data is protected from loss or damage because of the loss of a controller. Mirroring writes the same data to all controllers in an array so that each is fully aware of operations and is ready to assume the duties of another controller.
Replication
Storage replication is the process in which the stored data is copied from one storage array to another. Replication can occur locally over a SAN or local area network (LAN) or to remote locations over a wide area network (WAN). This will improve the reliability of the system along with providing fault tolerance and easy accessibility. Users in remote locations can also access data that is replicated to a remote location, thus increasing their performance.
Replication allows for information, resources, software, and hardware to be shared so that they are available to more than one system. The significant benefits of replication include improving reliability and fault tolerance of the system and performance for users at replica sites. While data replication refers to storing the same data on multiple systems, computation replication refers to sharing computing tasks among systems.
image
imageEXAM TIP  The Storage+ exam is concerned with data replication rather than computation replication. For the exam, remember that answers for replication questions will not include such items as distributed computing or processor replication.
Replication can be classified as active replication or passive replication. Active replication allows for client requests to be serviced by any storage system in the replication. This is especially useful when users are distributed but they require performance similar to a local storage array. Replica storage arrays can be placed at each location, and these replicas service client requests.
Passive replication is used for fault tolerance and business continuity. In passive replication, only one storage system responds to requests unless that system goes offline. If the primary system goes offline, a priority is given to other systems, and the next one in the line picks up the connection.
Replication can be managed directly by the storage array and its replication partner, or it can be managed by a host. Management that occurs on the SAN network is termed in-band replication management, and management that occurs outside of the SAN network is out-of-band replication management.
Replication is different from the backup scenarios discussed in Chapter 7 in that replicated systems or applications can be immediately utilized, while backups must be restored before they can be utilized.
Point-in-Time Replication
Replication can occur at differing intervals. A point-in-time (PIT) replica is one that is identical to the source as of a specific date and time, whereas continuous replication keeps the source and the destination synchronized at specified intervals. PIT replicas may track changes between the PIT replica and the source so that synchronization can take place at a later time, or changes may not be tracked if the PIT replica is being stored for archival purposes, historical querying, or litigation holds.
A common method for tracking changes is to use a bitmap. Bitmaps associate each block on the source volume to a bit within the bitmap. If the bit is set to 0, no changes have been made since the PIT was taken. When changes are made to blocks in the source volume, their corresponding bits in the bitmap are changed from 0 to 1. If the PIT needs to be synced later, a logical OR operation between the PIT and the bitmap will indicate which blocks need to be replicated to make the PIT consistent with the source volume.
The logical OR operation compares two bit strings to produce another equal string of bits. Each bit in both strings is compared. If a 1 exists in either bit, the resulting OR operation for that bit is a 1 as well. If, however, both bits are 0, the OR operation for that bit is a 0. For example, if a logical OR operation is performed on the bit strings 0010 and 0111, the end result would be 0111. The OR operation compares the first bit from both strings and produces a 0 because both are 0. The second bit is a 1 because there is a 1 in the second place of the second bit string. The third bit is also a 1 because there is a 1 in both bit strings. The last is a 1 because there is a 1 in the second bit string.
Continuous Replication
A continuous replica is synchronized with the source at regular repeating intervals. Synchronous replication and asynchronous replication are both examples of continuous replication. Synchronous replication will wait for transactions to be committed at both the source and destination sites before proceeding, while asynchronous replication will push updates to the destination site while still processing new transactions. Asynchronous replication tolerates some level of inconsistency between the source and destination to achieve better performance for write operations, but synchronous replication provides the best reliability.
Synchronous
Synchronous replication does not finalize transactions or commit data until it has been written to both source and destination. The major advantage of synchronous replication is that it ensures all the data remains consistent in both sites. On the other hand, this type of replication is quite expensive, and it also slows down the speed of the primary system. The maximum distance covered by this type is 300km because of link latency. Hence, this type of data replication is used in high-end applications that cannot tolerate any data loss.
Synchronous replication will either write data in both primary and secondary data drives or does not save it at all. Any failure in either the remote system or the connection stops the write operation in both the devices immediately. This is the reason for the zero-loss guarantee provided by this type of replication. Both the local and remote systems should provide acknowledgment that they have received the data, and only then does the write complete. This is also the reason for the reduction in the performance of the system because most of the tasks wait for the write operation to complete before performing other operations. Similarly, write operations start only when they receive confirmation that the destination is ready for writing the file.
Asynchronous
In asynchronous replication, the data is written in the primary system first, followed by the secondary system. Acknowledgment of the write is provided to applications or the operating system, and further changes can be made without requiring confirmation that the data has been written to the replica. This is in contrast with synchronous replication because the write operation is considered complete as and when information is written to both devices. Even though asynchronous increases the performance of the system when compared to synchronous replication, the prevention of data loss is not guaranteed because some data could be committed to the source but not yet replicated to the destination replica. Noncommitted data is stored in a buffer until it can be sent to the replica.
It is important to monitor the size of the buffer in asynchronous replication. If bandwidth between replica sets is overutilized, the buffer could grow large, and data could become significantly inconsistent. Business requirements should dictate the maximum tolerance for inconsistency between replicas.
image
imageEXAM TIP  Understand how buffer size impacts consistency in asynchronous replication.
image
imageNOTE  Some enterprises use a combination of synchronous and asynchronous replication. Systems are often deployed using synchronous replication to another array at the same site, and then this array is replicated asynchronously to a remote site. This provides faster recovery and failover if a single array fails at the site than if asynchronous replication were used alone, while still providing recoverability if the entire site fails.
Scope
Replication can be performed with systems being connected both locally and remotely. Local replication is replication that occurs within the same data center or storage array, whereas remote replication is replication that occurs to another site. Some forms of replication can be used for both local and remote, such as logical volume manager (LVM) and continuous data protection (CDP).
LVM replication replicates identical volume groups and can be used for both local and remote replication. LVM requires volumes to be created at the source and destination storage arrays that have the same size. The two volumes must be synchronized initially, either through a backup and restore or by copying the data through the replication link. Once initial synchronization has taken place, a synchronization schedule, either synchronous or asynchronous, can be put in place to keep the data current between both sites. LVM maps each block for the virtual volume group to a physical volume group on the source and destination systems, and writes are issued to both systems as a mirror. The primary advantages of LVM replication are that it is supported on arrays from multiple vendors and that support for LVM replication is built into many systems. However, LVM can utilize a noticeable amount of processor resources and can slow down applications on host systems, if implemented on the host, or storage response time, if implemented on the storage device.
CDP replication can be used for both local and remote replication. In local replication, CDP is primarily used for business continuity because it provides a way to retrieve data from a point in time. CDP replication uses change tracking through a journal volume so that changes can be reapplied or rolled back from a PIT image. Writes to the volume are also sent to the journal volume for tracking. Changes are recorded in the journal along with the time stamp for when they were made to the production volume. The length of time that CDP data can be recovered is limited only by the amount of space available for the journal volume.
Local
Local replication is replication that occurs between devices at the same site. Local replication methods include LVM and CDP, mentioned previously; local replication is reliable because of the presence of many high-bandwidth links on the local network. Local replication is usually less complex because third parties that manage a WAN and the devices that interconnect remote sites are not part of the local replication solution.
Remote
Remote replication is replication that occurs to another site. The primary difference between local and remote replication is that remote replication must take into account additional latency from the link between the source and destination and lower bandwidth than is available on the local network. In addition to LVM and CDP replication, remote replication can occur via log shipping, disk-buffered replication, or storage array remote replication.
Log shipping replicates data by tracking changes in log files on the source machine. These log files are transmitted from the source to the destination replica when the log file is full, and the replica updates its data based on the changes recorded in the log. Replication intervals can be set by configuring the maximum size for the log file. Smaller log files will result in more frequent replication. Log shipping can be used over low-bandwidth links and is supported on many platforms. Log shipping is especially popular for database management systems (DBMSs).
Disk-buffered replication creates a PIT replica of the data and then transmits it to the remote site. Once the transmission completes, the process begins again, so the system is in either a PIT replica state or a transmission state. Both processes may take a significant amount of time depending on the activity load of the replicated system. For example, a large database is stored on an array and replicated to a remote array using disk-buffered replication. The PIT replica takes an average of 15 minutes to create and then 45 minutes to transfer, so replicas are sent approximately once per hour. When the replica is fully applied at the remote site, 45 minutes of updates have taken place on the primary site, so there is a significant difference between the two sites in this example. Disk-buffered replication is well suited to low-bandwidth links where the RPO is specified in hours.
image
imageEXAM TIP  Local replication occurs between devices at the same site, while remote replication occurs between devices at different sites.
Site Redundancy
Site redundancy is the technique by which a complete duplicate of computers and data present in the computers at one main location is replicated at a different business location. Both the main site and the remotely located site are connected all the time so as to provide duplication of data as and when it is created. Hence, the failover takes place quite instantly, thereby ensuring users never experience the failure of the main system. It is important for all businesses to set up site redundancy so as to prevent their businesses from crashing for at least a short amount of time. Another advantage of site redundancy is that software upgrades to the systems can be performed without disturbing any users using the system. It can also help in providing network services to users from various geographic locations. There are certain requirements for the implementation of site redundancy, and it depends on the nature of the business and the data associated with it.
Storage network architecture is one of the important areas of research for people in the world of information technology because more and more data is created every second. It is important to employ effective techniques at all levels of the organization to reap the complete benefits. Hence, it is important to understand all the terms and techniques. All of the mentioned hardware and software practices are being used all over the world. Leading manufacturers bring out new technologies now and then, making it possible for users to work safely and effectively. The only problems for users would be finding suitable products for their business needs. Once the analysis for effective products is done, the organizations can work on implementing the same for their business.
Consistency
Replication consistency is achieved through consistency groups. These groups are used for maintaining data integrity and uniformity across multiple volumes, or even sites, usually comprising an entire system such as the application, middleware, and back end. The consistency group ensures that a set of writes in it retains the same data, and writes that occur to one member of the group will not be fully committed until they have been implemented across all members of the consistency group. This ensures that no matter which resource in the consistency group is accessed, the data remains the same.
Chapter Summary
This chapter discussed how to design and set up a storage system that provides high availability through redundancy and avoids a single point of failure. To design the architecture for a system, you must first understand the requirements of the system. Storage systems may provide block storage, which is storage mapped as logical units to end machines. Storage solutions may also provide file-based storage, which is storage allowing multiple users to access it concurrently over a network share such as CIFS or NFS. Storage systems are not limited to block or file and can consist of a combination of the two.
High availability is a system with little downtime. This is achieved through redundant components and systems, the ability to detect component failures, and the ability to switch between redundant components effectively. High-availability systems avoid a single point of failure, which is any component whose failure would result in the unavailability of the entire system.
Redundancy is achieved by utilizing pairs of equipment or by including redundant components within systems. Some components that are commonly configured redundantly include the power supply, controllers, paths and buses, switches, HBA, NIC, arrays, and cache. Various parts of the storage array are hot-swappable, meaning they can be removed without powering off the device. Disks can use RAID for redundancy and also hot spares, which are drives that remain idle in a storage system until a drive fails.
Redundant components may be configured for load balancing whereby traffic is distributed among the various redundant components. This allows for greater throughput when all components are available. Link aggregation is the use of multiple parallel network connections in order to increase throughput beyond the limit that one link can achieve. Link aggregation is especially useful for increasing bandwidth between switches on a network because these are common congestion points.
Failover is the transfer of services from one component to another in a redundant system. In clusters, this would be a transfer of a service or application to another node in a cluster. With hardware, this could be the transfer of power distribution from one power supply to another.
Redundant paths to disks are used to achieve high availability within a storage system or between local devices and remote disks. When one path to a disk or disk shelf becomes unavailable, I/O can be directed to another available path.
Some storage systems, known as OLTP, provide immediate response and high availability. Some components of an OLTP solution include a database, management portals, business intelligence systems, reporting functionality, scheduling, analysis, web services, searching, document management, and workflow.
Systems may also take advantage of cloud services, allowing certain components of the storage architecture to be offloaded and managed by a third party. Cloud services that provide an entire application to a company are known as Software as a Service (SaaS). Cloud services that provide an operating system and database for the user to install an application on are referred to as Platform as a Service (PaaS). Infrastructure as a Service (IaaS) is a cloud service that provides a customer with computing resources and their underlying storage and networking so that they can run their own operating system, database, and applications on it. Lastly, Storage as a Service (StaaS) provides a customer with the storage and networking to host data for their application.
Replication is used to make copies of data so that a system can remain functioning even if an entire system or site is unavailable. Local replication is replication that occurs within the same data center or storage array, whereas remote replication is replication that occurs to another site. Replication requires consistency between source and target systems. Replication consistency is achieved through consistency groups. The consistency group ensures that a set of writes in it retain the same data, and writes that occur to one member of the group will not be fully committed until they have been implemented across all members of the consistency group.
Replication can occur at differing intervals. A point-in-time replica is one that is identical to the source as of a specific date and time, whereas continuous replication keeps the source and destination synchronized at specified intervals. Continuous replication can be synchronous or asynchronous. Synchronous replication will wait for transactions to be committed at both the source and destination sites before proceeding, while asynchronous replication will push updates to the destination site while still processing new transactions. Asynchronous replication tolerates some level of inconsistency between the source and destination to achieve better performance, but synchronous replication provides the best reliability.
Chapter Review Questions
1. Tom wants to provide additional storage to five database servers. The database servers must see the storage as local disks. Which storage architecture should Tom implement?
A. Block-level architecture
B. File-level architecture
C. Hybrid architecture
D. Network architecture
2. Mary has an application that requires high availability. She would like to run the application on three servers that will share the load and provide failover in case one server fails. Which technology should she deploy?
A. Software as a Service
B. Clustering
C. Link aggregation
D. Cache mirroring
3. Howard manages the IT systems for HBD Industries. HBD Industries provides an application to its vendors allowing them to view when inventory needs to be replaced. After several downtime events, HBD’s vendors request a contract ensuring a specific level of availability. What should Howard create for the vendors?
A. Business associate agreement (BAA)
B. Availability metering
C. Network schematic
D. Service level agreement (SLA)
4. A risk assessment informs Joan that there is a single point of failure on the controller in her storage array. Which of the following should Joan implement to resolve the single point of failure?
A. Add a second controller and redundant cabling to front-end and back-end ports.
B. Implement online transaction processing.
C. Add more host bus adapters to the controller.
D. Configure cache mirroring in the controller.
5. Subramanian is deploying an application that he expects will need regular increases in storage to satisfy customer demand, but he cannot predict what those increases will be. He would like to utilize a cloud-based solution to house his application. Subramanian plans to configure the application, database, and operating systems but would like the hardware, including storage, to be located in the cloud. Which cloud solution would fit Subramanian’s needs?
A. Storage as a Service (StaaS)
B. Infrastructure as a Service (IaaS)
C. Platform as a Service (PaaS)
D. Software as a Service (SaaS)
6. Which of the following describes failover?
A. Failover is the automatic provisioning of additional storage when a device consumes the currently available storage.
B. Failover is the transfer of services from one component to another in a redundant system.
C. Failover is the initiation of a disaster recovery plan to contain a data breach.
D. Failover is the implementation of redundant hardware in a system that has a single point of failure.
7. At 2 a.m., John is paged because the storage array lost power. He discovers that several users were updating data on the array, but their changes have been lost. He calls his storage vendor and is told about a technology that will retain data that has not been flushed to disk even if power is disconnected from the array, but he cannot remember what the technology was called. Which technology did the storage vendor mention?
A. Cache mirroring
B. Cache residency
C. Cache battery backup
D. Cache failover
8. You have a development site and a production site. When changes to the development site are approved for production, you want to deploy them using replication. Which replication technology would best suit this situation?
A. Synchronous replication
B. Asynchronous replication
C. Continuous replication
D. Point-in-time replication
9. You wish to set up multipathing for load balancing on a server in a storage network. How many ports will be required at minimum in the server to set this up?
A. 1
B. 2
C. 4
D. None; multipathing is set up on the switch instead.
Chapter Review Answers
1. A is correct. The block-level architecture presents data to hosts as local storage would appear to them so that they can interact with it in the same way.
B, C, and D are incorrect. B is incorrect because a file-level architecture would present the storage as a share instead of a local disk. C is incorrect because a hybrid architecture would present the storage as both local disks and shares, but only the former is required. D is incorrect because the term “network architecture” does not describe an architecture in particular.
2. B is correct. Clustering is the use of two or more devices together to provide load balancing and failover services.
A, C, and D are incorrect. A is incorrect because Software as a Service would run the application in the cloud, not in a failover cluster. C is incorrect because link aggregation would provide more bandwidth and failover for a single link, but it would not fail over an entire server. D is incorrect because cache mirroring is a technology used to provide high availability to storage arrays with more than one controller.
3. D is correct. A service level agreement (SLA) for a technology service is part of a contract that defines the required availability of the system in terms of a percentage, such as 99 percent uptime.
A, B, and C are incorrect. A is incorrect because a business associate agreement may or may not spell out the required service level. B is incorrect because availability metering will not enforce the availability. It will simply track the availability metrics. C is incorrect because the network schematic will only show where items are and how they are related.
4. A is correct. Add a second controller and redundant cabling to front-end and back-end ports. Dual controller units are equipped with two identical controller heads that are each capable of operating the entire storage array.
B, C, and D are incorrect. B is incorrect because OLTP is an enterprise application and supporting systems, but this question only asks about the storage array. C is incorrect because more HBAs in a single controller does not address the risk of a controller failure, since all HBAs in that controller would not function if the controller failed. D is incorrect because cache mirroring cannot be configured until a second controller is added.
5. B is correct. Infrastructure as a Service (IaaS) is a cloud service that provides a customer with computing resources and their underlying storage and networking so that they can run their own operating system, database, and applications on it.
A, C, and D are incorrect. A is incorrect because Storage as a Service would not provide the hardware to run the application, operating system, and database. C is incorrect because Platform as a Service would not allow Subramanian to install his own operating system. D is incorrect because Software as a Service would not allow for the operating system, database, and application to be installed since they would already be provided by the cloud service.
6. B is correct. Failover is the transfer of services from one component to another in a redundant system. In failover, the functions of a system component—be it processor, server, network, or database—are assumed by another system’s components when the primary component becomes unavailable.
A, C, and D are incorrect. A is incorrect because the automatic provisioning of additional storage is thin provisioning. C is incorrect because disaster recovery plans are implemented by humans, not through a failover process. D is incorrect because failover relies on redundant hardware, but it is not the configuration of hardware that comprises failover.
7. C is correct. The data in cache is important to the reliability of the storage system. Storage arrays make use of a battery-backed cache to prevent loss of data in the case of a power failure to the array. A battery-backed cache can keep unwritten data alive in case of power failure so that the data can be written to the disk once power has been restored.
A, B, and D are incorrect. A is incorrect. Cache mirroring will keep the same data on both controllers’ cache, but a loss in power would mean that the mirrored cache on both controllers would be lost. B is incorrect because cache residency keeps data in cache so that it can be retrieved quickly, but this data would be lost if power was lost. D is incorrect because failover would change processing to another controller, but it would not work if power was lost to both devices.
8. D is correct. A point-in-time (PIT) replica is one that is identical to the source as of a specific date and time.
A, B, and C are incorrect. A and B are incorrect because both synchronous and asynchronous replication are forms of continuous replication, and they would replicate changes that have not been approved for deployment. C is incorrect because continuous replication keeps the source and destination synchronized at specified intervals, which might not match up with the approvals.
9. B is correct. Multipathing requires at least two paths for redundancy. In this case, the redundant links will also be used for load balancing so traffic will be distributed among the two links.
A, C, and D are incorrect. A is incorrect because one link would not provide the redundancy required for multipathing. At least two links are required for multipathing. C is incorrect because the question asks for the minimum required; two ports are the minimum. D is incorrect because multipathing requires multiple ports on the server in addition to configuration on the switch fabric.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.216.205.123