{'fraction_non_alphanumeric': 0.024630816383393702, 'fraction_numerical': 0.007411535246586793, 'mean_word_length': 4.95816733067729, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Evaluation of Two-Level Load Balancing Framework in Cloud Environment

With technological advancements and constant changes of Internet, cloud computing has been today's trend. With the lower cost and convenience of cloud computing services, users have increasingly put their Web resources and information in the cloud environment. The availability and reliability of the client systems will become increasingly important. Today cloud applications slightest interruption, the impact will be significant for users. It is an important issue that how to ensure reliability and stability of the cloud sites. Load balancing would be one good solution. This paper presents a framework for global server load balancing of the Web sites in a cloud with two-level load balancing model. The proposed framework is intended for adapting an open-source load-balancing system and the framework allows the network service provider to deploy a load balancer in different data centers dynamically while the customers need more load balancers for increasing the availability.


INTRODUCTION
Since 2009, Cloud Computing technology has become one of the hottest topics and different organizations have expressed a high degree of development of cloud computing attention and actively carried out relevant research and promotion.
Cloud computing is an Internet-based, according to the needs of the users, to provide sharing resources as computation computer, software information and other peripherals. And its architecture is based on the Internet that provides dynamic scalability for the consumer to use virtual resource-based information technology services.
As cloud computing provides dynamic scalability, flexibility, and virtualization resources, cloud computing applications are considered as an innovative optical department. What is the so-called cloud computing? According to the U.S. NIST (National Institute of Standards and Technology), the objective definition of cloud computing is a convenient way, according to the demand, to share networking, storage, applications, services, modules and other resources. Sharing of resources allows the providers can effectively release the extra resources to provide more effective services.
Load balancing is a way to spread requests out over multiple resources and it helps a network avoid annoying downtime and delivers optimal performance to users [6]. Network Load Balancing (NLB) can use a distributed algorithm to load balance network traffic across a number of hosts, helping to enhance the scalability as shown in figure 1. The global server load balancing (GSLB) can operate the Web site or another application server farm at multiple data centers and provide continuous availability by directing users to an alternative site when one site fails or the entire data center is down [8]. General server load balancing only limited to a single data center or near conduct, but GSLB can across different regions. Because the cost of hardware-based GSLB is usually expense, we would find out an economic solution in this paper.
With lower cost and more availability of cloud services, users have increasingly moved their applications to the cloud environment. Consequently, users can access their resources with the browsers of their thin devices, and cloud service providers do not need to buy numerous machines for the uncertain requirements of backup or expansion. Thus we would propose a software-based load balancing solution with cloud technology, this cost is much cheaper than hardware-based one.
The purpose of this paper is to present an open-source solution to build a two-level global loadbalancing architecture that is scalable for Web clusters in cloud environments. The rest of this paper is organized as follows: Section II gives an overview of load balancing, the features and advantages of cloud computing are described in Section III. Section IV presents the proposed framework and lists the test results of the proposed framework. Finally, Section V discusses the conclusions and future research work.

OVERVIEW OF LOAD BALANCING
The most common problem faced by the Internet web provider is to resolve the congestion problem caused by the large amount of on-line users at the specific time interval. For a web administrator, the most and major improved problem is how to make web performance better quickly and provide better services for the users. There are many load balancing solutions which have been proposed and used to overcome these issues. Now there are many open source solutions, such as Linux Virtual Server (LVS) [22] that can be used to build a load balancing architecture. In order to solve various load problems, there are many known load balancing algorithms developed, which can be dived into two major categories [20,41,14,30,31] and dynamic [4,9,10,32,38]:  Static load balancing policy: The scheduling of the static algorithm is carried out according to a predetermined approach. Static load balancing policies are generally based on the information about the average behavior of system; transfer decisions are independent of the actual current system state. Static load balancing schemes use a priori knowledge of the applications and statistical information about the system.  Dynamic load balancing policy: It adapts its decision to the current state of the system. Therefore, the dynamic approach is more flexible to changes in system parameters. The choice of a load balancing algorithm is a difficult task. Thus many kinds of algorithms have been proposed and each of them varies based on specific application requirements.
Besides, there are many researches for the load balancing algorithm of some specific application [33,34,36,39,43]. Sometimes users would like to customize the configuration of their load balancers for optimizing services. On the other hand, the platform types of the load balancers can be divided into "hardware-based" and "software-based". The hardware-based solutions adapt the physical resources to build the load balancing environment, such as multilayer switches [11]. In this paper, we choose the "LVS" for the software-based load balancing system of proposed solution. Traditionally load balancers have been delivered to the client as a hardware product for balancing network traffic similar to typical computing hardware devices. The evolution of service oriented models such as Load Balancer as a Service (LBaaS) [28], has given the service vendors the opportunity to concentrate solely to their core capability. Thus instead of building data centers and infrastructure to deliver their product "load balancer", network service vendors started moving their deployment infrastructure to the cloud environment. In order to facilitate the load distribution among the rented server instances by a cloud tenant, the cloud provider has developed a business model where a load balancer an also be rented to the tenants similar to SaaS [28]. Currently load balancing as a service is provided by some popular cloud service providers shown in Table 1 [15-19, 21, 24, 26]. But LBaaS is still in its infancy and many problems still remain to be solved. The major needs and challenges of LBaaS are listed below [28]:  Fault tolerance capability: Load balancer needs to have high fault tolerance capability.
 Elastic scalability: Elasticity is the most important feature for provided services through cloud computing; and the automatic deployment of resources is crucial and challenging.  Network topology independence: The selected algorithm is highly dependent on the composition and the topology of the network of servers.

CLOUD COMPUTING
Cloud computing is the new evolution of on-demand information technology services and products [1]. Based on recent researches of cloud computing [2,13,23,25,37,42], we find that there are several characteristics are the same and can be implemented as a service:  On-demand self-service. Consumers can provision required computing capabilities automatically with service's providers.  Ubiquitous network access. Customers can use device over the network to access the service.  Location-independent resource pooling. Customers do not need to know the exact location of the services.  Rapid elasticity. After the service purchased, it can be rapidly and elastically provisioned to quickly scale up, and rapidly released to quickly scale down.  Pay per use. Fees are charged while using the demand service.
Based on cloud deployment approaches and community relations between clouds, there are several cloud models described in Table 2 [2,23]. Beware of the type of deployment model instance in these cloud models would be internal or external.
Internet, hardware and systems software, operation management and other relative resources are included in the applied scopes of cloud services [12]. The resources of cloud computing will be provided in the virtualized type [1]. With the advantages of the resource virtualization, cloud service providers can dynamically "provision" on demand as a personalized resource collection to meet a specific service-level agreement [7,29]. The cloud infrastructure is owned and operated solely for the specific organization.

Community cloud
The cloud infrastructure is shared by several organizations and supports a specific community with their agreed rules.

Public cloud
The cloud infrastructure is owned by an organization providing services to the general public customers.

Hybrid cloud
The cloud infrastructure is a composition of two or more clouds (private, community, or public).
Cloud computing delivers resources as services, which in industry are respectively referred to as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) [2,7,23,27,29]. If the resources or the operation works of data centers are divided into more parts with single purpose, more innovative service categories can be generated, such as storage as a service, database as a service, testing as a service, etc [23].

TWO-LEVEL LOAD BALANCING FRAMEWORK
With the advantages of the lower cost and the dynamic scalability from cloud service, we implement the two-level global load balancing framework in the cloud environment. The main components of the proposed framework include the Load Balancer Selector (LBS) and the software-based load balancer. In order to implement a cloud solution, each component should be one or groups of virtual machines. To upgrade the high availability of the proposed framework, at least two of the LBS VMs include all load balancer IPs information and the LBS IP must be registered to the global DNS service provider. The load balancing system is to receive the http requests and then redirect them to the web system. It could be a single VM or a cluster for the high availability purpose in a cloud environment. If some VMs of two components need to be closed for the system maintenance purpose, the new alternative VMs can be deployed through requests. In the framework, users do not need prepare any hardware machines, network environments and the IT staffs.
In our proposed framework, we adapt the software-based load balancer to the Linux Virtual Server (LVS) [26]. The LVS can provide several techniques, such as network address translation, direct routing, and IP encapsulation, to distribute IP packets among nodes. Our proposed system chooses direct routing for sharing requests to different web servers in the cloud environment. The LVS is a virtual machine in the cloud and is supported only for one specific Web cluster in the same cloud service.
The two-level global load balancer proposed in this paper is an open-source load-balancing solution for Web clusters. This framework can be applied with other kinds of hypervisors, which can deploy new LVS VM instances, as shown in Figure 2. The LVS VM is responsible for balancing the loads from user requests. The LBS receives and arranges the HTTP requests from the users and transfers the links to the corresponding LVS addresses. Then, the corresponding LVS redirects the requests to the real Web server, which returns the HTTP results to the user. The purpose of this research was to develop an open-source solution that can rapidly be reused in the cloud environment, since the costs of these virtual load balancers are much less than those of the customary physical load balancers.  Figure 2 shows the architecture of the proposed two-level global load balancer in the cloud environment. This framework includes the load balancer selector (LBS) and the load-balancing VMs in cloud environments. Each Web cluster runs with its own network load balancer (LVS), and the LVS systems are set up for high availability of a specific Web service. The LBS VM is responsible for sequentially arranging user requests to the corresponding load balancer VM IP address of the Web server cluster, and this function can spread the load of the first Web cluster. However, the second LBS VM becomes the slave of the LBS. In this architecture, the LBS is implemented by Round Robin Domain Name Server (RRNS) and the load balancer is adapted with Linux LVS.

Proposed Architecture
In order to reduce the cost of GSLB and enhance the flexibility of load balancer, we proposed a kind of two-level global load balancing framework. Its information process can be described as the Figure 3. When the "ISP DNS" receives the AP1 request from the user1, the ISP DNS would check its DNS registry database and find the registered DNS and then transfers the http requests to the "LBS 1". The "LBS 1" would resolve the IP information and send to user1. Therefore the user1 would get the right IP to connect the load balancing system "LB VM 1", the "LB VM 1" would redirect the request to the "AP1 VM1". Finally, the user1 would get web data. In another case, there are two LBS VMs and two load balancer VMs for load balancing AP2 requests. When the "ISP DNS" receives the AP2 request from the user2, the ISP DNS would check its DNS registry database and find the registered DNS and then transfers the http requests to the "LBS 2". The "LBS 2" would resolve the IP information and send to user2. Therefore the user2 would get the right IP to connect the load balancing system "LB VM 2", the "LB VM 2" would redirect the request to the "AP2 VM1". Then the next AP2 request will redirect to "LB VM3" and user will get data from "AP2 VM4".

Implementation and Evaluation
The proposed framework was established and then evaluated. In the experimental environment, we adapted nine virtual machines created for the proposed framework. The first evaluation is to verify the high availability of the LBS. For the testing, we stop the major LBS VM "LBS VM01". We found that the http request can be resolved by the second LBS VM "LBS VM02" and return the web data correctly. The other evaluation is to validate the load balancing functionalities of the proposed framework. We make the different web contents on the five different web VMs, and then we use two isolated machines to connect the web system. The results of the two machines are different and this shows that our proposed framework is effective.   Table 3. Another experiment tested by Web Bench is to evaluate the finished requests with different load balancing algorithms in two experiment scenarios. All 100 agents run with the same configuration, which includes the duration of 300 s, the ramp-up time of 0 s, and the interval time of 0 ms. The stress testing is conducted with various agent parameters and the test results are gathered in Table 4. The results show that the requests generated by the proposed framework were much more the results of one load balancer.

CONCLUSIONS
This study is focused on the study is to verify and improve the framework of virtualized network load balancers. The proposed framework is expected to be replaced with the physical network load balancers, which are expensive. Based on the benefits of Cloud Computing and Virtualization Technology, we believe that the proposed framework in this study could save the IT cost and be deployed rapidly. At last, we proposed an executable two-level load balancing model with two different algorithms and implemented some experiment to validate its function. Strictly speaking, the expected contribution of this study are as follows: The general solution for solving the high availability of the web applications is to connect with the network load balancer. Although the performance of the hardware-type network load balancer is higher than the one of the software-type network load balancer. But its cost is many times higher than the cost of the software-type. It makes that enterprise users would not buy or expand new machines easily.
In practice, we constructed an architecture of two-level global load balancer in this study and the architecture is open source and low-cost. We further integrated with the features of cloud computing and established the virtualized network load balancers in different cloud environment. This service would be used to solve the web connection limitation of the network load balancer in a single network. It could be realized in the enterprise environment and the Internet Data Center, and the IT staffs could implement the service easily. In addition, it allows users themselves to update the load balancing algorithms of load balancers dynamically in different cloud environments. Further, update the load balancer selector while adding or decrease the amount of the load balancers.
Although the proposed concept has been proved, many aspects need to be improved and compared with those of other load-balancing algorithms. Our future work will focus on how to improve the performance for large users over the Internet and make comparisons with other kinds of load-balancing algorithms. Besides, we would conduct more comprehensive evaluations on our system in hybrid cloud environment.