Anuket Project
VNFs
VLoop-VNFs
Existing Artifacts:
New Vloop-VNFs
Ubuntu:
Steps:
- Download bionic mini.iso from https://help.ubuntu.com/community/Installation/MinimalCD , and name it as bionic-64.mini.iso
- qemu-img create -f qcow2 /tmp/vloop-vnf.qcow2 10G
- virt-install --virt-type kvm --name trusty --ram 1024 --cdrom=/tmp/bionic-64-mini.iso --disk /tmp/vloop-vnf.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=ubuntutrusty
- Complete the installation process - include just openssh-server
- Login and install the following:
- cloud-init, git, make, ifupdown built-essentials, libnuma-dev, pciutils, bridge-utils, libelf-dev
- gcc: newer gcc, for security reasons, have, by default, set with --enable-default-pie (check with gcc -v). This will create linking errors during testpmd build. To overcome this, one option is to we can install a version of gcc (ex: from https://drive.google.com/drive/folders/1xVEATaYAwqvseBzYxKDzJoZ4-Hc_XOJm) with pie not enabled. Use update-alternatives to set gcc7 to gcc - use command - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc7 100
- Change the default network names to eth*
- Open /etc/default/grub
- modify GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
- sudo grub-mkconfig -o /boot/grub/grub.cfg
- Enable Serial Console
- cp /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS0.service
- edit the file and modify the agetty line: ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM <-- Change this parameter
- ln -s /etc/systemd/system/serial-getty@ttyS0.service /etc/systemd/system/getty.target.wants/
- Reload the daemon and start the service: # systemctl daemon-reload, # systemctl start serial-getty@ttyS0.service, # systemctl enable serial-getty@ttyS0.service
- Open /etc/default/grub
- modify GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 console=tty1 console=ttyS0,115200"
- sudo grub-mkconfig -o /boot/grub/grub.cfg
- enable root login with 'root' password: sudo bash, #passwd, root
- All ifdown operations on eth0 and eth1: Add 'eth0' and 'eth1' in /run/network/ifstate.eth0 and /run/network/ifstaet.eth1, respectively. Also add eth0=eth0 and eth1=eth1 in /run/network/ifstate
- Perform cleanup; sudo apt-get clean, sudo apt-get autoremove --purge,
- Zeroing the freespace:
- dd if=/dev/zero of=/tmp/zeros bs=1M
- rm /tmp/zeros
- Shutdown the VM.
- Compress the image: qemu-img convert -O qcow2 -c vloop-vnf.qcow2 vloop-vnf-small.qcow2
Fedora:
Noisy-Neighbor-VNFs
- Based on stress-ng
- Based on Spirent cloudstress ( https://github.com/spirent/cloudstress)