back to index

virtualbox VM

final setting

install ubuntu

basic setting

/etc/default/locale

LANG="en_US.utf8"
LANGUAGE="en_US:en"

/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.89.240
        netmask 255.255.255.0
        gateway 192.168.89.1

auto eth1
iface eth1 inet static
        address 192.168.67.240
        netmask 255.255.255.0

auto eth2
iface eth2 inet static
        address 192.168.45.240
        netmask 255.255.255.0


dns-nameservers 192.168.67.253 8.8.8.8
dns-search icehouse

/etc/hosts

127.0.0.1       localhost
192.168.67.240	compute.icehouse

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

/etc/hostname

compute.icehouse

/etc/dhcp/dhclient.conf

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name = gethostname();

supersede domain-search "icehouse";
prepend domain-name-servers 192.168.67.253;

request subnet-mask, broadcast-address, time-offset, routers,
	domain-name, domain-name-servers, domain-search, host-name,
	dhcp6.name-servers, dhcp6.domain-search,
	netbios-name-servers, netbios-scope, interface-mtu,
	rfc3442-classless-static-routes, ntp-servers,
	dhcp6.fqdn, dhcp6.sntp-servers;
  • reboot
  • apt-get -y update
  • apt-get -y upgrade
  • apt-get -y install ntp
  • apt-get -y install ubuntu-cloud-keyring
  • apt-get -y dist-upgrade
  • reboot

/etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server controller.icehouse

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1
  • service ntp restart

Openvswitch (2.3.2)

  • apt-get -y install git
  • git clone git://github.com/mininet/mininet
  • mininet/util/install.sh -V 2.3.2
  • ovs-vsctl set-manager ptcp:6634:192.168.45.240

/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.89.240
        netmask 255.255.255.0
        gateway 192.168.89.1

auto eth1
iface eth1 inet static
        address 192.168.67.240
        netmask 255.255.255.0

allow-ovs br-int
iface br-int inet static
        ovs_type OVSBridge
        ovs_ports eth2
        address 192.168.45.240
        netmask 255.255.255.0
        ovs_extra set-fail-mode ${IFACE} standalone -- set bridge ${IFACE} other-config:disable-in-band=true -- set bridge ${IFACE} protocols=OpenFlow13 -- set-controller ${IFACE} tcp:192.168.45.252:6633

allow-br-int eth2
iface eth2 inet manual
        ovs_type OVSPort
        ovs_bridge br-int
        up ifconfig $IFACE 0.0.0.0 up
        up ip link set $IFACE promisc on
        down ip link set $IFACE promisc off
        down ifconfig $IFACE down


dns-nameservers 192.168.67.253 8.8.8.8
dns-search icehouse

/etc/default/openvswitch-switch

# This is a POSIX shell fragment                -*- sh -*-

# FORCE_COREFILES: If 'yes' then core files will be enabled.
# FORCE_COREFILES=yes

# OVS_CTL_OPTS: Extra options to pass to ovs-ctl.  This is, for example,
# a suitable place to specify --ovs-vswitchd-wrapper=valgrind.
OVS_CTL_OPTS='--delete-bridges'
  • reboot

Nova-compute

  • apt-get -y install pm-utils
  • apt-get -y install libguestfs-tools
  • apt-get -y install python-guestfs
  • apt-get -y install nova-compute-kvm

/etc/libvirt/qemu.conf


cgroup_device_acl = [
    "/dev/null", "/dev/full", "/dev/zero",
    "/dev/random", "/dev/urandom",
    "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
    "/dev/rtc","/dev/hpet", "/dev/vfio/vfio", "/dev/net/tun"
]

/etc/libvirt/libvirtd.conf


listen_tls = 0
listen_tcp = 1
auth_tcp = "none"
listen_addr = "192.168.67.240"

/etc/init/libvirt-bin.conf

env libvirtd_opts="-d -l"

/etc/default/libvirt-bin

libvirtd_opts="-d -l"
  • virsh net-autostart default --disable
  • virsh net-destroy default
  • virsh net-undefine default
  • service dbus restart
  • service libvirt-bin restart

/etc/nova/nova.conf

[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
verbose=True
api_paste_config=/etc/nova/api-paste.ini

rabbit_host = controller.icehouse

auth_strategy = keystone
glance_host = controller.icehouse
glance_port = 9292

ec2_host = controller.icehouse
keystone_ec2_url = http://keystone-api.icehouse:5000/v2.0/ec2tokens

metadata_host = controller.icehouse
console_host = controller.icehouse

vnc_enabled = false

network_api_class = nova.network.neutronv2.api.API
neutron_admin_auth_url = http://controller.icehouse:35357/v2.0
neutron_url = http://network.icehouse:9696
neutron_admin_tenant_name = service
neutron_admin_username = neutron
neutron_admin_password = service_pass

[spice]
enabled = True
agent_enable = False
server_listen = 192.168.67.240
server_proxyclient_address = 192.168.67.240
html5proxy_base_url = http://192.168.89.253:6082/spice_auto.html

[keystone_authtoken]
auth_uri = http://keystone-api.icehouse:5000/v2.0
#identity_uri = http://controller.icehouse:35357/
auth_protocol = http
auth_host = controller.icehouse
auth_port = 35357
auth_version = 2.0
admin_tenant_name = service
admin_user = nova
admin_password = service_pass

/etc/nova/nova-compute.conf

[DEFAULT]
compute_driver = nova.virt.libvirt.driver.LibvirtDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
linuxnet_ovs_integration_bridge = br-int


[libvirt]
# virtualbox never support VT-in-VT
virt_type=qemu
# if you can use VMware, use below:
#virt_type=kvm
vif_driver = nova.virt.libvirt.vif.LibvirtOpenVswitchVirtualPortDriver
vif_type = ovs
use_virtio_for_bridge = true
inject_partition = -1

/usr/lib/python2.7/dist-packages/nova/virt/libvirt/vif.py

class LibvirtOpenVswitchVirtualPortDriver(LibvirtGenericVIFDriver):

    def get_config_ovs(self, instance, vif, image_meta, inst_type):
        return self.get_config_ovs_ethernet(instance, vif, image_meta, inst_type)

    def plug_ovs(self, instance, vif):
        self.plug_ovs_ethernet(instance, vif)

    def unplug_ovs(self, instance, vif):
        self.unplug_ovs_ethernet(instance, vif)


  • service nova-compute restart