Teaching Information Systems Technologies: A New Approach based on Virtualization and Hosting Technologies

—This paper describes how to provide suitable computing systems for information systems technologies learning using virtualization and hosting technologies. The main functionalities and components of an university learning lab based on these technologies are presented. All the software components used in its development are open source. Also, the use of this lab, providing the computing systems required for the learning activities of different matters related to the information systems technologies, is illustrated. The model of computing lab proposed is a more sustainable and scalable alternative than the traditional academic computing lab.


I. INTRODUCTION
Traditionally, the academic labs of the Computer Science Engineering School of the University of Las Palmas de Gran Canaria (CSES) used to perform the learning practices activities related to information system technologies fulfill two configurations: the first consists of a set of computers with different system installations in each of them, belonging each of these installations to a single student. The second configuration consists of a local network, where the student can use any computer of the network using a centralized authenticating service and a network file system to provide a shared storage space, not having administration privileges the users (students and teachers) of a lab of this kind. Currently, these labs must provide the resources required to carry out the learning practice activities related to four kinds of matters: operating systems principles, operating systems administration, systems programming and information systems technologies. Considering the competences, skills and requirements of these practices activities and the resources availability of the labs, the question of how to provide the required resources for these activities arises. Normally, the solution adopted by the academic authorities has been to schedule the activities in different semesters sharing the lab resources between the students of a subject.
The use of an alternative model of academic lab is described in this work. This alternative model, based on the hosting and virtualization [1] technologies, can adequately provide the required resources for the above academic activities. Additionally, this alternative model of lab improves the availability of different systems configuration, the scalability and the efficiency of the traditional lab. The accessibility of the resources for the practices tasks is improved, because the resources are available, for students and teachers, in any place at any time, the only requirement is to have a system (desktop computer, laptop or tablet) with Internet access.
In the design of the alternative model of lab the clustering technology has been used in order to provide high availability of the basic resources (CPU, memory and disk space) for the system used by students and teachers. Also, the virtualization technology has been used for two reasons, the first, to provide the heterogeneous system configurations required by the different practices activities, and the second, to isolate the systems of the student avoiding that the faults and errors affect other systems. Finally, the cloud computing paradigm is also used in order to provide a high accessibility to the technical maintenance system of the lab. In the current implementation of the lab, all of these technologies are deployed using a computer network formed by 7 Linux CentOS servers that execute a set of open free software services.
The operation of the lab is based on a set of tasks that can be remotely executed by web request performed by the users of the lab (student, teachers and maintenance technical staff). Examples of these requests are: lab user creation, lab user remove, virtual machine creation, virtual machine remove, virtual machine configuration edition, virtual machine start, power off a virtual machine, suspends a virtual machine, save the state of a virtual machine, clone a virtual machine, virtual machine migration, etc. Logically, some of these actions can only be executed by the maintenance technical staff, being some of them automatically executed by the system, for example virtual machine migration.

II. RELATED WORKS
The idea of virtual labs that lack the physical presence of students in the context of higher education has been referenced by different authors. For example, Ma [2] introduced the name of remote labs, Ross [3] used the denomination of web labs, Winner [4] the concept of distributed learning labs and Ko [5] the name of virtual labs. In the bibliography we can find several proposals regarding virtual computing labs in the context of higher education. In this line we must mention the experience of IBM's Cloud Computing Academy in association with several American universities, such as: Georgia State University [6], North Caroline State University [7], New York University [8], etc, that have deployed a system to provide virtual computing resources to students, faculties and staff. The access to the virtual labs is made by a webbased service for scheduling and provisioning remote access to high-end computational resources. Another case to remark is the one described by Hardaway [9] in the Saint Louis University. This institution has created a remotely accessible computer lab where students receive full server administration privileges so that they can configure their servers, giving them the opportunity to work on networking, security, and database administration using the Linux operating system. This experience should be remarked because the virtual lab is provided by an outsourcing service. The resulting partnership provided each student in a senior-level undergraduate Web Applications and Architectures course with a virtual Linux server as well as full administrative rights. Finally, Burd [10] explains the implementation of a specific virtual lab using remote access to dedicated workstations and supporting students enrolled in degree programs in management. The goal of the virtual lab was to improve student access to computing resources, providing reliable and standardized software and hardware environment for use in management courses. The model of lab proposed can be implemented at relatively low cost by reallocating resources dedicated to existing physical labs.

II. A CASE OF USE
The system developed is been used to teach practical contents related to the following matters: Fundamentals of Operating Systems: In this subject students must acquire the competences and skills that permit them to use the resources provided by an operating system at user level. This is achieved from two forms; knowing the use of the system programs and making use of the operating system libraries in order to develop user programs. To perform the practical activities in this subject, a general purpose multitask and multiuser computer system with a basic software development environment is required. The student does not need to have any special access privileges in the computer system used in his activities. Currently, the number of students that course this subject is 150.
Operating System Administration: In this subject students must acquire the competences and skills that permit them to perform the basic activities related to the operating system administration. These system activities are: installation, configuration, maintenance and tuning. To achieve this goal, the student must know how to hand the three basic resources: system commands, command control languages (shells) and system documentation. To perform the practical activities in this subject, a dedicated general purpose multitask and multiuser computer system with a basic system software development environment is required for each student. The student needs to have special access privileges in the computer system used in his activities. Because the student may corrupt his system, the lab must provide services for fast system installation and recovering (network booting, IP automatic configuration, repository containing operating systems distributions and images). Currently, the number of students that course this subject is 75.
Systems Programming: In this subject students must acquire the competences and skills that permit them to develop system software components (system programs, system services, system libraries, operating system kernels and dynamic modules of the kernel). To achieve this goal, the student must know the use of the resources provided by the software development system and the discipline for this special kind of software production. To perform the practical activities in this subject, a dedicated general purpose multitask and multiuser computer system with a complete system software development environment is required for each student. The student needs to have special access privileges in the computer system used in his activities. Because the student may corrupt some components of the system, the lab must provide services for fast system installation and recovering (network booting, IP automatic configuration, repository containing operating systems distributions and images). Currently, the number of students that course this subject is 25.
Information System Technologies: The main goal of this subject consists of the student acquires the competences and skill for the installation, configuration, maintenance and tuning of the technologies used by modern information systems. Therefore, concepts, resources and techniques related to high availability, virtualization, cloud computing, etc are used by the student. The student needs to use a set of different resources (several computers, several network devices, storage area networks and several software packages of distributed services). Additionally, the student needs to have special access privileges to the technology infrastructures used in his activities. Because of the student can corrupt some components of this infrastructure, the lab must provide services for fast system installation and recovering (network booting, IP automatic configuration, repository containing operating systems distributions and software services). Currently, the number of students that course this subject is 25.
In the traditional model of computing lab, to supply the resources required for the practical activities of these subject, excepting Fundamentals of Operating System, a computing lab with a considerable number of elements (computer, network hardware, stored devices, etc) is required. Additionally, the use of these resources assigned to each subject is dedicated, that is, these resources cannot be shared by other subject while the practical activities are been executing. This fact implies restrictions in order to schedule the development of the practical activities in places (laboratories) and time (timetable) for the academic authorities. The traditional solution to this problem has been to schedule the practical activities in different laboratories and semesters, sharing the lab resources the student belonging to the same subject.System Description: Goals and Technology used The main objective achieved with the system developed can be expressed in the following way: To provide suitable computing labs for the teaching and learning practical activities required by the different matters related to computer science and information technologies. Additionally, these computing labs can be accessed from anywhere at any time using common and popular computing resources (internet access and personal computers like: desktops, laptops and tablets). To achieve this goal, it is necessary to fulfill the following technological requirements:  Distributed and scalable system architecture.  Capacity to provide a high spectrum of computing systems and configurations required by different subjects of the computing curriculums.
 High accessibility of the labs resources for students and teachers, using internet.  High availability of the labs resources for students and teachers.  Sustainable use and management of the labs.  Centralized control of the labs. This implies a centralized management, administration and maintenance of the labs.  High availability for controlling the labs. This implies a high availability for managing, administrating and maintaining the labs.  Assumable economic costs of the labs.
To fulfill these requirements the architecture of the system is based on the use of the following main elements, see Fig. 1:  Free and open software.  Cluster computing in order to achieve computing high availability. Specifically, Red Hat Cluster Suit [11] has been used in the architecture implementation.  Storage area network (SAN) for providing high availability and massive storage space. The iSCSI technology is used to build a shared storage area, specifically the software package named iSCSI-Target [12].  Virtualization technology in order to provide a high spectrum of computing systems and configurations. Specifically, Xen Technology [13] is the virtualization solution used by the architecture.
 Balanced computing in order to achieve a sustainable working of the system. Specifically, the balancer software named Load Balancer Virtual Machine (LBVM) [14] is executed in the system.  Cloud computing in order to provide high availability for labs controlling. Specifically, the web software named OpenQRM [15] is used for administrating the labs, see Fig. 2.
From the side of the users (students and teachers) the virtual labs can be accessed using viewer remote desktop running on different devices: desktops, laptops, tablets, etc.

III. PROVIDING VIRTUAL LABS
All the technologies mentioned in the previous section have been integrated in the architecture in order to provide different virtual computing labs. These virtual computing labs provide users (students and teachers) with the resources (virtual computing system) required to execute the learning and teaching activities. Additionally the virtual labs provide maintenance staff with facilities for controlling, administrating and maintaining labs resources (real resources of the lab infrastructure and virtual resources). To explain the functionalities of the virtual labs, we describe how the maintenance staff works in the context of three representative subjects mentioned in the section II, these are: Fundamentals of Operating Systems that is a representative case of subject that requires a basic computing platform; the second subject is Operating System Administration that is a representative case of subjects where the student must have access to all the resources of the computing system with all the access privileges in order to execute the practical activities; finally the third subject is Information System Technologies that is a representative case of subject that is very demanding in resources (amount and types) to execute the practical activities. To describe the working model of each virtual lab, a common scheme will be used; this scheme consists of the following phases: Phase of specification of the computing resources types and amount of them. This specification depends on the requirements of the learning practical activities and the number of students in practices. In our model, there are three types of resources. The first are the basic resources formed by the main configuration specification of the virtual machine hardware (type and number of CPU, the amount of main memory and disk space, the type and number of network interfaces, type of screen and other input/output devices) and the operating system to be installed on the virtual machine. The second are the hardware and software resources that depend on the specific characteristics of the practical activities, for example: additional hardware such as network interfaces and specific software packages. The third are the resources required to facilitate the student work, such as office software, programming environments, editors, etc. The result of this phase is a set of specifications of hardware configurations of the virtual machine and a software system image that fulfill with the practical activities to perform in the virtual lab.
Phase of declaration of the virtual lab users (students and teachers), specifying for each of them: the access privileges to the virtual systems, the system identification and the personal password to access to the virtual resources.
Phase of the lab deployment. In this phase all the virtual systems are created and initialized. Initially, each virtual system created is a clone of a system defined in the first phase. Once the system is created, it can be accessed by any terminal with an internet connection using a web browser (java is necessary in this case) or using a remote desktop viewer program. The monitoring and control of the technological infrastructure and virtual systems of the virtual lab is performed by a cloud system that allows the technical staff to manage a data center. By this software the maintenance tasks of the virtual lab can be performed remotely, in a centralized way and with high availability. Additionally, this system provides information about the use (amount and duration) of the lab resources by the users.
Phase of lab termination. This phase is executed when the course finishes, consisting in the automatic removal of all the virtual resources of the lab.

A. Fundamentals of Operating Systems Virtual Lab
The lab for this subject, in the traditional model used in the CSES, is configured by a local network formed by 25 computers. Students can use any of these computers to perform the practical activities, existing additionally a server in the local network that permits a centralized authentication of the users and providing a centralized storage space for the user data. For a course with 125 students in this subject, the practical sessions must be performed in five groups of students at different times.
In the new model of virtual lab, for this subject and for 125 students, the four phases of the lab operation can be explained as follows: The phase of specification of the computing resources types and amount of them produces a configuration of virtual systems with the following hardware characteristics: 1 CPU, 512 Mbytes of RAM, 5 Gbytes of disk space and 1 network interface. About the software, the main components are: the operating system (Linux Fedora LXDE Distribution), the specific software required for the practical activities is a basic C/C++ programming environment (compiler, libraries, debugger and graphical editor).
The phase of declaration of the virtual lab users is performed using a web interface provided by OpenQRM system. Using the OpenQRM interface, see Fig. 3, the student must register, and if the registration is authorized, then the OpenQRM users control module sends an email to the user containing instructions indicating the steps to activate his user account in the system. Once the user account is activated, then the system sends a second email to the user explaining how to request resources of the virtual lab.
The phase of the lab deployment begins when the administrator approves the user requests of virtual systems, see Fig. 4. The approval of the user request implies the automatic creation of his virtual system. When the creation of a virtual system is completed successfully, then an email is sent to the user informing how to access to his virtual system (IP address, communication port number and user password). Currently, the time required to create a user virtual system is about 10 minutes. After of the creation, the virtual computing system is available for the student or teacher, using a remote desktop viewer, see Fig. 6 and Fig. 7.
The last phase, phase of lab termination, is reached when the course ends. The date of the end of the course is a data provided by the administrator in the phase of deployment. When this date is reached the system executes automatically the following actions: first, a mail to the users warning about the removing of the virtual machines of the lab is sent; in second place, the virtual systems of the users are backed up making a snapshot of each virtual machine and, finally, the virtual machines are removed.
Assuming this working scheme, for 150 students, the following basic resources infrastructure are required to support the virtual lab with all the virtual machines running:  The cluster with 12 active nodes to provide the virtualization service, having each cluster node a processor with 4 cores, 8 Gbytes of RAM and 1 Gigabits network interface.
 A shared stored area of 1 Terabyte to host all the images of the user virtual systems and the files used by the load balancer.  OpenQRM server to provide the web portal to manage the virtual lab.

B. Operating System Administration Virtual Lab
Traditionally, in the CSES the practices activities of this subject are performed in a lab with a private local computer network formed by 25 personal computers and a computer server. The personal computers are used by the students and teachers to perform the system administration practices activities, so they must have administrator access privileges to the system. The server provides a set of services to the students system, specifically: operating system distributions repository accessible from the student system in order to install and recover the operating system used in the practices, a PXE service for remote booting of the student computers and a DHCP service for automatic IP configuration of the student computers. At the beginning of the course, a personal computer with a disk partition of 10 Gbytes is assigned to each student. This assignment is permanent during all the semester. To perform practice activities, the student can only use the assigned computer system and the services provided by the server lab. During the course, the computing systems used in this lab by the students cannot be used to perform the practices activities of other subjects. Therefore, in this subject and for 75 students, the practices activities are organized in three students groups that perform the practice sessions at different times, being each personal computer shared by three students.
The configuration of the lab using the new paradigm proposed, for this subject, is very similar to the configuration lab explained in the previous section. Basically, the differences between these virtual labs and the previous ones are the configuration of the virtual computing system image used by the students, defined in the first phase of the virtual lab operation, and the technological infrastructure required by the virtual lab. Regarding the configuration of the virtual computing system used in the practices tasks, the main characteristics are:  The virtual hardware consists of 1 cpu, 1 Gbyte of RAM, 10 Gbytes of disk space and 1 network interface. The operating system used is the Linux CentOS Distribution.  Specific hardware and software are not required because the topics developed in this subject are related to basic aspects about operating system administration. If advanced topics were developed, then new hardware elements must be added, for example: additional virtual disks and network interfaces.  In order to facilitate the students the reporting of the practices activities, the OpenOffice package has been included in the virtual computing system image.
The technological infrastructure required by this virtual lab, for 75 students and running all the virtual computing system is the following:  The cluster with 12 active nodes to provide the virtualization service, having each cluster node a processor with 4 cores, 8 Gbytes of RAM and 1 Gigabits network interface.  A shared stored area of 1 Terabyte to host all the images of the user virtual systems and the files used by the load balancer.  OpenQRM server to provide the web portal to manage the virtual lab.

C. Information Systems Techologies Virtaul Lab
To perform the practices activities of this subject, very different kinds of hardware and software resources and a high amount of them are required. These resources are handled by students to admin and deploy the technological infrastructure used in modern information systems. So, concepts and techniques related to, for example, high availability, security, virtualization, cloud computing, etc are explored in the practices activities. Traditionally, in the CSES, the lab used in this subject has a very similar structure to the lab used by the subject of Operating System Administration explained in the previous section, being the main difference the number of available computing systems for the students. At the beginning of the course, 3 personal computers with a disk partition of 10 Gbytes is assigned to each student. This assignment is permanent during the semester. To perform practice activities, the student can only use its assigned computers and the services provided by the server lab (PXE service, DHCP service, and software repository). During the course, the computing systems used in this lab by the students cannot be used to perform the practices activities of other subjects. Therefore, in a lab with 30 personal computers, for 25 students, the practices activities of this subject is organized in three students groups that perform the practice sessions at different times, being each personal computer shared by three students.
The configuration of the lab using the new paradigm proposed, for this subject, is very similar to the configuration of the lab explained in the previous section. Basically, the main differences are the number of virtual machines assigned to the students, the hardware and software configuration of these virtual machines and the technological infrastructure required by the virtual lab. Regarding the configuration of the virtual computing system used in the practices tasks, the main characteristics are:  The virtual hardware consists of 1 cpu, 1 Gbytes of RAM, 20 Gbytes of disk space and 1 network interface. The operating system used is the Linux CentOS Distribution.  Specific hardware and software elements are required because the topics developed in this subject are related to advanced topics about information system technologies. Specifically, additional virtual disk and network interfaces are added to the hardware configuration of the virtual machines. In addition, the following software packages are included in the software image of the virtual computing system used by the students: Red Hat Cluster Suit (distributed and high availability), Linux Kernel based Virtual Machine (virtualization technology), iSCSI-target software package (storage area network), Load Balancer Virtual Machine (load balancer for virtual machines). Also, during the course, students must install software for other system services: MySQL (data base server), PHP programming language interpreter (scripting for dynamic web pages) and Apache (web server). To provide illustrative cases of platforms, students must install other software components such as: Moodle (elearning platform), Drupal (content management system), and OpenERP (enterprise resource planning and customer relationship management)  In order to facilitate students the reporting of the practices activities the OpenOffice package has been included in the initial virtual computing system image. The technological infrastructure required by this virtual lab, for 25 students and running all the virtual computing system is the following:  The cluster with 12 active nodes to provide the virtualization service, having each cluster node a processor with 4 cores, 8 Gbytes of RAM and 1 Gigabits network interface.  A shared stored area of 2 Terabyte to host all the images of the user virtual systems and the files used by the load balancer.  OpenQRM server to provide the web portal to manage the virtual lab.
IV. LOAD BALANCER This section is dedicated to shortly describe the behavior and configuration of the load balancer (LBVM) proposed in this paper. LBVM allows sharing virtual machines between physical servers onto a predefined cluster.
The LBM script is the manager of the load balancer and is used to perform the following tasks on virtual machines, examine log files and reports, migration of virtual machines from one server to another and add an existing virtual machine to the balanced cluster.
The load balancer is running as a clustered service, it uses different algorithms to decide what virtual machine should be migrated or notify their state without migrate, but if if is migrated, the LBVM starts the migration process even if the virtual machine is executing and is being used.

A. Balancing policy
In this work the selected criterion to determine the status of the cluster is the amount of RAM available. RAM is a necessary resource to run a virtual machine, so the more RAM available the more virtual machines can run at once.
The chosen balancing policy has been called "policy request on demand." This policy works as follows: initially, the cluster has a node where the virtual machines are hosted; all virtual machines are hosted on this node. When the node reaches a certain limit in the RAM usage, it automatically turns on a node in order to improve the system performance. Thus, the cluster nodes are turned on when needed and off when the nodes are not required.

B. Shared storage system
For the correct operation of the balancer and the cluster it is necessary to have a shared storage system. All the configuration files for each virtual machine are stored on the shared storage system so that all nodes see the virtual machines in the cluster.
When you create a new virtual machine, it is added to the cluster using the LBM script that stores the configuration file of the virtual machine on the shared storage system and includes the machine on the balancer. The new virtual machines are handled as cluster services and thanks to the shared storage it can be migrated using live migration.  Figure 5 shows the proposed network architecture that allows the connectivity of each virtual machine to the outside.
Virtual machines are like guests in the cluster nodes which act as hosts. For a machine to have connectivity to the outside and at the same time being seen by other computers within the same network, it would be necessary to establish the network configuration as bridge mode. Using this configuration mode, the virtual machine is at the same network level as the host and therefore we can make any settings in the virtual machine as if it were a physical machine.
The "dhcp" plugin of OpenQRM provides IP addresses to virtual machines and configures their gateways to address the machine called "Equipo IPTables" in Figure 5. The machine called "Equipo IPTables" has configured an IPTables service that acts as a gateway between the virtual machines network and the wireless router network. This configuration allows virtual machines to be accessible from the outside, for example, using a remote desktop client to connect to the virtual machine. The wireless router redirects incoming packets to the machine called "Equipo IPTables " and this computer redirects the request to the appropriate virtual machine according to the IPTables configuration.

VI. VNC ACCESS
VNC is an open source software, based on a clientserver structure, which allows us to take control of the server computer remotely via a client computer.
To allow access from anywhere in the world to the virtual machines, this paper proposes setting up a VNC server on each virtual machine. The configuration is independent for each virtual machine and it is performed by a script launched the first time that the virtual machine is started.
With a VNC server configured on each virtual machine and with our network architecture, a user only need a VNC client or a web browser with java enabled to connect to that server. As shown in Figure 5 users can connect from any terminal with a VNC Client, as can be seen in the example shown in Figure 6 where we have connected to a VM from a Samsung Galaxy S II mobile phone. We have also established connections from other type of devices like Ipad.
VII. COMPARATIVE ANALYSIS This section is dedicated to describe a comparative analysis between the virtual computing lab (VCLAB) model proposed in this work and the traditional computing lab (TCLAB) model. To make this analysis, we have compared the results obtained by the application of the two models in the subjects mentioned in previous sections (Fundamentals of Operating Systems, Operating System Administration and Information Systems Technologies) belonging to the Computing Science Degree curricula of the CSES. In the comparative study the traditional infrastructure to support a TCLAB used by the CSES is assumed. Basically, this is configured by a set of computing systems available for the users to perform the practices activities (working stations) and an infrastructure providing a set a common hardware and software resources to the working stations. This common infrastructure is configured by a server computer and a set of network elements that permit the integration of the working stations and the server in a local computing network. In this analysis a common hardware configuration for working stations and the nodes of the computing cluster used in the architecture of the VCLABs has been considered. The main elements of this common configuration are: 4 Cores processor, 8 Gbytes RAM, 500 Gbytes disk space and 1 Gigabits network interface. Finally, the comparative study is made using the following set of criteria: number of computers required by the lab, ability to share concurrently the lab infrastructure, lab relocation, required human resources and fault tolerant of the learning practices activities against lab infrastructure faults.
Infrastructure required. This criterion refers to the type and amount of resources required to deploy the lab. The number of computers required in the VCLAB model is fewer than the number of computers required in the TCVLA model. Table I shows the number of computers required in the two models for the cases of subjects mentioned previously. Considering that the VCLAB model uses distributed computing (clustering and storage area network) and its access is remotely made, in this model the required network infrastructure is higher than the TCLAB model, specifically the band width of the network connection is critical.
Ability to share concurrently the lab infrastructure. The VCLAB model permits, regardless of practice activities nature in question, the sharing of the lab infrastructure to perform the practices activities of different subjects. From the point of view of the type of use required by the users from the lab computing systems, these cases of subjects are very representative examples; use without special privileges ( Fundamentals of Operating Systems), use with special privileges (Operating Systems Administration) and high demanding use (Information Systems Technologies). Applying the VCLAB model, for the  three subject cases, the lab infrastructure can be concurrently shared. Table 1 shows the resources required for each of the subject cases analyzed in this work. For the VCLAB model case, this infrastructure can be concurrently shared to learn different matters.
Lab relocation. This criterion refers to the ability for physical relocation of the learning practices activities. The VCLAB model permits that the learning activities can be performed in any place; only a device with internet access is required, for example: desktops, laptops, tablets, etc. In contrast, the TCLAB model requires the physical presence of the student in the lab to perform the learning activities.
Time availability. It refers to the availability to perform the learning activities at any time. This availability is a consequence of the two previous availabilities achievement (to share concurrently the lab infrastructure and lab relocation). Therefore, the learning activities can be made at any time in the VCLAB model. In contrast, in the TCLAB model the activities realization is conditioned to the physical lab accessibility and the working stations availability.
Required human resources. In the VCLAB model the technical support can be made remotely and centrally. Additionally, a high number of technical support tasks can be executed automatically. In contrast, the TCLAB model requires the physical presence of the technical staff in the lab. As a consequence, the VCLAB model requires fewer human resources than the TCLAB model. For example, the installation and initial configuration of the lab infrastructure in the VCLAB model may be made only once. However, in the TCLAB model, when the lab is used in different semesters by different subjects and depending on the nature of the practices activities, frequently these technical tasks must be made at the beginning of the semester. Faults tolerant. The VCLAB model architecture provides high availability, so the development of the practical activities has a greater immunity from faults and errors in the infrastructure than in the TCLAB model. For the same reason, when a fault occurs, the recovery time in VCLAB model is less than in the TCLAB model.

VIII. CONCLUSIONS
The use of a virtual hosted computing lab model has been presented in this paper. In order to provide high availability, flexibility, scalability and accessibility, the architecture of this model is based on the computing models of clustering, virtualization and cloud. All the software components used in the architecture implementation are open and free: Red hat Cluster Suit for clustering, Xen for virtualization, VMLB software for virtual machines load balancing and the data center manager OpenQRM for cloud computing.
The proposed model has been used in the Computer Science Engineering School of the University of Las Palmas de Gran Canaria, to perform the learning practices activities of some subjects of the curricula of Computer Science Engineering degree: Fundamentals of Operating Systems, Operating Systems Administration and Information Systems Technologies. Also, in this work a comparative analysis with the traditional lab model has been presented, being the main results of this study the following: this virtual lab model is a more sustainable (it requires fewer hardware, software and human resources), scalable and flexible than the traditional computing lab model, presenting a high level of availability and faults tolerant. Additionally, the proposed model has some features that the traditional model does not have. These are: the ability for physical relocation of the learning practices activities (lab relocation), the sharing of the lab infrastructure to perform the practices activities of different subjects (sharing concurrently the lab infrastructure), the availability to perform the learning activities at any time (time availability).