Virtualizing the desktops to reduce the total cost of ownership.

Objective: Manage the desktops better. More explained in

Current scenario: 60 desktops with roaming profile. These desktops have been installed using Norton ghost images.

Future scenario: Being able to maintain one image copy that is installed on all the 60 desktops and can be synchronized each week end. So that on each week end every desktop gets the standard desktop this will allow us to:
1. Roll out software updates and new software on desktop easily.
2. Standardize the versions and programs on each of the desktops.
3. Other generic advantages of desktop virtualization.

Softwares considered:
A. Virtualbox
B. Vmware. : Chose this since 1. Skype installed on this but not on virtualbox. 2. Has a better management infrastructure compared to virtualbox.

File formats considered and chosen:
1. .vdi format.
2.  .vmdk -> Chose this since both virtualbox and vmware can use this format.

The software stack on each desktop:
Base OS : Centos
Application running the container OS: Vmware player 2.5.1
Container OS: WinXP SP2

Steps to create a new OS image:

Option A: If you are comfortable editing the VMware virtual server config file by hand.

For details read:
http://www.ffnn.nl/pages/articles/linux/vmware-player-image-creation.php

2 Basic steps:
1. download to the same directory:
http://www.ffnn.nl/media/articles/linux/vmware-player-images/20G-ide.zip
http://www.ffnn.nl/media/articles/linux/vmware-player-images/template-windows.vmx

2. Double click on the vmx file and boot using the cd rom drive

Option B: If you need a GUI to create the virtual server
Download and use the Vmware server from http://www.vmware.com/products/server/

To know more about vmware

http://www.youtube.com/results?search_query=desktop+virtualization
http://www.vmware.com/solutions/desktop/

Decisions encountered and made

1. Will the web camera work ? Yes it worked fine with VmPlayer

2. Is the performance penalty acceptable ? After installing VmTools for windows yes it was
What are VmTools ? http://www.petri.co.il/virtual_install_vmware_tools.htm

Also follow the other steps listed on: http://www.petri.co.il/virtual_increase_vmware_performance.htm

3. Do we use Vmware player or Vmware ESXi ?
Advantage of Vmware ESXi: Comes with an inbuilt lean optimized linux based OS so no need to install centos as our base OS. But ESXi makes the client a dumb display device and does not use the processing power on the client hence decided to use the VMware player.

4. Do we need X windows and Window manager ?
We need X Windows but we do not need Window manager like Gnome or Kde.
http://en.wikipedia.org/wiki/X_Window_System
http://en.wikipedia.org/wiki/Window_manager

5. What is the script that will boot into Centos and take person to XP desktop so a end user has a seamless experience ?

Step1: Edit /etc/inittab file and make following modifications:-
a. id:3:initdefault: -> id:5:initdefault:

Step2: Have a single line line in .xsession in the root’s home folder:
vmplayer -X /gt/fsrvthis/winxp-current.vmdk
This way, when the program is closed, X will exit. The -X makes it start full-screen.
For more information read: http://communities.vmware.com/message/328738

Step3: ln -s ~/.xsession ~/.xinitrc (This will make a symbolic link .xinitrc to .xsession)

Step4: chmod 700 ~/.xsession (Give execute permission to .xsession).

6. How to roll out a standard CentOS on multiple machines? What is the configuration of the base os ?
We use Kickstart here is the manual

The configuration of the base OS is:
1. Kernel 2.  sshd  3.  X Windows without any window manager 4. emacs 5. lynx
IP address in the sapce: 10.1.35.x where x is 100+workstationnumber

Kickstart file used by grmtech is kept inside out svn repo.

Use the %post section of the kickstart file to:
1. Set the name server to 10.1.21.1 in resolv.conf
2.In rc.local set to execute /gt/server-config/base.desktops.grmtech/everytimeafterboot.php
3. Install vmplayer.
4. Copy the winxp-os-latest.vmdk from sama server to /gt/fsrvthis/winxp-os-current.vmdk
5. Set the ssh server to run on port 99

The services that are checked in ntsysv are:
1. network
2. acpid
3. apmd
4. irq_balance
5. cpuspeed
6. haldaemon
7. readahead_early
8. readahead_later
9. sshd
10. syslog
11. smartd
12. yum_updatesd

7. How is the OS image pushed out ?
Pushing out the base OS: Using PXE. Here is the PXE Manual
Pushing out the VmWare OS
On the samba server there is a directory called virtualization/desktop/ and there is a file called winxp-os-allconfigured-phase4.vmdk
The rsync (make sure –partial option is used during rsync) is done in push mode from the samba server and when the base centos on the desktop given to the end user boots it Checks if there is a file called winxp-os-allconfigured-phase4.vmdk and if this file is existing:
1. It deletes winxp-os-allconfigured-current.vmdk and
2. then rename winxp-os-allconfigured-phase4.vmdk to winxp-os-allconfigured-current.vmdk

8. Do we use a single disk file to store the OS or multiple disk files ?
A single disk file of 20 GB.

9. What are the os images that are stored for debug and upgrade reasons ?
winxp-os-freshinstall-phase1.vmdk
winxp-os-windowsupdatesdone-phase2.vmdk
winxp-os-msofficeinstalled-phase3.vmdk
winxp-os-allconfigured-phase4.vmdk
10. What is the current problems to solve?
A. Two times the password needs to be entered when the system is started once in linux and then in windows.
B. During shutdown two times the shutdown needs to be done.
C. The vmware comes on the top while in windows.