Facultad Regional Santa Fe

Permanent URI for this communityhttp://48.217.138.120/handle/20.500.12272/113

Browse

Search Results

Now showing 1 - 10 of 11
  • Thumbnail Image
    Item
    A multiserver unikernel for a distributed virtualization system based on coroutines
    (12th JCC-BD&ET, 2024-06) Pessolani, Pablo
    Nowadays, most Cloud applications are developed using MicroService Architecture (MSA). The scalability and performance of them is achieved by executing multiple instances of its components in different nodes of a virtualization cluster. Initially, they were deployed in Virtual Machines (VMs), but they required enough computational, memory, network and storage resources to hold an Operating System (OS), a set of utilities, libraries, and the application itself. By deploying hundreds of these applications, the requirement of resources increases a lot. To minimize them, usually small footprint OS are used. Later, as management tools were improved, the applications began to be deployed in Containers which require even less resources than VMs. Another way to reduce the resource requirements is integrating the application within a Unikernel where only the components used by the application are present. In a previous article, a Unikernel based on a multiserver OS called MUK was presented as a proof of concept. MUK runs as userspace process and its components runs as Linux threads. The communication between servers, tasks and external processes use a mechanism named M3-IPC which is the foundation of a Distributed Virtualization System. In this article a new version named MUK2 is presented which differs from MUK in that its uses coroutines to deploy its components. MUK2 was built to run inside a Container and both technologies facilitate the scattering of applications in a virtualization cluster keeping the isolation properties and minimal attack surface.
  • Thumbnail Image
    Item
    An architecture model for a distributed virtualization system
    (2019-10) Pessolani, Pablo
    The Thesis is about an architecture model for a Distributed Virtualization System, which could expand a virtual execution environment from a single physical machine to several nodes of a cluster. With current virtualization technologies, computing power and resource usage of Virtual Machines (or Containers) are limited to the physical machine where they run. To deliver high levels of performance and scalability, cloud applications are usually partitioned in several Virtual Machines (or Containers) located on different nodes of a virtualization cluster. Developers often use that processing model because the same instance of the operating system is not available on each node where their components run. The proposed architecture model is suitable for new trends in software development because it is inherently distributed. It combines and integrates Virtualization and Distributed Operating Systems technologies with the benefits of both worlds, providing the same isolated instance of a Virtual Operating System on each cluster node. Although it requires the introduction of changes in existing operating systems, thousands of legacy applications would not require modifications to obtain their benefits. A Distributed Virtualization System is suitable to deliver high-performance cloud services with provider-class features, such as high-availability, replication, migration, and load balancing. Furthermore, it is able to concurrently run several isolated instances of different guest Virtual Operating Systems, allocating a subset of nodes for each instance and sharing nodes between them. Currently, a prototype is running on a cluster of commodity hardware provided with two kinds of Virtual Operating Systems tailored for internet services (web server) as a proof of concept.
  • Thumbnail Image
    Item
    A multiserver user-space unikernel for a distributed virtualization system
    (IX Brazilian Symposium on Computing Systems Engineering, 2019-11) Pessolani, Pablo
    Nowadays, most Cloud applications are developed using Service Oriented Architecture (SOA) or MicroService Architecture (MSA). The scalability and performance of them is achieved by executing multiple instances of its components in different nodes of a virtualization cluster. Initially, they were deployed in Virtual Machines (VMs) but, they required enough computational, memory, network and storage resources to hold an Operating System (OS), a set of utilities, libraries, and the application component. By deploying hundreds of these application components, the resource requirements increase a lot. To minimize them, usually small OSs with small memory footprint are used. Another way to reduce the resource requirements is integrating the application components in a Unikernel. This article proposes a Unikernel called MUK, based on a multiserver OS, to be used as a tool to integrate Cloud application components. MUK was built to run in userspace of a Distributed Virtualization System. Both technologies facilitate the scattering of application components in a virtualization cluster keeping the isolation properties and minimal attack surface of a Unikernel.
  • Thumbnail Image
    Item
    Localización y seguimiento de servicios replicados en un sistema de virtualización distribuido
    (2020-08-15) Pessolani, Pablo; Harispe, David Gabriel; Garcia Aguirre, Octavio
    Las aplicaciones para ejecución en la nube suelen factorizarse en múltiples componentes localizados en diferentes computadores físicos o virtuales. Para alcanzar los niveles de disponibilidad, escalabilidad y robustez que éstas requieren, deben realizarse configuraciones más complejas y costosas de implementar, operar y mantener. Una forma de resolver este problema es utilizando un Sistema de Virtualización Distribuido (DVS) que provee un mecanismo para comunicar entre sí los componentes de la aplicación en forma transparente a su localización, ocultando los problemas y complejidades añadidos por su ejecución distribuida. En este artículo se detalla el desarrollo y funcionamiento de un servicio denominado RADAR, utilizado en un DVS. Las tareas de RADAR son: 1) la localización automática de servicios ejecutando en el DVS, y 2) el seguimiento de la localización de los mismos mediante la redirección automática de las comunicaciones cuando el servidor presenta algún fallo, cuando ha migrado de nodo o cuando se ha particionado la red. Usando RADAR en un DVS, se pueden ejecutar múltiples instancias de servidores de forma transparente (los clientes no necesitan saber de la existencia de las múltiples réplicas) resolviendo el problema de mantener una conexión cliente/servidor en presencia de fallos o ante la migración de procesos servidores.
  • Thumbnail Image
    Item
    Un servidor de sistema de archivos para un sistema de virtualización distribuido
    (2019-10) Pessolani, Pablo; Padula, Diego
    Cuando se piensa en infraestructuras en la nube, el rol del almacenamiento tiene un protagonismo especial para lograr flexibilidad, versatilidad y escalabilidad. Deben ofrecer sistemas de archivos simples, escalables, robustos y transparentes, de forma tal de no adaptar o modificar las aplicaciones o los procedimientos que los utilizan o gestionan. Dentro de las nuevas tecnologías de virtualización que ofrecen recursos de cómputo, comunicación y almacenamiento distribuidos en varios nodos de un cluster, este artículo presenta el diseño e implementación de un servidor de sistema de archivos para un Sistema de Virtualización Distribuido.
  • Thumbnail Image
    Item
    Service migration in a distributed virtualization system
    (IX Conference on Cloud Computing Conference, Big Data & Emerging Topics, 2021-06) Pessolani, Pablo; Re, Luis Santiago; Fleitas, Tomás Andrés
    Cloud applications are usually formed by different components (microservices) that may be located in different virtual and/or physical computers. To achieve the desired level of performance, availability, scalability and robustness in this kind of system is necessary to develop and maintain a complex set of infrastructure configurations. Another approach would be to use a Distributed Virtualization System (DVS) that provides a transparent mechanism that each component could use to communicate with others, regardless of their location and thus, avoiding the potential problems and complexity added by their distributed execution. This communication mechanism already has useful features for developing distributed applications, such as replication support (active and passive) and process migration. In general, process migration is used when a node in the cluster is overloaded or it has been scheduled to be disconnected in order to save energy or to do maintenance tasks in it. When this occurs, it is very important that any application using any service running in that node does not end up being affected by the migration. This article describes the mechanisms used for the migration of server processes between nodes of a DVS cluster in a transparent way for client and server processes, and doing special focus on how to solve the problem of keeping client/server communications active even when the server process location has changed.
  • Thumbnail Image
    Item
    Un modelo de arquitectura para un sistema de virtualización distribuido
    (2019-09) Pessolani, Pablo
    Se propone un modelo de Arquitectura de un Sistema de Virtualización Distribuido (DVS: Distributed Virtualization System), el cual permite construir dominios de ejecución denominados Contenedores Distribuidos (DC: Distributed Containers) que pueden extenderse más allá de los límites de una máquina física y con ello lograr mayores niveles de rendimiento y escalbilidad requerido por las actuales aplicaciones que se desarrollan para ejecutar en la Nube.
  • Thumbnail Image
    Item
    Localización y seguimiento de servicios replicados en sistemas distribuidos
    (VII Congreso Nacional de Ingeniería Informática y Sistemas de Información, 2019-11) Pessolani, Pablo; Harispe, David Gabriel; Garcia Aguirre, Octavio
    Las aplicaciones para ejecución en la nube suelen factorizarse en múltiples componentes que localizan en diferentes computadores físicos o virtuales. Para alcanzar los niveles de disponibilidad, escalabilidad y robustez que éstas requieren, se deben realizar configuraciones más complejas y más costosas de implementar, operar y mantener. Una forma de resolver este problema es haciendo uso de un Sistema de Virtualización Distribuido (DVS) que provee un mecanismo que permite comunicar entre sí los componentes de la aplicación en forma transparente a su localización, ocultando los problemas y complejidades añadidos por su ejecución distribuida. En este artículo se detalla el desarrollo y funcionamiento de un servicio denominado RADAR, utilizado en el contexto de un DVS. Las tareas que desarrolla RADAR son: 1) la localización automática de los servicios ejecutando en el DVS, y 2) el seguimiento de la localización de esos servicios mediante la redirección automática de las comunicaciones cuando el servidor presenta algún fallo, o cuando éste ha migrado de nodo o cuando se ha producido una partición de red. Con el uso de RADAR en un DVS se pueden ejecutar múltiples instancias de servidores de forma transparente (no será necesario que los clientes conozcan de la existencia de las múltiples réplicas) resolviendo el problema de mantener una conexión cliente/servidor en presencia de fallos o ante la migración de procesos servidores.
  • Thumbnail Image
    Item
    Filtering useless data at the source
    (XXV Congreso Argentino de Ciencias de la Computación, 2019-10) Pessolani, Pablo; Quaglia, Constanza; Nou, Ramón
    There are some processing environments where an application reads remote sequential files with a large number of records only to use some of them. Examples of those environments are servers, proxies, firewall and intrusion detection log analysis tools, sensor log analysis, large scientific datasets processing, etc. To be processed, all file records must be transferred through the network, and all of them must be processed by the application. Some of the transferred records would be discarded immediately by the application because it has no interest in them, but they just consumed network bandwidth and operating system’s cache buffers. This article proposes to filter records from the source of data but without changing the application. Those records of interest will be transferred without modifications but only references to the other records will be transferred from the source to the consuming application. At the application side, the sequence of records is rebuilt, keeping the content of records of interest and filling the others with dummy values which will be discarded by the application. As the number and length of records are preserved (and therefore the file size), it is not necessary to modify the application. Once a filtering rule is applied to a file, only the useful records and references to unuseful ones will be transferred to the application side reducing network usage, transfer time, and cache utilization. A modified (but compatible) version of NFS protocol was developed as a proof of concept.
  • Thumbnail Image
    Item
    Un sistema de virtualización distribuida
    (WICC 2017 - XIX Workshop en investigación en Ciencias de la Computación, 2017) Pessolani, Pablo; Gonnet, Silvio; Cortes, Toni; Tinetti, Fernando
    Este trabajo refiere a los avances, logros alcanzados y planes de investigación futuros sobre el proyecto del Sistema de Virtualización de Recursos Distribuidos presentado en WICC 2012 [1]. En las tecnologías de virtualización actuales, la potencia de cómputo y el uso de recursos de las máquinas virtuales se limitan a la máquina física donde se ejecutan. Para alcanzar otros niveles de rendimiento y escalabilidad, las aplicaciones Cloud suelen estar particionadas en varias VMs o Contenedores ubicados en diferentes nodos de un cluster de virtualización. Los desarrolladores a menudo usan ese modelo de procesamiento porque sus aplicaciones no pueden hacer uso de los servicios de la misma instancia del Sistema Operativo (OS) en todos los nodos donde se ejecutan suscomponentes. El sistema propuesto combina e integra tecnologías de Virtualización y Sistemas Distribuidos que puede proporcionar la misma instancia de un Sistema Operativo Virtual (VOS) en cada nodo del clúster. El resultado es un Sistema de Virtualización Distribuida (DVS) con los beneficios de ambos mundos, adecuado para ofrecer servicios Cloud de alto rendimiento y con posibilidades de ofrecer otras características que son requeridas por los proveedores de IaaS. Un DVS es capaz de ejecutar concurrentemente múltiples instancias de diferentes VOS, asignando un subconjunto de nodos para cada instancia, y a su vez compartiendo nodos entre ellas