SlideShare a Scribd company logo
Virtualization and Migration in Edge
computing – Cloud computing models using
OpenStack
Seva Sai praveen ISE2017013
Introduction
● This project is a part of SmartMe initiative by the Mobile and Distributed Systems Lab, University
of Messina, Italy.
● It focuses on facilitating container virtualization and migration across network Edge nodes on
OpenStack Cloud infrastructure.
● The primary use-case of the SmartME project is to leverage the OpenStack platform and
facilitate it to work for IoT devices on the Edge layer of the network.
● In continuation to that we also performed a thorough investigation to understand the thin line
between Cloud computing and Edge computing prior to working on mechanisms to leverage the
OpenStack.
SmartME
● SmartME is an ongoing project, led by the University of Messina and the Messina municipality
aiming at designing, deploying, and implementing a smart city architecture and infrastructure in
Messina.
● Low-cost microcontroller boards equipped with sensors and actuators are installed on buses,
lamp posts, and buildings of local institutions, all over the urban area to collect data and
information.
● Why OpenStack?
Introduction to terminology
Edge Computing
● Facilitates the operation of compute, storage, and networking services between end devices
and Cloud computing datacentres
● Distribution of the communication, computation, and storage resources and services on or close
to devices and systems in the control of end-users
● In this case, the IoT devices themselves act as nodes/Edges of the OpenStack Infrastructure
Often serves as a complement to Cloud computing, rather than substitute
Container
A container is a standard unit of software that packages up code and all its dependencies so the
application runs quickly and reliably from one computing environment to another. A Docker container
image is a lightweight, standalone, executable package of software that includes everything needed to
run an application: code, runtime, system tools, system libraries and settings.
Container Image
Container images are the snapshots of a running or a suspended Container. Container images
become containers at runtime and in the case of Docker containers - images become containers when
they run on Docker Engine.
Fig: Containers vs Virtual machines
OpenStack
● OpenStack is an open-source software platform for Cloud computing, mostly deployed as
infrastructure-as-a-service , whereby virtual servers and other resources are made available to
customers.
● The software platform consists of interrelated components that control diverse, multi-vendor
hardware pools of processing, storage, and networking resources throughout a data center.
● It assists in managing the fleet of IoT devices deployed across the smart city.
● Our project is built entirely on OpenStack infrastructure.
Zun
Zun is an OpenStack Container service. It aims to provide an API service for running application
containers without the need to manage servers or clusters. This is the core of implementation work
RunC
RunC, a lightweight universal container runtime, is a command-line tool for spawning and
running containers according to the Open Container Initiative (OCI) specification.
Migration
● It refers to the process of moving a virtual machine or an application between different physical
machines.
● It can be stateful or stateless
Project Objectives
● Research container image format support for OpenStack Zun
○ Zun currently uses runC to spawn containers from images pulled from DockerHub. We
need to make sure there is compatibility of dockerHub container images with runC and
Zun.
○ In order to ensure compatibility of dockerHub images and checkpoint-commited images
which are to be migrated across Edge devices, the underlying format of dockerHub
images and runC container runtime needs to be thoroughly investigated.
Project Objectives
● Research and implement alternatives to DockerHub for pulling container-images
○ The system in its current implementation only has support for images pulled via
DockerHub.
○ However, in order to make the process of migration simple and seamless it is intended to
allow the system to pull container images stored at any end URL, and successfully spawn
them as containers on the zun managed nodes.
Project Objectives
● Investigate the passing of parameters to RunC container runtime from Zun CLI
○ Since Zun uses runC as container runtime and any commands and parameters passed to
Zun are to be finally run on the container, a thorough inspection of how exactly the
commands and parameters that are being passed to Zun are resulting in the actions of
container needs to done.
Project Objectives
● Design checkpoint/restore functionality in addition to container commit
○ It is the most critical functionality that must be targeted before migration can be achieved.
○ In terms of a single process system implies that the runtime and execution state of the
process is saved on the persistent memory as a snapshot along with allowing us to
restore the process from its previous snapshot whenever desired.
○ In addition to allowing checkpoint/restore inside the container runtime, the container
image may also be modified with the process snapshot so that future containers may be
spawned from the modified image itself.
Project Objectives
● Design migration workflow of container image from one node to another
○ Checkpoint functionality of container saves the runtime of process in persistent storage.
○ Now, in order to ensure the smooth migration of the container, running container needs to
be paused.
○ This paused container should then be replicated and saved in desired container image
format. The container image is then required to be migrated to target node and
respawned.
Methodology
● OpenStack Zun uses runC to spawn containers. runC, can only spawn containers which abide
by OpenContainer Initiative Image Specification (Open Container Image - OCI format).
● OpenStack Zun, by default, uses dockerHub as disk/container-image repository to pull images.
These images on dockerHub are in Docker V2 Image format, which itself is based on OCI image
format
● Consequently, the images which are pulled from dockerHub are compatible with runC, and
thereby Zun, and can be spawned to form Containers. [9][10]
● In order to use custom images, it must be ensured that the images that are being used are
compliant with the OCI Image specification.
1. Research container image format support for OpenStack Zun
Docker Registry API to be standardised in OCI - https://blog.docker.com/2018/04/docker-registry-api-standardized-oci/
Docker leads OCI release of V1.0 runtime and image format specifications - https://blog.docker.com/2017/07/oci-release-of-v1-0-runtime-and-image-format-specifications/
Fig: Container Image compatibility
2. Research and implement alternatives to DockerHub for pulling
container-images
● Glance
○ The OpenStack Glance is an image service which provides discovering, registering,
retrieving for disk and server images.The OpenStack Glance is a central repository for
virtual images.
○ Glance has RESTful API that allows retrieval of the actual images.
○ Glance supports wide range of image formats.
○ Container images can be pulled from and committed to Glance image repository of the
Cloud infrastructure via Glance command line interface.
Image formats support of Glance - https://docs.OpenStack.org/python-
glanceclient/latest/cli/details.html
Glance command line API - https://docs.OpenStack.org/python-glanceclient/latest/cli/details.html
● Zun API expansion to use images stored at any endpoint
○ The Zun API parser is modified to create a new pullimage command that can take any
URL endpoint along with an image name, and download the OCI specification compatible
image from that URL. In addition, the single command is able to add that image to the
OpenStack image repository - Glance.
○ pullimage functionality uses python library functions to fetch and download file(container
image) over HTTP/HTTPS from any URL end point.
○ The downloaded container image is now added the local OpenStack Glance repository
using Glance command line API and is now available to use by Zun from the Glance
image repository.
○ These images must be OCI image format compliant and only then can they be
successfully spawned into working containers using the Zun API.
● The architecture of Zun involves basically 3 layers:
○ Layer 1: Zun API for container management
○ Layer 2: Docker-py: Python library for Docker container management
○ Layer 3: RunC container runtime
● In order to passing parameters to the RunC container, we must leverage the Docker layer as
per the architecture of Zun in order to avoid future conflicts in design and maintaining
consistency.
3. Investigate the passing of parameters to RunC container runtime from
Zun CLI
4. Design checkpoint/restore functionality in addition to container commit
● Zun commit allows containers that are spawned along with any files on board to be persisted as a
new container-image on the host system.
● However, does not retain the state of any running process inside the container.
● The use cases enlisted as part of the SmartMe project involve the checkpointing of
processes(preserve the runtime) and their migration and subsequent deployment on a different
node along the network Edge.
● This could not be achieved using current Zun API and thus we implemented a new technique to
achieve this.
● The flowchart on the next slide depicts the use of CRIU (Checkpoint/Restore In User-space) tools
to achieve the aforementioned functionality.
Fig: Migration workflow
5. Design migration workflow of container image from one node to another
The workflow for achieving migration is as follows:
● Pause and checkpoint the container’s runtime using CRIU checkpoint functionality
● Commit the checkpoint-ed container to glance repo using Zun commit functionality
● Transfer the container image from one node to another using remote sync protocol or existing
migration techniques
● Save container image in target node’s glance repo
● Spawn the container in target node to the start the container and restore the persistent state
● Restore the run time of the process using CRIU restore
Results: Container format
● The spawning of containers as well as their migration is directly linked with the container image
format through the choice of tools and protocols that would eventually be used for migration.
● The default container runtime being runC for Zun, the migration techniques researched in the
future must be compliant with the image format that is being used in Zun.
● The findings of the research show that OCI (Open Container Initiative) is the format specification
that Zun is currently compliant with and any and all tools and technologies being used must
support this image format specification in order to integrate with Zun’s container management.
Results: Alternatives to DockerHub
● A new API specification was created in Zun that brings together functionality from Zun and
Glance (OpenStack image hosting service) to allow the user to download and spawn containers
from OCI compliant images that are hosted at any URL endpoint eg GDrive, AWS S3 etc.
● The use of pullimage functionality and subsequent spawning makes it easy to intermediately
host images on private servers before being pulled by other Edge nodes and spawned as
containers.
● The use of generic file hosting services allows us to host and store container images that are
not Docker V2 compliant but are OCI compliant and thus can be used successfully with Zun
container management service.
pullimage command
● zun pullimage “<Endpoint URL>” “<name of the image>”
● pullimage command pulls the image from the source and stores it in the OpenStack Image
repository Glance.
● Once the pulling and storing is done we then spawn the container using the image.
● zun run --image-driver glance “image name” ls
Fig: Description of the pulled image
Fig: Description of the spawned container
Fig: Container running status
Results: Passing of parameters
● RunC is completely wrapped around a DockerPy sublayer for management of containers. Thus,
Zun CLI is limited to invoking the relevant docker-py library functions only.
● Zun does not have any direct interaction with RunC although the containers that are being
spawned by Zun via the use of Docker-py library are essentially using a RunC runtime. So, all the
parameters passed to Zun via CLI will be invoking respective dockerPy library functions.
● As mentioned before, the implementation of various flags and parameters in the Zun API allows us
to have full control over the RunC parameters as long as it is supported in dockerPy.
Results: Checkpoint/Restore Design
● The mechanism for Checkpoint/Restore is the core of the migration process. We were able to
successfully create a working flow of commands and calls. By following the mentioned steps we
would be able to :
○ Stop a running process on the container and save it’s runtime and state as a set of files
on the container.
○ Commit the files to a new container image that can be migrated and deployed to a new
node or allow the current node to be stopped and killed with no loss to the progress of the
system.
○ Spawn the committed container image on new/same node and restore the saved process
to resume from the same state where it was paused.
○ Critical to the process of migration of running processes
Fig: Spawning a container for CRIU
Fig: commit operation
Fig: Glance image list
Conclusion and Future Scope
● Since everything after the completion of the earlier step exists as files in the controlling system,
it can be easily moved to any other node through remote sync protocols or existing container
migration techniques in order to continue execution of the runtime in the new node.
● The work done as part of the project creates a foundation to continue the work container
migration on network Edge by the team at University of Messina.
● The work involved as part of this project is open-source and is available for everyone to view
and leverage.
References
[1] Carlo Puliafito, Enzo Mingozzi, Carlo Vallati, Francesco Longo, Giovanni Merlino - Virtualization
and Migration at the Network Edge: an Overview
[2] Roberto Morabito - Virtualization on Internet of Things Edge Devices with Container Technologies:
a Performance Evaluation - May 2017 - IEEE Access PP(99)
[3] Antonio Puliafito et al - Building a Smart City Service Platform in Messina with the #SmartME
Project - 2018 32nd International Conference on Advanced Information Networking and Applications
Workshops
[4] Antonio Puliafito et al - Stack4Things: An OpenStack-Based Framework for IoT - 2015 3rd
International Conference on Future Internet of Things and Cloud
[5] Giovanni Merlino, Dario Bruneo et al - Stack4Things: integrating IoT with OpenStack in a Smart
City context
[6] Dario Bruneo - Head in a Cloud: An approach for Arduino YUN virtualization - 2017 Global Internet
of Things Summit
References
[7] Flávio Ramalho, Augusto Neto - Virtualization at the network Edge: A performance comparison -
2017 IEEE WoWMoM
[8] Stack4Things - https://github.com/MDSLab/stack4thing
[9] Docker Registry API to be standardised in OCI - https://blog.docker.com/2018/04/docker-registry-
api-standardized-oci/
[10] Docker leads OCI release of V1.0 runtime and image format specifications -
https://blog.docker.com/2017/07/oci-release-of-v1-0-runtime-and-image-format-specifications/
[11] Image formats support of Glance - https://docs.openstack.org/python-
glanceclient/latest/cli/details.html
[12] Glance command line API - https://docs.openstack.org/python-glanceclient/latest/cli/details.html
[13] Containers replacing Virtual machines - https://blog.docker.com/2018/08/containers-replacing-
virtual-machines/
[14] OpenStack DevStack installation - https://opendev.org/openstack/devstack.
[15] OpenStack DevStack documentation - https://docs.openstack.org/devstack/latest/
[16] OpenStack Horizon Dashboard Demo -https://www.youtube.com/watch?v=z6ftW7fUdp4
Thank You

More Related Content

PPTX
Edge Computing Architecture using GPUs and Kubernetes
PPTX
Open Source Edge Computing Platforms - Overview
PDF
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
PDF
Edge computing in practice using IoT, Tensorflow and Google Cloud
PDF
JCConf 2017 - Next Generation of Cloud Computing: Edge Computing and Apache E...
PDF
OpenStack for EDGE computing
PDF
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...
PDF
KubeCon China June 2019 - Survey of Kubernetes related solutions for IoT and ...
Edge Computing Architecture using GPUs and Kubernetes
Open Source Edge Computing Platforms - Overview
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
Edge computing in practice using IoT, Tensorflow and Google Cloud
JCConf 2017 - Next Generation of Cloud Computing: Edge Computing and Apache E...
OpenStack for EDGE computing
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...
KubeCon China June 2019 - Survey of Kubernetes related solutions for IoT and ...

What's hot (20)

PDF
IoT Meets the Cloud: The Origins of Edge Computing
PDF
What's next in edge computing?
PDF
cncf overview and building edge computing using kubernetes
PDF
Edge Computing: Bringing the Internet Closer to You
PPTX
Web rtc for iot, edge computing use cases
PDF
AI + E-commerce
PDF
OpenStack (projects 101)
PDF
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.
PDF
Open Source 5G/Edge Automation via ONAP
PPTX
Akraino and Edge Computing
PPTX
CPaaS.io Y1 Review Meeting - Cloud & Edge Programming
PDF
Kubernetes-DX-5G-session
PDF
"Highly Efficient, Scalable Vision and AI Processors IP for the Edge," a Pres...
PDF
Future Internet: Managing Innovation and Testbed
PDF
NVIDIA Keynote #GTC21
PDF
ONAP and the K8s Ecosystem: A Converged Edge Application & Network Function P...
PDF
End-to-End Big Data AI with Analytics Zoo
PDF
Design and emulation tools for serverless edge computing
PDF
“Productizing Edge AI Across Applications and Verticals: Case Study and Insig...
PDF
2013 09-22, transport sdn and ecoc, ping pan
IoT Meets the Cloud: The Origins of Edge Computing
What's next in edge computing?
cncf overview and building edge computing using kubernetes
Edge Computing: Bringing the Internet Closer to You
Web rtc for iot, edge computing use cases
AI + E-commerce
OpenStack (projects 101)
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.
Open Source 5G/Edge Automation via ONAP
Akraino and Edge Computing
CPaaS.io Y1 Review Meeting - Cloud & Edge Programming
Kubernetes-DX-5G-session
"Highly Efficient, Scalable Vision and AI Processors IP for the Edge," a Pres...
Future Internet: Managing Innovation and Testbed
NVIDIA Keynote #GTC21
ONAP and the K8s Ecosystem: A Converged Edge Application & Network Function P...
End-to-End Big Data AI with Analytics Zoo
Design and emulation tools for serverless edge computing
“Productizing Edge AI Across Applications and Verticals: Case Study and Insig...
2013 09-22, transport sdn and ecoc, ping pan
Ad

Similar to Virtualization and Migration in Cloud - Edge Computing models using OpenStack open-source Cloud platform for IoT in the smart city context with collaboration of University of Messina, Italy. (20)

PDF
Docker Application to Scientific Computing
ODP
Kubernetes Architecture
PDF
Introduction to containers a practical session using core os and docker
PPTX
Cloud technology with practical knowledge
PDF
Open shift and docker - october,2014
PDF
Red Hat Forum Benelux 2015
PDF
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
PDF
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
PDF
Future of Cloud Computing with Containers
PDF
Ippevent : openshift Introduction
PDF
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
PPT
OpenStack with-docker-team-17
PDF
Journey to the devops automation with docker kubernetes and openshift
PPTX
Docker introduction &amp; benefits
PDF
DEVOPS UNIT 4 docker and services commands
PDF
[WSO2Con Asia 2018] Architecting for Container-native Environments
PDF
HPC Cloud Burst Using Docker
PDF
Scalable Spark deployment using Kubernetes
PPTX
Abc of docker
PPTX
Dockerization of Azure Platform
Docker Application to Scientific Computing
Kubernetes Architecture
Introduction to containers a practical session using core os and docker
Cloud technology with practical knowledge
Open shift and docker - october,2014
Red Hat Forum Benelux 2015
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
Future of Cloud Computing with Containers
Ippevent : openshift Introduction
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
OpenStack with-docker-team-17
Journey to the devops automation with docker kubernetes and openshift
Docker introduction &amp; benefits
DEVOPS UNIT 4 docker and services commands
[WSO2Con Asia 2018] Architecting for Container-native Environments
HPC Cloud Burst Using Docker
Scalable Spark deployment using Kubernetes
Abc of docker
Dockerization of Azure Platform
Ad

Recently uploaded (20)

PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
medical staffing services at VALiNTRY
PPTX
ai tools demonstartion for schools and inter college
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
System and Network Administration Chapter 2
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Which alternative to Crystal Reports is best for small or large businesses.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
medical staffing services at VALiNTRY
ai tools demonstartion for schools and inter college
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Computer Software and OS of computer science of grade 11.pptx
Softaken Excel to vCard Converter Software.pdf
System and Network Administration Chapter 2
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Navsoft: AI-Powered Business Solutions & Custom Software Development
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Embracing Complexity in Serverless! GOTO Serverless Bengaluru

Virtualization and Migration in Cloud - Edge Computing models using OpenStack open-source Cloud platform for IoT in the smart city context with collaboration of University of Messina, Italy.

  • 1. Virtualization and Migration in Edge computing – Cloud computing models using OpenStack Seva Sai praveen ISE2017013
  • 2. Introduction ● This project is a part of SmartMe initiative by the Mobile and Distributed Systems Lab, University of Messina, Italy. ● It focuses on facilitating container virtualization and migration across network Edge nodes on OpenStack Cloud infrastructure. ● The primary use-case of the SmartME project is to leverage the OpenStack platform and facilitate it to work for IoT devices on the Edge layer of the network. ● In continuation to that we also performed a thorough investigation to understand the thin line between Cloud computing and Edge computing prior to working on mechanisms to leverage the OpenStack.
  • 3. SmartME ● SmartME is an ongoing project, led by the University of Messina and the Messina municipality aiming at designing, deploying, and implementing a smart city architecture and infrastructure in Messina. ● Low-cost microcontroller boards equipped with sensors and actuators are installed on buses, lamp posts, and buildings of local institutions, all over the urban area to collect data and information. ● Why OpenStack?
  • 4. Introduction to terminology Edge Computing ● Facilitates the operation of compute, storage, and networking services between end devices and Cloud computing datacentres ● Distribution of the communication, computation, and storage resources and services on or close to devices and systems in the control of end-users ● In this case, the IoT devices themselves act as nodes/Edges of the OpenStack Infrastructure Often serves as a complement to Cloud computing, rather than substitute
  • 5. Container A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings. Container Image Container images are the snapshots of a running or a suspended Container. Container images become containers at runtime and in the case of Docker containers - images become containers when they run on Docker Engine.
  • 6. Fig: Containers vs Virtual machines
  • 7. OpenStack ● OpenStack is an open-source software platform for Cloud computing, mostly deployed as infrastructure-as-a-service , whereby virtual servers and other resources are made available to customers. ● The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage, and networking resources throughout a data center. ● It assists in managing the fleet of IoT devices deployed across the smart city. ● Our project is built entirely on OpenStack infrastructure.
  • 8. Zun Zun is an OpenStack Container service. It aims to provide an API service for running application containers without the need to manage servers or clusters. This is the core of implementation work RunC RunC, a lightweight universal container runtime, is a command-line tool for spawning and running containers according to the Open Container Initiative (OCI) specification.
  • 9. Migration ● It refers to the process of moving a virtual machine or an application between different physical machines. ● It can be stateful or stateless
  • 10. Project Objectives ● Research container image format support for OpenStack Zun ○ Zun currently uses runC to spawn containers from images pulled from DockerHub. We need to make sure there is compatibility of dockerHub container images with runC and Zun. ○ In order to ensure compatibility of dockerHub images and checkpoint-commited images which are to be migrated across Edge devices, the underlying format of dockerHub images and runC container runtime needs to be thoroughly investigated.
  • 11. Project Objectives ● Research and implement alternatives to DockerHub for pulling container-images ○ The system in its current implementation only has support for images pulled via DockerHub. ○ However, in order to make the process of migration simple and seamless it is intended to allow the system to pull container images stored at any end URL, and successfully spawn them as containers on the zun managed nodes.
  • 12. Project Objectives ● Investigate the passing of parameters to RunC container runtime from Zun CLI ○ Since Zun uses runC as container runtime and any commands and parameters passed to Zun are to be finally run on the container, a thorough inspection of how exactly the commands and parameters that are being passed to Zun are resulting in the actions of container needs to done.
  • 13. Project Objectives ● Design checkpoint/restore functionality in addition to container commit ○ It is the most critical functionality that must be targeted before migration can be achieved. ○ In terms of a single process system implies that the runtime and execution state of the process is saved on the persistent memory as a snapshot along with allowing us to restore the process from its previous snapshot whenever desired. ○ In addition to allowing checkpoint/restore inside the container runtime, the container image may also be modified with the process snapshot so that future containers may be spawned from the modified image itself.
  • 14. Project Objectives ● Design migration workflow of container image from one node to another ○ Checkpoint functionality of container saves the runtime of process in persistent storage. ○ Now, in order to ensure the smooth migration of the container, running container needs to be paused. ○ This paused container should then be replicated and saved in desired container image format. The container image is then required to be migrated to target node and respawned.
  • 15. Methodology ● OpenStack Zun uses runC to spawn containers. runC, can only spawn containers which abide by OpenContainer Initiative Image Specification (Open Container Image - OCI format). ● OpenStack Zun, by default, uses dockerHub as disk/container-image repository to pull images. These images on dockerHub are in Docker V2 Image format, which itself is based on OCI image format ● Consequently, the images which are pulled from dockerHub are compatible with runC, and thereby Zun, and can be spawned to form Containers. [9][10] ● In order to use custom images, it must be ensured that the images that are being used are compliant with the OCI Image specification. 1. Research container image format support for OpenStack Zun Docker Registry API to be standardised in OCI - https://blog.docker.com/2018/04/docker-registry-api-standardized-oci/ Docker leads OCI release of V1.0 runtime and image format specifications - https://blog.docker.com/2017/07/oci-release-of-v1-0-runtime-and-image-format-specifications/
  • 16. Fig: Container Image compatibility
  • 17. 2. Research and implement alternatives to DockerHub for pulling container-images ● Glance ○ The OpenStack Glance is an image service which provides discovering, registering, retrieving for disk and server images.The OpenStack Glance is a central repository for virtual images. ○ Glance has RESTful API that allows retrieval of the actual images. ○ Glance supports wide range of image formats. ○ Container images can be pulled from and committed to Glance image repository of the Cloud infrastructure via Glance command line interface. Image formats support of Glance - https://docs.OpenStack.org/python- glanceclient/latest/cli/details.html Glance command line API - https://docs.OpenStack.org/python-glanceclient/latest/cli/details.html
  • 18. ● Zun API expansion to use images stored at any endpoint ○ The Zun API parser is modified to create a new pullimage command that can take any URL endpoint along with an image name, and download the OCI specification compatible image from that URL. In addition, the single command is able to add that image to the OpenStack image repository - Glance. ○ pullimage functionality uses python library functions to fetch and download file(container image) over HTTP/HTTPS from any URL end point. ○ The downloaded container image is now added the local OpenStack Glance repository using Glance command line API and is now available to use by Zun from the Glance image repository. ○ These images must be OCI image format compliant and only then can they be successfully spawned into working containers using the Zun API.
  • 19. ● The architecture of Zun involves basically 3 layers: ○ Layer 1: Zun API for container management ○ Layer 2: Docker-py: Python library for Docker container management ○ Layer 3: RunC container runtime ● In order to passing parameters to the RunC container, we must leverage the Docker layer as per the architecture of Zun in order to avoid future conflicts in design and maintaining consistency. 3. Investigate the passing of parameters to RunC container runtime from Zun CLI
  • 20. 4. Design checkpoint/restore functionality in addition to container commit ● Zun commit allows containers that are spawned along with any files on board to be persisted as a new container-image on the host system. ● However, does not retain the state of any running process inside the container. ● The use cases enlisted as part of the SmartMe project involve the checkpointing of processes(preserve the runtime) and their migration and subsequent deployment on a different node along the network Edge. ● This could not be achieved using current Zun API and thus we implemented a new technique to achieve this. ● The flowchart on the next slide depicts the use of CRIU (Checkpoint/Restore In User-space) tools to achieve the aforementioned functionality.
  • 22. 5. Design migration workflow of container image from one node to another The workflow for achieving migration is as follows: ● Pause and checkpoint the container’s runtime using CRIU checkpoint functionality ● Commit the checkpoint-ed container to glance repo using Zun commit functionality ● Transfer the container image from one node to another using remote sync protocol or existing migration techniques ● Save container image in target node’s glance repo ● Spawn the container in target node to the start the container and restore the persistent state ● Restore the run time of the process using CRIU restore
  • 23. Results: Container format ● The spawning of containers as well as their migration is directly linked with the container image format through the choice of tools and protocols that would eventually be used for migration. ● The default container runtime being runC for Zun, the migration techniques researched in the future must be compliant with the image format that is being used in Zun. ● The findings of the research show that OCI (Open Container Initiative) is the format specification that Zun is currently compliant with and any and all tools and technologies being used must support this image format specification in order to integrate with Zun’s container management.
  • 24. Results: Alternatives to DockerHub ● A new API specification was created in Zun that brings together functionality from Zun and Glance (OpenStack image hosting service) to allow the user to download and spawn containers from OCI compliant images that are hosted at any URL endpoint eg GDrive, AWS S3 etc. ● The use of pullimage functionality and subsequent spawning makes it easy to intermediately host images on private servers before being pulled by other Edge nodes and spawned as containers. ● The use of generic file hosting services allows us to host and store container images that are not Docker V2 compliant but are OCI compliant and thus can be used successfully with Zun container management service.
  • 25. pullimage command ● zun pullimage “<Endpoint URL>” “<name of the image>” ● pullimage command pulls the image from the source and stores it in the OpenStack Image repository Glance. ● Once the pulling and storing is done we then spawn the container using the image. ● zun run --image-driver glance “image name” ls
  • 26. Fig: Description of the pulled image
  • 27. Fig: Description of the spawned container
  • 29. Results: Passing of parameters ● RunC is completely wrapped around a DockerPy sublayer for management of containers. Thus, Zun CLI is limited to invoking the relevant docker-py library functions only. ● Zun does not have any direct interaction with RunC although the containers that are being spawned by Zun via the use of Docker-py library are essentially using a RunC runtime. So, all the parameters passed to Zun via CLI will be invoking respective dockerPy library functions. ● As mentioned before, the implementation of various flags and parameters in the Zun API allows us to have full control over the RunC parameters as long as it is supported in dockerPy.
  • 30. Results: Checkpoint/Restore Design ● The mechanism for Checkpoint/Restore is the core of the migration process. We were able to successfully create a working flow of commands and calls. By following the mentioned steps we would be able to : ○ Stop a running process on the container and save it’s runtime and state as a set of files on the container. ○ Commit the files to a new container image that can be migrated and deployed to a new node or allow the current node to be stopped and killed with no loss to the progress of the system. ○ Spawn the committed container image on new/same node and restore the saved process to resume from the same state where it was paused. ○ Critical to the process of migration of running processes
  • 31. Fig: Spawning a container for CRIU
  • 34. Conclusion and Future Scope ● Since everything after the completion of the earlier step exists as files in the controlling system, it can be easily moved to any other node through remote sync protocols or existing container migration techniques in order to continue execution of the runtime in the new node. ● The work done as part of the project creates a foundation to continue the work container migration on network Edge by the team at University of Messina. ● The work involved as part of this project is open-source and is available for everyone to view and leverage.
  • 35. References [1] Carlo Puliafito, Enzo Mingozzi, Carlo Vallati, Francesco Longo, Giovanni Merlino - Virtualization and Migration at the Network Edge: an Overview [2] Roberto Morabito - Virtualization on Internet of Things Edge Devices with Container Technologies: a Performance Evaluation - May 2017 - IEEE Access PP(99) [3] Antonio Puliafito et al - Building a Smart City Service Platform in Messina with the #SmartME Project - 2018 32nd International Conference on Advanced Information Networking and Applications Workshops [4] Antonio Puliafito et al - Stack4Things: An OpenStack-Based Framework for IoT - 2015 3rd International Conference on Future Internet of Things and Cloud [5] Giovanni Merlino, Dario Bruneo et al - Stack4Things: integrating IoT with OpenStack in a Smart City context [6] Dario Bruneo - Head in a Cloud: An approach for Arduino YUN virtualization - 2017 Global Internet of Things Summit
  • 36. References [7] Flávio Ramalho, Augusto Neto - Virtualization at the network Edge: A performance comparison - 2017 IEEE WoWMoM [8] Stack4Things - https://github.com/MDSLab/stack4thing [9] Docker Registry API to be standardised in OCI - https://blog.docker.com/2018/04/docker-registry- api-standardized-oci/ [10] Docker leads OCI release of V1.0 runtime and image format specifications - https://blog.docker.com/2017/07/oci-release-of-v1-0-runtime-and-image-format-specifications/ [11] Image formats support of Glance - https://docs.openstack.org/python- glanceclient/latest/cli/details.html [12] Glance command line API - https://docs.openstack.org/python-glanceclient/latest/cli/details.html [13] Containers replacing Virtual machines - https://blog.docker.com/2018/08/containers-replacing- virtual-machines/ [14] OpenStack DevStack installation - https://opendev.org/openstack/devstack. [15] OpenStack DevStack documentation - https://docs.openstack.org/devstack/latest/ [16] OpenStack Horizon Dashboard Demo -https://www.youtube.com/watch?v=z6ftW7fUdp4

Editor's Notes