Published

2022-08-26

A Survey of Virtualization Technologies: Towards a New Taxonomic Proposal

Una revisión de las tecnologías de virtualización: hacia una nueva propuesta taxonómica

Keywords:

Container, Taxonomy, Virtualization, Virtual Machine, Virtualization Technologies (en)
Contenedor, Máquina Virtual, Taxonomía, Tecnologías de virtualización, Virtualización (es)

Downloads

Authors

At present, there is a proliferation of virtualization technologies (VTs), which are part of the basic and underlying infrastructure of popular cloud computing. Those interested in VTs are faced with a non-unified volume of information and various approaches to modes of operation, classification structures, and the performance implications of these technologies. This makes it difficult to decide which type of VT is appropriate for a particular context. Therefore, this paper reviews the state of the art on VT taxonomic models. Methodologically, a literature review is carried out to identify VT classification models, recognizing their features and weaknesses. With this in mind, a new taxonomy of virtualization technologies is proposed, which responds to the weaknesses identified in the analyzed schemes. The new VT taxonomy combines the Abstraction Level and Virtual Machine Type approaches, providing the reader with a means to visualize VTs. In doing so, the reader can locate the level of abstraction at which each VT is developed, in addition to the type of machine projected, whether it is a complete system or an execution environment for processes. The proposed taxonomy can be used in the academic environment to facilitate teaching processes or in the business environment to facilitate decision-making when implementing VTs.

En la actualidad existe una proliferación de tecnologías de virtualización (VTs), las cuales constituyen una parte de la infraestructura fundamental y subyacente al tan popular cloud computing. Los interesados en las VTs se enfrentan a un volumen de información no unificada y con enfoques diversos acerca de los modos de operación, estructuras de clasificación e implicaciones del desempeño de estas tecnologías. Esto hace difícil decidir sobre el tipo de VT adecuado para un contexto particular. Por lo anterior, este trabajo realiza una revisión del estado del arte acerca de los modelos taxonómicos de las VTs. Metodológicamente, se realiza una revisión de la literatura para identificar modelos de clasificación de las VTs, reconociendo sus características y debilidades. Considerando lo anterior, se propone una nueva taxonomía de las tecnologías de virtualización, que responde a las debilidades identificadas en los esquemas analizados. La nueva taxonomía de VTs combina los enfoques de Nivel de Abstracción y Tipo de Máquina Virtual, proporcionando al lector un medio para visualizar las VTs. Al hacerlo, el lector puede ubicar el nivel de abstracción en el que se desarrolla cada VT, además del tipo de máquina proyectada, ya sea un sistema completo o un entorno de ejecución para procesos. La taxonomía propuesta puede ser utilizada en el ámbito académico para facilitar los procesos de enseñanza o en el ámbito empresarial para favorecer la toma de decisiones a la hora de implementar VTs.

Downloads

Download data is not yet available.

References

Abdekhoda, M., Asadi, Z., and Nadrian, H. (2019). Cloud computing services adoption among higher education faculties: Development of a standardized questionnaire. Education and Information Technologies, 25(1), 175-191. https://doi.org/10.1007/s10639-019-09932-0

AbdElRahem, O., Bahaa-Eldin, A. M., and Taha, A. (2016, December 20-21). Virtualization security: A survey [Conference presentation]. 2016 11th International Conference on Computer Engineering & Systems (ICCES), Cairo, Egypt. https://doi.org/10.1109/ICCES.2016.7821971

Abdulhamid, S. M., Latiff, M. S. A., and Bashir, M. B. (2014). On-demand grid provisioning using cloud infrastructures and related virtualization tools: A survey and taxonomy. arXiv preprint. https://doi.org/10.48550/arXiv.1402.0696

Abeni, L., and Faggioli, D. (2020). Using Xen and KVM as real-time hypervisors. Journal of Systems Architecture, 106, 101709. https://doi.org/10.1016/j.sysarc.2020.101709

Aceto, G., Botta, A., de Donato, W., and Pescapè, A. (2013). Cloud monitoring: A survey. Computer Networks, 57(9), 2093-2115. https://doi.org/10.1016/j.comnet.2013.04.001

Adams, K., and Agesen, O. (2006). A comparison of software and hardware techniques for x86 virtualization. ACM SIGARCH Computer Architecture News, 34(5), 2-13. https://doi.org/10.1145/1168919.1168860

Ameen, R. Y., and Hamo, A. Y. (2013). Survey of server virtualization. arXiv preprint. https://doi.org/10.48550/arXiv.1304.3557

Annapareddy, N. D. R. (2011). An approach to storage virtualization. Texas A & M University-Kingsville.

Apple Inc. (2009). Universal binary programming guidelines. https://web.archive.org/web/20120327121744/http://developer.apple.com/legacy/mac/library/documentation/MacOSX/Conceptual/universal_binary/universal_binary.pdf

Armand, F., and Gien, M. (2009, January 10-13). A practical look at micro-kernels and virtual machine monitors [Conference presentation]. Consumer Communications and Networking Conference, 2009 CNNC 2009. 6th IEEE. https://doi.org/10.1109/CCNC.2009.4784874

Bala, V., Duesterwald, E., and Banerjia, S. (2011). Dynamo: a transparent dynamic optimization system. ACM SIGPLAN Notices, 46(4), 41-52. https://doi.org/10.1145/1988042.1988044

Balis, B., Antonelli, L., Bracciali, A., Gruber, T., Hyun-Wook, J., Kuhn, M., Scott, S., Unat, D., Wyrzykowski, R., & Eiling, N. (2021, August 24-25). An open-source virtualization layer for CUDA applications [Conference presentation]. Euro-par 2020: Parallel Processing Workshopseuro-par 2020 International Workshops, Warsaw, Poland.

Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauer, R., Pratt, I., & Warfield, A. (2003). Xen and the art of virtualization. In ACM (Eds.), Proceedings of the

Nineteenth ACM Symposium on Operating Systems Principles (pp. 164-177). ACM. https://doi.org/10.1145/945445.945462

Beronić, D., Pufek, P., Mihaljević, B., and Radovan, A. (2021). On analyzing virtual threads – A structured concurrency model for scalable applications on the JVM [Conference presentation]. 2021 44th International Convention on Information, Communication and Electronic Technology (MIPRO). Opatija, Croatia. https://doi.org/10.23919/MIPRO52101.2021.9596855

Biederman, E. W. (2006). Multiple instances of the Global Linux Namespaces [Conference presentation]. Linux Symposium, Ottawa, Ontario, Canada.

Bochs (2021). bochs. The cross Platform IA-32 Emulator. https://bochs.sourceforge.io

Bugnion, E., Nieh, J., Tsafrir, D., & Martonosi, M. (2017). Hardware and software support for virtualization. Morgan & Claypool. https://doi.org/10.2200/S00754ED1V01Y201701CAC038

Cafaro, M., and Aloisio, G. (2011). Grids, clouds, and virtualization. In M. Cafaro and G. Aloisio (Eds.), Grids, Clouds and Virtualization (pp. 1-21). Springer.

Canonical Ltd. (2021). Container and virtualization tools. https://linuxcontainers.org

Chang, Y. T. S., Heistand, S., Hood, R., and Jin, H. (2021, November 14). Feasibility of running singularity containers with hybrid MPI on NASA high-end computing resources [Conference presentation]. 2021 3rd International Workshop on Containers and New Orchestration Paradigms for Isolated Environments in HPC (CANOPIE-HPC), St. Louis, MO, USA. https://doi.org/10.1109/CANOPIEHPC54579.2021.00007

Chernoff, A., Herdeg, M., Hookway, R., Reeve, C., Rubin, N., Tye, T., Bharadwaj Yadavalli, S., and Yates, J. (1998). FX! 32: A profile-directed binary translator. IEEE Micro, 18(2), 56-64. https://doi.org/10.1109/40.671403

Díaz, E., Mateos, R., Bueno, E. J., and Nieto, R. (2021). Enabling parallelized-QEMU for hardware/software co-simulation virtual platforms. Electronics, 10(6), 759. https://doi.org/10.3390/electronics10060759

Dike, J. (2006). User mode linux (vol. 2). Prentice Hall Englewood Cliffs.

Docker (2022). Docker. https://www.docker.com

El-Anani, B. R. (2021). Server virtualization: Para- and full virtualization: XenServer vs. KVM. https://www.theseus.fi/handle/10024/507277

Ensim (2022). Ensim. http://www.ensim.com

eWeek. (2008). IBM acquiring transitive to increase virtualization capabilities of power systems. https://www.eweek.com/virtualization/ibm-acquiring-transitive-to-increase-virtualization-capabilities-of-power-systems/

Fareghzadeh, N., Seyyedi, M. A., and Mohsenzadeh, M. (2019). Toward holistic performance management in clouds: taxonomy, challenges and opportunities. Journal of Supercomputing, 75(1), 272-313. http://doi.org/10.1007/s11227-018-2679-9

Fisher, M., Sharma, S., Lai, R., and Moroney, L. (2006). Java EE and .NET interoperability: Integration strategies, patterns, and best practices. Prentice Hall Professional.

Ford, B., and Cox, R. (2008). Vx32: Lightweight User-level Sandboxing on the x86 [Conference presentation]. USENIX Annual Technical Conference. https://www.usenix.org/legacy/events/usenix08/tech/full_papers/ford/ford.pdf

Gibson, C. (2007). WPAR Power AIX workload partition explained. IBM Systems Magazine. http://www.ibmsystemsmag.com/opensystems/december07/coverstory/18606p1.aspx

Goldberg, R. P. (1973). Architectural principles for virtual computer systems. Defense Technical Information Center.

Goldberg, R. P. (1974). Survey of virtual machine research. Computer, 7(6), 34-45. https://doi.org/10.1109/MC.1974.6323581

Honeycutt, J. (2003). Microsoft virtual PC 2004 technical overview. Microsoft.

Hoopes, J. (2009). Virtualization for security: Including sandboxing, disaster recovery, high availability, forensic analysis, and honeypotting. Syngress.

Hui, L. Y., and Seok, K. H. (2014). A study of savings of power consumption and server space through integrated virtualization of UNIX servers. International Journal of Software Engineering and Its Applications, 8(5), 219-230. http://dx.doi.org/10.14257/ijseia.2014.8.5.17

IBM (2008). Transitive. https://www-03.ibm.com/press/us/en/pressrelease/26106.wss

Jason, K., Velte, A., and Velte, T. (2009). Microsoft virtualization with Hyper-V. McGraw-Hill, Inc.

Jing, S.-Y., Ali, S., She, K., and Zhong, Y. (2013). State-of-the-art research study for green cloud computing. The Journal of Supercomputing, 65(1), 445-468. https://doi.org/10.1007/s11227-011-0722-1

Jones, M., Kepner, J., Orchard, B., Reuther, A., Arcand, W., Bestor, D., Bergeron, B., Byun, C., Gadepally, V., Houle, M., Hubbell, M., Klein, A., Milechin, L., Mullen, J., Prout, A., Rosa, A., Samsi, S., Yee, C., and Michaleas, P. (2018, September 25-27). Interactive launch of 16,000 Microsoft Windows Instances on a supercomputer [Conference presentation]. 2018 IEEE High Performance extreme Computing Conference (HPEC). Waltham, MA, USA. https://doi.org/10.1109/HPEC.2018.8547782

Kamp, P.-H., and Watson, R. N. (2000). Jails: Confining the omnipotent root [Conference presentation]. 2nd International SANE Conference. https://papers.freebsd.org/2000/phk-jails/

Kampert, P. (2010). A taxonomy of virtualization technologies. [Master's thesis, Delft University of Technology]. https://d1rkab7tlqy5f1.cloudfront.net/TBM/Over%20faculteit/Afdelingen/Engineering%20Systems%20and%20Services/People/Professors%20emeriti/Jan%20van%20den%20Berg/MasterPhdThesis/Masters_Thesis_Paulus_Kampert_August_2010-2.pdf

Kusnetzky, D. (2011). Virtualization: A manager's guide. O'Reilly Media, Inc.

KVM (2021). Kernel Virtual Machine. https://www.linux-kvm.org

Li, B., Shu, J., and Zheng, W. (2005). Design and implementation of a storage virtualization system based on SCSI target simulator in SAN. Tsinghua Science and Technology, 10(1), 122-127. https://doi.org/10.1016/S1007-0214(05)70018-3

Li, X.-F. (2016). Advanced design and implementation of virtual machines. CRC Press.

Li, Z. (2021, November 12-14). Comparison between common virtualization solutions: VMware Workstation, Hyper-V and Docker [Conference presentation]. 2021 IEEE 3rd International Conference on Frontiers Technology of Information and Computer (ICFTIC), Greenville, SC, USA. https://doi.org/10.1109/ICFTIC54370.2021.9647226

Lin, Q., Qi, Z., Wu, J., Dong, Y., and Guan, H. (2012). Optimizing virtual machines using hybrid virtualization. Journal of Systems and Software, 85(11), 2593-2603. https://doi.org/10.1016/j.jss.2012.05.093

Lin, S., Hao, C., and Jianhua, S. (2009, May 23-29). vCUDA: GPU accelerated high performance computing in virtual machines [Conference presentation]. 2009 IEEE International Symposium on Parallel & Distributed Processing. https://doi.org/10.1109/IPDPS.2009.5161020

Lindholm, T., Yellin, F., Bracha, G., and Buckley, A. (1997). The Java virtual machine specification. Addison-Wesley.

Linux-VServer (2018). Linux-VServer. http://www.linux-vserver.org

Lxrun (2022, 2008/03/09). Official lxrun web site. https://web.archive.org/web/20151025205205/http://www.ugcs.caltech.edu/~steven/lxrun/

Magnusson, P. S., Christensson, M., Eskilson, J., Forsgren, D., Hallberg, G., Hogberg, J., Larsson, F., Moested, A., and Werner, B. (2002). Simics: A full system simulation platform. Computer, 35(2), 50-58. https://doi.org/10.1109/2.982916

Mann, A. (2006). Virtualization 101: Technologies, benefits, and challenges. Enterprise Management Associates, Inc.

Matthews, J. N., Dow, E. M., Deshane, T., Hu, W., Bongio, J., Wilbur, P. F., and Johnson, B. (2008). Running Xen: A hands-on guide to the art of virtualization. Prentice Hall PTR.

Nanda, S., and Chiueh, T.-C. (2005). A survey on virtualization technologies. Stony Brook University. http://comet.lehman.cuny.edu/cocchi/CMP464/papers/VirtualizationSurveyTR179.pdf

Nanda, S., Li, W., Lam, L.-C., and Chiueh, T.-C. (2006). BIRD: Binary interpretation using runtime disassembly [Conference presentation]. 2006 International Symposium on Code Generation and Optimization, New York, NY, USA. https://doi.org/10.1109/CGO.2006.6

OpenVZ (2021). OpenVZ. https://openvz.org

Oracle (2018). WABI https://docs.oracle.com/cd/E19957-01/802-6306/802-6306.pdf

Oracle (2021a). Oracle Solaris Zones. https://docs.oracle.com/cd/E18440_01/doc.111/e18415/chapter_zones.htm#OPCUG426

Oracle (2021b). Oracle Virtual Box. https://www.oracle.com/virtualization/virtualbox/.

Parallels (2021). Parallels. https://www.parallels.com

Parrot (2022). Parrot. http://www.parrot.org

Pék, G., Buttyán, L., and Bencsáth, B. (2013). A survey of security issues in hardware virtualization. ACM Computing Surveys (CSUR), 45(3), 40. https://doi.org/10.1145/2480741.2480757

Pessolani, P., and Jara, O. (2011, November 7-11). Minix over Linux: A user-space multiserver operating system [Conference presentation]. 2011 Brazilian Symposium on Computing System Engineering, Florianopolis, Brazil. https://doi.org/10.1109/SBESC.2011.17

Pessolani, P., Gonnet, S. M., Tinetti, F. G., and Cortes, T. (2012). Sistema de virtualización con recursos distribuidos [Conference presentation]. XIV Workshop de Investigadores en Ciencias de la Computación. http://sedici.unlp.edu.ar/handle/10915/18375

Plex86 (2021). The new Plex86, x86 Virtual Machine Project. http://plex86.sourceforge.net

Popek, G. J., and Goldberg, R. P. (1974). Formal requirements for virtualizable third generation architectures. Communications of the ACM, 17(7), 412-421. https://doi.org/10.1145/361011.361073

QEMU (2021). QEMU, the FAST! processor emulator. https://www.qemu.org

Ranjith, D., Tamizharasi, G. S., and Balamurugan, B. (2017, April 20-22). A survey on current trends to future trends in green computing [Conference presentation]. 2017 International Conference of Electronics, Communication and Aerospace Technology (ICECA), Coimbatore, India. https://doi.org/10.1109/ICECA.2017.8203616

Ryding, C., and Johansson, R. (2020). Jails vs Docker: A performance comparison of different container technologies [Undergraduate thesis, Mid Sweden University]. http://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-39517

Sahoo, J., Mohapatra, S., and Lath, R. (2010, April 23-25). Virtualization: A survey on concepts, taxonomy and associated security issues [Conference presentation]. 2010 Second International Conference on Computer and Network Technology, Bangkok, Thailand. https://doi.org/10.1109/ICCNT.2010.49

Samireh, J., and Claes, W. (2012). Systematic literature studies: database searches vs. backward snowballing [Conference presentation]. ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, Lund, Sweden. https://doi.org/10.1145/2372251.2372257

SCOPE Alliance (2008). Virtualization: State of the art. https://profsandhu.com/cs6393_s14/SCOPE-Virtualization-StateofTheArt-Version-1.0.pdf

Sehgal, N. K., and Bhatt, P. C. (2018). Cloud computing. Springer.

Silberschatz, A., Galvin, P. B., and Gagne, G. (2014). Operating system concepts essentials. John Wiley & Sons, Inc.

Smith, J. E., and Nair, R. (2005). The architecture of virtual machines. Computer, 38(5), 32-38. https://doi.org/10.1109/MC.2005.173

Stallings, W. (2015). Operating systems: Internals and design principles (9th ed.). Pearson.

Sylabs.io (2022). Sylabs.io Singularity. https://www.sylabs.io

Syrewicze, A., and Siddaway, R. (2018). Pro Microsoft Hyper-V 2019: Practical guidance and hands-on labs. Apress.

Tfrifonov, D. V., Hristo. (2018). Virtualization and containerization systems for Big Data. Fundamental Science and Applications, 24, 129-132. https://www.researchgate.net/profile/Mtuncay-Gencoglu/publication/330221240_EMBEDDED_AUDIO_CODING_USING_LAPLACE_TRANSFORM_FOR_TURKISH_LETTERS/links/5c34a7f592851c22a363cd9f/EMBEDDED-AUDIO-CODING-USING-LAPLACE-TRANSFORM-FOR-TURKISH-LETTERS.pdf#page=129

Thai, T. L., and Lam, H. (2003). .NET framework essentials. O'Reilly Media, Inc.

Thathera, H., Shashi, H., and Rajput, D. S. (2015). Green computing: An earth friendly system. International Journal of Science and Research, 8(4), 25540-25550 https://research.vit.ac.in/publication/green-computing-an-earth-friendly-system

User-Mode Linux (2022). The user-mode Linux Kernel home page. http://user-mode-linux.sourceforge.net

Varasteh, A., and Goudarzi, M. (2017). Server consolidation techniques in virtualized data centers: A survey. IEEE Systems Journal, 11(2), 772-783. https://doi.org/10.1109/JSYST.2015.2458273

Virtuozzo (2022). Virtuozzo. https://www.virtuozzo.com

VMware (2022). VMware. http://www.vmware.com

von Hagen, W. (2008). Professional Xen virtualization. John Wiley & Sons, Inc.

Waldspurger, C. A. (2002). Memory resource management in VMware ESX server. ACM SIGOPS Operating Systems Review, 36(SI), 181-194. https://doi.org/10.1145/844128.844146

Wessman, N. J., Malatesta, F., Andersson, J., Gomez, P., Masmano, M., Nicolau, V., Rhun, J. L., Cabo, G., Bas, F., Lorenzo, R., Sala, O., Trilla, D., and Abella, J. (2021, August 23-27). De-RISC: The first RISC-V space-grade platform for safety-critical systems [Conference presentation]. 2021 IEEE Space Computing Conference (SCC), Laurel, MD, USA. https://doi.org/10.1109/SCC49971.2021.00010

Whitaker, A., Shaw, M., and Gribble, S. D. (2002). Denali: Lightweight virtual machines for distributed and networked applications. http://web.cs.ucla.edu/~miodrag/cs259-security/whitaker02denali.pdf

White, J., and Pilbeam, A. (2010). A survey of virtualization technologies with performance testing. arXiv preprint. https://doi.org/10.48550/arXiv.1010.3233

Wine (2022). Wine. https://www.winehq.org

Xen Cambridge (2022). Xen Cambridge. The virtual machine monitor. https://www.cl.cam.ac.uk/research/srg/netos/projects/archive/xen/

Xen Project (2022). Xen Project Website. https://www.xenproject.org

Xtratum (2022). Xtratum. http://www.xtratum.org

Yee, B., Sehr, D., Dardyk, G., Chen, J. B., Muth, R., Ormandy, T., Okasaka, S., Narula, N., and Fullagar, N. (2009). Native client: A sandbox for portable, untrusted x86 native code [Conference presentation]. 2009 30th IEEE Symposium on Security and Privacy, Oakland, CA, USA. https://doi.org/10.1109/SP.2009.25