Duncan pointed out to today on the VCDX forum that they have changed the name.
What was once – the VCDX4-DCD:
Is now – the VCDX4:
Check out the VMware official page for more info.
I for one am pleased with the change… :)
Duncan pointed out to today on the VCDX forum that they have changed the name.
What was once – the VCDX4-DCD:
Is now – the VCDX4:
Check out the VMware official page for more info.
I for one am pleased with the change… :)
No I do not have a crystal ball. I am not a magician, and also not a fortune teller.
A large number of sessions were submitted for VMWorld.
Now I do not know how many were submitted - but I can tell you how many were up for voting in each track.
How did I come by these numbers? I spent an evening counting each line (NOT!)
Track | # of Submissions |
Technology and Architecture | 145 |
Enterprise Applications | 104 |
Private Cloud - Management | 99 |
Desktop Virtualization | 94 |
Virtualization 101 | 72 |
Hybrid and Public Cloud | 63 |
Private Cloud - Business Continuity | 57 |
Private Cloud Security | 24 |
My conclusions from the list of submissions:
Now it is really time to call it a day.
VMware Workstation 7.1 was released yesterday.
With it - was the release of it's baby brother/sister - VMware Player 3.1
This release provides support for the following host and guest operating systems:
Operating System | Host and Guest Support |
Ubuntu 8.04.4 | Host and guest |
Ubuntu 10.04 | Host and guest |
OpenSUSE 11.2 | Host and guest |
Red Hat Enterprise Linux 5.5 | Host and guest |
Fedora 12 | Guest |
Debian 5.0.4 | Guest |
Mandriva 2009.1 | Guest |
The full details and Known issues can be found in the Release Notes
The 2010 Scripting Games are over and the results have been posted here. The scripting games is a fun little competition - well not so little. Similar to a decathlon there are 10 Events, published over the period of about 2 weeks. A huge amount of work goes into the logistics of the whole competition. Preparing the events,finding people (judges) to go over the huge amount of scripts that are submitted and grading them and so on ..
Well I really enjoyed the Games this year. Each event presented a problem that needed to be solved with a script, be it Powershell or VBScript (the amount of VBScript submissions this year were really low - which means more and more people are going over to Powershell). There were two levels - Advanced and Beginner. Now of course the criteria for grading was published and were very clear, including due dates.
From the Final Standings, I see I came in at #33 (out of 177)
Personally - I am extremely proud of my achievement, seeing that I only really started getting into Powershell only about 18 months ago. I decided to only participate in the Beginner level only - I did not submit any scripts for the advanced level
Glenn Sizemore - the winner of the contest - posted a round up of the games on his blog.
I would like to add a few more observations of my own.
I am still going over all the solutions that are being published for each event. I am pleased to say that I am still learning things each time that I can use in my Powershell scripts - so I am happy.
I would like to thank all the judges, the contestants, and most of all - the organizers, Ed Wilson and Craig Liebendorfer.
Congratulations to all the prize winners!!
My solutions for the Beginner Events:
See you all the the Scripting Games 2011, Monday, April 4, 2011, through Friday, April 15, 2011 !!
So today we will deal with how to get the scripts into the an ESXi installation. On Part 3 we dealt with what the scripts were and how to to use them
So how do we get the script to run on startup?
The two things that need to be done are:
# TCP client example
import time
import socket
time.sleep(20)
s = socket.socket()
s.connect(("192.168.113.1",3333))
s.send("14332354169934n2nduN")
s.close()
#!/bin/ash
export PYTHONHOME=/
export PYTHONPATH=/lib/python2.5-visor:/lib/python2.5-visor/lib-dynload:/lib/pyt
export PATH
python /sbin/client.py
So in order for us to add this to an ESXi ISO we need to do the following:
Now why the oem.tgz. The oem.tgz file is a file that will be parsed for installation which allows for OEM's to add bits and pieces into the ESXi install if needed.
In a default ESXi ISO - these are the contents of the image:
What we will need to do is a bit of manipulation to add some files to the oem.tgz and also into the image.tgz. Why both files you may ask - in order to make the changes to the installation persistent they have also be updated into the install.tgz file.
The most comprehensive resource I have found on customizing the oem.tgz file is on
Dave Mischenko's site.
There is a project on http://code.google.com/p/mkesxiaio/ where the process is automated - I cannot say that I have tried this personally - but it is on my list of to-do things.
We are going to this manually to explain the process a bit more so you can understand it a bit better and change it to your needs if you would like
Tools for the job that are needed:
Copy the iso image from VMware-VMvisor-Installer-4.0.0.Update01-208167.x86_64.iso to your Linux machine - you can use WinSCP or pscp.
pscp VMware-VMvisor-Installer-4.0.0.Update01-208167.x86_64.iso root@192.168.30.10:/myfolder
Create directories for the process
mkdir iso iso-mount oem image dd-image
Mount the CD
mount -o loop -t iso9660 VMware-VMvisor-Installer-4.0.0.Update01-208167.x86_64.iso iso-mount
Since this is read only copy files to iso directory
cp -r iso-mount/* iso/
Unmount and remove the folder
umount iso-mount/
rm -rf iso-mount/
Next we create the oem.tgz file
cd oem/
mkdir -p sbin etc/rc.local.d/
And now we create the script files.
The client
cat >> sbin/client.py <<EOF
# TCP client example
import time
import socket
time.sleep(20)
s = socket.socket()
s.connect(("192.168.113.1",3333))
s.send("14332354169934n2nduN")
s.close()
EOF
And the Startup Script
cat >> etc/rc.local.d/S99unattend <<EOF
#!/bin/ash
export PYTHONHOME=/
export PYTHONPATH=/lib/python2.5-visor:/lib/python2.5-visor/lib-dynload:/lib/python2.5-visor/site-packages
export PATH
python /sbin/client.py
EOF
Next we add the execute permissions
chmod -R 755 etc/ sbin/
Tar the file back up
tar czvf ../oem.tgz etc/ sbin/
The oem.tgz needs to be copied to two different locations
Copy to the first location
cd ..
cp oem.tgz iso/
Extract the installer image from the ISO
tar zxvf iso/image.tgz -C image/
We now extract the disk file
cd image/usr/lib/vmware/installer/
bunzip2 VMware-VMvisor-big-208167-x86_64.dd.bz2
Mount the image
mount -o loop,offset=$((512*8224)) VMware-VMvisor-big-208167-x86_64.dd ../../../../../dd-image/
2nd location – copy the oem.tgz file into the dd-image
cp ../../../../../oem.tgz ../../../../../dd-image/
Unmount the image
umount ../../../../../dd-image/
Compress the file
bzip2 VMware-VMvisor-big-208167-x86_64.dd
Go back to the install directory
cd ../../../../
Re-create the install.tgz file
tar zvcf ../iso/image.tgz usr/
cd ../iso
Create ISO
mkisofs -o ../My_VMware-VMvisor-Installer-4.0.0.Update01-208167.x86_64.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
cd ..
if you would there after you can remove everything
rm -rf dd-image/ image/ iso/ oem*
And as you can there is my newly created ESXi iso with my customizations inside
I have created a file with all the commands that you can copy and paste into a shell session for your convenience.
The whole process took less than 8 minutes.
Next up will be how deploy this to an through PXE to a server.
For those who are already in the process of the VCDX 3 (me included), regarding the announcements today - the most important bit of information for me was what will happen in the interim to those who are already in the track
Taken from the FAQ
I’ve started on the path to VCDX3. How will the VCAP program affect my next steps?
Your progress toward a VCDX3 certification can help you with VCDX4-DCD certification process because:
- Individuals who have passed the VMware Enterprise Administration exam get a discount on the VCAP4-DCA exam
- Individuals who have passed the VMware Design on VI3 exam get a discount on the VCAP4-DCD
- Individuals who have successfully defended a Design and Implementation Plan and achieved the VCDX3 certification are required to pass the VCAP4-DCD. This exam will be offered at a discount for VCDX3 certified candidates. These individuals are not required to submit a VCDX4-DCD Application nor required to defend another Design and Implementation Plan.
Depending on the path, you can earn additional certifications on your path to VCDX4-DCD. Review the Pathway Diagram now.
VCDX3 Applications will be accepted through the Defenses held in Cambridge, MA during the week of November 1, 2010.
When will VMware Design Exam on VI3 stop being offered?
You can sit for the VMware Design Exam on VI3 until Aug 30, 2010.
When will VMware Design Exam on VI3 stop being offered?
You can sit for the VMware Enterprise Administration Exam on VI3 until Aug 30, 2010.
Will I receive a VCAP certification if I pass the Enterprise Administration or Design Exam?
VCAP certifications will not be available for exams on VI3.
So this is the way that I see the way you should continue - depending on which stage you are currently in
Regarding those who are in the process - personally - I see no extra benefit in getting the VCAP certifications after you have the full VCDX4-DCD, so if the exams will not cost that much (decent discount) then why not - but otherwise - it will be a waste of money.
One other point to note:
Defenses dates and locations that are known are:
Melbourne, Australia - July 5-8, 2010
San Francisco, USA - August 30-September 2, 2010
Copenhagen, Denmark - October 12-14, 2010
--NEW-- Cambridge, MA November 1, 2010 (last chance to defend VCDX3)
vSphere Essentials is a package that is for the SMB. At present there is a promotional offer
(Until June 15, 2010) reducing the price from $995 to $495.
In this package you receive vCenter and 3 ESX host licenses (up to 6 CPU Licenses)
Of course this a basic package - with only the basic features - no HA, Vmotion etc.
This is ideal for a small business starting out.
I tried today to see if the limit is actually 6 CPU's or 3 hosts.
Here I have an Essentials License with 3 ESX hosts - but each of them only have 1 Physical CPU
Trying to add the 4th host I got this
What I did find strange though was that it did take up an extra CPU from my license
The new host was disconnected but still taking up a CPU license
After removing the Host - it went back to the correct state
What did I learn from this experience?
Ok it is up.
I see that all three of my submissions are up for Public Voting. (good to know that I am still up for consideration).
If you would like to see the sessions below accepted for VMworld - pop on over to the
VMworld 2010 Call for Papers Public Voting! and submit a click.
There a great number of sessions there - and many familiar names - and again I am honored to have my names up with such a great list of people.
You will need a VMworld account (free registration) and remember you can only click on each session once.
2 sessions in the Private Cloud Management Track and one on the Virtualization 101
Title: vCenter Migration - It's a Snap with POWERCLI
Session Id: MA6840
Abstract:"In this session, you will learn that there are certain cases where you would like to migrate your vCenter environment from one server to another without keeping the previous data and database problems from the previous environment. The session will walk the attendees through the steps of which information should be collected for a successful migration. Then we will describe the step by step by step process of collecting the correct information that is needed for export including Folder Structure, Virtual Machine locations, DRS rules, Templates, Custom Attributes, Permission, Resource Pools - all of this using POWERCLI. The next stage will be to use all the information collected to disconnect the ESX Hosts from the old vCenter server to to new with no downtime to the Virtual Machines. We will recreate the folder structure and move all VM's back to their original location, apply all custom attributes and permissions back to the VM's and folders"
Type: Breakout Session
Track: Private Cloud - Management
Speaker Detail: Maish Saidel-Keesing Company: NDS
Title: Creating Your Virtual Lab in a few easy steps
Session Id: MA6662
Abstract: "In order to perform your due diligence before planning any change or testing a new product, you will need a lab environment. Utilizing VMware Products - such as ESX/ESXi/Workstation you can deploy a Lab in a very short time. This session will explain how to deploy a fully functioning vSphere environment in an easy fashion without the need for major expenses on hardware. All of this can be deployed on a single Desktop and even in certain cases on you laptop as well. During this session I will demonstrate how to deploy a Storage appliance for shared storage, ESXi hosts, vCenter as a VM, configuring HA, VMotion and other Enterprise features to create a base point for a lab "
Type: Breakout Session
Track: Private Cloud - Management
Speaker Detail: Maish Saidel-Keesing Company: NDS
Title: ESX Server deployment System
Session Id: V18364
Abstract: "Deployment of an ESX host is something that we all need to do once (at least). ESX can be deployed with a kickstart script making it almost a ""hands-off"" experience, but since ESXi is a different platform is is not possible to script the installation. In this breakout session I will demonstrate a system that will allow you to utilize every day tools for central deployment of ESX regardless of what the platform is - ESX / ESXi The solution is based on the following: - a PERL script that is executed at installation completion to send a notification - the notification is received - and the post configuration is started with POWERCLI - all settings are pre-populated in a file/Database - which allows for re-installation of Host in minimal time - record all settings of installation to Database - notification of Server ready."
Type: Breakout Session
Track: Virtualization 101
Speaker Detail: Speaker: Maish Saidel-Keesing Company: NDS
Do remember - that if your session is not in the list, then it could mean that it was rejected - or perhaps it was already acepted, but until June 7 - you will not know.
One of the most surprising things that Microsoft have not yet provided in Active Directory management - is allowing you to set a time limit on assigning membership of a user to a group.
Let me explain the use case for this kind of feature.
You have resource (be it a file, web site - what ever). You want to assign the permission to a user, but you only want to do it until the end of the day, of for the next hour. Unfortunately there is no functionality like that is Active Directory. Sure you can set expiration on an account - but not on group membership.
I was asked to provide a solution to this problem for a specific use-case problem. I would like to point out that a great part of the original logic of this script was done by a fellow team member - who is a great scripter - So thanks Natan. I did change the script in order to accommodate a few more features.
The users were not allowed to be members of this group for more than 7 days, and they should be removed automatically after that period
So the logic was as follows:
The user would call in to the helpdesk, and get added to the group. Once a day, the members of the group would be checked and compared to a list of users in a file (from the previous run). If they were there, then their Countdays field in a file would be reduced by one (until reaching zero). If they were new additions to the group (and they would not be in the file) then add there info with a default counter. If their record had reached zero - then remove them from the group.
Here is a more graphical explanation
Here is the script
# ============================================================================================== # NAME: erase-after-days.ps1 # # AUTHOR: Maish Saidel-Keesing # DATE : 12/05/2010 # # COMMENT: script erase-after-days is for erasing users from a security after predefined number of days # Changed by Maish Saidel-Keesing (12/05/2010) # Added 3rd field SubmittedBy, changed logic to Compare-object # Requires Quest.ActiveRoles.ADManagement Snapin # ============================================================================================== # Check for Snapin if ((Get-PSSnapin Quest.ActiveRoles.ADManagement -ErrorAction SilentlyContinue) -eq $null) { add-PSSnapin quest.activeroles.admanagement } #Establish Connection Connect-QADService -service maishsk.local #Define default number of days $days = 7 $GroupName = "My_time_limit_group" $infile = "\\server\time_limit.txt" $GResults = Get-qadgroupmember $GroupName $in1 = Import-Csv $infile # Create variable to look for matches $compare = @(Compare-Object $in1 $GResults -Property "DN" -IncludeEqual | ` Where-Object {$_.SideIndicator -eq "==" } | select DN) # Variable to hold new additions to Security Group $nomatch = @(Compare-Object $in1 $GResults -Property "DN" -IncludeEqual | ` Where-Object {$_.SideIndicator -eq "=>" } | select DN) #Run for each object that is already in the Security Group foreach ($object in $compare) { $record = "" $record = $in1 | Where-Object {$_.DN -eq $object.DN} if ($record.CountDays -gt 0) { $record.CountDays -= 1 if ($record.SubmittedBy -eq "" ) { $record.SubmittedBy = "Script" } } else { #If member counter is equal to 0 then remove from Security Group Remove-QADGroupMember -Identity $GroupName -Member $record.DN -WhatIf } } $in1 = $in1 | Where-Object {$_.CountDays -ne 0 } #Run for each new user that was detected if ($nomatch.Count -gt 0) { $out1 = @() foreach ($object in $nomatch) { $row = "" |select DN,CountDays,SubmittedBy $row.DN = $object.DN $row.CountDays = $days $row.SubmittedBy = "Script" $out1 += $row } $in1 += $out1 } $in1 | export-csv -Path $infile -Force -notype Disconnect-QADService
Line 13 Check for Quest Cmdlets
Lines 18-28 Define the variables
Line 30 Compare both variables and find the instances where the DN field in each variable matches - the results that is received from a match is "==". The -includeEqual switch will show the matches (otherwise you do not get any output)
[23:54:55] ~> Compare-Object hello hello -IncludeEqual InputObject SideIndicator ----------- ------------- hello ==
Line 34 Compare both variables and find the instances where the DN exists in the Security Group but not in the file - which means it is a new user.
Line 38-49 First we work on the matched users. Here we retrieve the matching record and perform the logical query. If the days are larger than 0 - decrement. If not (which means that the user has been in the group for 7 days) then remove them. All of this is updating the $in1 variable
Line 51 Recreate the variable without the entries that will be removed
Line 54 Check for the number of items in $nomatch - if there is nothing then there is nothing to run
Line 56 Now we add the new users from all $nomatch variable.
Line 63,66 Combine today's results with $in1 and export the file back out.
The script runs daily as a scheduled task.
Now of course you could always expand on this and add functionality - such as automated email notification before user is removed, I am sure that You can expand the also to have this monitor multiple groups.as well.
Now all I have to wait for is for Microsoft to add this functionality to Active Directory
No - I have not gone over to the Dark Side. And forgive me for the Powershell pun, but I read an article by Ronald Beekelaar on the Microsoft Virtualization Team Blog - demonstrating the wonders of Virtualization that were used in MMS 2010 Labs: Powered by Hyper-V, System Center & HP...
The numbers are impressive - very impressive - I would suggest that you read the article.
The numbers were as follows:
Ok, so I did a bit of math. I came to the conclusion that the most that they could run on 1 server at any given time would be 40 VM's per server.
Let me explain the calculation - and forgive me for my assumptions, and I not sure that they are 100% accurate but you will see where I am getting here.
My assumptions:
Using those assumptions I got to the following numbers.
120GB (Host RAM) / 3GB (VM RAM) = 40 VM's per host.
40 (VM's) x 41 (Hosts) = 1640 Virtual machines running simultaneously
So 1640 VM's running simultaneously is a good amount of VM's, now of course not all of them run at the same time. and bringing up labs and down throughout the 5 days - I can imagine how they got to the impressive number of ~40,000 Hyper-V VMs.
But I wanted to try an see what would the comparison be with vSphere.
Again I made assumptions (in addition to the ones above) - which I think are safe and conservative.
Using those assumptions I got to the following numbers:
40 (VM's) x 3GB (RAM) = 120GB
30% of that that RAM is Shared - 120*70% = 36GB
36 (GB) / 3 (GB per VM) = 12
40 (VM's) + 12 (VM's - from page sharing) = 52 VM's
1640 (simultaneous VM's) / 52 (VM per host) = 31.5 (Servers)
31.5 (Servers) / 7 (Servers in a rack) = 4.5 (Racks)
10 (servers less) x $20,000 (Cost per server) = $200,000 less using vSphere
This is not taking into account:
Perfect example of - even if vSphere is more expensive, it will save you a hell of a lot of money!!!!!! And to quote Microsoft themselves
Still, in the end, the big question to ask yourself is the following: Is it worth all this expense for VMware, when the Microsoft solution offers a comparable or even better feature set for much less cost? Is it worth the extra line item on the invoice, the extra line in the budget, to use VMware virtualization when it's built into Windows? That is a question I think many customers will be asking themselves in the coming months and that is just another reason that you should start using Microsoft Virtualization solutions.
So do you know the answer???
I was introduced to an product today that caught my eye.
HP StorageWorks IO Accelerator for BladeSystem c-Class
So what is this IO module. It is a mezzanine card that is currently available in HP Blades (it will be available in the near future also for the Proliant Series as well).
It comes in different capacities: 80GB, 160GB and 320GB
Now what caught my eye, is the Maximum IOPS 100,000 IO/sec
Now of course this not certified for ESX (YET!!)
But I am thinking could this an amazing solution for certain use cases. If you have an intensive I/O VM it could use this device as its storage.
True, the biggest issue here is that the disk here is local and not shared storage. Which of course is a major issue and limits this solution to very specific use cases, but to get 100,000 IOPS would need something like this (100,000 I/O Operations Per Second, One ESX Host)
The next step was to get our hands on enough storage to run the experiments on a large scale. We went to the Midrange Partner Solutions Engineering team at EMC, Santa Clara and they were kind enough to let us use the storage infrastructure in their lab. They loaned us three CLARiiON CX3-80 storage arrays, each with 165 15K RPM disks, for a total of 495 disks and 77TB of storage. Our experiments used the Iometer I/O stress tool running in virtual machines on a server equipped with ESX 3.5 Update 1. The server was a quad-core, quad-socket (16 cores total) system with 32GB of physical memory.
Now all that is needed is to find a way and technology to share this storage device for use in a cluster..
Hrmmmm..