
IMPLEMENTATION IN PYTHON OF THE OPENHUACA VIRTUALIZATION CLOUD PLATFORM A degree’s Thesis Submitted to the Faculty of the Escola Tècnica d’Enginyeria de Telecomunicació de Barcelona Universitat Politècnica de Catalunya By Martí Barri Vila In partial fulfillment of the requirements for the degree in Telecommunications Technologies and Services Engineering Advisors: Jose Luis Muñoz & Rafael Genés Barcelona, January 2019 Abstract This project is based on a cloud virtualization platform called OpenHuaca. The platform allows its users to manage several virtual containers quickly and easily. This software has been previously developed by other students in their own final degree projects. The objective of my project is to analyze previous work, improve and im- plement different aspects of its operation and synthesize the functionalities in a more user-friendly, organized and understanding environment for future development as open source software. Resum Aquest projecte es basa en una plataforma cloud de virtualització anomenada OpenHuaca. La plataforma permet als seus usuaris gestionar diversos contenidors virtuals de manera ràpida i còmode. Aquest programari ha sigut desenvolupat prèvi- ament per altres estudiants als seus respectius projectes finals. L’objectiu del meu projecte és l’anàlisi de la feina prèvia, millorar i implementar diferents aspectes del seu funcionament i sintetitzar les funcionalitats en un entorn més amigable, organitzat i entenedor de cara al futur desenvolupament com a programari lliure. Resumen Este proyecto se basa en una plataforma cloud de virtualización llamada Open- Huaca. La plataforma permite a sus usuarios gestionar varios contenedores virtuales de manera rápida y cómoda. La aplicación ha sido desarrollada previamente por otros estudiantes en sus respectivos proyectos finales. El objetivo de mi proyecto es el análisis del trabajo previo, mejorar e implementar diferentes aspectos de su funcionamiento y sintetizar las funcionalidades en un entorno más amigable, organizado y comprensible de cara al futuro desarrollo como código libre. iii DEDICATION Dedicated to Jordi Girona, becouse my head lost a battle but not lost the war. To all the people who stayed with me when I went to sleep, and during my long awakening. v ACKNOWLEDGEMENTS I would like to thank the entire OpenHuaca team, although I have not met all of them, for the work carried out previously. Special thanks to Rafa, for his help and technical details of the project, and to Jose, to introduce myself to this project. vii REVISION HISTORY AND APPROVAL RECORD Revision Date Purpose 0 23/12/2018 Document creation 1 18/01/2019 Document language revision 2 21/01/2019 Document content revision 3 25/01/2019 Deliver final document Table 1: Document updates Document distribution list: Name e-mail Martí Barri Vila (Author) [email protected] Jose Luis Muñoz Tapia (Project Supervisor 1) [email protected] Rafael Genés Duran (Project Supervisor 2) [email protected] Table 2: Document distribution list Written by: Reviewed and approved by: Date 16/01/2019 Date 21/01/2019 Name Martí Barri Vila Name Jose Luis Muñoz Tapia & Rafael Genés Duran Position Project author Position Project Supervisors Table 3: Approval record ix CONTENTS Contents xi List of Figures xiii List of Tables xv Nomenclature xvii 1 Introduction 1 1.1 What is OpenHuaca? ............................ 1 1.2 Project Goals ................................ 1 1.3 Requirements ................................ 2 1.4 Time Plan .................................. 2 1.5 Incidences .................................. 3 2 State of the art 5 2.1 Computer virtualization .......................... 5 2.1.1 Virtual Machines .......................... 5 2.1.2 Containers .............................. 6 2.2 Early versions of OpenHuaca ........................ 9 2.2.1 Linux Containers - LXC ...................... 9 2.2.2 Kernel-based Virtual Machine - KVM ............... 10 3 Methodology 11 3.1 Workspace and workflow .......................... 11 3.1.1 Development ............................ 11 3.1.2 Deployment ............................. 12 3.2 OpenHuaca Virtualization Cloud Platform ................ 13 3.2.1 Command-line interface – CLI ................... 13 3.2.2 Instances .............................. 14 3.2.3 Networking ............................. 15 3.2.4 Certification ............................. 20 xi 4 Results 21 4.1 OpenHuaca commands ........................... 21 4.1.1 bases ................................. 22 4.1.2 certification ............................. 22 4.1.3 domain ................................ 23 4.1.4 vm .................................. 23 4.1.5 wait ................................. 26 4.2 Basic scenario example ........................... 26 5 Budget 31 5.1 Equipment .................................. 31 5.2 Personal salaries ............................... 32 5.3 Total ..................................... 32 6 Conclusions and future development 33 6.1 Conclusions ................................. 33 6.2 Future development ............................. 33 Appendices A1 A Time plan A1 B Python3 version of OpenHuaca B1 xii LIST OF FIGURES 1.1 Gantt diagram ............................... 3 2.1 Differences between Virtual Machines and Containers .......... 6 2.2 Different images for containers in a single host .............. 7 2.3 OS or multi-service containers and Application or single-service containers 8 2.4 LXC and KVM technologies ........................ 9 3.1 GitLab server and TigerVNC, installed in j3o machine. ......... 12 3.2 OpenHuaca domain example ........................ 16 3.3 Netfilter packet flow ............................ 18 3.4 NAT configuration example in OpenHuaca ................ 19 xiii LIST OF TABLES 1 Document updates ............................. ix 2 Document distribution list ......................... ix 3 Approval record ............................... ix 5.1 Summary of the necessary equipment ................... 31 5.2 Personal salaries summary ......................... 32 5.3 Total cost of the project .......................... 32 A.1 Workspace work package .......................... A2 A.2 Learning work package ........................... A2 A.3 Software (command) work package .................... A3 A.4 Software (functionalities) work package .................. A3 A.5 Software (improvement) work package .................. A4 A.6 Documentation work package ....................... A4 xv NOMENCLATURE API Application programming interface CA Certification Authority DHCP Dynamic Host Configuration Protocol DNAT Destination NAT DNS Domain Name System HTTP Hypertext Transfer Protocol, Application layer in the OSI model IP Internet Protocol, Internet layer in the OSI model KVM Kernel-based Virtual Machine LTS Long-term support LXC Linux Containers NAT Network Address Translation OS Operating system QEMU Quick Emulator RSA RivestShamirAdleman, public-key cryptosystem SNAT Source NAT VM Virtual Machine VNC Virtual Network Computing xvii CHAPTER 1 INTRODUCTION This chapter includes the objectives, the requirements, the implementation proce- dures and the incidences that the project suffered during the realization. First of all, let’s start describing the OpenHuaca project. 1.1 What is OpenHuaca? OpenHuaca is a cloud platform software that manages different technologies of virtual machines. Used technologies are KVM (Kernel-based Virtual Machine) and LXC (Linux Containers) [1], which I will explain the more detailed features and differences later. Some options or commands available in the application are the generation of do- mains that can contain several virtual machines, the management of users, groups, resources, NAT configuration or certifications of each container. An usage example may be a university laboratory, where each student have their own virtual machine. There can co-exist different subjects in a single laboratory and have their own domain with restricted permissions. Each student can work in their own virtual machine, regardless of the desk of the classroom. Thanks to NAT configuration, they can also work at home or at any remote workspace with internet access. Some of strong points are the simplicity and the ease of configuration. 1.2 Project Goals The work done in the OpenHuaca project started few time ago by other students. My main goal is to develop the previous functionality into Python programming lan- guage [2], improve features and make the code more durable for future improvements as an open source project. My project goals are stated in the Project Proposal and Workplan delivered on October 2nd, and can be summed up in the following points: 1 Virtualization concepts Look for information about virtualization and learn the different types, deep in continerization and LXC, the used technology. Current code Understand the current code and all the implemented functionalities, as well as the involved technologies. Command structure Design and implement the command structure. List all possi- bilities of the OpenHuaca platform arranged by commands and sub-commands. Command functionalities Implement each command with the desired operation and all the possible options and arguments. Improve Functionality Add new features which had not been planned before if they are needed for the correct operation of the platform. The implementation of KVM technology in OpenHuaca software is not covered in my project. It was developed by Daniel Campos Gómez in his Integration of KVM in the Openhuaca Cloud Platform final degree project [3]. All the information related
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages65 Page
-
File Size-