Monthly Archives: June 2015


Clouds, storage and lobster – Virtualization Field Day 5

I’m very excited to be selected for this event. With VFD4 under my belt, I think I am better prepared for the whirlwind of tech and people. It was a shell shocking type experience that you fully absorb after the fact. Foskett and crew run a tight ship and the vendors are providing as much of a deep dive as possible in 2 hours. If you would like to participate you can watch the stream here and tweet your questions with hashtag VFD5. Looks like it’s a lot about storage and cloudy stuffs. Below are the vendors:


DataGravity, twitter handle @DataGravityInc, is data aware storage. I remember stopping by their booth at a VMUG . The story is intriguing especially in the day and age of HIPPA/PCI compliance. Yes, you know where you are compliant but maybe there is sensitive data, in a different location, unbeknownst to IT.

Infinio, twitter handle @InfinioSystems, offers a software based storage acceleration solution that is non-disruptive. Taking RAM from each host to create deduplicated cache!? No special hardware or flash needed? Sounds pretty neat.

NexGen Storage, twitter handle @NexGenStorage, creates performance service levels for specific data, not after the fact but NOW. Let’s see how they perform the analytics for that

OneCloud, twitter handle @OneCloudSW, offers automated Cloud recovery for DR with customizable levels of protection. They are a headline grabber right now with their offering and I’m looking forward to hearing more.

PernixData, twitter handle @PernixData, with rock-stars Frank Denneman and Satyam Vaghani spreading the good word. Their product, FVP, is deployed within the kernel and accelerates reads/writes using SSD or RAM. It adds life to your slow and lethargic storage array that you just don’t want to invest more $$ in. I had the pleasure of having Satyam(creator of VMFS!) out to discuss this product with my employer at the time. Great stuff and excited to see more.

Ravello, twitter handle @RavelloSystems, is described on their website as a cloud based infrastructure that runs complex VMware/KVM applications with any networking topology on AWS or Google Cloud without migration. DevOps anyone? Interesting and intriguing with some enigma mixed in.

Rubrik, twitter handle @RubrikInc, is definitely a hot topic already with the 41 milliocharliegeen in funding just announced. It will be nice to see what this upcomer is doing that is turning heads. Don’t mess with their security guy either



ScaleComputing, twitter handle @ScaleComputing, is an all in one package. I’ve had the opportunity to see this rodeo already and you can read more here.

Last but not least, VMTurbo, twitter handle @VMTurbo, not only did I see them at VFD4, but I’ve been a customer as well. I wonder if they have something new in the works.

Action packed technology with a side of lobster please.lobster


VMTurbo Part 2 – Chargeback

I finally encountered a company that does actual charge back for a virtual machine based on CPU, RAM and OS. Luckily, VMTurbo was also running in the environment keeping me aware of all of my hosts constraints but I digress. I was challenged with finding out what a VM costs so that a price could be given back to the consumer whether it was the DBA team or the eCommerce team. I was aware that VMTurbo has all the information to do showback, or as others like to call it shameback, but why not use it for actual chargeback? I know that’s not what¬†they advertise as a feature but I was stubborn. ¬†There had to be a better way to to extrapolate the information I needed from the application that already knows my environment!

I admit the spreadsheet took a lot of upfront work and mind numbing calculations, if you need assistance let me know. I had to take into account all hardware costs (MDS port, FI, etc) as well as the software costs (OS, Antivirus, backup software). The charge wasn’t just for an empty VM but possibly a Windows 2012R2 server running SQL and requiring backups running on a UCS environment. Using a SQL query and my cost analysis spread sheet, I can now see how much it is costing to run a VM with actual utilization and how much it costs to provision up front with the requirements requested.

My rudimentary spreadsheet ended up looking like this:

Now that I had my spreadsheet of awesome, I needed to use it with VMTurbo. I first created 2 groups based on operating system so I could separate my Linux VMs from Windows. There is obviously a price difference between running those operating systems.

Now that I had my groups saved, I had to create a custom report. The newer feature of VMTurbo allows you to input text which in my case was a SQL query.

The query looks at my groups and grabs their statistics. (Full code here)

Now that I have my VM Summary for Cost Showback saved I can run it and download to see what my VMs have allocated and what they are actually using.

Now here comes the fun part. Saving this output from, VMTurbo, I now import the data into my cost analaysis spreadsheet with macro goodness. I can now get a good idea of what a VM is costing me monthly, by what is allocated or by what it is actually using with numbers, for this particular environment. Missions accomplished! Please note, storage was not taken into consideration at this time as it was not a requirement for charge-back

No, that over-provisioned VM you are want to deploy is not free

SQL Query for VMTurbo Report

vmgrps.group_name as OS,
FORMAT(capacity,2) as VStorage_Capacity_in_MB,
FORMAT((avg_value*capacity),2) as VStorage_Used_in_MB,
FORMAT((avg_value*100),2) as VStorage_Used_Percent,
snapshot_time as 'Date'
from vm_stats_by_day
where property_type="VStorage" and property_subtype='utilization' and to_days(snapshot_time) >= to_days(date_sub(now(), interval 1 day))
group by uuid)
as vmvstor
FORMAT(max_value, 0) as 'Num_of_VCPUs',
from vm_stats_by_day
where property_type="NumVCPUs" and to_days(snapshot_time) >= to_days(date_sub(now(), interval 1 day))
order by uuid, snapshot_time)
as vmvCPU
on vmvCPU.uuid = vmvstor.uuid
FORMAT(capacity,2) as 'VCPU_Capacity_MHZ',
FORMAT(avg_value,2) as 'VCPU_Avg_MHZ',
FORMAT(max_value,2) as 'VCPU_Peak_MHZ',
from vm_stats_by_day
where property_type="VCPU" and property_subtype="used" and to_days(snapshot_time) >= to_days(date_sub(now(), interval 1 day))
order by uuid, snapshot_time)
as vmvCPUUsed
on vmvCPUUsed.uuid = vmvstor.uuid
FORMAT((capacity/1024),2) as 'VMem_Capacity_MB',
FORMAT((avg_value/1024),2) as 'VMem_Avg_MB',
FORMAT((max_value/1024),2) as 'VMem_Peak_MB',
from vm_stats_by_day
where property_type="VMem" and property_subtype="used" and to_days(snapshot_time) >= to_days(date_sub(now(), interval 1 day))
order by uuid, snapshot_time)
as vmvMem
on vmvMem.uuid = vmvstor.uuid
display_name as 'display_name'
from vm_instances)
as vminst
on vmvstor.uuid = vminst.uuid
(select member_uuid, group_name
from vm_group_members
where internal_name like 'GROUP-USER-%' and group_name like 'Windows %' or group_name like 'linux')
as vmgrps
on vmvCPU.uuid = vmgrps.member_uuid