Preventing Oracle RAC node evictions during a Netapp failover

January 23rd, 2012 No comments

While undertaking some scheduled maintenance on our Netapp shared storage (due to an NVRAM issue) we discovered that some of our Oracle applications didn’t handle the controller outage as gracefully as we expected. In particular several Oracle RAC nodes in our dev and test environments rebooted during the Netapp downtime. Strangely this only affected our virtual Oracle RAC nodes so our initial diagnosis focused on the virtual infrastructure.

Upon further investigation however we discovered that there’s timeouts present in the Oracle RAC clusterware settings which can result in node reboots (referred to as evictions) to preserve data integrity. This affects both Oracle 10g and 11g RAC database servers although the fix for both is similar. NOTE: We’ve been running Oracle 10g for a few years but hadn’t had similar problems previously as the default timeout value of 60 seconds is higher than the 30 second default for 11g.

Both Netapp and Oracle publish guidance on this issue;

The above guidance focuses on the DiskTimeOut parameter (known as the voting disk timeout) as this is impacted if the voting disk resides on a Netapp. What it doesn’t cover is when the underlying Linux OS also resides on the affected Netapp, as it can with a virtual Oracle server (assuming you want HA/DRS). In this case there is a second timeout value, misscount, which is a shorter value than the disk timeout (typically 30 seconds instead of 200). If a node can’t reach any of the other RAC nodes within misscount seconds timeframe it will start split-brain resolution and probably evict itself from the cluster by doing a reboot. When the Netapp failed over our VMs were freezing for longer than 30 seconds, causing the reboots. After we increased the network timeout we were able to successfully failover our Netapp’s with no impact on the virtual RAC servers.

NOTE: A cluster failover (CFO) is not the only event which can trigger this behaviour. Anything which impacts the availability of the filesystem such as I/O failures (faulty cables, failed FC switches etc) or delays (multipathing changes) can have a similar impact. Changing the timeout parameters can impact the availability of your RAC cluster as increasing the value results in a longer period before the other RAC cluster nodes react to a node failure.

Configuring the clusterware network timeouts

The changes need to be applied within the Oracle application stack rather than at the Netapp or VMware layer. On the RAC database server check the cssd.log logfile to understand the cause of the node eviction. If you think it’s due to a timeout you can change it using the below command;

# $GRID_HOME/bin/crsctl set css misscount 180 

To check the new settings has been applied;

# $GRID_HOME/bin/crsctl get css misscount

The clusterware needs a restart for these new values to take affect, so bounce the cluster;

# $GRID_HOME/bin/crs_stop -all
# $GRID_HOME/bin/crs_start –all

Further Reading

Netapp Best Practice Guidelines for Oracle Database 11g (Netapp TR3633). Section 4.7 in particular is relevant.

Netapp for Oracle database (Netapp Verified  Architecture)

Oracle 10gR2 RAC: Setting up Oracle Cluster Synchronization Services with NetApp Storage for High Availability (Netapp TR3555).

How long it takes for Standard active/active cluster to failover

Node evictions in RAC environment

Troubleshooting broken clusterware

Oracle support docs (login required);

  • NOTE:284752.1 – 10g RAC: Steps To Increase CSS Misscount, Reboottime and Disktimeout
  • NOTE:559365.1 – Using Diagwait as a diagnostic to get more information for diagnosing Oracle Clusterware Node evictions
  • Note: 265769.1 – Troubleshooting 10g and 11.1 Clusterware Reboots
  • NOTE: 783456.1 – CRS Diagnostic Data Gathering: A Summary of Common tools and their Usage
Print Friendly

VCAP5 exams – on your marks….

January 19th, 2012 No comments

In last night’s VMware Community podcast John Hall, VMware’s lead technical certification developer gave some tidbits of information about the upcoming VCAP5 exams;

  • There will be an expedited path for those with VCAP4 certifications BUT they will be similar to the VCP upgrade in that it’ll be a time limited offer. He didn’t specify exactly what form this would take but with the VCP upgrade you have roughly six months to take the new exam with no course prerequisites.  I’m guessing you’ll have a similar period where the VCP5 prerequisite doesn’t apply.
  • While not committing to dates he did state that exams might be available at the upcoming partner exchange which starts on Feb 13th 2012. Even if those dates slip expect them soon!

With the upcoming Feb 29th deadline for the VCP5 exam you’d better get your study skates on. If you don’t take the VCP5 before the 29th and you’re not in a position to take the the new VCAP5 exams in the ‘discount’ period (however long that turns out to be) you might find yourself needing to sit a What’s New course and passing the VCP5 exam before you’re even eligible for the VCAP5 exams. Not a pleasant thought!

Print Friendly
Categories: VCAP, VMware Tags: ,

PowerCLI v5 – gotcha if you use guest OS cmdlets

January 6th, 2012 No comments

There are quite a few enhancements in PowerCLI v5 (there’s a good summary at Julian Wood’s site) but if you make use of the guest OS cmdlets proceed with caution!

We have an automated provisioning script which we use to build new virtual servers. This does everything from provisioning storage on our backend Netapps to creating the VM and customising configuration inside the guest OS. The guest OS configuration makes use of the ‘VMGuest’ family  of cmdlets;

  • Invoke-VMScript
  • Copy-VMGuestFile
  • Get-VMGuest, Restart-VMGuest etc

Unfortunately since upgrading to vSphere5 and PowerCLI v5 we’ve discovered that the guest OS cmdlets are NOT backwards compatible! This means if you upgrade to PowerCLI v5 but your hosts aren’t running ESXiv5 and more importantly the VMTools aren’t the most up to date version any calls using the v5 cmdlets (such as Invoke-VMGuest) will no longer work. Presumably this is due to the integration of the VIX API into the base vSphere API – I’m guessing the new cmdlets (via the VMTools interface) now require the built-in API as a prerequisite.

As PowerCLI is a client side install the workaround is to have a separate install (on another PC for example) which still runs PowerCLI v4, but we have our vCenter server setup as a central scripting station (it’s simpler than every member of the team keeping up with releases, plugins etc) so this is definitely not ideal.

This is covered in VMware KB2010065.The PowerCLI v5 release notes are also worth a read.

Further Reading

Will Invoke-VMGuest work? (LucD)

Print Friendly

Is the HP power setting impacting your performance?

January 4th, 2012 1 comment

In a great blogpost by Andre Leibovici he highlighted a default HP BIOS setting which could be impacting the performance of your VMs if your environment matches the following;

  • low physical CPU utilisation
  • higher than expected CPU %Ready times

Julian Wood has also blogged about this issue (Your HP blades may be underperforming) but neither go into too much detail about the fix. Having investigated I thought I’d record it here for others convenience.

To check for these symptoms you could use the VI client, ESXTOP in batch mode combined with the batch processing scripts in the vMA to capture pCPU statistics from a group of servers, or PowerCLI -whichever suits your skillset.

We run HP C-class blades and after checking the VMware knowledgebase article KB1018206 and a sample of our BIOS settings we found that it applied to us too – not surprising as we don’t modify the BIOS defaults during provisioning.

Using a mixture of ESXTOP and vCenter’s performance charts I was able to confirm that the %CPU Ready was hovering around the 4% mark even when the physical host was using less than 15% pCPU. After changing the power setting the same VMs (under a similar load) dropped to under 1% CPU Ready (the change was made at 17:00 if you look at the graph).
Not necessarily a show stopper but definitely an improvement
.

For my infrastructure (with around 160 physical blades) changing them all was a time consuming process (and could potentially be disruptive depending on whether your ESX/i hosts are all clustered).

You can check the current power management setting in various ways;

  • in the BIOS settings (slow and potentially disruptive)
  • via the ILO (under Power Management, Power settings) or via the ILO CLI
  • in the VI client. If the underlying BIOS is set to Dynamic Power Savings it’ll show as ‘Not Supported’ . ie the hardware is controlling power management. Where to check depends on your version of ESX (or ESXi);
    • For a 40 host go to Configuration -> Processors and look at the Power Management settings.
    • For a 4.1 host go to Configuration -> Power Management and look at the Active Policy. You can also configure it using the Properties button.
  • You can also use PowerCLI (ESX4 only) by querying the host’s Advanced setting ‘Power.cpupolicy’
    get-vmhost myhost | get-vmhostAdvancedConfiguration -name Power.cpupolicy

Changing power saving via the ILO

Read more…

Print Friendly
Categories: Uncategorized Tags:

Error adding datastores to ESXi resolved using partedUtil

January 2nd, 2012 No comments

Over the Christmas break I finally got some time to upgrade my home lab (link). One of my tasks was to build a new shared storage server and it was while installing the base ESXi (v5, build 469512) that I ran into an issue. I was unable to add any of the local disks to my ESXi host as VMFS datastores as I got the error “HostDatastoreSystem.QueryVmfsDatastoreCreateOptions” for object ‘ha-datastoresystem’ on ESXi….” as shown below;

The VI client error when adding a new datastore

I’d used this host and the same disks previously as an ESX4 host so I knew hardware incompatibility wasn’t an issue. Just in case I tried VMFS3 (instead of VMFS5) with the same result. I’ve run into a similar issue before with HP DL380G5′s where the workaround is to use the VI client connected directly to the host rather than vCentre. I connected directly to the host but got the same result. At this point I resorted to Google as I had a pretty specific error message. One of the first pages was this helpful blogpost at Eversity.nl (it’s always the Dutch isn’t it?) which confirmed it was an issue with pre-existing or incompatible information on the hard disks. There are various situations which might lead to pre-existing info on the disk;

  • Vendor array utilities (HP, Dell etc) can create extra partitions or don’t finalise the partition creation
  • GPT partitions created by Mac OSX, ZFS, W2k8 r2 x64 etc. Microsoft have a good explanation of GPT.

This made a lot of sense as I’d previously been trialling this host (with ZFS pools) as a NexentaStor CE storage server

Read more…

Print Friendly
Categories: Storage, VMware Tags: , , , ,

Netapp daily checks – available inodes/maxfiles

December 30th, 2011 1 comment

Prior to buying Netapp Operations Manager we used to run lots of daily checks to ensure the uptime and health of our Netapp controllers. Many of these checks were written using the Data ONTAP Powershell Toolkit so I thought I’d post them up in case they’re of use to anyone else.

First up is a function to check for the ‘maxfiles‘ value (the number of inodes consumed in a volume). This is typically a large number (often in the millions) and is based on the volume size, but we had an Oracle process which dumped huge numbers of tiny files on a regular basis, consuming all the available inodes. This article only covers checking for these occurrences – if you need a fix I’d suggest checking out Netapp’s advice or this discussion for possible solutions.

Simply add the function (below) to your Powershell profile (or maybe build a module) and then a Powershell one-liner can be used to check;

connect-NaController yourcontroller | get-NaMaxfiles -Percent 30

This will give you output like this;

Controller : Netapp01
Name       : test_vol01
FilesUsed  : 268947
FilesTotal : 778230
%FilesUsed : 35

Controller : Netapp01
Name       : test_vol02
FilesUsed  : 678111
FilesTotal : 1369688
%FilesUsed : 50

And here’s the function;

function Get-NaMaxfiles {
<#
.SYNOPSIS
 Find volumes where the maxfiles values is greater than a specified threshold (default 50%).
.DESCRIPTION
 Find volumes where the maxfiles values is greater than a specified threshold (default 50%).
.PARAMETER Controller
 NetApp Controller to query (defaults to current controller if not specified).
.PARAMETER Percent
 Filters the results to volumes when the %used files is greater than the number specified. Defaults to 50% if not specified.
.EXAMPLE
 connect-NaController zcgprsan1n1 | get-NaMaxfiles -Percent 30

 Get all volumes on filer zcgprsan1n1 where the number of files used is greater than 30% of the max available
#>
 [cmdletBinding()]
 Param(
 [Parameter(Mandatory=$false,
 ValueFromPipeLine=$true
 )]
 [NetApp.Ontapi.Filer.NaController]
 $Controller=($CurrentNaController)
 ,
 [Parameter(Mandatory=$false)]
 [int]
 $Percent=50
 )
 Begin {
 #check that a controller has been specified
 }
 Process {
 $exception = $null
 try {
 # create a null valued instance of $vol within the local scope
 $vols = $null
 $vols = Get-NaVol -controller $Controller -ErrorAction "Stop" | where {$_.FilesTotal -gt 0 -and ($_.FilesUsed/$_.FilesTotal)*100 -gt $Percent}
 #check that at least one volume exists on this controller
 if ($vols -ne $null) {
 foreach ($vol in $vols) {
 #calculate the percentage of files used and add a field to the Volume object with the value
 $filesPercent = [int](($vol.FilesUsed/$vol.FilesTotal)*100)
 add-member -inputobject $vol -membertype noteproperty -name Controller -value $Controller.Name
 add-member -inputobject $vol -membertype noteproperty -name %FilesUsed -value $filesPercent
 }
 }
 }
 catch {
 $exception = $_
 }
 if ($exception -eq $null) {
 $returnValue = ($vols | Sort-Object -Property "Used" -Descending | Select-Object -Property "Controller","Name","FilesUsed","FilesTotal","%FilesUsed")
 }
 else {
 $returnValue = $exception
 }
 return $returnValue
 }
}
Print Friendly
Categories: Netapp, Storage Tags: , ,

NVRAM problems on Netapp 3200 series filers

December 28th, 2011 No comments

Recently I’ve been experiencing a few issues with the newer Netapp filers at my work, specifically the 3240 controllers. There is currently a known issue with NVRAM battery charging which if you’re not aware of can result in unplanned failovers of your Netapp controllers. This applies to the 3200 series (including the v3200 and SA320).

We have six of these controllers and my first warning (back at the beginning of November) was an autosupport email notification;

Symptom: BATLOW:HA Group Notification from <myfilername> (BATTERY LOW) WARNING

This message indicates that the NVRAM or NVMEM battery is below the minimum voltage required to safeguard data in the event of an unexpected disruption.

If the system has been halted and powered off for some time, this message is expected.This message repeats HOURLY as long as NVRAM or NVMEM battery is below the minimum voltage, if you are using ONTAP version 7.5, 8.1, or greater with an appliance that uses an NVMEM battery, the error will repeat WEEKLY.

When the storage controller is up and running, the battery will be charged to its normal operating capacity and this message should stop. However, if this message persists, there may be a problem with the NVRAM or NVMEM battery.

This was unexpected but a faulty backup battery wasn’t an immediate priority – after all it’s only required to protect against power failures or controller crashes which are pretty rare. A few days later it became a high priority after the controller failed over unexpectedly. This failure was actually triggered by the low battery level and is expected behaviour as documented in Netapp KB2011413 though it’s not made overly clear that a controller shutdown is the default action if the battery issue persists for 24 hours. I logged a call with Netapp but they were unaware of any systemic issues and despite pointing out that this was affecting all six of our controllers they simply sent replacement NVRAM batteries and suggested we swap them all out. I posted a question on the Netapp forums but at the time no-one else seemed to be having the same issue. The new batteries were duly fitted and the problem seemed to be resolved – I’ve since rechecked our battery charges and they’re stable at around 150 hours.

An update in an email we received from Netapp on the 22nd December now states that it’s a known firmware issue with a permanent fix currently expected in Feb 2012. Netapp advise that further downtime will be required to implement the fix when it’s made available.

Don’t ignore low battery alerts!

Read more…

Print Friendly

The London VMware usergroup (26th Jan 2012)

December 16th, 2011 No comments

It’s that lovely time of year again (and I don’t mean Xmas!) when the next London VMware usergroup is open for registration! If you’re not familiar with the LonVMUG (where have you been?) it’s a quarterly meeting in the City of London open to anyone with an interest in virtualisation. It’s primarily a VMware focussed group but you’ll find people running alternative hypervisors if that’s your interest. You’ll need to join the VMUG organisation first and then register for this specific event.

If you haven’t attended before you may be wondering “What’s in it for me?”. Off the top of my head I’d say the following;

  • Everyone at the LonVMUG has something to say and useful experiences. Find people with the same challenges as you and get talking!
  • Hear about third party products (with demos)
  • Get hands on with Labs
  • Meet the experts and ask questions. There’s a lot of collective knowledge at the average VMUG with vExperts aplenty;
    • Fancy meeting one of a rare breed, a VCDX? Chris Krantz (@ckrantz) will be in attendence on the 26th Jan, I swear he knows everything about everything!
    • Into Powershell/PowerCLI? How about Jonathan Medd (@jonathanmedd) or Al Renouf (@alanrenouf) – Powershell gurus and book authors!
    • Using EMC at work or thinking of building a home or work lab? Seek out Simon Seagrave (@kiwi_si) – EMC and home labs guru
    • Maybe you’re an ISP and you want to know more about the VMware cloud offerings? Then seek out Simon Gallagher (@vinf_net)- vCloud specialist, vTardis inventor
    • Are you an SME with a broad interest in all things virtualisation? Barry Coombs (@virtualisedreal) is often along and specialises in this market.
    • Disaster recovery your thing? Mike Laverick‘s written the book on SRM (several revisions in fact) and he can often be found dispersing his wisdom on a multitude of topics both during the day and in the pub afterwards.
    • …and too many others to mention!
  • Best of all this is all free!

The 26th Jan 2012 agenda (or download the PDF version);

10:00 – 10:15

Welcome

10:15 – 11:00

Intelligent Application Awareness in VMware Environments

Lorenzo Galelli, Symantec

11:00 – 11:45

Would you like fries with your VM?

Chris Kranz

11:45 – 12:15

Break in Thames Suite

12:15 – 13:00

Building 1000 hosts in 10 mins with Auto Deploy

Alan Renouf, VMware

End User Computing : Today & Tomorrow

Simon Richardson, VMware

13:00 – 14:00

 

Lunch


14:00 – 14:50

Stop the Virtualization Blame Game

Ben Vaux, Xangati

VMware Data Protection in a Box

Suresh Vasudevan, Nimble Storage

15:00 – 15:50

A little orchestration after lunch

Michael Poore

Private vCloud Architecture Deep Dive

Dave Hill, VMware

16:00 – 16:50

Virtualisation on Cisco UCS

Colin Lynch

VCP5 Tips and Tricks

Gregg Robertson

17:00 – 17:15

Close

17:15 onwards

Drinks at Pavilion End

It’s a great agenda and I’ll be supported a few friends who are presenting. Don’t miss out!

Where to go for the usergroup (make sure you register beforehand);

London Chamber of Commerce and Industry 33 Queen Street
London, EC4R 1AP (map)

Where to go for drinks afterwards;

The Pavilion End pub (official website)
23 Watling Street, Moorgate
London
EC4M 9BR (map)

Twitter:@lonvmug (or hashtag #lonvmug)

Print Friendly
Categories: VMware Tags:

Why I blog (and maybe you should)

December 12th, 2011 4 comments

After being asked why I blog by a co-worker I’ve been thinking about what motivates me to blog. An inspirational blogpost by Mark Pollard on how to get into strategy identifies some traits which strike me as equally applicable to blogging;

  1. Curiosity. This is partly why I got into blogging as the techie in me wanted to know how it worked, which technologies were involved, what was that plugin that other bloggers were referring to? It’s the same instinct that makes good engineers – they want to know how something works so they take it apart!
  2. Action. Like most technologies the only way to really understand it is to get stuck in and do it. Until I started my blog I wasn’t sure what I’d blog about but I quickly found myself thinking ‘that might be interesting to others’ during my working day and I started turning thoughts into blogposts. I agree wholeheartedly with Seth Godin’s view that the process of distilling your thoughts into something readable for others is a very valuable process, and reason enough to blog – even if nobody reads it. Read more…
Print Friendly
Categories: Management Tags: , ,

Container shipping and virtualisation – a potent analogy

October 31st, 2011 No comments

One of the most interesting sessions I attended at VMworld in Copenhagen was entitled ‘Cloud Computing 2012 to 2014 – a two year perspective’ (session CIM4603, subscription required). The speaker was Joe Baguley, a well known cloud evangelist who recently joined VMware as Chief Cloud Technologist. I’ve seen Joe present before at the Cloud Camp events so knew what to expect (humour, lots of snappy analogies and some thought provoking concepts) and I wasn’t disappointed (note the link above is to the same session from Las Vegas, presented with his own slant by David Hunter). If you’re interesed in hearing Joe’s speech in person I recommend registering for the national VMUG taking place on 3rd November in Birmingham.

One of Joe’s analogies (well quoted in the press) was to compare VM encapsulation to a shipping container. This isn’t anything new (Chuck Hollis explains it very well in this blogpost from 2008!) but it’s an analogy I’ve been thinking about since buying the book ‘The Box‘ for my wife as a Christmas present last year. As a commodity trader working with a team of shippers I thought she’d find a book about the history of the shipping container interesting (the New York Times listed it as one of the best business books ever written) but instead I found myself reading it during a weekend break. It didn’t take long to see parallels with what’s been happening over the last few years in the IT industry;

  • Standardisation and automation altered existing business models – some companies flourished and others perished
  • Whole professions changed and those who didn’t adapt found themselves out of work
  • Containerisation introduces new challenges (scale, security)
  • The container was used for many purposes beyond it’s original remit

In the four years since Chuck wrote his post the practice of cloud computing has advanced considerably. Whereas his focus (in that post at least) was networking it’s now clear that most areas of IT are being impacted from infrastructure to applications.

This isn’t a ‘technical how to’ blogpost with any conclusions but more of a ‘wandering thoughts, slow day at work’ post. I’m going to explore the analogy a bit further and include a few miscellaneous facts which were too good to ignore!

Read more…

Print Friendly