VHACS-VM is an Alpha release of the VHACShigh availability storage cloud stack running in a virtualized x86_64 environment. VHACS is a highly available storage cloud based on at least eight open source technologies running on Linux v2.6.25.

The VHACS-VM images are available, and oriented towards kernel developers, storage and network systems researchers, C programmers, Python and Shell programmers, and anyone who wants to run and see a real life open storage cloud on their virtualized x86 PC. Using VHACS-VM is the fastest and easiest method for users to get involved with the project. This is a developer-oriented release, and a complete development environment is included in the images.

Currently, VHACS can manage 4-8 storage clouds as long as the network bridge setup is working as expected (see below).

Current setup

There are two (vhacs64-west and vhacs64-east) x86_64 VMware v6 compatible images, and there is one build .vmdk containing the source for the VHACS Alpha. The build disk image is distributed seperately in order to reduce the size for obtaining a two node VHACS-VM cloud of your own.

Each image has a Debian Etch v4.0 r3 x86_64 installation. The Linux kernel is v2.6.25.9 (see kernel.org) with KDB patches. The VHACS-VM kernel is also configured with ParaVirt-Ops for the least amount of virtualized execution overhead on modern PC hardware.

Setup

/etc/hosts

Based on your DHCP configured IP address (obtained with ifconfig eth0), set the vhacs64-west.linux-iscsi.org and vhacs64-east.linux-iscsi.org hostnames to your locally allocated IP addresses on both vhacs64-west and vhacs64-east VM images.

/etc/vhacs.conf

Configure the storage network and mask:

STORAGE_NETWORK = "192.168.0.0"
STORAGE_NETMASK = "24"

Configure the range of IP addresses that are assigned to VHACS cloud from the resource pool.

WARNING: Make sure this range is either explictly not in use by your DHCP server, or won't have an affect on your active network.

FIRST_STORAGE_IP = "192.168.0.50"
LAST_STORAGE_IP = "192.168.0.99"

NIC configuration

VHACS-VM can be configured to use different STORAGE_IFNAME and HEARTBEAT_IFNAME interfaces. For instance, this consists of:

Having two physical hosts running VMware and VHACS-VM. This implies any PC with hardware x86_64 virtualization that can run VMware with the current 64-bit VHACS-VM images.

Having two bridged network interfaces on the host machines running vhacs64-[west,east] demo images. They should be running on a different local subnet or network range from each other.

Note that not all ethernet interfaces support bridging sufficently to run VHACS-VM. We still need to determine how to easily find the networking hardware that can be used with the various virtualization hypervisors with VHACS-VM images.

Launching the storage cloud

Now that active cluster communication between the two VHACS nodes (vhacs64-west and vhacs64-east) is established, the storage cloud can be launched as follows.

Assigning roles

Roles can be assigned to the nodes in the VHACS cluster as follows:

vhacs64-west:~# vhacs node -s ALL vhacs64-west,vhacs64-east
role vhost now set on node vhacs64-west
role storage now set on node vhacs64-west
role vhost now set on node vhacs64-east
role storage now set on node vhacs64-east

Trouble shooting

As this is a very developer oriented Alpha preview, so you can help us find bugs! Here is the 10,000 ft view:

VHACS kernel/systems developer

The included v2.6.25.9 x86_64 kernel is patched with SGI Kernel Debugger. At any time, you can break into the kernel debugger with the good old' PC key 'Pause/Break'. Note that not all laptops have this key, so you may have to use a USB keyboard to access KDB.

Cluster infrastructure developer

The cluster stack (see VHACS for the stack components) is enabled with verbose debug. You can view the complete logs with tail -f /var/log/syslog.

VHACS systems administator

vhacs cluster -m is the primary status monitor (see above). Exceptions related to cluster RAs will appear as they occur.