White Paper
IT organizations are challenged with conflicting requirements: to consolidate costly remote-office infrastructure and to maintain adequate service levels for remote-office users. Cisco® Wide Area Application Services (WAAS) provides the technologies necessary to consolidate infrastructure in the data center while also providing application acceleration and WAN optimization capabilities that achieve application delivery performance similar to that of a LAN. This document examines how, through Cisco WAAS, Cisco Systems® provides the framework to deliver data integrity and high availability in solutions that facilitate consolidation and improved application delivery performance.
CISCO WAAS ARCHITECTURE
Figure 1. Cisco WAAS Enterprise Deployment

Figure 2. Cisco WAAS Packet Flow Diagram

CISCO WAAS HIGH AVAILABILITY
Software Architecture
Hardware Architecture
Figure 3. Cisco WAE Appliances

• Error checking and correction (ECC)-ECC can detect and correct any errors immediately while data is being read to or written from memory.
• Extended-availability hard drives-All Cisco WAE hard drives are rated for extended availability and designed to operate in an always-on capacity.
• Redundant Array of Independent Disks (RAID)-All Cisco WAEs configured with two or more hard drives use RAID1 for each of the internal file systems for high-availability mirroring. If all disks fail, Cisco WAAS can still provide standards-based compression and TCP flow optimizations.
• Redundant network interfaces-Interfaces can be deployed in an active or standby mode or in a PortChannel. PortChannel interfaces provide load-balancing capabilities as well as failover.
• Boot from flash memory disk-Cisco WAEs boot from an onboard flash memory disk and are accessible on the network even if every hard disk in the appliance has failed. This capability allows administrators to access the device and obtain critical system information even if the device cannot provide optimization because of disk failure.
Cisco WAAS Central Manager
WCCPv2
• Keepalive processes-All Cisco WAEs and network elements continuously exchange heartbeat information at a fixed interval to allow safe redirection of flows.
• Scalability-Up to 32 Cisco WAE devices can be clustered together in a WCCPv2 service group with up to 32 routers, allowing enterprises to deploy WAN optimization and application acceleration in an N + 1 high-availability fashion.
• Stateful distribution of workload and load balancing-WCCPv2 automatically distributes load among available Cisco WAEs, providing linear scalability of performance. In this way, all WAEs are used simultaneously, thereby improving overall capacity for application acceleration and WAN optimization. Redirection is performed statefully based on a load-balancing algorithm that helps ensure that a flow is always redirected to the same WAE every time to facilitate maximum performance and optimization.
• Automatic failover-If a WAE fails, the workload handled by the failed WAE is shifted to other remaining WAEs. Failover to another WAE provides graceful performance degradation because all WAEs are active within a location, so other WAEs likely have similar compression histories.
• Fail-through-If no Cisco WAEs remain in a location, the WCCPv2 process no longer has a WAE device to redirect packets to, so the router begins forwarding packets natively without redirection.
• Overload handling-If a WAE becomes overloaded and unable to service an incoming request, it can simply forward the packet in an unoptimized fashion until the system returns to normal load levels.
PBR
• Cisco WAE availability verification-Through the use of Cisco IOS IP Service Level Agreement (IP SLA) functions, the Cisco WAE can be polled periodically through Internet Control Message Protocol (ICMP) or TCP connection attempts to verify that the WAE is online.
• Automatic failover-If multiple Cisco WAEs are configured as next-hop routers, the router forwards traffic to the first WAE until it is determined to be unavailable. At that point, the router automatically uses the next Cisco WAE in the next-hop router list.
• Fail-through-If none of the configured next-hop Cisco WAEs are available, the router no longer forwards traffic to them for optimization. The packets are routed normally instead.
File Services Acceleration
Figure 4. Cisco WAAS File Services Acceleration Deployment

• Cisco WAFS Edge service-The Cisco WAFS Edge service is continuously monitored by an internal process so that if the service becomes unresponsive or otherwise unavailable, it is automatically restarted. This service can be run concurrently on multiple Cisco WAEs in the same location to provide high levels of availability for file services optimization.
• Cisco WAFS Core service-The Cisco WAFS Core service is continuously monitored by an internal process so that if the service becomes unresponsive or otherwise unavailable, it is automatically restarted. The Cisco WAEs running this service can be clustered together, and load from connected Cisco WAFS Edge WAEs is distributed in a round-robin fashion. If a WAE fails, the connected Cisco WAFS Edge WAEs are notified and automatically reconnect to an alternate Cisco WAFS Core WAE within the cluster.
• Cisco WAFS Optimized Transport-Communication between the Cisco WAFS Edge WAE and the Cisco WAFS Core WAE uses an optimized transport that improves availability in WAN environments. This optimized transport includes connection multiplexing, which minimizes the effects of packet loss on the connection between the WAFS edge and WAFS core by using multiple concurrent connections and adaptive congestion-management algorithms.
• Read-only disconnected mode-File servers or NAS devices that are optimized by Cisco WAAS can be configured for read-only disconnected-mode operation. Any user who can be successfully reauthenticated by a domain controller during periods of prolonged disconnection has read-only access to files and folders that are fully cached on the Cisco WAE. The WAE uses cached copies of file and directory metadata and access control lists (ACLs) to self-authorize users.
• Transient network disconnection-For periods of disconnection of less than 90 seconds, the Cisco WAE temporarily buffers user transactions. If the connectivity to the Cisco Core WAE is restored within 90 seconds, buffered transactions are flushed to the origin file server or NAS device, and the temporary disconnection is fully masked from the user.
• Prolonged network disconnection-Any disconnection between Cisco WAEs running file services acceleration that extends beyond 90 seconds causes the Cisco WAEs to enter prolonged network disconnection mode. In prolonged disconnection mode, all states are immediately cleared and sessions are terminated. The cause of the prolonged network disconnection determines the scenario that follows:
– No Cisco WAEs, and WAN is offline-In this scenario, the user is fully disconnected from the file server, unless Windows Offline Files and Folders is configured.
– No Cisco WAEs, and WAN is online-In this scenario, the user can reestablish the session with the file server and resume operation without the benefits of the optimizations provided by Cisco WAAS.
– Disconnected mode of operation-If disconnected mode is configured, the Cisco WAFS Edge WAE is online but unable to reach the Cisco WAFS Core WAE, and if the user can successfully authenticate with a domain controller, the user will be able to access the cached data in read-only mode according to the cached user authorization and access control information.
CISCO WAAS MAINTAINS DATA INTEGRITY, SECURITY, AND CORRECTNESS
Disk Storage Security
Transport Flow Optimization
Figure 5. Cisco WAAS TCP Proxy Service

DRE
Figure 6. Cisco WAAS DRE and Loosely Synchronized Contexts

• DRE context synchronization-When peering WAEs automatically discover one another, synchronization of the DRE contexts is initiated, and DRE is not used until the contexts are synchronized. This synchronization involves negotiation to determine which portions of the context are still valid, based on timestamps, and which portions of the context are not usable. The invalid portions of the context on each WAE are immediately flushed.
• Signature acknowledgment-If a Cisco WAE receives an encoded message-that is, one that has gone through the DRE process-the it attempts to rebuild the original message on the basis of the enclosed signatures. If a referenced signature is not found in the local context, the WAE can send a nonacknowledgment message to the encoding WAE and request that the original data referenced by the signature be resent.
• Message validity verification-Before a Cisco WAE attempts to encode an original block of data through DRE, it first calculates a 16-byte message validity signature, which is a Message Digest Algorithm 5 (MD5) hash of the original message. This message validity signature is appended to every DRE-encoded message and is used by decoding Cisco WAEs to double-check the validity of the messages that have been rebuilt based on data from the local context. When the decoding WAE has rebuilt the message from data chunks contained in the context, a new 16-byte message validity signature is computed and compared to the original. If the two are identical, the message is identical to the original. If the two are not identical, the decoding WAE sends a nonacknowledgment message for the entire block of data and requests that the original data be sent.
File Services Acceleration
• User sessions-User session control messages are always forwarded for native handling by the origin file server. This processing includes CIFS dialect negotiation, user authentication and session establishment (SESSION_SETUP), and user authorization and share mounting (TREE_CONNECT). Thus, the origin file server always sees the session as having come from the remote-office user, thereby preserving the investment in Active Directory security and file server features such as disk quota enforcement and auditing. Cisco WAEs never provide application-specific acceleration to a user session unless the WAE sees the establishment of the session, thereby protecting security and data integrity.
• Global file locking-All message exchanges that involve locks or opportunistic locks are propagated natively between the user and the origin file server or NAS device and are never handled by the Cisco WAE. Thus, the file server device always owns the state of the lock for every file in use, thereby facilitating global collaboration, even among optimized and unoptimized environments. Furthermore, if a WAE fails, sessions are immediately closed and the state is cleared. Cisco WAAS never leaves a session or a file lock in an unknown state.
• Cached file validation-When a file is being opened and a copy resides in the file cache on the Cisco WAE, the WAE validates the file with the origin file server to determine whether the cached copy is identical to the copy on the origin file server. If the two are identical, the WAE knows that any authorized requests for segments of the file can be served locally and safely. If the two are not identical, the WAE immediately flushes the file out of the cache and applies read-ahead and message prediction to provide high-performance access for the user.
• Change notifications-Cisco WAAS supports unsolicited and solicited change notifications from the origin server to update metadata and directory listing information. Thus, users browsing a file server through an optimized connection always see an up-to-date directory listing.
• Graceful handling of legacy dialects-Cisco WAAS is designed to provide pass-through for unrecognized commands and legacy dialects. If it sees an unrecognized message, it forwards the message normally for proper handling by the origin file server.
• Transition to disconnected mode-If the Cisco WAEs enter prolonged disconnection mode (periods longer than 90 seconds) and connectivity is severed, the WAEs automatically and gracefully close existing sessions. This processing helps ensure that no stale state is left behind on the origin server. If a Cisco WAE terminates unexpectedly, the user session times out normally on the file server on the basis of the configured timeout value, which by default is 15 minutes.
SUMMARY
