Skip to content

How to integrate RackHD with multiple infrasim nodes in one OS

Xiaowen Jiang edited this page May 2, 2017 · 1 revision

Introduction

To support multiple vnodes running under one OS without modifying too much configuration, we develop a tool, i.e. IVN, to setup a network environment integrating virtual vswitch and network namespace.

IVN Repository

Setup Environment

In the following sections, take RackHD ova environment as an example, which isc-dhcp-server is bound to eth1. You might have to modify some configuration if your environment has a different dhcp lease nic.

Setup Network Environment with IVN

  • Clone IVN repository and checkout branch for rackhd:

      git clone https://github.com/xiaowenjiang/ivn.git
    
      cd ivn
    
      git checkout rackhd
    
  • Install dependencies for IVN (under source code folder):

      sudo apt-get install –y bridge-utils openvswitch-switch
    
      sudo pip install –r requirments.txt
    
  • Remove the ip you assigned to dhcp binding nic (that 172.31.128.1 one). Here it's eth1:

      sudo ifconfig eth1 0
    
  • Modify the network configuration (/etc/network/interfaces) to append the following line:

      source /etc/network/interfaces.d/*
    
  • Run creator to setup network environment:

      sudo ./creator_rackhd.py create
    
  • You can check the newly created network namespaces with command:

      sudo ip netns list
    

You can see node1, node2, node3 listed if you succeed to setup the environment.

Install and configure infrasim-compute

  • Install infrasim-compute:

      sudo pip install infrasim-compute
    
  • Init infrasim service:

      sudo infrasim init
    
  • Add node configuration files into mapping list with the following configuration:

      ---
      #This file is used as InfraSIM configuration file
      name: node1
      namespace: node1
      type: quanta_d51
    
      compute:
          boot:
              splash: /usr/local/infrasim/data/boot_logo.jpg
          cpu:
              quantities: 2
              type: Haswell
          memory:
              size: 1024
          storage_backend:
              -
                  type: ahci
                  max_drive_per_controller: 6 
                  drives:          
                  -
                      size: 8
          networks:
      
              -
                  network_mode: bridge
                  network_name: br0
                  device: e1000
    

Command to add node configurations (say it node1.yml):

    sudo infrasim config add node1 node1.yml
    sudo infrasim config add node2 node1.yml
    sudo infrasim config add node3 node1.yml
  • Edit node configurations of node2 and node3 to modify namespace, set them to "node2", "node3" separately:

      sudo infrasim config edit node2
      sudo infrasim config edit node3
    

Start infrasim vnodes one by one:

    sudo infrasim node start node1
    sudo infrasim node start node2
    sudo infrasim node start node3

After a while, you could check rackhd discovered list to see if the nodes are discovered.

Note that Your base vm should have enough memory for the nodes!!! Other resources also should be considered.