1 Introduction

Cloud computing is new technology that has extensively transformed human life from the last decade by providing different services and resource with the help of internet using virtualization system. Cloud resources are variable to every user by rent and release with specific rule and regulation with the help of internet. Cloud computing is emerging technology used for storing and accessing resource and application over the web based internet (Buyya et al. 2018). Cloud data center consists of physical and virtual infrastructure resources which include server, network system and different resources. Cloud data center is so important that different user demands can access data with the help of these data center in accurate and fast time. It contains a large amount of data and information which works under certain rules and regulations (Ouhame et al. 2020; Ullah et al. 2020). Data center normally used to control various activities such as virtual machine creation and destruction, routing of user request, network management, resource management and load balancing technique these all activity are performed with the help of virtualization. Virtualization is the processes in cloud computing in which we create virtual of resource based on software like hardware resource and software resource. Virtualization is one of the main element of cloud computing where this technique help to enhance the accuracy an efficiency of cloud computing. Virtual machine (VM) is one the main element of virtualization (Ziyath and Senthilkumar 2020; Mishra et al. 2020). When a single resource of cloud computing can appears as multiple resource this process can be achieved with the help of virtual machine. For the improvement in VM activity different kind of load balancing technique are used. A valuable load balancing technique in cloud computing can enhance the accuracy and efficiency of cloud computing performance. Because now a day user demands for fast and accurate service within the given time (Devi and Uthariaraj 2016). Load balancing technique is one of the main parameter for providing fast service in cloud environments. Cloud technology growing rapidly and used in different field of life like education, engineering technology, data-intensive applications, health, life science, geospatial sciences and different scientific and business domains. Cloud computing become an admired technology in worldwide due to its offer a huge amount of storage and resource to different companies and organization to access these resource with proper management, rule and security. Some of the main characteristics are virtualization, viability, large network access, automatic system, security, economical and scalability (Chang et al. 2010; Ferrer et al. 2019). The rest of this paper is organized as: The necessary backgrounds for the cloud computing and load balancing approaches are discussed in Sect. 1. Preliminary is discussed in Sect. 2. In Sect. 3, present the related work. In Sect. 4, Methodology of paper. In Sect. 5, we present about simulation environment. Section 6, present result and discussion and Sect. 7, conclusion. For the comfort of readers we provided a list of the most frequently used acronyms in the paper are mention in Table 1.

Table 1 List of acronyms

1.1 Contribution of paper

The major contributions of this review paper are summarized as below.

  1. i.

    Present details information about cloud computing.

  2. ii.

    Existent details information about load balancing approach and different parameters.

  3. iii.

    Extant details information about VM role in cloud data center.

  4. iv.

    Summarizations of main contribution in load balancing technique from 2015 to 2021.

  5. v.

    Present-day research direction about load balancing approach and role of VM in cloud computing.

1.2 Source of information

Data related to our review were extracted from 106 published papers. This collection of papers has been compiled by consulting various peer-reviewed data sources (Table 1). These papers highlight the recent advancement in VM task allocation system for cloud computing from 2015 to 2021.The frequency of publication of this work per year for the last six years was calculated to visualize the evolution of research on this promising thematic of the advancement in VM task allocation system for cloud computing which present in Fig. 1.

Fig. 1
figure 1

Paper selection procedure

Figure 1 present paper selection criteria and Table 2 show the data source using these search engine different paper are download from 2015 to 2021.

Table 2 Database source and source URL

Table 2 show the data source using these search engine different paper are download from 2015 to 2021 based on those paper this review paper was conducted.

2 Preliminary

In this section we define those element which are related about cloud computing and load balancing approach. These parameters are used in VM’s for improvement of cloud data center performance.

2.1 Cloud computing

According to Nadimi et al. (2020), cloud computing becoming a crucial technology due to hosting various IT resource for different organization. By providing different service on demand through with the help of virtualizations rule based on pay and get rule. Cloud computing is new trend of technology which change human life over the last decade. This achievement has been done due to the deliveries of virtualized IT resource with the help of internet. The user can demand to these services with specific rule of pay and gain on real time environments (Abd Elaziz and Attiya 2020). Cloud resources are as long as collective tools and any user can charter and let loose these resources with help of internet. The technology become popular due to the combination of high bandwidth announcement and low cast computing with storage (Ibrahim 2021).The entire bustle of cloud computing are performed with the help if internet to a certain extent having these service on local or personal computer. Four main recognized type of cloud computing are private, hybrids, public and community cloud. Poles apart users and organizations used cloud computing according to their persevere and obligation (Zhou 2020). There are four types of cloud computing which are used in different field of life with specific rule and respective specification. Cloud computing consist of different types of layer and these have specific role. Application layer it consists of a cloud application which is used in a different field. It is the highest level of the hierarchy and works as an automatic scaling feature. Application layer defines the commands, responses, data types, and status reporting supported by the protocol. This layer is the only layer that directly connected or interacts with the end user. It provides different application for user. Such as simple mail transfer protocol, file transfer, surfing the internet, chatting with friends, email clients, network data sharing, and various forms of file and data operations (Mezgár and Rauschecker 2014; Samimi and Patel 2011). Platform layer this layer consists of an operating system and application framework and sits on the top of the infrastructure layer. The primary purpose of this layer is to minimize the burden of developing an application or reduce the complicity of development rule work under virtual machine (VM). Different API and application are used for storage data-based and logical web application (González-Martínez et al. 2015).Infrastructure layer this layer creates a pool of resource for storage computing resources with the help of a technology known as virtualization. It allows (IaaS) customers to create and discard virtual machines and networks as per their business requirements. They pay for the services they consumed (IaaS) removes the necessity for the consumer to invest in procuring and operating physical servers, data storage systems and other networking resources (Rimal, et al. 2010).Hardware layer this layer is responsible for the management of all physical resource of cloud computing. Such as physical servicer, routers, switches, power and cooling system along with different resources (Khan et al. 2017). Figure 2 present the structure of cloud computing.

Fig. 2
figure 2

Structure of cloud computing

Hardware layer is typically implemented in the cloud data center where it consists of thousands of different physical resources and they are connected with different rule and regulation. All layers are important due to their different operation and connectivity with each other (Lee et al. 2018).Platform layer is the important layer of cloud computing because it includes different operating system and software development framework that provide resource to the end user. In little year cloud computing has experienced remarkable growth in economic model and development models. All activities are happened due to platform layer of cloud computing. Different virtualization systems are controlled and developed with the help of this layer because it deals with software and virtualization system. Virtual machine is one of the main elements of this layer (Mastelic et al. 2014). Cloud computing consist of different types Fig. 3 shows types of cloud computing.

Fig. 3
figure 3

Types of cloud computing

Figure 3 show the different type of cloud computing and these are used in different area of life for different purpose. Private cloud it is designed for a single organization and also known as the internal cloud. It is established within the organization or connected with the third party and it is much secured as compared to other types of computing. Private cloud computing is established for the requirement of third party or the demand of third party. It is more secure and reliable due to the restriction and rules therefore it become more expensive than other type of cloud computing (Kuyoro et al. 2011; Kotha et al. 2021).Hybrid cloud it is the combination of public and private cloud with the respective strength and weaknesses. Organizations attempt to achieve the best from both types of the cloud and also known as the federation cloud. It is the intermediate between private and public because sometimes the user who uses public cloud shift to the private cloud because they suddenly need more secure data. This process can be done with the help of the hybrid cloud (Liu et al. 2011).Community cloud is cloud service model which provide service to a limited number of individuals or organization that managed and secured by all participating organizations or a third-party managed service provider. Community clouds are a hybrid form of private clouds built and operated specifically for a targeted group. These communities have similar cloud requirements and their ultimate goal is to work together to achieve their business objectives (Hashem et al. 2015).

2.2 Cloud computing characteristics

According to Abd Elaziz et al. (2020), cloud computing is a general term for anything that involves in delivering hosted services over the internet. Cloud providers are competing with each other and they constantly expand their services in order to differentiate themselves. Cloud computing is named as such because the information being accessed is found remotely in the cloud or a virtual space. Cloud computing has succeeded in bringing change in different field of life. Availability cloud computing provides high availability and some benefits for every type of user in a different field. Availability is one of the main pillars of information system where it refers to the uptime of system and network of system where they collectively provide a service during its usage. The traditional systems are limited on local installations when they shift in to cloud computing where entire organization are able to use availability service of cloud computing along with end user. When it time for IT infrastructure establishment then an organization make decision on the bases of availability because it is the main key decision factor. Availability have been the major concern in distributed system because highly available service in cloud computing and are main element for satisfaction of cloud user (Zarandi et al. 2020). Scalability is the attribute that presents the ability of the software, network and process of an organization to manage the increasing of user demand. Normally scalability means frequent speed in cloud computing in which the ability of system or product to continue working after its context changed like volume or size in order to meet the user need. Scalability is a sign of stability and competitiveness which means the organization or network system are ready to handle the influx of demand according to change need and update of the system. Due to the property of scalability in cloud computing lots of companies are shifting to cloud computing (Phanden et al. 2011).Cloud security also known as cloud computing security that consists of different policies, controls, procedures and technologies that work together to protect cloud-based systems, data and infrastructure from unauthorized access. Cloud security is a joint responsibility of cloud provider and business owner or end-user. Security addresses both physical and logical issue in different model and layer (Giret et al. 2015). Cloud automation is a broad term which refers to the processes tools and resources that used by an organization to reduce the manual efforts and it associated with the managing cloud computing workloads. It can be applied to different types of cloud computing. Cloud automation is a fundamental building block for cloud computing. It can be applied in a software layer where a complex system is used to configure and roll out the system balances for the network system. The aim is to make all activities related to computing is as fast, efficient, and handoff as possible thought for the use of the various systems (Elsherbiny et al. 2018). One of the main character of cloud computing is virtualization. It is one of the main elements of cloud computing with refers virtual rather than actual of something. Where IBM introduce virtualization concept in 1960 and early 1970 and this technology reliable and time sharing (Wang et al. 2020). Normally different types of virtualization used in cloud computing some of the important type of virtualizations are mention Fig. 4.

Fig. 4
figure 4

Types of virtualizations

Hardware virtualizations is the type of virtualizations where process several different servicer are combine and work together as single or different VM work as servers. These processes have different type and used for different purpose (Smith and Nair 2005).Full virtualization in this type of virtualization where VM can run any operating system using the system resource or hardware. Main types of full virtualization are Xen server, Xen, KVM and Virtual box (Obasuyi and Sari 2015). Virtualization the guest operating system does not run fully on the virtual machine. It does not work fully and it gets help from hypervisor or with the VMM for working. It just improves the functionality of the operating system. Partial virtualization is the process in which software modification took place any tag (Guo et al. 2010).Network virtualization this type of virtualization we combine software network resource and hardware network resource which are in the same network under the same administrative units. These types of virtualization allow network optimization and scalability in large network as well as use full for improvements network efficiency and productivity. This type of virtualization furthered divided in two types. External; in this type of virtualization it combines several networks in to single unit. Internal; in this type of virtualization virtual network interface cards are used for network life functionality in to single system this process is known as internal network virtualizations (Sharif et al. 2009).Storage virtualization is the process of arranging different physical storage from multiple network storage in to single form. The technology that refers to identify available storage and capacity form different physical device in to a pool of storage device which can be used as a virtual environment. Server virtualization is the processing of making a physical server in to the virtual server. The server administers uses a software application that divided the server in multiple isolated virtual servers and that also acts as a physical server (Sheikholeslami and Navimipour 2017). Desktop virtualization’ the process of isolating a logical operating system in to client that can access it. There are many concepts of desktop virtualization which are dividing into different categories according to user demand. Hosted virtualization in this scenario the virtual machine is completely intellection of a real physical machine. All the feature of a real physical machine like memory, operating system and storage are also in hosted virtualization. It can be achieved by the configuration of the real system (Bhandia et al. 2019). In memory virtualization technique whenever the memory required for the system processing and actual memory is less than the virtualization process is used for memory. In data virtualization, the collection of data for different location and the user can access them easily. It provides front and back ends application method (Abramson et al. 2006).

2.3 Virtual machine (VM)

In cloud datacenter if a single resource can materialize as multiple resources and this route can be achieved with the help of virtual machine (VM). Efficient VM is very important for energy saves and improvement the working of cloud computing. The VM normally replaces the physical resource with their ability and operating system that makes the same environment as hardware. The VM provides a better security model as compared to the normal system VM which is also known as a guest machine. VM are an efficient isolated duplicate of real machine which allow the multiplexing of the underling physical machine. VM technologies allow great deals of elasticity in dynamic management of workload on servers (Ullah et al. 2020). Figure 5 present the working criteria of VM in cloud data center.

Fig. 5
figure 5

Working section of VM (Manasrah et al. 2017)

Virtual machine is a software based component which is an abstraction of the underlying hardware provided by the virtualization technology. Availability can be efficiently achieved by managing the virtual machines properly (Ullah et al. 2020).One of the main element of VM are hypervisor or VM manager where the model or program that handles more than one VM operating system on single host. It is a responsibility of hypervisor to provide resources and a processor to each virtual operating system on the same host. VM manager has two main types, bare metal hypervisor, and hosted hypervisor (Nasim and Kassler 2014). Bare metal hypervisor is type of hypervisor it work on hardware and control over all its accessible resources like memory, CPU etc., as no intercessor is required to access the resources like Hyper-V, VMware. Hosted hypervisor is the type of hypervisor which is used for installed in the operating system of a server and that operating system has a control over it example are virtual box, xen, VM ware player (Hwang et al. 2015). Migration of VM’s is the process in which one host shift to another without disrupting existing work this is process is known as VM migration. There are two types of VM migration which are online and offline migration. Online migration concept was introduce by Christopher Clark in this process running VM can be transferred to other host without affecting the system or the server this process can be done by making the system off the VM. When it transfer to the host it restart again all these activity done in dynamic system (Lee et al. 2010). Offline migration in this process the transfer of VM to another host during running of the system can interruption the network or server during the transfer of the system.VM migration is one of the main elements of virtualization system in cloud computing which allow the movements of VM from one host to another with different rules.VM migration need both sender side and receiver site for transfer of file and VM and state file. VM migration play different rule in cloud computing but one of the main rule is VM replacement system as resource allocation and communication system (Zhou et al. 2010). Preparation time the time between the start of migration process and VM processor state is sent to the host during the VM run is known as preparation time. The main parameters of preparation time are given below.

  1. i.

    Resume time is the between the resuming of the VM running and migration is called resume time.

  2. ii.

    Pages transferred is the amount of memory pages transferred comprising the copies of pages.

  3. iii.

    Downtime is the time during which the running of virtual machine is stopped it contains sending of state of the processor.

  4. iv.

    Total migration time between instigating phase of the migration to the end of the migration process.

  5. v.

    TMT is used for the resource emancipating on both the source and the terminus node (Beloglazov and Buyya 2015).

Live virtual machine migration techniques: Pre-copy migration warm-up phase this is the in early phase for the hypervisor to create the copies of required memory pages to send to the destination section from the source section. During this route virtual machine is not terminated by the hypervisor. If some variations are there in the pages of source node during the process of moving the replacement copies. Then memory pages will be duplicated again and again until the data reduplicating rate is less than the rate of moved page which does not contains the recent value (Choudhary et al. 2017). Figure 6 present the working of VM section.

Fig. 6
figure 6

Working section of VM (Ahmad et al. 2015)

Stop-and-copy phase in this process the VM are terminated at the source node the amount of fata changed that is left will be moved to the destination node and VM start processing at the destination (Ullah et al. 2019). Post copy migration in this type of migration technique VM is suspended from source host for some time then the VM state is transferred to the destination host. Once it is received at terminus, at the same time it starts working after resource portion process even though most of the memory state is living on the source host. When virtual machine tries to fetch the pages which are not being sent from the endpoint host; it will create page faults (Yang et al. 2017; Hussain et al. 2019). Hybrid VM migration this type of migration used both pre copy and post copy migration techniques properties. It is divided into different phase which are as:

  1. i.

    Preparation phase: System resources required at the object host are reticent.

  2. ii.

    Bounded pre copy rounds phase: Determine the surrounded pre copy rounds and working set of VM is reassigned from sender server to the receiver server.

  3. iii.

    Virtual machines resume phase: At the receiver server, it inaugurations the reassigned state.

  4. iv.

    On demand paging phase: On the basis of application, requests of read/write.

Preparation phase: System resources required at the object host are reticent (Navamani et al. 2018). Figure 7 present the VM migration section.

Post copy variations: Post copy through demand paging in this process the pages are reassigned only once and it will result in page fault when requesting the referenced pages from the source node over the network. As a result, it will slow down the dispensation of the VM as it raises the length of the resume time and creates the enslavements in the form of a page faults residing for erratic time periods (Shah 2011). Post copy through active pushing: Enslavements is bargain in the form of an undetached pages living for changeable time periods; one way is to initiatively push” the pages on the endpoint node from the source even though the VM continues running at the destination host. Active push evades the transfer of pages which are criticized in the destination virtual machine. Thus, pages are only sent once either by petition paging or active ambition (Umar and Baseer 2016; Beloglazov et al. 2011). VM replacement system consists of two main sections which are static and dynamic system. Static VM replacement system in which the mapping of the VM is fixed during exaction time and change able for fix time. Dynamic VM replacement system in which the VM allow changes at any stage during the expectation time and those algorithms which are used for replacement of VM are called reactive and proactive VM placement (Indukuri 2016). Figure 8 show the VM replacement system.

Fig. 7
figure 7

VM migration section

Fig. 8
figure 8

Type of VM placement

Post copy through pre paging: It is very difficult to know the strict fault tolerance bearing of pages but by approximating the defective speeches to predict VM’s memory access pattern, we can presume better page forceful sequence to access the arrangements and the incidence of page faults in improvement (Besta et al. 2019). Table 3 present the different parameter of VM migration section.

Table 3 VM migration parameter

Table 3 present the VM migration parameter while Fig. 9 present VM migration metrics and these all elements improve the VM working criteria.

Fig. 9
figure 9

VM migration metrics

Figure 9 shows the VM migration metrics and these all elements improve the VM working criteria. When user demand increase in cloud data center for accessing data then some VM become under-loaded or become overloaded which may delay or failure of the system. In order to avoid this kind of situations then load balancing technique is used.

$$ f\;\left( {VM} \right)\left\{ {\left\langle {/Ti - \;\mathop \sum \limits_{V = 1}^{K} Lv\;\;\;\;\;Underloaded } \right\rangle \;/Ti - \;\mathop \sum \limits_{u = 1}^{K} Lv} \right. $$
$$ Overloaded = \;/Ti - \;\mathop \sum \limits_{i = 1}^{K} Lv\;\;\;Balanced $$
(1)

where \({T}_{i}\) present the given task, \(K\) is the capacity of VM where given data are compare with these value (i-e),\(i\), \(u\), \(and v\) (Ullah et al. 2019). To solve the above situation in VM and servicer of cloud computing load balancing technique used. When research improve the above Eq. (1) then the metric of VM improve which are mention in Fig. 9 for improvement of the above activity load balancing approach used.

2.4 Load balancing technique

Load balancing technique used for management of resource, data and application on circumstance that maximum throughput with slight time and also diving different type of traffic between VM’s and servicer without any impediment. Due to the growth and improvement in cloud technology there is increase of user and they demand for better services (Tracz et al. 2019).Virtual load balancer offer more elasticity to balance the workload by distributing the resource or traffic across multiple VM’s. Virtual load balancing aims to mimic software-driven transportation in the course of virtualization. It runs the software of a physical load balancing appliance on a virtual machine (Bamgbade et al. 2019). Load balancing technique has become an important approach that has been used for reduction of response time and provide maximum throughput with slight time duration. When multiple requests from user site are receive load balancing approach properly distributed them to different device according to their accessibility. If load balancing approaches are not used in any area of cloud computing then user and provider wait for a long time that they request for any resource and sometime deadlock occur (Mushtaq et al. 2017). Therefore different kind of load balancing technique used in cloud computing which are mention in Fig. 10 these technique are used different sections of cloud computing for different purpose.

Fig. 10
figure 10

Type of load balancing technique

Figure 10 show all type of load balancing which are used for different purpose in cloud computing but in this paper we just focus on load balancing technique which are used for VM resource allocation system. Essentially there are two main types of load balancing which are dynamic load balancing approach and static load balancing approach. In dynamic load balancing approach where it can be change able at any stage of the network during the process system. The main benefit of dynamic load balancing is that if any node fails during the network execution it not affects the system and it not affects the current stage of the network (Milani and Navimipour 2016). While static load balancing approach the performance on the current stage affect the network or it static load balancing approach which is not change able during the network execution. It normally works in homogenous and stable environment therefore it provides good result. These two types of load balancing approach used for different propose and these are future divided in to different groups (Zaki et al. 1996). For improvement in load balancing technique different algorithm are used or we can say load balancing approach can be implement with the help of algorithms. Different types of algorithm used for improvement in load balancing approach and Fig. 11 show the type of algorithm which is used in cloud data center for different purpose.

Fig. 11
figure 11

Algorithm used in cloud datacenter

Figure 11 shows all those area where different algorithms are design for improvement in load balancing purpose for cloud datacenter.

2.5 Load balancing technique facing different kind of issue

Cloud computing change the human life as aspect of different filed and environment by providing different service and resource according to the user demands. However cloud computing facing different kind of issues and load balancing technique is one of them. Load balancing technique also facing different kind of issues which are (1) VM migration: virtualization is process with the help of this technique several VM’s are created in single physical machine. These VM are self-governing in nature and have different configuration when a physical machine become overloaded then these VM are used to transfer the data using VM migration approach this approach facing algorithm connectivity problems at some points this process is known as VM migration (Xu 2012). (2) Single point failure: some dynamic load balancing approaches are designed by center node approach system it means all the decision of the movement of the network or data in the network depends on that center node. If the center node crashes down then the entire network of system will be down for that reason there will be a proper algorithm need to developed that manage and distribute the work load equally not depends on the center node if it down (Milani and Navimipour 2016). (3) Storage management: cloud technology has solved the traditional storage system because the traditional storage system consists of various issues but cloud allows the user to store heterogeneously without any access problems. But cloud storage increase day by day which causes replication and consistency issues in data size which make duplication data storage policy and replication issues. These issues make data set availability and increase complexity for load balancing technique because they take more time for exestuation. (4) Algorithm complexity: in load balancing technique algorithm must be implementing according to the demand and simple way. When we used complex algorithm it reduce the performances and accuracy of the system (Imdad et al. 2020). (5) Load balancer scalability: on demand of user different service is providing within the time load balancer section work. If good load balancer section used it solve the user demand it term of power storage and efficiently. (6) Selection policy: when the tasks or data are selected for transfer from one VM to another it used. This policy identifies the data or task based on amount of overhead that is required for migration from one point to another (Khan et al. 2019; Zaki et al. 1996).

3 Related work

In this section we present some of the pervious researcher work they modify, hybrid and introduce a technique for improvement in load balancing technique in cloud data center.

Wang et al. (2010), proposed load balancing Min Min (LBMM) algorithm where the framework of this algorithm consist of three levels which are request manager, server manager, VM manager. The request manger is responsible for receiving the workload and then assign to the server manager where servicer manager distributed the data to different VM where VM manager executed the data. In this section the author modified the VM manager in to two sections first it checks the data priority after the priority base sent the data to execution. The author found out that the proposed method suffered from some limitations such as the working process of this algorithm is slow due to the three level information where after the information step it check the parameter then assign the task to VM’s. Sharma (2015), modified the throttled algorithm where previous algorithm assigned the task to VM directly but after the modified it first requested to load balancer section of appropriate VM for that task it check the index then the task was assigned to VM. The author demonstrated some limitations of that proposed techniques which is the task are not given priority base. Domanal and Reddy (2014), defined good load balancing that improved the throughput by minimizing the response time along with fault tolerance. Normally load balancing problems occur during the over demand of VM’s. In order to overcome load balancing the author modified dynamic weighted live migration (DWLM) algorithm for selection and location polices in virtual machine. The author changed selection part in this algorithm for allocation of task. Yakhchi et al. (2015), proposed Cuckoo optimization algorithm which consisted of three different part in which first phase applied COA to detect the over load VM and transfer to under-loaded VM. First iteration information was stored in habit second iteration information were stored in ELR formula that checked the VM and sent data to load balancer section. Even though the proposed technique performed better as compared to the normal COA search but the execution time of the algorithm was increased. Monika et al. (2015), proposed honey bee galvanizing algorithm in which he increased honey bee forage technique with random stealing is employed for task and cargo leveling. They found out that if the VM become overload then the task moves to the neighborhood VM. If those load worth is less than threshold value, then this task were given to that VM. The proposed technique improved the efficiency parameter as well as the average time of network but network still facing problems in accuracy. Babu and Samuel (2016), proposed an algorithm name as enhanced Bee colony algorithm that works the same as the bee work for food source. Authors proposed load balancing mechanism work in to four different steps which are VM current load calculation, load balancing decision, VM grouping and task scheduling. The authors modified VM current load calculation section and changed the fitness value in this section. Even though the modification improved the quality of services and migration level but still exists the efficiency problem at data allocation section. Babu et al. (2016), proposed honey bee forging algorithm known as (HBLL-B) where this algorithm work based on the behavior of honey bee. Two main type of honey bee are their one of then who find food source and the other one who reap finder honey bee go for search of food source when they find they come to comb and make dance it show the quality and quantity of the honey. Then the reaper goes on that food source get the food return to the comb and make dance if the food source remains. Like the same honey bee forging algorithm work in cloud computing for load balancing purpose where different VM are like honey bee and task are food source. Forger chooses on VM to check the profit of food if the profit is less then cost it stop the working. The author change two main parameter of algorithm which fitness vale and iteration section. However due to this change the computation of the profit may cause an additional overhead in which some task was not assigning the VM which wait for next round. Rani and Kannan (2017), proposed Bat algorithm for load balancing technique by assuring that every VM take more or equal amount of data and can get at any stage. Therefore, Bat algorithm was used along with column maxima technique in which total execution time is minimized and load is balance with total number of VM. However, the proposed technique was not affective for large number of task because due to the column metric function which works two dimensions. Holland et al. (2017), proposed Artificial Bee Colony algorithm for load balancing purpose in VM where it work same as the bee work in the nectar. The author modified and initialized the population where iteration move the employed bee on the food, onlooker bee determine nectar amount move source of searching for new food source memorize the best food source until condition. The researcher modified the initialize population because it was pervious randomly s (i = 0) of FS (food source). FS is the size of employed bee equal to onlooker bee each iteration it took (i = 123) up to food source count. Even though the change of fitness function probability section improved but second phase onlooker section still not improved. Devi et al. (2018), proposed two techniques for improving load balancing. The first one is a theoretical concept in the network graph where graphic concept is used for monitoring the load and minimum dominating set (V-MDS) algorithm and second live virtual machine migration in virtual machine for load balancing improvement using new system and traffic-aware live VM migration for load balancing (ST-LVM-LB) algorithm and check the result with dynamic management algorithm (DMA). The researcher proved that the used of graph theoretical algorithm improved the load allocation but it took more time in term of verification. Fahim et al. (2018), studied about load balancing technique algorithm which are used for improvement in VM section. Authors compared five best algorithms in term of accuracy and performance of task. The study demonstrated that Bat algorithm worked more accurate in term of accuracy and efficiency in load balancing technique. Gamal et al. (2019), proposed an algorithm known as osmotic bio inspired algorithm used for load balancing purpose. The author used two algorithms which were ABC and ACO algorithm for load balancing in VM where both algorithms communicated with each other with the help of osmosis theory. One of the limitations of this algorithm was that the communication process took more time which cause the network slow. Krishna et al. (2020), proposed an algorithm known as OLOA in which modification took place at fitness function of Bat algorithm. Because the data distribution between different VM is done with the fitness function. Therefore, the author modified the fitness function at load balancer. The new technique improved the selection methods but still processing time was not increased significantly. Thanka et al. (2019), proposed hybrid algorithm using ABC and PSO algorithm where the study demonstrated that PSO algorithm facing the local search problems because at the last iteration of local search it did not complete the iteration therefore they changed with ABC algorithm because ABC algorithm is good at local search. The results showed that the proposed techniques improved in local search and it increased the data collection system however the data accuracy issue still existed. As the study of related works of improvement starting from traditional load balancing technique where no priority are given for any parameter and it concepts are very simple in implementation without error. Then researchers changed to activity based method by measuring every activity cost for all objects and outcomes and it showed that they are better than traditional. Next researchers shift to behavior based algorithm which are inspired from behavior of animals and other living organic system and the result of those algorithms were better than the previous two methods. The related work show that different type of algorithm used for improvement in load balancing section and different research implement different approach therefore we summarizes 106 paper in our result section that we get a brief information about load balancing approach in cloud data center as well as we know about VM and it parameter are changed for improvement of cloud computing. Our main focus will be machine learning algorithms that are used for VM task allocation system in cloud data center.

4 Methodology

To study briefly about load balancing technique for VM and what methods, are design for improvement in task allocation system for VM are used in cloud computing from 2015 to 2021 are discusses in this paper. Figure 12 show the paper selection methods form initial stage to final stage.

Fig. 12
figure 12

The paper collection steps for this paper

Figure 12 show the collection of paper where these papers goes to different steps after that we select 106 for summarization at final step. The main roles of summarization of these are that we collect information about, technique, which section modification occur, advantage, disadvantage which author and at which year it present the paper. After collection of all these information we will able to define the recent advancement took place in VM load balancing approach for cloud computing.

5 Why VM need load balancing

Load balancing technique provides a service for distribution of load among different VM’s equality. Main objective of this technique is continuous service in case of failure of any servicer in the network make any alternative services. In additional load balancing technique minimize the response time for data and improve task allocation system in VM which enhance the system performances at low cast. This technique also improve scalability and flexibility for those application which size are increase during next work execution as well as provide priority of different task during execution time with other task in the queue. Other objective of load balancing technique are reducing energy system improve network life time, accuracy, efficiency and improve the network quality of services (Oke et al. 2021; Sheikholeslam and Jafari Navimipour 2018).

6 Load-balancing policies

As mention in previously different load balancing technique are used for improvement different section of VM in cloud datacenter. For implementing these algorithm for load balancing technique different policy are used which are mention below: Figure 13 show these polices and rules.

Fig. 13
figure 13

Load balancing policies

Selection policy this process used identification method for data transferred system in the network and the selection of these task are performed based on amount overhead required migration after that required it transfer the data (Wong et al. 2014). Location policy: this policy different resource mention that they are under loaded or overloaded of that bases takes are sent to them. Which node or resource in under loaded on that bases it request to VM or service for data. During this process three main elements took participate which are probing, negotiation and random (Zarandi et al. 2020) Random approaches: the selection approach policy select the destination or receiver node randomly for transfer of the data in the probing approach the node used other node or resource to select this destination. Negotiation approach: node or resource negotiates with each other for proper load balancing approach (Kulik et al. 2002).Transfer policy in this kind of policy discovers the situation where task are sent to local to local or remote nodes. It consists of two approaches which are current task and last received tasks are used to identify the tasks information transferred. All incoming tasks are entire in to the transfer policy after that decision that task are distributed (Al-Karaki and Kamal 2004). Information policy this is the main policy of load balancing technique in which that contain all information in the system like agent, broadcasting, centralized polling and periodic policy are used for distribution of information between different node and resource in the network (Wang et al. 2019). All the above load balancing policies have relation with each other because when the task entire in the system and initially processed with the help of transfer policy. After this process the next policy decided whether it needs to transform to remote node or not. For checking the nodes statuses wither it under loaded or overloaded location policy used. If the node is overloaded then both transfer policy and location policy collect required information from the information policy to make decision (Al-Hashimi et al. 2019).

6.1 Load balancing technique performance

Load balancing techniques are design for improvement of different parameter in the network and these parameter results are comparing with pervious result. If the current technique improves the performance in terms of that parameter in the network it means the current load balancing technique working properly. Different researcher defines different parameter to check the performance of load balancing technique. The performances of any load balancing techniques are evaluated based on these metrics. Exestuation time: is also known as completion time in which a specific cloudlets or task time need to complete the job. Or the time taken by a job for running in system is known as exestuation time.

$$ Exe_{Time} = Task_{(i)} \;(Fnh_{(Time)} \;Srt_{(Time)} $$
(2)

where \((Fnh_{(Time)} \;\) denote the finishing time and \(Srt_{(Time)}\) present the starting time.

Performance: is the process in which number accomplished tasks or resources on the demand of user in the network are known as performance (Eusuff and Lansey 2003).

$$ Perfromance = Task_{{\left( i \right)}} \frac{{\left( {i*P_{{\left( {cl} \right)}} } \right.}}{R} $$
(3)

where I denote the instruction \(P_{(cl)}\) represent the performance and \(R\) exestuation time.

Priority: is the process in which a tasks or job are given priority for exestuation because it has demand for user site or it need in the network or for different process it need this is called priority.

$$ \Pr iorty = \sum\nolimits_{Task(i)} {(Exe_{(Time} + \;Capacity\;number\;of\;request} $$
(4)

Reliability: is the ability of complete takes in the network with the given time and it provide an assurance of complete given number of task without avoid or reduce the failure rate the network this is known as reliability.

$$ {\text{Re}} liability\; = \frac{{\sum {Task_{(i)} Exe_{(Time)} } }}{{Total\;_{Time} }} $$
(5)

Response time: when a user request for data or tasks and it start execution and come out form the waiting queue this process is known as response time.

$$ {\text{Re}} sponcetime = \frac{{\sum {Task_{(i)} Exe_{(Time)} } }}{{Total_{(Time)} }} $$
(6)

where \({\mathrm{Sub}}_{\mathrm{Time}}\) present the submission and \({\mathrm{Starting}}_{\mathrm{Time}}\) present the starting time.

Availability: is the committable operation in which cloud provider will able to user demand or cloud resources are able when user request for specific operation. Availability is the combation of security, accessibility and serviceability in cloud computing (Taylor 2013).

$$ Aviabilty = \sum {\frac{{Mt_{(ns)} }}{{Mt_{(ns)} + Mt_{(hr)} }}} $$
(7)

where \(Mt_{(ns)}\) is present response time and \(Mt_{(ns)}\) is mean time of repair time of resource i.

Bandwidth: is the process which present the maximum data transfer rate in the network this process present the network connection in given number of time or it present the speed of the network in the cloud computing.

$$ BW = \sum {{\text{Re}} source_{(i)} } \left( {\frac{Size}{{Capacity}}} \right) $$
(8)

Cost: is the amounts which we spent for the usage of resource in cloud computing and different cost are there for cloud provider and different user. These costs depend on the resource and usage.

$$ {\text{Cos}} t\;{\text{Total }} = \sum {_{resource(i)} } (C_{i} *\;T_{i} ) $$
(9)

where \({C}_{I}\) present the cast of resource and I present the unit time and \({T}_{i}\) is the utilization of time.

Energy: is the strength of energy which required for cloud data center on that based cloud computing start working and different performance are performed based on these energy. Cloud data center used different kind of energy system.

$$ Energy\;Tool = \sum {{\text{Re}} source_{(i)} } \int\limits_{Start\;time}^{Finish\;time} {E_{i} } (FT) $$
(10)

where \(Ei\) represent the energy is consumed by the different resource and I present the starting and finished time. Throughput: is the process in which total number of tasks are execute successfully within given time period in cloud data center is known as throughput.

$$ Throughtput = \sum {_{Task(i)} } (Exe_{Time}) $$
(11)

Workload: present the ability of data center or processor work is known as workload for calculating of world load in cloud data center.

$$ Degree\;of\;imbalance = \frac{{MaxTask\left( {_{{ExeTime)}} - MinTask_{{ExeTime)}} } \right)}}{{AvgTask\left( i \right)\left( {Exe_{{Time}} } \right)}} $$
(12)

Utilization: presents the total amount of resource which is actually consumed in data center during network execution. The main objective is that we reduce this utilization of resource and improve the network life time. (Neghabi et al. 2020; Johansson et al. 2004).

$$ Utilization = \frac{{\sum {Task\left( i \right)\left( {Exe_{{Time}} } \right)} }}{{Max_{{Task}} \left( i \right)\left( {Ex_{{Time}} } \right)}} $$
(13)

7 Simulation environment

Cloud computing is getting widely attention due to its dynamic nature and flexibility. Due to these property organizations and researcher are taking an interest in this technology. And implement by evaluating different data for different experimental purpose. Hence it becomes very expensive in real-time simulation therefore different simulation tools are used. Figure 14 shows the different simulation software which are used in cloud computing for different simulation purpose.

Figure 14 shows the different simulation tool which I found during the study of different paper but most of the researcher used general cloud modeling approach and data center providing approach software tools in their simulation processes.

Fig. 14
figure 14

Different simulation tools

8 Result and discussion

In this section we present the summary of 106 papers which are used for load balancing purpose for resource and task from 2015 and 2021. The summary of these paper consist of technique name, method, year, advantage, disadvantage and references. Table 4 shows the summary of those papers which address the problems and approaches that are used to solve those issues taking different parameter.

Table 4 Summary of selected paper

Table 4 present the summary of 106 papers from 2015 to 2021 during the summarization steps it seem that most of the research work took place 2017 and 2020 because more number of paper published these two year as mention in Fig. 17. After the study of those papers it seems that most of the research focuses on to improve the makespan and request property level. Figure 15 show the number of parameter that different researcher try to improve these parameter by design their own method and techniques.

Fig. 15
figure 15

Different researcher improve these parameters

Figure 15 present the parameter name and how may time different research try to improve theses parameter. According to the result more of the researches focus on makespan, power consumption, QoS, response time. After the study of these papers it seems few parameters are not focusing properly they need more time and discussion. Table 4 presents the summary of those sections of VM where it needs change or where it section modified these all are mention in Table 5.

Table 5 Result selection

Table 5 show those section of VM where the modification took place with the help of which algorithm after the improvement of those section which parameter improve all these information mention in Table 5. Figure 16 shows those sections which are modified by different research for improvement in VM task allocation system for cloud computing.

Fig. 16
figure 16

Ratio of different parameter improved

Figure 16 present those section which are modified by different research during the work form the result most number of researcher work architecture section then, service level, VM migration section as so on but few researcher focus on VM replacements system. Figure 17 present the total number of paper published per year wise.

Fig. 17
figure 17

Paper published per year

Figure 17 show the total number of downloaded from 2015 to 2021 must number paper used in this paper was 2017 and 2020.It means load balancing approach technique most paper published these two year. Figure 18 show those techniques which are mention by less number of researches and these techniques are important for future research.

Fig. 18
figure 18

Suggestions for future research

Figure 18 show those sections of cloud computing which need more attentions like behavior of system, VM replacement policy, and future load prediction 5G network connection, integration with other technology load section, attacker policy and auto scaling. These all section can be improve with the help of load balancing approach but in this review paper we find few number of researcher attempt to solve these issues. These are important and future research section therefore researcher need attentions to this section in the coming time.

9 Summary

Cloud datacenter consist of different physical and virtual resource as we know that hardware resources configurations are remain the same darning communication. Where when user request for resources in cloud datacenter for this process service broker policy are used. Different algorithm work under these servicer broker policies in cloud datacenter and they provide better result. Applying predication algorithm for cloud computing are recent study where different researcher applying different machine learning algorithm (ML) used for forecasting. One of the main approaches they are using is VM migration approach and adapted for the cloud DC. Where applying forecasting in VM migration improve the data classification therefore it improve the load banning approaches. Different researcher implement ML algorithm for predication like CPU, RM, and load balancing approach in cloud data and provide better result. ML Algorithm also applied in VM section as local user agent for predication approach these approach was help full in the load predication in different area like CPU, RM and storage. For improvement in VM resource allocation host load detection method used in cloud datacenter due to this approach the performance of cloud computing improve as infrastructures purpose different researcher work on this section. Researcher also work on VM selection policy as well as service level agreement (SLA) these all activity are performed for improvement in cloud computing.

9.1 Analysis

According to the literature, we consider that most of the problems of VM task allocation system for cloud computing are solved using ML algorithm and different models. For improvement in cloud computing different section of VM are improved like resource allocation, data distribution, quality of services, VM migration, and VM replacement and server broker policy. For the improvement of above parameters different technique are used and load balancing is one of them. So taking load balancing approaches 70% VM migration section improve 20% server broker policy are improved and 10% resource allocation are improved in the give related work.

9.2 Limitations

Although the use of different machine learning algorithm and other frame work model improve different section of VM for cloud computing but still limitations remain constraints which are as:

  1. i.

    Still need improvement in the services policies.

  2. ii.

    Still need improvement in section gent for predication.

  3. iii.

    Need to focus more on predication technique.

  4. iv.

    Need more focus on resource scheduling.

  5. v.

    Need more focus on live VM migration and VM replacement section.

  6. vi.

    Need improvement towards a cloud migration framework.

  7. vii.

    Need improvement toward a trusted framework for cloud computing

10 Conclusion

Task and resource distribution for VM is prime changing task in cloud computing therefore it getting more attention for researchers. This review paper present a state of the art survey about the technique, parameter, rule and specification that are used for load balancing in VM for cloud datacenter. As we know that different parameter are used to check the performance of load balancing approach in cloud data center. For improvement of these parameter different kind loads balancing policy and method are used in different section of VM’s. All those technique and parameter are discussed which are used in different research paper and in future research direction. We mention those issue which are not given time by many research and some of them very important because cloud technology now merge with modern technology like IoT, senior network and 5G therefore now it time we work more to those issue which we face due to technology integration and energy. This review paper provide information to those researcher who want to start working in cloud computing.