Changing Windows VM Boot Volume Block Size with vSphere Converter

First things first. This is unsupported by Microsoft, VMware, Amazon, Google, AOL, Geocities, John Madden, Edgar Allen Poe and your mother. Also, not generally a good idea.

Please sign here x_______________________________

Storage providers (NAS, SAN, HCI, Cloud, etc.) typically have preferred block sizes for the volumes created on top of their file system. Alignment is also super critical within a VM and you can read a great post about alignment on Duncan Epping’s blog here. Applications also have some best practices around formatted volume cluster sizes (or allocation units, or block size) based on their default average IO size. For instance, for Microsoft MS SQL, Microsoft highly recommends using a block size (allocation unit, cluster size – will be used interchangeably here) of 64k on any volume containing a database. More detailed info here.

Most often, when deploying an application, you will install the binaries on the root drive (C:\) and place the data on a secondary disk. Most applications allow this, some do not. For those instances where the do not and the application has been installed on the boot drive (C:\), you’re stuck with the cluster size you chose on installation (default of 4k).

If the application cannot deal with it’s data on a different device/directory than its binaries, and the binaries cannot be moved, you’re typically stuck unless you want to re-install and migrate data.

If you want to live on the edge, you might be able to convert the boot drive’s block size using VMware’s free vSphere Converter.

This is a step-by-step for that process. Continue reading

SimpliVity as Visionary – Just Getting Warmed Up

First off, congrats to SimpliVity and other vendors for being included on Gartner’s inaugural Converged Infrastructure (no?) Integrated Systems Magic Quadrant (MQ)! The report not only further validates this direction for infrastructure and the importance of convergence, but also highlights the breadth of scope within this space.

Reading over the report, they used a very broad definition for Integrated Systems (read more about that at Ron Singler’s blog here), which in turn lead to them not using the term ‘converged infrastructure’. The graphic depicts Gartner’s basic qualification for inclusion in the Integrated Systems category:

convergence

This resulted in the inclusion of everything from broad workload systems (VCE, SimpliVity, etc.) to workload specific systems like Oracle Exadata and Teradata. Equally interesting, however, was the exclusion of Pivot3, Scale, UCS, VSAN, Maxta, Atlantis ILIO, EMC ScaleIO,  etc.

If you look at Gartner’s Inclusion and Exclusion Criteria section (p.s. you can download the report here), you will see that they specifically excluded software-only solutions and most ‘Server SANs’ which require customer based installations and layering and only included systems that fully integrated storage (which is why no UCS without Netapp). But just because you fall into Gartner’s definition does not mean you make it into the report (e.g. Pivot3, Scale). What does this mean for vendors in the current report that will go to a software based model in the future? Or those that may OEM their software only solution to hardware vendors? Not sure, but Gartner can certainly change their criteria at their choosing.

It’s a fascinating space with explosive growth that leads to the necessity of including vendors both new and old. Note that SimpliVity had only been GA for 5 months when the data for this report was gathered. I can’t think of such a young company being this far in the Visionary quadrant, save perhaps Amazon Web Services, and even then, they had a running start (more on that over at Gabe Chapman’s blog).

What does this mean for SimpliVity? We’re certainly not taking a ‘we’re just glad to be here’ stance. It’s great affirmation of our trajectory and we’re just getting warmed up.

Change vCloud vApp/VM Storage Profile with PowerCLI

VMware has done a lot to open up the APIs for vCloud with the 5.1 release, however it still leaves much to be desired. One of the nicer things is the ability to change a storage profile for a VM. However, you need to know the HREF for the storage profile that you want to change to. This wasn’t so easy to get (I would love to be able to use a “get-storageProfile” PowerCLI cmd-let), but thankfully, Jake Robinson (@jakerobinson) and the VMware Community to the rescue:

http://communities.vmware.com/message/2163559#2163559

This script uses PowerCLI for Tenants (which cannot be installed on the same box running the ‘regular’ PowerCli). Taking his prompt to build an XML file from an HTTP GET to a vCloud HREF, we can retrieve storage profiles from any OrgvDC you have rights to. From this XML, we can assign a storage profile to a VM (or in this case, every VM in a vApp) based on it’s name and the Org you’re logged into. I modified his script a little bit, because if we pass an Org to the function, we don’t get the storage profiles, but if we pass an OrgvDC HREF, we automatically get the storage profiles (because storage profiles are assigned to Org vDCs and not globally to an Org). This reduces the number of function calls needed.

All this script needs is your vApp name and desired Storage Profile name.

What this also addresses is the ability to migrate all vCloud VMs off of the “*Any” Storage Profile.

# This function does a HTTP GET against the vCloud 5.1 API using our current API session.
# It accepts any vCloud HREF.
function Get-vCloud51($href)
{
 $request = [System.Net.HttpWebRequest]::Create($href)
 $request.Accept = "application/*+xml;version=5.1"
 $request.Headers.add("x-vcloud-authorization",$global:DefaultCIServers[0].SessionId)
 $response = $request.GetResponse()
 $streamReader = new-object System.IO.StreamReader($response.getResponseStream())
 $xmldata = $streamreader.ReadToEnd()
 $streamReader.close()
 $response.close()
 return $xmldata
}

# This function gets an OrgVdc via 1.5 API, then 5.1 API.
# It then returns the HREF for the storage profile based on the $profilename and

function Get-storageHref($orgVdc,$profileName)
{
 $orgVdc51 = Get-vCloud51 $orgVdc.Href
 $storageProfileHref = $orgVdc51.vdc.VdcStorageProfiles.VdcStorageProfile | Where-Object{$_.name -eq "$profileName"} | foreach {$_.href}
 return $storageProfileHref
}

# Get vApp, Storage Profile and OrgvDC names

$vappName = read-host "vApp name"
$profileName = read-host "Storage Profile"
$orgVdcName = read-host "Org vDC Name"

$orgVdc = get-orgvdc $orgVdcName

#Get storage profile HREF

$profileHref = Get-storageHref $orgVdc $profileName

# Change each VM's Storage Profile in the vApp

$CIvApp = Get-CIVApp $vappName
Foreach ($CIVM in ($CIvApp | Get-CIVM)) {
 $newSettings = $CIVM.extensiondata
 $newSettings.storageprofile.name = "$profileName"
 $newSettings.storageprofile.Href = "$profileHref"
 Write-Host "Changing the storage profile for $CIVM.name to $profileName"
 $newSettings.UpdateServerData()
}

IP Multipathing Setup In Nexenta

A feature added in NexentaStor 3.1.4 is the ability to configure IP Multipathing (IPMP) groups via the management console (NMV) rather than having to drop to the shell and configure it manually.

IPMP has two purposes: fault-tolerance and outbound traffic load spreading. While there’s a lot of overlap between Link Aggregation and IPMP, there are some key differences. For more on that, you can read Nicolas Droux’s great write up:
https://blogs.oracle.com/droux/entry/link_aggregation_vs_ip_multipathing.

By default, NMV created IPMP groups with link based failure detection rather than probe based. Link based detection is lighter than probe based as it relies on the lower level detection link state rather than a test IP address.

Continue reading

Nexenta VAAI-NAS Beta Released, NFS Hardware Acceleration

Skip to Update 1

Along with the release of NexentaStor 3.1.4, Nexenta Systems today officially released the (very) Beta VAAI-NAS plugin for VMware vSphere 5.x via the community NexentaStor.org forums. VAAI-NAS is still not widely supported in the NAS world, and of those that do, not all support all the primitives.  You can search the VMware Compatibility Guide for vendors that are VAAI-NAS certified.

VAAI, to catch up, is the the suite of primitives (instructions) that allow vSphere to offload certain VM operations to the array. For NAS Hardware Acceleration, these are:

  • Full File Clone – Enables virtual disks to be cloned by the NAS device (but not ‘hot’, the VM must be powered off).
  • Native Snapshot Support – Allows creation of virtual machine snapshots to be offloaded to the array.
  • Extended Statistics – Shows actual space usage on NAS datastores (great for thin provisioning).
  • Reserve Space – Enables creation of thick virtual disk files on NAS.

Everything you wanted to know about VAAI (but were afraid to ask)
http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-Storage-API-Array-Integration.pdf

At this point, all primitives are working (or supposed to, it’s beta, right?) save for the Native Snapshots.

Here’s a quick tutorial to install the agent in NexentaStor and the plugin in VMware Vsphere.

Continue reading

VMs Grayed Out (Inaccessible) After NFS Datastore Restored

[Added new workaround]

While working with a customer last week with Mike Letschin, we discovered an issue during one of their storage tests. It wasn’t a test that I’d normally seen done, but what the heck, let’s roll.

“What happens to all the VMs hosted on an NFS datastore when all NFS connectivity is lost for certain period of time?”

Well, turns out, it depends on a couple things. Was the VM powered on? How long was the NFS datastore unavailable for?

New Adventures

For the past 10 years, I have had the pleasure of working for the great educational institution of Fuller Theological Seminary. I have worked in many roles in the past decade, most recently in Windows Systems Administration, Virtualization and Storage Administration, Project Management, and as the Sr. Systems Administrator. They have given me every opportunity to explore enterprise IT, expand my skill set through training, conferences, workshops and user groups, and have nurtured my love for Social Media and the community surrounding IT by allowing me freedom to participate in various Field Days (thanks Gestalt IT, HP, Dell, SolarWinds, etc.!) as an independent blogger.

My team has been a fantastic source of encouragement and trust. Truly a second family.

However, it’s time to move in to what I feel is a natural progression both personally and professionally. I’ve really enjoyed engaging vendors, VARs, consultants and other IT professionals surrounding architecture and solutions and am very excited to announce that towards the end of May I will be joining the Solutions Team at Nexenta, Inc. as a Solutions Engineer. My role will initially be focused on their vCloud implementation and solutions, white papers, solving hard problems, and expanding from there.

It’s a big leap for me going from SysAdmin to working for a vendor, but I’m joining a great team (which includes friends Theron ConreyMichael Lestchin, and Tom Howarth) for a product I’m really excited about.

It’s definitely bittersweet, but it’s the right move at the right time. I look forward to continuing the conversations.

Now, if you’ll excuse me, I have about 300 prodecures and systems to document before I leave.

Cheers.