VM Host
- A VM host is a physical computer running a VMware hypervisor
- A VCL computer entry must be added for each VM host (Manage Computers > Edit Computer Information)
- After the computer has been added to VCL, it is designated as a VM host by changing the computer state to vmhostinuse (Manage Computers > Computer Utilities)
VM
- A VM is a virtual machine managed by VCL
- A computer entry must be added to VCL for each VM (Manage Computers > Edit Computer Information)
- Each VM must be assigned to a VM host (Virtual Hosts > VM Hosts tab > Configure Host)
- VMs do not need to be created manually in VMware, VCL automatically creates and deletes VMs
VM Host Profile
- A VM host profile contains several parameters which describe how a VM host is configured so that VCL knows how to manage it
- Each VM host is assigned a VM host profile
- A VM host profile may be assigned to multiple VM hosts if they are configured identically
- VM host profiles may be added or modified via Virtual Hosts > VM Host Profiles tab
VMware Products Supported
- VMware Server 2.x
- VMware ESX 3.5 - 4.x
- VMware ESXi 4.x
- VMware ESXi 5.x
VM Host Management Options
The VCL management node must be able to control the VM host and the VMs running on it. VMware provides several different ways of doing this. VCL currently supports the following methods for remote VM host management:
- VMware vSphere SDK
- Use SSH to execute commands directly on the VM (not officially supported by VMware)
The vSphere SDK can only be used if management is not restricted due to the VMware license key installed on the host. This mainly affects hosts running the free version of ESXi. Remote management using any of the methods supported by VMware is restricted once a free license key is entered.
If remote management is restricted, the VM host can be managed if SSH is enabled on it. VCL will execute vim-cmd and other commands on the VM host via SSH.
How to enable SSH on the VM host:
VMware Server 2.x
Enable the SSH daemon and configure identity key authentication according to the underlying VM host OS
ESX/ESXi 3.5 & 4.0
- Connect to the console of the ESX/ESXi host
- Press ALT-F1 - you should see a black screen with the VMware product name at the top
- Type the word unsupported and press Enter (you won't see the letters appear as you type them)
- You should see a password prompt, type in the root password and press Enter
- Edit the file: vi /etc/inetd.conf
- Uncomment the first line beginning with #ssh by deleting the # character
- Save the file - press Esc and then :wq
- Kill the inetd process
- Determine the PID of the inetd process: ps | grep inetd
You should see a line that looks like: 5065 5065 busybox inetd
- Kill the process (enter the PID from the output of the previous command): kill -HUP 5065
ESXi 4.1
Beginning with ESXi 4.1, SSH can be enabled using the vSphere Client:
- Select the ESXi host
- Select the Configuration tab
- Select Security Profile under Software
- Click Properties
- Select Remote Tech Support (SSH)
- Click Options
- Select Start automatically
- Click Start
- Click OK
ESX 4.1
In the case of ESX 4.1, SSH is enabled as the default. Using the vSphere Client, you can confirm it:
- Select the ESXi host
- Select the Configuration tab
- Select Security Profile under Software
- Click Properties
- Select SSH Server
- Click Options
- Confirm that Start automatically is selected
- Click OK
SSH identity key authentication must be configured if SSH is used to manage the VM host.
- Create an SSH key pair on the management node (or use a key you previously created):
- Log into the ESX host via SSH (password authentication should work) and create the directory:
- Copy the public key to the ESXi host:
- Test making an SSH connection using the key:
IMPORTANT: Under ESXi 4.x, the authorized_keys file is erased when the ESXi VM host is rebooted. Complete the following steps to make the authorized_keys file persistent:
Note: VCL will perform these steps automatically when the 1st reservation assigned to the host is processed.
- Create a compressed tarball file containing the /.ssh directory:
- Edit the /bootbank/boot.cfg file and append ' --- vcl.tgz' to modules line as shown in the following example:
kernel=b.z
kernelopt=
modules=k.z — s.z — c.z — oem.tgz — license.tgz — m.z — state.tgz — vcl.tgz
build=4.1.0-260247
updated=2
bootstate=0
VM Host Profile Parameters
General Parameters
Name (required)
- Descriptive name of the VM host profile
Type (deprecated)
- Will be removed in VCL 2.3
Image (optional)
- VCL hypervisor image installed on VM host computers using xCAT
- If xCAT is not used, select "No Image"
- VCL has the ability to install a hypervisor image on bare-metal computers using xCAT. If the image property is configured, the image is installed when a computer's state is changed to vmhostinuse via Manage Computers > Computer Utilities
Username/Password (optional)
- Name and password of the administrative or root user residing on the VM host
- This account is used to manage the VM host and VMs assigned to the host
- The username and password are currently only used if the vSphere SDK is used to manage the VM host and VMs
Storage Parameters
Datastore Path (required)
- Location where master copies of images are stored which are used by running VMs
- Example: /vmfs/volumes/nfs-datastore1
- Storage location should be large enough to store all of the images which may be loaded on the VM host (from 100's of GB to several TB)
- VCL creates a directory for each image in the datastore
- Images are stored in the vmfs thin vmdk format
- Datastore Path may either reside on local or network storage
- Multiple VM hosts can share the same datastore if network storage is used
- A single datastore may be used by all VM hosts if performance is adequate
- Multiple VMs on different hosts may access the same Datastore Path image at the same time
- It is recommended that datastores are shared among hosts so that fewer copies of each image have to be stored
- The underlying storage hardware and network connectivity from the hosts to the storage must be adequate
- Storage where the datastore is located should be optimized for read performance
- VCL configures VMs to access images stored in the Datastore Path in read-only mode
- Changes made to the VM's hard drive are written to delta files located in the VM Path directory dedicated for the VM
VM Path (optional)
- Path on VM host where VM files are stored (.vmx, delta, .vswp, nvram...)
- If not configured, the Datastore Path location will be used
- VCL creates a directory under the VM Path directory for each VM it creates
- Contains the .vmx file which defines the VM
- Contains delta vmdk files which are written to as changes are made to the VM's hard drive
- VM Path may either reside on local or network storage
- Location should be dedicated for each VM host
- Multiple VM hosts should not share the same VM Path location for performance and image safety reasons
- VM Paths of multiple hosts may reside on the same volume but a subdirectory should be created for each host
- Storage where the VM Path is located should be optimized for read-write performance
Repository Path (optional)
- Path where master copies of images are stored which are used to transfer images to VM host datastores or to other repositories:
- If a reservation is assigned to a host but the image does not exist in that host's datastore, it is copied from the repository to the datastore path when the VM is loaded
- If the VCL environment contains multiple management nodes and the image does not exist in the repository or the host's datastore, the image will be retrieved from another management node's repository by copying it via SCP
- The Repository Path parameter does not need to be if the VCL environment contains a single management node and all VM hosts share the same Datastore Path
- Example: /vmfs/volumes/nfs-repository1
- VMs do not run directly off of the images stored in the repository
- Setting the Repository Path parameter determines whether or not an additional copy of an image is created when an image is captured
- If repository path is not configured then only a single copy of the image will exist in the datastore after an image is captured
- If repository path is configured then two copies of the image will exist after an image is captured - one in the datastore and one in the repository
- Images in the repository are stored in the 2 GB sparse vmdk format
- The size of the vmdk files will approximately be equal to the amount of actual data saved in the image regardless of the size of the VM's hard drive
- Storing images in the 2 GB sparse format is necessary to allow images to be transferred via SCP without having to transfer data equal to the entire size of the VM's hard drive
- Example: A Linux image contains is allocated a 30 GB hard drive but only 800 MB is actually used. A copy of the image is stored in both the datastore (thin vmdk) and repository (2 GB sparse vmdk). Each of these locations is mounted via NFS on the VM host and management node.
- The size of the 2 GB sparse vmdk files will be approximately equal to the actual amount of data used according to both the ls and du commands from the management node:
[root@vcl-mn vmwarelinux-RHEL54Small2251-v0]# ls -lh
-rwxr-xr-x 1 root root 880M Apr 22 2011 vmwarelinux-RHEL54Small2251-v0-s001.vmdk
...
-rwxr-xr-x 1 root root 1.5K Apr 22 2011 vmwarelinux-RHEL54Small2251-v0.vmdk
total 798M
[root@vcl-mn vmwarelinux-RHEL54Small2251-v0]# du -ch *.vmdk
406M vmwarelinux-RHEL54Small2251-v0-s001.vmdk
...
16K vmwarelinux-RHEL54Small2251-v0-s016.vmdk
8.0K vmwarelinux-RHEL54Small2251-v0.vmdk
798M total
- The size of the thin vmdk file will be equal to the size of the VM's hard drive according to the ls command from the management node:
[root@vcl-mn vmwarelinux-RHEL54Small2251-v0]# ls -lh
total 953M
rw------ 1 root root 30G Aug 1 2011 vmwarelinux-RHEL54Small2251-v0-flat.vmdk
rw------ 1 root root 540 Aug 2 2011 vmwarelinux-RHEL54Small2251-v0.vmdk
- The size of the thin vmdk file will be approximately equal to the actual amount of data used according to the du command from the management node:
[root@vcl-mn vmwarelinux-RHEL54Small2251-v0]# du -ch *.vmdk
953M vmwarelinux-RHEL54Small2251-v0-flat.vmdk
8.0K vmwarelinux-RHEL54Small2251-v0.vmdk
953M total
- Copy the thin vmdk via SCP - the amount of data copied is equal to the size of the VM's hard drive (30 GB):
[root@vcl-mn nfs-datastore1]# scp -r vmwarelinux-RHEL54Small2251-v0 matilda:/install/thin
vmwarelinux-RHEL54Small2251-v0-flat.vmdk 7% 2261MB 25.3MB/s 18:45 ETA
- Copy the 2 GB sparse vmdk via SCP - the amount of data copied is approximately equal to the actual amount of data used:
[root@vcl-mn vmware_images]# scp -r vmwarelinux-RHEL54Small2251-v0 matilda:/install/2gbsparse
vmwarelinux-RHEL54Small2251-v0-s001.vmdk 100% 880MB 25.9MB/s 00:34
...
vmwarelinux-RHEL54Small2251-v0-s016.vmdk 100% 64KB 64.0KB/s 00:00
vmwarelinux-RHEL54Small2251-v0.vmdk 100% 1444 1.4KB/s 00:00
VM Disk
- Defines whether the storage where the VM host's Datastore Path resides is dedicated to a single host or shared among multiple hosts:
- localdisk
- The VM host's Datastore Path is located on local disks or dedicated network storage
- The VM host is the only host which accesses the Datastore Path
- Repository Path must be configured
- networkdisk
- The VM host's Datastore Path is located on network storage which is shared by other VM hosts
- Repository Path is optional
Networking Parameters
Virtual Switch
- Should match the network names configured on the VM host
- For ESXi, the Virtual Switch parameters must match the Virtual Machine Port Group Network Labels configured in the vSphere Client
- For VMware Server 2.x, the Virtual Switch parameters must match the Network Names configured by running vmware-config.pl
- Virtual Switch 0 - private VCL management network
- Virtual Switch 1 - public network used by user making reservation to access the VMs
Generate eth0/eth1 MAC
- Not used at the current time
- Will eventually determine whether VMs are assigned MAC addresses defined in the VCL database or if random MAC addresses should be assigned