Showing posts with label virtualization. Show all posts
Showing posts with label virtualization. Show all posts
Host, Clusters and Resource Pools together form the skeleton for any virtualization technology so that the virtualization software (hypervisor) can consume it to present a virtual machine to the end user. They are the building blocks of any virtualization platform (eg: VMware). Just like a normal enterprise application would have a front-end , business logic & back-end , Virtualization Applications are also very similar.
Now the best part of Virtualization application in the above diagram is that, the last layer (Hardware) is dynamic - in the sense that resources can be added and removed as per the needs.

A host is nothing but a high-end physical computer with only computing and memory resources. The number of CPUs for a Host is fixed , however there is an option of increasing or decreasing the RAM for a Host (with a constraint to max upper-limit ). Storage or data-stores can be added to the Host as per the need. This entire concept of host is same as that a physical desktop or laptop. But a host is much powerful than a desktop/laptop. 

For example : A host with 4 dual-core CPUs each running at 3 GHz  and 32GB of memory will have 24GHz (dual-core = 4x2 ) of computing power and 32 GB of RAM available for running virtual machines on top of the host.

Now how do we scale this ??? You guessed it right ... combine multiple hosts together. This is nothing but a Cluster. So if a Cluster has 4 hosts then a total of 24GHz * 4 = 96 GHz computational power , 32 GB * 4 = 128 GB of RAM is available for Virtualization

How does clustering help ? Now the hypervisor software sees the each underlying hardware as a single entitiy. Which means if we want to create a Virtual Machine with 50GHz computational power and 50GB RAM then creating it with a single host is not possible. However creating it on a cluster is possible. One can relate Cluster as a solution to the problem of Defragmentation. Lets see this :



So what's a resource pool ? Well its grouping of resources like CPUs and Memory to that they can be allocated as per the business needs for a particular department in the company.  Which means it makes more sense to create a group of resource pools from a cluster than a individual hosts. Resource Pools are dynamic and hence resources reserved can be dynamically changed, modified or removed. Lets consider a scenario of a Software Company Project with one manager , two developers and three test engineers.

Any Resource Pools can be partitioned into smaller
Resource Pools at a fine-grain level to further divide and assign resources to different groups or for different purposes .

Obviously more machines and resources will be required by the test team inorder to test a piece of software on different operating systems. Comparatively developers would require lesser number of VMs but each VM should be powerful enough. We can easily load balance the resources as the team expands or shrinks. If the development team is not utilizing the resources to its peak and the test team needs more CPU/RAM , we can easily adjust the resource pool.

As a result resources are not wasted if they are not being used to their max capacity.Hence resource pools can be nested, dynamically reconfigured and organized hierarchically .

Individual business units can use their own dedicated infrastructure while still benefiting from the efficiency of resource pooling. Isn't this something like an " À la carte " where we use resources only as per the requirement.

What are Hosts, Clusters and Resource Pools

Virtualization is an abstraction layer that sits in between the physical hardware and the operating system. Virtualization is a methodology of dividing the resources of a computer into multiple execution environments, by applying one more concepts such as Hardware and Software Partionioning, time-sharing, emulation, simulation and on-demand utilization.

Virtualization allows multiple virtual machines, with different flavours of operating systems like Windows, Linux, Solaris and the respective softwares/applications to run in seperately, just like running multiple physical machines seperately.

What are Virtual Machines ?

Simulation of a Physical Machine in the form of a Software is known as a virtual machine. With the help of virtualization softwares (Hypervisor) the operating system is made to believe that the hardware on which it is running is real and is fully owned by it and no other OS is sharing it, while the Hypervisor provides all the interfacing between the OS and the underlying hardware in a sharing and on-demand mode.

A VM has its own set of virtual hardware (e.g., RAM, CPU, NIC, hard disks, etc.) upon which an operating system is loaded. The operating system sees a normal set of hardware regardless of the actual underlying  physical hardware.
New virtual machines can be created in seconds, without the need of any purchase order and any physical space to worry about. Once a virtual machine is
provisioned, the required OS and softwares can be installed on the VM just like a
physical machine.

Simple meaning of Virtualization and Virtual Machine

VMware's vSphere has become the Virtualization standard for any company wanting to run its IT infrastructure in a virtualized mode. Tracing the roots of VMware back to year 2001 when the company launched its first product "ESX 1.0" which stands for "Elastic Sky X" ( Not sure what is really means ). The real essence is to maximize the hardware utilization by making use of hardware on a sharing basis between different Virtual Machines sitting on top of the ESX software which runs on a bare metal machine and not on top of a third part OS.
ESX 1.0 supported 1 CPU , 2GB of Memory, upto 5GB/s of network speed and a massive 5000 IOPS (Input/Output operations per second). Since then till the current release of vSphere 5.0 ( after EX1, ESX2 new release was named as Virtual Infrastrure 3 which then was re-named to vSphere 4 for the next release) these metrics have changed drastically.
VSphere 5 has a support for 32 CPU, 1000GB of Memory, upto 36 GB/s of network speed and 1,000,000 of IOPS. Thats the beauty of VMware and the innovation in the hardware world.

VMware is everywhere, starting from Military infrastructure to Banking to Public Transport Systems.Every IT organization is using VMware/Virtualization to reduce its IT costs and achieve its "Cost to Value" goal. The infographic gives better picture of the ancestors of vSphere 5.0



Hardware, Software & now VMware is currently the third most important word in the IT dictionary.

VMware Product History on a Timeline

Here's a presentation that will explain what is the traditional hardware, what is the need to have virtualization, how memory,CPU and disk I/O is handled in a virtualized environment , what is a hypervisor, how virtualization address today IT concerns and many more basic concepts of virtualization technology.
Before you read ahead, read this "Simple Meaning of Virtualization"



Lets see if you are getting a grip of what you just read . Mention top 5 reasons to adopt virtualization software ? Answer it in the below comments section.
If you have concerns or question, send me an email on :  piyush@pcclm.com

Explaining Virtualization with the example of Virtual PC software

Lets play around the Solaris virtualization technology by Oracle (SUN) known as Jumpstart - a network installation tool-set used by Solaris for virtualising the SPARC/x86 hardware for Solaris operating systems. Ever imagined on how to take OS snapshots for Solaris considering the fact that its mostly deployed on SPARC architecture ? How to remotely deploy Solaris OS over the network ? How to backup all the operating system data from one Solaris machine and deploy it over another machine ? How can we have an automated mechanism to do all the above steps ? Well Jumpstart is the answer to your questions.

Did you know there's something known as Kickstart for Linux based operating systems only ... to be discussed in future articles.For now lets jump back to Jumpstart ...

Why Jumpstart ?

} Simplifies - the way Solaris installations are done on 'N' machines
} Speed - Faster than the traditional manual method of CD-ROM installation
} Adminless - Allows unattended installation
} Replication - easily replicate systems across the organization/institution

Lets try to understand the Jumpstart scenario for Intel (x86) based machines.
Jumpstart consists of 2 main parts :
{ network booting of a system } and  { network installation }

Ingredients for setting up Jumpstart on x86 based machines or VMware :

1. One Virtual Switch - helps create a private network on existing VMware setup
2. Two Solaris 10 machines on x86/vmware hardware (one server and one client)
      - Server plays the role of DHCP server + Boot Server + Installation Server
      - Client will boot from DHCP server and start the installation/clone deployment process

3. One NFS / HTTP / FTP machine to store captured data or FLAR files (optional but recommended to have a separate machine to store captured images)

Note : You don't want other machines on your VMware setup to boot from Jumpstart's DHCP server and mess up your critical environment, hence create a virtual switch to isolate your Jumpstart setup.

Here's a sample image of how your setup would look like ...



Setup two machines with Solaris 10. While installing Solaris 10 make sure that you select "Entire Group" option so that all packages are installed.
If you are using a virtual switch to isolate your environment you will need to setup a DNS server also using the DNS packages for Solaris.The DNS machine can be of any flavor windows or linux.

Consider the two machines as Server and Client.On the Server you need to follow the below steps :

1. Create install and configuration directories


# mkdir –m 755 /export/jumpstart /export/jump_sol10
# chown root:root /export/jumpstart /export/jump_sol10
# cat /etc/dfs/dfstab share –F nfs –o ro,anon=0 /export/jumpstart share –F nfs –o ro,anon=0 /export/jump_sol10 ^D
# shareall


2. Copy the solaris operating system media

# mount -F hsfs -o ro /dev/dsk/c0t0d0s2 /mnt
# ls /mnt/
Copyright License boot
JDS-THIRDPARTYLICENSEREADME Solaris_10 installer
#
# mkdir /export/install
# cd /mnt/Solaris_10/Tools/
# ./setup_install_server /export/install/
Verifying target directory…
Calculating the required disk space for the Solaris_10 product
Calculating space required for the installation boot image
Copying the CD image to disk…
Copying Install Boot Image hierarchy…
Copying /boot netboot hierarchy…
Install Server setup complete
#

3. Create sysidcfg file in install directory

# mkdir /export/config
# vi /export/config/sysidcfg
system_locale=C
timezone=Europe/Madrid
terminal=vt100
keyboard=Spanish
security_policy=none
root_password=s0yZy.w98CEO6
timeserver=localhost
name_service=none
network_interface=nge0 { hostname=hostname_of_your_client
protocol_ipv6=no
netmask=255.255.255.0
default_route=10.164.5.254}
nfs4_domain=dynamic
#

Now export the NFS where the files are stored :

# more /etc/dfs/dfstab

# Place share(1M) commands here for automatic execution
# on entering init state 3.
#
# Issue the command ‘svcadm enable network/nfs/server’ to
# run the NFS daemon processes and the share commands, after adding
# the very first entry to this file.
#
# share [-F fstype] [ -o options] [-d ""] [resource]
# .e.g,
# share -F nfs -o rw=engineering -d “home dirs” /export/home2
share -F nfs -o ro /export/config
#
# shareall
#
# share
- /export/config ro “”
- /export/install ro,anon=0 “”
#

4. Create Profile and rules.ok file

creating the profile file :

# cd /export/config/
# vi profile1
install_type initial_install
system_type standalone
cluster SUNWCXall
# format the entire disk for Solaris
fdisk all solaris all
# define how the disk is partitioned
partitioning explicit
filesys rootdisk.s0 6144 /
filesys rootdisk.s1 4096 swap
filesys rootdisk.s7 free /partition7
#

creating the rules file :

# cd /export/config
#
# vi rules
hostname hostname_of_your_client – profile1 -
#

Now run the "check" file to validate the profile and rules.ok file

# cd /export/config/
# cp /export/install/Solaris_10/Misc/jumpstart_sample/check /export/config/
# ls -l
total 130
-r-xr-xr-x 1 root root 63082 Sep 14 17:19 check
-rw-r–r– 1 root root 364 Sep 14 17:12 profile1
-rw-r–r– 1 root root 30 Sep 14 17:08 rules
-rw-r–r– 1 root root 289 Sep 14 17:05 sysidcfg
# ./check
Validating rules…
Validating profile profile1…
The custom JumpStart configuration is ok.
# ls -l
total 132
xr-xr-x 1 root root 63082 Sep 14 17:19 check
-rw-r–r– 1 root root 364 Sep 14 17:12 profile1
-rw-r–r– 1 root root 30 Sep 14 17:08 rules
-rw-r–r– 1 root root 56 Sep 14 17:19 rules.ok
-rw-r–r– 1 root root 289 Sep 14 17:05 sysidcfg
# more rules.ok
hostname hostname_of_your_client – profile1 -
# version=2 checksum=2581
#

5. Create /tftpboot

# mkdir –m 711 /tftpboot
# chown root:root /tftpboot

Also uncomment the line in /etc/inet/inetd.conf

#tftp … /usr/sbin/in.tftpd in.tftpd -s /tftpboot

6. Start system daemons
Restart the following daemons :
NFS daemons
in.rarpd
rpc.bootparamd
inetd

7. Configure the DHCP server

# dhcpconfig -D -r SUNWfiles -p /var/dhcp
Created DHCP configuration file.
Created dhcptab.
Added “Locale” macro to dhcptab.
Added server macro to dhcptab – galdospr.
DHCP server started.
# svcs -p dhcp-server
STATE STIME FMRI
online 18:30:39 svc:/network/dhcp-server:default
18:30:39 7687 in.dhcpd
# dhcpconfig -N 10.164.5.0 -t 10.164.5.254
Added network macro to dhcptab – 10.164.5.0.
Created network table.
#

8. Add the IP of your client

# pntadm -A 10.164.5.13 -c hostname_of_your_client -f DYNAMIC -m 10.164.5.0 -y -s IP_OF_YOUR_SERVER
#

9. Add the client to the JumpStart configuration

Add the client to the JumpStart configuration with the add_install_client script
available options :
-p : directory where the sysidcfg file resides
-d : specify as a DHCP client
-e : ethernet/MAC address
-c : directory where the rules.ok file resides

# cd /export/install/Solaris_10/Tools/
# ./add_install_client -d -c YOUR_SERVER_IP:/export/config -p YOUR_SERVER_IP:/export/config -e YOUR_CLIENTS_MAC_ADDRESS i86pc

Adding “share -F nfs -o ro,anon=0 /export/install” to /etc/dfs/dfstab
copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

If not already configured, enable PXE boot by creating
a macro named 0100E0815F2C07 with:
Boot server IP (BootSrvA) : YOUR_SERVER_IP
Boot file (BootFile) : 0100E0815F2C07
#

Create the following macro (the name contains the MAC address of the client) to enable the PXE boot, as mentioned in the output of the previous script :

# dhtadm -A -m 0100E0815F2C07 -d ‘:BootFile=0100E0815F2C07:BootSrvA=YOUR_SERVER_IP:’
#

10. Final touch

activate the tftp boot service

# svcs ‘*tftp*’
STATE STIME FMRI
online 18:16:15 svc:/network/tftp/udp6:default
#

modify the vfstab

# grep tftp /etc/vfstab
/export/install/boot – /tftpboot/I86PC.Solaris_10-1 lofs – yes ro
#

add_client script creates a menu.lst file , modify that to add the "-install dhcp" option

# more /tftpboot/menu.lst.01080027701392
default=0
timeout=30
title Solaris_10 Jumpstart
kernel /I86PC.Solaris_10-1/multiboot kernel/unix – install dhcp -B install_config=YOUR_CLIENT_IP:/e
xport/config,sysid_config=YOUR_CLIENT_IP:/export/config,install_media=YOUR_CLIENT_IP:/export/install
module /I86PC.Solaris_10-1/x86.miniroot
#

DONE ... now just reboot your client and wait until it boots from network

.

Solaris Jumpstart on VMware and x86 machines

IBM Software CTO Anant Jhingran talks about total cost of ownership and the value IBM and VMware extend to their customer.




VMware Virtualization and IBM

+