In scenarios where the ISP’s need to cater to several gigabytes of data per second for managing a large chunk of cached data in dedicated SwiftCache Appliances, the NetScaler N-tier cache redirection deployment in conjunction with the SwiftCache Appliance, we help perform Cache Redirection and load balance the SwiftCache Appliances most efficiently.
Figure 8a: The Problem (Scenario 1) – The Need of N-Tier Deployment
Transparent Cache Redirection NetScalers solution has been optimum and meets the ISPs requirement. But, with time, the growth in Internet usage has led to hike in throughput requirements of today’s ISPs. In this situation we introduce an N-Tier solution which goes beyond traffic processing via single NetScaler and provides a complete solution which caters for todays as well as future growing needs of ISPs. N-Tier brings in value by scaling up traffic with front tier NetScaler just by doing DSR (Direct Server Return). To make the N-tier work, key enhancements were done to ensure that transparency is not lost. While ensuring that full transparency cache redirection solutions, scale up to multiple NetScalers to cater for today’s growing requirement of ISPs for cache server management, two road blocks was faced.
Figure 8b: The Problem (Scenario 2) – The Need of N-Tier Deployment
To understand this better consider Scenario 1 and Scenario 2 mentioned above. As can be seen in both the scenarios, we have placed two NetScalers with full transparent cache redirection mode set. In both the scenarios as the requests are sent from the same client1, the origin server and the SwiftCache Appliance wouldn’t know which specific NetScaler to send the response to.
Figure 8c: The Solution (Scenario 3)
To solve Scenario 1 problem we deploy another tier referred to as Upper Tier of NetScaler i.e. NS1L1 as shown above (Scenario 3). This layer of NetScalers will only do session-less load balancing and load balance the Lower Tier NetScalers i.e. NS3L2 and NS2L2. The Lower Tier NetScalers are distributed with a source port range as can be seen in the above Figure 5c. With this whenever a request bounce back in a cache bypass scenario, the Lower Tier NetScalers insert their respective available source port and direct the request to the origin server. This way when the response comes back from the origin server, it reaches the Upper Tier NetScaler NS1L1, which forwards the requests to the appropriate NetScaler with the respective source port inserted initially in the Lower Tier using the configured PBR policy. Then the response is directed back to the respective client from the Lower Tier NetScaler which initially received the requests from the client.
This solution counters the problem, when in a cache bypass, the request is directed back to the Origin Server and Origin server becomes incapable to determine which NetScaler to forward the request to in a multiple Cache Redirection NetScaler scenario.
Figure 8d: The Solution (Scenario 4)
Scenario 4 depicts the solution for the Cache Hit-Scenario 2 Problem. When multiple requests coming from the same client hits the SwiftCache Appliance, after the Cache Hit (Scenario 2 Problem), the SwiftCache Appliance are not able to recognize the appropriate NetScaler to send the response to, as the NetScaler is in Transparent mode. Therefore, to resolve this issue, instead of putting another layer of NetScalers in between Layer2 and SwiftCache Appliance, we include the client IP as a header in the request sent to the SwiftCache Appliances. Now, when the SwiftCache Appliance responds back, it knows which NetScaler to send the response to, as NS3L2 NetScaler used its M.IP (Mapped IP) and M.Prt (Mapped Port) to interact with the SwiftCache Appliance. Now, with the Client IP Header inserted in the request header, NS3L2 will know which client to send the response to avoiding the unnecessary load on Upper Tier of NetScalers.
Figure 8e: Cache Miss Scenario 5
In Cache Miss Scenario 5, after the Cache Miss, the request goes back to the NS3L2, which directs the request back to the origin server with the NS3L2’s 2001 source port inserted in the request. This is done so that when the response comes back to the layer 1 NetScaler(i.e. NS1L1 in this case) using PBR (Policy Based Routing) it directs the response to the right NetScaler with the respective source port inserted initially, to process the response and to send it to the right SwiftCache Appliance and then to the respective Client.
The key objective of N-tier deployment is to scale up the traffic using 2 tiers of deployment. The response from SwiftCache Appliance never goes through the first tier NetScalers and that is called DSR (direct server return) mode. Thus first tier is only responsible to take the requests and do session-less Load Balancing second tier NetScalers. The Cache Redirection part is mainly taken care by Second Tier of NetScalers.