HPC-Europa2 Virtual Cluster liveDVD – milestone6 (final release)

The JRA2 team is proud to announce the release of HPC-Europa2 live DVD milestone 6. You can download milestone 6 ISO image (compressed with size 1.7 GB) from the below links:

CINECA (Italy) – http://www.hpc-europa.eu/?q=node/142
EPCC (Scotland) – http://hpce2jra2.epcc.ed.ac.uk/milestone6.iso.gz
HLRS (Germany) – https://fs.hlrs.de/projects/live-ptd/iso/milestone6.iso.gz

Release Note for Milestone 6
============================
The Virtual Cluster liveDVD:
* provides tools and libraries that are installed and used at the partner sites.
* emaulates the environment of the platforms available at HPC-Europa centers.
* allows hands-on building of a virtual cluster.

The liveDVD contains training and dissemination material published by the
HPC-Europa2 project, including material from the partner centers such as slides,
video tutorials and example code. Optional access to a source code repository enables
the migration of code and data from the Virtual Cluster to the user account created
on the HPC-Europa machines.

The liveDVD is based on SliTaz GNU/Linux, a free operating system, working completely
in RAM and booting from a removable media. The file size of the SliTaz GNU/Linux
3.0 ISO image is 29 MB. Hence, it leaves plenty of space for adding tools, libraries
and training material into this liveDVD. The SliTaz system is quick, responsive, and clean.
A lightweight and elegant desktop is included as well in the 29MB ISO image.

The milestone 6 ISO image has roughly the size of 3.8 GB including several tools
and libraries, as well as training material. Moreover, it contains a documentation
of how to build a virtual cluster using VirtualBox, and HPC-Europa2's Science and
Supercomputing in Europe research highlights for 2009 and 2010. Finally, this milestone
release addresses several bug fixes, such as firefox with flash support and
build scripts for Torque.

Since the previous release (milestone 5), existing packages have been updated, such as:
* MPICH2 to version 1.4.1p1
* Firefox to version 9.0.1 with flash support.
* Paraver to support the updated version of MPICH2.

In addition, this release has added several new packages:
* lava-1.0.6: Platform Lava - an open source version of Platform Load Sharing Facility (LSF).
* info (texinfo-4.13a) and man pages (man-db-2.6.0.2 and man-pages-3.35) for Linux documentation.
* Abiword and Gnumeric for office word documents and spreadsheets.
* Compiler wrappers (based on gcc and gfortran) to emulate Intel, IBM and NEC SX compilers.

You can download milestone 6 ISO image (compressed - size 1.7 GB) from the below link:
    http://www.hpc-europa.eu/?q=node/142

System Requirements
===================
* A laptop or computing with a DVD drive.
* Intel or AMD processor with a hardware virtualization support when using KVM
  and libvirt. Otherwise, this liveDVD can be run under VirtualBox or VMware or similar.

Known Issues
============
* PGI compilers require a license file in order to work (not included in this milestone).
* Totalview requires a license file in order to work (not included in this milestone).
  For requiring a demo license visit:
  http://www.roguewave.com/products/totalview-family/totalview.aspx
* On a MacBook Pro laptop, the mousepad does not work. Need to use an USB mouse
* Resizing video screen on VLC causes an unexpected exit of the program.
* VLC has no sound for viewing mkv videos.
* VLC cannot stream files or view incoming streams.

Acknowledgement
===============
This work was carried out under the HPC-EUROPA2 project (project number: 228398),
with the support of the European Community - Research Infrastructure Action of the FP7.

HPC-Europa2 Virtual Cluster liveDVD – milestone 5

The fifth release of the HPC-Europa2 Virtual Cluster liveDVD is available (milestone 5) for download:

CINCENA (ITA) - http://www.hpc-europa.eu/files/iso/milestone5.iso.gz
EPCC (UK) - http://hpce2jra2.epcc.ed.ac.uk/milestone5.iso.gz

Release Note for Milestone 5
============================
The Virtual Cluster liveDVD:
* provides tools and libraries that are installed and used at the partner sites.
* emulates the environment of the platforms available at HPC-Europa centers.
* allows hands-on building of a virtual cluster.

The liveDVD contains training and dissemination material published by the HPC-Europa2 project, including material from the partner centers such as slides, video tutorials and example code. Optional access to a source code repository enables the migration of code and data from the Virtual Cluster to the user account created on the HPC-Europa machines.

The liveDVD is based on SliTaz GNU/Linux, a free operating system, working completely in RAM and booting from a removable media. The file size of the SliTaz GNU/Linux 3.0 ISO image is 29 MB. Hence, it leaves plenty of space for adding tools, libraries and training material into this liveDVD. The SliTaz system is quick, responsive, and clean. A lightweight and elegant desktop is included as well in the 29MB ISO image.

The milestone 5 ISO images has roughly the size of 3.7 GB including several tools and libraries, as well as training material.

Since the previous release (milestone 4), existing packages have been updated, such as:

* Open MPI to version 1.5.4
* Midori with flash support
* Firefox to version 7.0.1

In addition, this release has added a new package to support EVO (http://evo.caltech.edu/)

System Requirements
===================
* A laptop or computing with a DVD drive.
* Intel or AMD processor with a hardware virtualization support when using KVM and libvirt. Otherwise, this liveDVD can be run under VirtualBox or VMware or similar.

Known Issues
============
* Totalview requires a license file, which is no included, in order to work.
For requiring a demo license visit:
http://www.roguewave.com/products/totalview-family/totalview.aspx
* On a MacBook Pro laptop, the mousepad does not work. Need to use an USB mouse
* Resizing video screen on VLC causes an unexpected exit of the program.
* VLC has no sound for viewing mkv videos.
* VLC cannot stream files or view incoming streams.
* Flash cannot be viewed under Firefox. Use Midori instead.

Acknowledgement
===============
This work was carried out under the HPC-EUROPA2 project (project number: 228398),
with the support of the European Community – Research Infrastructure Action of the FP7.

HPC-Europa2 Virtual Cluster liveDVD – milestone 4

The fourth release of the HPC-Europa2 Virtual Cluster liveDVD is available (milestone 4) for download:

CINCENA (ITA) - http://www.hpc-europa.eu/files/iso/milestone4.iso.gz
EPCC (UK) - http://hpce2jra2.epcc.ed.ac.uk/milestone4.iso.gz
HLRS (GER) - https://fs.hlrs.de/projects/live-ptd/milestone4.iso

Release Notes for milestone 4
============================
The Virtual Cluster liveDVD:
* provides tools and libraries that are installed and used at the partner sites.
* emulates the environment of the platforms available at HPC-Europa centers.
* allows hands-on building of a virtual cluster.

The liveDVD contains training and dissemination material published by the HPC-Europa2 project, including material from the partner centers such as slides, video tutorials and example code. Optional access to a source code repository enables the migration of code and data from the Virtual Cluster to the user account created on the HPC-Europa machines.

The liveDVD is based on SliTaz GNU/Linux, a free operating system, working completely in RAM and booting from a removable media. The file size of the SliTaz GNU/Linux 3.0 ISO image is 29 MB. Hence, it leaves plenty of space for adding tools, libraries and training material into this liveDVD. The SliTaz system is quick, responsive, and clean. A lightweight and elegant desktop is included as well in the 29MB ISO image.

The milestone4 ISO images has roughly the size of 3.4GB including several tools and libraries, as well as training material.

Since the previous release (milestone3), existing packages have been updated. Moreover, new packages have been added, such as:

* Emacs version 23.1
* Firefox version 6.0.2
* covise-6.5.0: A collaborative visualization and simulation environment
* imagemagick-6.5.5: Imaging tools.
* libvirt-0.9.4: The virtualization API
* marmot-2.4.0: A tool for analysing and checking MPI applications
* modules-3.2.8: The modules environment.
* opennebula-2.2.1: A virtualization manager
* qcachegrind-0.6: A profile data visualization under Qt similar to KCachegrind.
* torque-3.0.0: Provides the binaries for the Torque Batch System.
* tcl-8.5.9, tcl-8.4: TCL scripting packages, dependencies for the modules environment.
* VampirTrace-5.11: Generates an OTF trace file, which can be analyzed and visualized  by the visualisation tool Vampir.
* MPI and OpenMP training material has been added.
* Tutorial has been provided on how to set up the Virtual Cluster.

System Requirements
===================
* A laptop or computing with a DVD drive.
* Intel or AMD processor with a hardware virtualization support.

Known Issues
============
* Totalview requires a license file, which is no included, in order to work. For requiring a demo license visit: http://www.roguewave.com/products/totalview-family/totalview.aspx
* On a MacBook Pro laptop, the mousepad does not work. Need to use an USB mouse
* Resizing video screen on VLC causes an unexpected exit of the program.
* VLC has no sound for viewing mkv videos.
* VLC cannot stream files or view incoming streams.

Acknowledgement
===============
This work was carried out under the HPC-EUROPA2 project (project number: 228398), with the support of the European Community – Research Infrastructure Action of the FP7.

Ethernet device rename

I have been looking recently to find a way of creating a bridge interface on SliTaz in order to get KVM/libVirt working with the expected br0 interface. Unfortunately, the network configuration files of SliTaz do not provide any information, neither the documentation. A post on the forum didn’t get any replies either. Rather than trying figuring how a proper bridge interface would work on SliTaz, I thought of renaming eth0 to br0, as the later would be expected by KVM/libVirt. As far as I know the following process would need to be followed for other distros as well as there is no specific way of renaming an interface other than using udev rules.

On SliTaz, the required udev rule is defined /etc/udev/rules.d/70-persistent-net.rules. The default entry looks like the following (where Xs the MAC address):

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

The generated rule matches the eth0 interface with the specific network card. The required change is the renaming of the NAME field to br0. If the targeted system is a virtual machine with changeable MAC address, or most likely a live distro like in my case, the ATTR field, that specifies the MAC address, would need to be changed as well. Changing it to 0* would work and on the next boot the device should be renamed. The final udev rule:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="0*",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="br0"

There is one more addition to do on SliTaz and that is to rename the default ethernet device in /etc/network.conf from eth0 to br0. That would allow higher level applications and scripts to look for br0 rather the non-existant eth0.

OpenNebula DHCP leases – automatic lease discovery

OpenNebula uses a network template file that lists all the available IPs within a specific network that can be given to the Virtual Machines on an OpenNebula deployment. The template can define more details such as gateway, resolves, network class and so on. In our case, we just need a list of available leases for the VMs to pick up. The following script automates the process of getting listed all the available IPs within the network range of the bridged interface of the OpenNebula host machine, starting from checking the first IP after that of the bridged interface.

############################################################################
# Copyright (C) 2011  Panagiotis Kritikakos <pkritika@epcc.ed.ac.uk>       #
#                                                                          #
#    This program is free software: you can redistribute it and/or modify  #
#    it under the terms of the GNU General Public License as published by  #
#    the Free Software Foundation, either version 3 of the License, or     #
#    (at your option) any later version.                                   #
#                                                                          #
#    This program is distributed in the hope that it will be useful,       #
#    but WITHOUT ANY WARRANTY; without even the implied warranty of        #
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
#    GNU General Public License for more details.                          #
#                                                                          #
#    You should have received a copy of the GNU General Public License     #
#    along with this program.  If not, see <http://www.gnu.org/licenses/>. #
############################################################################

#!/bin/bash

if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
 echo
 echo " This script will generate the appropriate leases for the Open Nebula Virtual
         Machines."
 echo " It will generate leases that for unused IPs that map to the bridged interface."
 echo
 echo " The default bridge interface is br0. If you want to change this, pass another
        interface as an argument."
  echo
  exit
fi

if [ "$1" == "" ]; then
  BRIDGE=br0
else
  BRIDGE=$1
fi

IPADDR=`ifconfig $BRIDGE | grep "inet addr" | awk {'print $2'} | sed s/addr:*//g`
BCAST=`ifconfig $BRIDGE | grep "inet addr" | awk {'print $3'} | sed s/Bcast:*//g`
MASK=`ifconfig $BRIDGE | grep "inet addr" | awk {'print $4'} | sed s/Mask:*//g`
if [ -e /etc/debian_version ]; then
  NETWORK=`ipcalc -n $IPADDR $MASK | grep Network | awk {'print $2'} | sed 's/\./ /g' \
| awk {'print $1"."$2"."$3'}`
else
  NETWORK=`ipcalc -n $IPADDR $MASK | sed s/NETWORK=*//g | sed 's/\./ /g' | \
awk {'print $1"."$2"."$3'}`
fi

IPOCT=`ifconfig $BRIDGE | grep "inet addr" | awk {'print $2'} | sed s/addr:*//g | \
sed 's/\./ /g' | awk {'print $4'}`
BCASTOCT=`ifconfig $BRIDGE | grep "inet addr" | awk {'print $3'} | sed s/Bcast:*//g | \
sed 's/\./ /g' | awk {'print $4'}`

hostMin=$(($IPOCT + 1))
hostMax=$(($BCASTOCT - 2))
totalIP=$(($hostMax - $hostMin))

echo
echo " $(($totalIP + 1)) IPs will be checked for availability.
       That might take some time..."
iter=1

ONNET_FILE=hpce2_network.net

printf 'NAME = "HPCE2"\n' > $ONNET_FILE
printf 'TYPE = FIXED\n\n' >> $ONNET_FILE
printf "BRIDGE = ${BRIDGE}\n" >> $ONNET_FILE
echo
for LEASE in `seq $hostMin $hostMax`
do
  echo -n $iter " "
  ping -c 1 ${NETWORK}.$LEASE -W 1 > /dev/null;
  if [ $? -ne 0 ]; then
    printf 'LEASES = [ IP=''"'$NETWORK.$LEASE'"''] \n' >> $ONNET_FILE
  fi
  let iter++
done
echo
echo

Virtual Cluster liveDVD milestone 3 released

The Virtual Cluster liveDVD milestone 3, an activity of the HPC-Europa2 project, is available from today for download.

“The “HPC-Europa2 Virtual Cluster Live DVD” is a SliTaz based Live Linux DVD. It boots and runs completely from DVD providing recent tools, compilers and libraries for the development of parallel applications. Further on the DVD includes training material, videos from past virtual surgeries and reports from past HPC-Europa visitors.”

Considerations and implications of virtualisation

The last couple of years I have been partly looking into coherent management of virtual machines and their integration within an existing managed infrastructure. I have tried to outline the issues, complications etc on a number of posters [1] [2] (based on tools that have been/are being developed) and also through a paper [3]. A couple of days ago, I read the very interesting article of Evangelos Kotsovinos, “Virtualisation: Blessing or Curse?” on ACM Queue, which recaps all the main considerations and implications when comes to deploy virtualised services in large scale. Anyone interested in large scale system administration that involves virtualisation management should read it. The article is trying to seriously outline the importance and complexity of managing not only the “inside” of virtual machines, but their “outside” as well and their integration with a pre-existing, established and well-functioned infrastructure with thousands of systems under a cloud computing scope.

SliTaz kernel modules issues

SliTaz is a minimal, light-weight (30MB) Linux distribution, available in a liveCD (or USB, obviously). We are using it as the base for developing a liveDVD for a project. These minimal distros are quite nice from the aspect that you install the package you need as you go. The great problem, is that they’re missing *lots* of base packages that need to perform standard operations (e.g. ‘make’). Even worse, they don’t include lots of kernel modules (i.e. drivers). In my case the system didn’t have the required network module.

I was trying to deploy SliTaz on a Xen virtual machine on a Dell Poweredge. With Ethernet card seen by the VM as:

$ lspci | grep Ether
00:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+

The kernel module required for this card is either “8139cp.ko” or “8139too.ko”. Both missing from my installation. I had another testing installation on a VirtualBox where the ethernet card worked fine but it needed another module, available by the default installation. A quick look on the SliTaz forums shown that the module I was after should be available with the 3.0 release, the one I was trying. I tried the ‘cooking’ (development) version as well but it didn’t really made any difference.

A way I could deal with this was to start downloading packages from the SliTaz repository in order to install the kernel source files for compiling the required module. The process had to be done manually on the Xen host system. Get the packages -> create map device for the image-> mount the VM’s image on Xen host -> copy the packages -> un-mount the image -> remove the mapper -> boot the VM -> install packages -> find out the dependencies not listed on the package information -> go back to step1. A bit ‘painful’ doing this as a repetitive process to solve the problem.

kpartx -a /gust/image.img
mount /dev/mapper/loop0p1 /mnt
(cp cp cp cp...)
umount /mnt
kpartx -d /gyest/image.img

The other way was to use my SliTaz VM instance on VirtualBox that had connection to the Internet. Downloading the kernel source, with all of its dependencies:

$ tazpkg get-install linux-source

Creating a Makefile for the required module:

obj-m += 8139cp.o
KVERSION = $(shell uname -r)
all:
	make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
	make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

Typing ‘make’ and the module was created. Next step was to copy the module across to the Xen host system and follow the same steps as for copying packages from the local disk over to the VM’s image. Once the module was copied and the VM was booted, the module had to be loaded:

$ insmod 8139cp.ko
$ lsmod
Module                  Size  Used by    Not tainted
8139cp                 17252  0
$ ifconfig eth0 up
$ udhcpc eth0

eth0 was then up, fetching its IP from the DHCP server. Next step, to automate this on every startup by adding these sequential commands in /etc/init.d/local.sh