Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

DISCLAIMER!

This document provides instuctions for configuring a standalone VCL environment running on a single computer which is able to provision VCL reservations using VMware.  It is only provided to help you understand how the various components of VCL operate.  This document DOES NOT describe how to configure a production VCL environment.  The environment described in this document can however be used to learn, test, and help develop VCL.

Install VCL Components

Begin by completing the installation instructions for the VCL components:

Gather Required Files & Information

You will need the following:

  • VMware Server 1.x RPM installation file
  • VMWare Server 1.x serial number

The following instructions assume the following locations

Gather Required Files & Information

You will need the following:

  • VMware Server 1.x RPM installation file
  • VMWare Server 1.x serial number

The following instructions assume the following locations on the management node:

  • VMWare Server RPM: /install/VMware-server-1.0.8-126538.i386.rpm

These instructions assume you have root access and are using a bash shell:

Panel

sudo bash

Configure the VCL Database for the VM Guest and Host 

  • Create the following computer groups:
    Go to Manage Groups -> Resource Groups -> Add
    • all vm host computers
    • all vm guest computers computers
  • Map all Map all computer groups to management node group
    • Management Nodes -> Edit Management Node Mapping
  • Configure the management node to check in with the database
    • Management Nodes -> Edit Management Node Information -> Add
      • Hostname: localhost
      • IP Address: 127.0.0.1
      • Owner: admin
      • State: available
      • Predictive Loading Module: Predictive Loading Level 0 Module
      • Check-in Interval: 5
      • Install Path: /install
      • End Node SSH Identitiy Key Files: /etc/vcl/vcl.key
      • SSH Port for this node: 22
      • Enable Image Library: no
  • Add VM host computer:
    • Manage Computers -> Edit Computer Information -> Submit -> Add  Add
      • Hosthame: localvmhost
      • IP Address: 192.168.0.1 (NOTE: there is currently a bug restricting the size of the field, so hopefully one octet has less than 3 digits.)
      • State: maintenance available
      • Owner: admin
      • Platform: i386
      • Note: do not attempt to add the computer in the maintenance state because of the following issue:
        https://issues.apache.org/jira/browse/VCL-189
      • Owner: admin
      • Platform: i386
      • Schedule: VCL 24x7 
      • RAM: 1024
      • No Processors: 1
      • Processor Speed: 2000
      • Network Speed: 100 
      • Type: blade
      • Provisioning engine: xCAT 1.x
      • Computer Groups: all vm host computers
      • Note: the Type and Provisioning engine values don't matter for the localvmhost computer in this test environment because vcld isn't provisioning it
      • Computer Groups: all vm host computers
  • Add VM guest computer:
      Add VM guest computer:
      • Manage Computers -> Edit Computer Edit Computer Information -> Submit -> Add   Add
        • Hosthame: vmguest-1
        • IP Address: current public ip address used by Windows XP VM
        • State: available 
        • Owner: admin
        • Platform: i386
        • Schedule: VCL 24x7 
        • RAM: 1024
        • No Processors: 1
        • Processor Speed: 2000
        • Network Speed: 100 
        • Type: virtualmachine
        • Provisioning engine: VMWare Server Provisioning
        • Computer Groups: all vm guest computers
    • Note the fix for the IP address bug is recorded here: https://issues.apache.org/jira/browse/VCL-193
    • Configure the VM guest's MAC address in the computer table in the database (as there currently does not seem to be a way to do this through the UI):
      • eth0:
      Configure the VM guest's MAC address in the computer table:
      • eth0: 00:50:56:1a:01:01
      • eth1: 00:50:56:1a:01:02
    • Configure the VM host profile:
      • Virtual Hosts -> VM Host Profiles tab -> VMware GSX standard -> configure Profile
        • Virtual Switch 0: VMnet1
        • Virtual Switch 1: VMnet0
    • Change state of localvmhost to vmhostinuse (edit the database directly, do not use the Virtual Hosts utility on the website)
    • Assign vm guests to localvmhost
    • Create node in priviledge tree
      • Name: VM image access
      • Add resource groups:
        • all vm guest computers
        • all vm guest images

    Remove Existing Virtualization Components

    Panel

    yum groupremove "Virtualization" -y  

    Make Sure The Host Computer Is Not Running A Xen Kernel

    VMWare Server cannot be installed on a computer running a Xen kernel.  To determine if a Xen kernel is being used:

    Panel

    uname -a

    The following output indicates a Xen kernel is being used:
    Panel

    Linux blade1g6-4 2.6.18-92.el5xen #1 SMP Tue Jun 10 19:20:18 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

    If "xen" appears in the output of the previous command, replace the Xen Kernel with the following commands:
    Panel

    yum update ecryptfs-utils -y
    yum install kernel kernel-devel -y
    yum remove xen kernel-xen -y

    Check the grub.conf file to make sure it is not configured to boot using the Xen Kernel
    Panel

    less /boot/grub/grub.conf 

    The grub.conf file should NOT look like this:
    Panel

    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,0)
    #          kernel /vmlinuz-version ro root=/dev/sda3
    #          initrd /initrd-version.img
    #boot=/dev/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.18-92.el5xen)
            root (hd0,0)
            kernel /xen.gz-2.6.18-92.el5
            module /vmlinuz-2.6.18-92.el5xen ro root=LABEL=/ pci=nommconf
            module /initrd-2.6.18-92.el5xen.img

    The grub.conf file SHOULD look like this:
    Panel

    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,0)
    #          kernel /vmlinuz-version ro root=/dev/sda3
    #          initrd /initrd-version.img
    #boot=/dev/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.18-128.1.14.el5)
            root (hd0,0)
            kernel /vmlinuz-2.6.18-128.1.14.el5 ro root=LABEL=/1 pci=nommconf
            initrd /initrd-2.6.18-128.1.14.el5.img

    After removing the Xen kernel, reboot the computer:

    Panel

    reboot

    Install VMware Server

    Download the latest VMware Server 1.x RPM from http://www.vmware.com
    (Note: these instructions assume you saved the RPM into /install)

    Install the VMware Server RPM:

    Panel

    rpm -ivh /install/VMware-server-1.0.8-126538.i386.rpm

    Configure VMware Server:
    Panel

    vmware-config.pl

    Note: if you receive an error message you may need to install or update some libraries and then run vmware-config.pl again:
    Panel

    yum install glibc-devel -y
    yum install glibc -y 
    yum install libXtst-devel -y

    VMware networking should be configured as follows after answering the questions asked by vmware-config.pl

    ...

    1. Press ENTER to view the license agreement, scroll to the bottom, type yes and press ENTER
    2. Wiki MarkupIn which directory do you want to install the mime type icons? \
      [/usr/share/icons\] *ENTER*unmigrated-wiki-markup
    3. What directory contains your desktop menu entry files?
      These files have a .desktop file extension. \ [/usr/share/applications\] *ENTER*unmigrated-wiki-markup
    4. In which directory do you want to install the application's icon? \
      [/usr/share/pixmaps\] *ENTER*
    5. Wiki MarkupNone of the pre-built vmmon modules for VMware Server is suitable for your
      running kernel.    Do you want this program to try to build the vmmon module for
      your system (you need to have a C compiler installed on your system)? \ [yes\] *ENTER*
    6. Wiki MarkupWhat is the location of the directory of C header files that match your running
      kernel? \ [/lib/modules/2.6.18-128.1.14.el5/build/include\] *ENTER*unmigrated-wiki-markup
    7. Do you want networking for your virtual machines? (yes/no/help) \ [yes\] *ENTER*
    8. Wiki MarkupYour computer has multiple ethernet network interfaces available: eth0, eth1,
      virbr0. Which one do you want to bridge to vmnet0? \ [eth0\] *eth1*unmigrated-wiki-markup
    9. Do you wish to configure another bridged network? (yes/no) \ [no\] *ENTER*unmigrated-wiki-markup
    10. Do you want to be able to use NAT networking in your virtual machines? (yes/no) \
      [yes\] *no*unmigrated-wiki-markup
    11. Do you want to be able to use host-only networking in your virtual machines? \
      [no\] *yes*
    12. Wiki MarkupDo you want this program to probe for an unused private subnet? (yes/no/help) \
      [yes\] *no* no
    13. What will be the IP address of your host on the private
      network? 192.168.0.1
    14. What will be the netmask of your private network? 255.255.0.0
    15. DHCP information is displayed, press ENTER
    16. Wiki MarkupDo you wish to configure another host-only network? (yes/no) \ [no\] *ENTER*unmigrated-wiki-markup
    17. The default port : 902 is not free. We have selected a suitable alternative
      port for VMware Server use. You may override this value now.
      Remember to use this port when connecting to this server.
      Please specify a port for remote console connections to use \ [904\] *ENTER*
    18. Wiki MarkupIn which directory do you want to keep your virtual machine files? \
      [/var/lib/vmware/Virtual Machines\] *ENTER*
    19. Wiki MarkupThe path "/var/lib/vmware/Virtual Machines" does not exist currently. This
      program is going to create it, including needed parent directories. Is this
      what you want? \ [yes\] *ENTER*
    20. Please enter your 20-character serial number
      Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: enter the serial number

    Verify the host-only network was configured correctly:

    Panel

    /sbin/ifconfig

    You should see a vmnet1 interface using IP address 192.168.0.1:
    Panel

    vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01
              inet addr:192.168.0.1  Bcast:192.168.255.255  Mask:255.255.0.0
              inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

    Restart the vmware service (/sbin/service vmware restart), you should see the following:

    unmigrated-wiki-markup
    Panel

    Starting VMware services:    Virtual machine monitor                                  \[ OK \]    Virtual ethernet                                         \[ OK \]    Bridged networking on /dev/vmnet0                        \[ OK \]    Host-only networking on /dev/vmnet1 (background) \[ OK \]    Starting VMware virtual machines...                     \[ OK \
       Virtual machine monitor                                  [ OK ]
       Virtual ethernet                                         [ OK ]
       Bridged networking on /dev/vmnet0                        [ OK ]
       Host-only networking on /dev/vmnet1 (background) [ OK ]
       Starting VMware virtual machines...                     [ OK ]

    Configure /etc/hosts

    Modify the /etc/hosts file to include entries for the VM host and guest computers:

    Panel

    vi /etc/hosts

    Add the entries in bold:

    Panel

    127.0.0.1 localhost
    192.168.0.1 localvmhost
    192.168.1.1 vmguest-1

    Configure the sshd Service to Listen on the Virtual Private Network 

    Panel

    vi /etc/ssh/sshd_config

    Add the following line to the end of the file:
    Panel

    ListenAddress 192.168.0.1

    Restart the sshd service on the management node:

    Panel

    /sbin/service sshd restart

    Configure The VM Host To Be Able To SSH To Itself

    Add the VM host's public key to its own authorized_keys file to allow it to SSH to itself without a password prompt: 

    Panel

    cat /etc/vcl/vcl.key.pub >> /root/.ssh/authorized_keys

    The following command should execute without having to enter a password:

    Panel

    ssh localvmhost 'ls /'

    Configure vcld to use vcl.key

    Configure the keys column in the managementnode table in the VCL database

    ...

    Configure the vcld.conf file to use vcl.key:

    Panel

    vi /etc/vcl/vcld.conf

    Modify all of the IDENTITY lines to specify the vcl.key file:

    Panel

    IDENTITY_blade_linux=/etc/vcl/vcl.key
    IDENTITY_solaris_lab=/etc/vcl/vcl.key
    IDENTITY_linux_lab=/etc/vcl/vcl.key
    IDENTITY_blade_win=/etc/vcl/vcl.key

    Configure The DHCP Service 

    Save a copy of the original dhcpd.conf file:

    Panel

    mv /etc/dhcpd.conf /etc/dhcpd.conf.orig

    Configure the dhcpd.conf file:
    Panel

    vi /etc/dhcpd.conf

    The dhcpd.conf file should contain the following:

    No Format
    ddns-update-style none;
     shared-network vmnet1 {
             subnet 192.168.0.0 netmask 255.255.0.0 {
                     ignore unknown-clients;
                     option routers 192.168.0.1;
                     host vmguest-1 {
                             option host-name "vmguest-1";
                             hardware ethernet 00:50:56:1a:01:01;
                             fixed-address 192.168.1.1;
                             filename "/tftpboot/pxelinux.0";
                             option dhcp-server-identifier 192.168.0.1;
                             next-server 192.168.0.1;
                     }
              }
    }
    

    The DHCP daemon should only listen on the virtual private network (vmnet1) to avoid conflicts with other production VCL networks.  Configure the dhcpd service startup script to only listen on the vmnet1 interface:

    Panel

    vi /etc/init.d/dhcpd

    Add vmnet1 the to the daemon $dhcpd line as shown:

    No Format
    start() {
        [ -x $dhcpd ] || return 5
        [ -f $conf ] || return 6
    
        pidofproc $prog >/dev/null 2>&1
        RETVAL=$?
        [ $RETVAL -eq 0 ] && return $RETVAL
    
        echo -n $"Starting $prog: "
        daemon $dhcpd vmnet1 $DHCPDARGS 2>/dev/null
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch $lockfile
        return $RETVAL
    }
    

    Configure the dhcpd service to automatically start at runlevels 3-5:

    Panel

    /sbin/chkconfig --level 345 dhcpd on

    Start the dhcpd service:  

    ...