Tuesday, January 3, 2017

VCP 6 passed

Shortly before Christmas, I took, and managed to pass the VCP6 Delta exam (2V0-621D), to further extend my VCP status by another 2 years (not really a fan of the need to do this, but ultimately the choice is do it or lose it).

Personally, I found the exam a bit tougher than the previous VCP exams. Now, whether that was because it was the Delta (and so in theory, they can concentrate on asking more detailed/specific questions, as it should focus on the changes between vSphere 5 and vSphere 6) I don’t know. It could be that as I use the VMware technologies covered by the VCP-DCV all day every day (it’s my day job), it was actually a bit tougher to then sit down and do the necessary reading (ie, the temptation to go “oh, I know this, I’m skipping it”). The risk with that of course, is that :

1) I don’t know if all - this of course, goes without saying.
2) I need to focus on the areas that I feel less confident in, or that we don’t use all day every day - resource pools are a good example of this, they’re not something we use much at all. But picking out those areas becomes more tedious.

Ultimately, that’s all just an excuse for not preparing as thoroughly as I would’ve liked, and I think I was probably a bit complacent (plus there are more “interesting” things to be working on that revising for what I think I already know - see the end of this entry for the kind of thing I mean. Still managed to pass with (what to me was) an acceptable score.

Resources used :

Well, it’s the usual kind of thing.
1) The Blueprint (I do wish they kept it as a PDF or a single file download at least, I don’t like the current presentation of it).
2) VMware documentation - as mentioned above, I struggled here, just because of the whole idea of re-reading the same stuff again - need to be wary of this, as obviously there are (significant) changes.
3) Mastering vSphere 6 - from my Safari subscription - didn’t use this as much as previous versions - again complacency on my behalf.
2) Practical work - as I said, it’s my day job, so I’m using it every day, but personally I’m poor at remembering menu options or anything like that (I just “do” tasks, I don’t think too much about the menu structure or what the labels are etc. I also try to script more and more these days, so prefer to not rely on the GUI if I can help it). So it’s a combination of my paid work, and things in the home lab.

Anyway, it’s done and dusted for a few more years, which is a relief, as there’s plenty more to work with, given the recent release of 6.5, and the associated technologies - vSAN, vROPS, vRA, Orchestrator etc. Plus I’d like to look more at NSX (may be a struggle, as I’m not a Network person), and other areas such as Openstack, AWS and Azure to name a few.

Monday, July 11, 2016

Setting QFullSampleSize and QFullThreshold by script in ESXi 5.1

[Repost of old entry that died under the weight of spam]

With ESXi 5.1, VMware have changed things a bit for Controlling LUN queue depth throttling in VMware ESX/ESXi
- see Controlling LUN queue depth throttling in VMware ESX/ESXi

Previously it was a global setting on the host, configured in the Advanced Settings - and could be checked and set using PowerCLI. eg :

To check values :

Get-VMHostAdvancedConfiguration -vmhost <host> -name Disk.QFullSampleSize
Get-VMHostAdvancedConfiguration -vmhost <host> -name Disk.QFullThreshold

To set values :

Set-VMHostAdvancedConfiguration -vmhost <host> -name Disk.QFullSampleSize -value <int>
Set-VMHostAdvancedConfiguration -vmhost <host> -name Disk.QFullThreshold -value <int>

That’s no longer the case. Now, it’s per LUN and not global. So, each LUN you present will need setting (if you use this), and on each host.

We use 3Par storage, and do set the values recommended :

QFullSampleSize = 32.
QFullThreshold = 4

The question was asked whether these settings were retained on a host that had them, and was then upgraded to 5.1. An upgrade in one of the test labs seems to indicate they’re not - all LUNs were set to 0 for these parameters.

So, I decided to try and script something. The result is below.

Basically, I read the LUN device ID from a text file (one entry per line), and then apply the change to it. The problem then is generating the text file - we have 50+ LUNs per host typically. For this, I used RV Tools , and exported the vDatastore tab, which includes the value I need - second column labelled Address. I take those values, and stick them in the text file - cumbersome, but it works.

I call the script Set3Par.sh, and chmod +x it to set the execute bit.

#!/bin/sh

usage() {
        echo "Usage : ./Set3Par.sh filename.txt"
        echo "Where filename.txt is the file with the list of naa ids, eg test.txt"
}

# File with the naa entries. One per line.
filename=$1

# Check script is invoked with correct number of arguments, ie, filename.txt
# If not, give usage details then exit.
[[ $# -ne 1 ]] && usage && exit 1

# Check if the file specified exists, if not, exit
if [ ! -f $filename ]
then
        echo "$filename does not exist. Exiting"
        exit 1
fi

# Set the values, working through the input file one line at a time.
echo "Reading in the file $filename"
cat $filename | while read line
do
        echo "Running the following ... esxcli storage core device set --device $line -q=4 -s=32"
        esxcli storage core device set --device $line -q=4 -s=32
done

echo "Completed the changes ... exiting"

How to run :
# ./Set3Par.sh
Usage : Set3Par filename.txt
Where filename.txt is list of naa ids, eg test.txt

Sample input file : (values changed for writeup purposes)
# more test.txt
naa.50002aaaaaaaaaaa
naa.50002bbbbbbbbbbb
naa.50002ccccccccccc
naa.50002ddddddddddd
naa.50002eeeeeeeeeee
#

Sample run:
# ./Set3Par.sh test.txt
Reading in the file test.txt
Running the following … esxcli storage core device set –device naa.50002aaaaaaaaaaa -q=4 -s=32
Running the following … esxcli storage core device set –device naa.50002bbbbbbbbbbb -q=4 -s=32
Running the following … esxcli storage core device set –device naa.50002ccccccccccc -q=4 -s=32
Running the following … esxcli storage core device set –device naa.50002ddddddddddd -q=4 -s=32
Running the following … esxcli storage core device set –device naa.50002eeeeeeeeeee -q=4 -s=32
Completed the changes … exiting

New vApp fails to deploy in vCloud Director with “… does not exist in our inventory, but vCenter Server claims that it does” type error.

[Repost of old entry that died under the weight of spam]

Working on a vCloud Director 5.1 proof of concept in work, ran into an issue where deploying a new vApp would fail after about a minute. Same with trying to import a template. All errors were of the type :

Folder vApp_system_25 (b220707f-7e73-401a-91b9-c74000c76a1a) does not exist in our inventory, but vCenter Server claims that it does..

I could indeed see the object in vCenter, but nothing in vCloud.

Searching around, I found this VMware communities article http://communities.vmware.com/message/2202781 It mentions “None of the cells have a vCenter proxy service running.” Checking our environment, this message was also present. The communities page indicated that it was then fixed by cleaning the QRTZ tables in the database, but no details on how. Not being a DBA, this bothers me :-)

Searching for details on how to do this led to this blog entry by Jason Boche - http://www.boche.net/blog/index.php/2011/12/16/vcloud-director-and-vcenter-proxy-service-failure/

All looked similar, so tried it on our setup, and pleasingly it fixed it. We’re running the database in MSSQL, so used the relevant script, tidied to fit our database name.

Sunday, May 24, 2015

Enable or disable CBT

Implementing a new client solution recently based on vSphere 6, there was a request from our backup team to enable CBT on the VMs that were to be backed up. This basically meant around about 160 VMs from the overall solution.

Per the VMware KB article, this would entail shutting down the VM, adding the ctkEnabled parameter and then set its value to true and then Add Row, add scsi0:0.ctkEnabled, and set its value to true. Finally, power the VM back on.

To disable, again, power down the VMs.

This is a bit tedious obviously for 160 VMs, not to mention the downtime incurred for the client solution. However, in the KB article is some PowerCLI script to achieve the same end result, but without powering down the VM.

So, for ease, I took this and just put it into a simple loop to read in the list of VMs from a .txt file (1 VM per line) and make the change. It’s easy enough to have another script to disable the change and do it enmasse. Even better given the (now apparently resolved via latest patch) issue described here.

Also, there’s a one line to list out whether CBT is enabled on all the VMs in the environment.

EnableCBT.ps1

# Enable CBT on number of VMs based on .txt file
# 1 VM per line - name as per vSphere client
# Based on the code from http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1031873

$vmlist = Read-Host "Enter the name of the file with the list of VMs"

$vmname = get-content $vmlist

ForEach ($vm in (Get-VM $vmname))
{

    $vmtest = Get-vm $vm| get-view
    $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec

    # enable ctk
    $vmConfigSpec.changeTrackingEnabled = $true
    $vmtest.reconfigVM($vmConfigSpec)
    $snap=New-Snapshot $vm -Name "Enable CBT"
    $snap | Remove-Snapshot -confirm:$false

}

DisableCBT.ps1

# Disable CBT on number of VMs based on .txt file
# 1 VM per line - name as per vSphere client
# Based on the code from http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1031873

$vmlist = Read-Host "Enter the name of the file with the list of VMs"

$vmname = get-content $vmlist

ForEach ($vm in (Get-VM $vmname))
{

    $vmtest = Get-vm $vm| get-view
    $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec

    #disable ctk
    $vmConfigSpec.changeTrackingEnabled = $false
    $vmtest.reconfigVM($vmConfigSpec)
    $snap=New-Snapshot $vm -Name "Disable CBT"
    $snap | Remove-Snapshot -confirm:$false

}

CheckCBT.ps1

# Check CBT status on all VMs
get-vm  | Get-View | Sort Name| Select Name, @{N="CBT State";E={$_.Config.ChangeTrackingEnabled}} | ft -AutoSize

Saturday, January 10, 2015

VCPVCD510 exam passed - VMware Infrastructure as a Service (VCP Cloud)

Today I managed to pass the VMware Certified Professional Cloud exam - Infrastructure as a Service VCPVCD510 . So, the obligatory post follows …

Exam was tough in my opinion. It’s a “standard” VCP exam as the blueprint points out - 85 questions, 90 minutes, multiple choice. It was tough for me for a few reasons. One is that it had some of the question types that I dislike, and to be honest, I ended up guessing for in some cases. I don’t like these because in the real world, I don’t memorise certain things, I just do it - which is why the VCAP was in a sense better. But also, because in the real world, if I’m wrong the system will tell me. The kind of thing I mean is :

On a Windows server, how would you find the IP address
A) ipconfig -all
B) ifconfig -all
C) ipconfig /all
D) ifconfig /all

Obviously that isn’t a question from the exam, but it illustrates the type of thing I mean (especially if the question relates to “which menu option” type of question). In reality, I “just know”, and if I did get it wrong (perhaps had just been working on a Linux box instead) then the system will effectively tell me and I’ll “d’oh of course” and fix it. So I struggle to motivate myself to learn this kind of thing or way for exams, and that can make them harder.

The other reason I found it tough is in a sense due to the reason I took the exam. I worked on a POC vCloud Director setup in work a bit last year, but that was basically canned as the focus is on a different Cloud management platform. This was a bit annoying, but hey, not my call so unfortunately not much I can do about that. But I didn’t want to waste the time I’d put in, so I made the choice to try and carry on working at home on it, and schedule the exam.

But, the VCAP was more important to me, and so took the majority of my time. Therefore I scheduled this exam only after passing the VCAP (if I’d failed, I wouldn’t have done this, I would have focused on studying to resit the VCAP instead). So I left myself with about 4-6 weeks preparation time at home and well, I soon realised how much I’d forgotten since the work POC was canned, and also how hard I find the network aspect of VCD. And in a home setup, my network configuration is extremely limited, so can’t practice as much as I’d like (plus no chargeback or connector setup at home). So the preparation wasn’t ideal and this is more a case of trying to pass the exam because it would be nice, as opposed to working with it everyday and using the exam to validate that. Is that a valid reason for doing an exam - dunno, I tend to get mixed feelings about it.

So, as mentioned, this meant I guessed a few answers (obviously I don’t know if I did this correctly), albeit trying to narrow it down and rule out what I think were obvious wrong answers. The time on the exam meant there was time for this, as some questions did seem “easy” - as in, as soon as you read it, you know what (you think) the answer is, and if you see that answer, select and move on. But again, should I really be guessing - the way I was taught in school was to always have a go (you won’t get any marks if you don’t try etc), but guessing just feels a wrong if you are trying to validate what you (believe) you know. But that’s probably as much to do with my mixed views on IT certification, and would probably be the subject for a separate post.

Preparation and materials used:

Blueprint - same for any VMware exam. The blueprint is your friend, and you pay heed to it.

Documentation - blueprint points to the documentation, so you should read it. Some of it’s dry, and makes little sense to me without actually doing it.

Lab - built a small nested lab again at home. As mentioned, there’s no bells and whistles - no Chargeback or vCloud Connector, and the networking is limited. It’s more for trying to get familiar/remember some of the processes etc (and learn the interface, but hey, that just doesn’t work for me!)

VMware Private Cloud Computing with vCloud Director by Simon Gallagher et al - bought a Kindle copy of this (afraid I never buy physical tech books these days, all on kindle/iPad) and have a copy on my “bookshelf” on my Safari subscription.

VCP-Cloud official book - again via my Safari subscription.

A few of the Packt vCloud Director books on the Safari subscription, but those were more cursory glances, and there’s not a specific one that I would recommend.

Hopefully this clears the deck a little for me now just in case VMware release anything new in the next few months to focus on …