Skip to content

The following repo contains steps to implement a CRIU based docker container migration between a primary node and a secondary node.

Notifications You must be signed in to change notification settings

NightOwl998/DockerContainerMigration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRIU Based Migration For LRM NODE Docker

This repo explains the steps to implement the CRIU based docker container migration for lrm node between a primary node and a secondary node

  1. Environement details:
    1. OS version: Ubuntu 16.04.7.
    2. CRIU version: 3.15.
    3. Docker version: 18.09 (expiremental).
  2. setting up the NFS pool between the primary and secondary node:
    1. On the primary Node :
      1. Install NFS :
        sudo apt-get update
        sudo apt-get install nfs-kernel-server
      2. We’ll now create the root directory of the NFS shares, this is also known as an export folder
        sudo mkdir /mnt/myshareddir
      3. Edit the /etc/exports file in a text editor, and add the following directive.
        /mnt/myshareddir ip_secondary_node (rw,sync,no_subtree_check)
      4. Make the NFS Share Available to Clients.
        exportfs -a
      5. restart the NFS kernel
        systemctl restart nfs-kernel-server
    2. On the secondary node
      1. Install NFS :
        sudo apt-get update
        sudo apt-get install nfs-common
      2. Create a local directory—this will be the mount point for the NFS share:
        sudo mkdir /var/locally-mounted
      3. Edit the /etc/fstab by adding the following line :
        {IP of NFS server}:/mnt/myshareddir /var/locally-mounted nfs defaults 0 0
      4. Now mount the file share using the following command:
        mount /var/locally-mounted
        mount {IP of NFS server}:/mnt/myshareddir
  3. CRIU Migration
    1. On the primary Host
      1. Run the script Run.sh to run the lrm node
      2. --- Launch your VR application and connect your clients ( the VR unity sample is included in Tanks)
      3. Run the script Checkpoint.sh to save the state of the container
    2. On the secondary Host
      1. Run the script restore.sh to restore the lrm container in its previous state
      2. The VR sample game is the tank game provided by mirror with LRM incroporated in it in addaition to requestServerList the script that allows us to view and join existing servers and the script NeyworkPingDisplay from mirror that we modified to save the rtt every one 1s in a csv File.

About

The following repo contains steps to implement a CRIU based docker container migration between a primary node and a secondary node.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published