VMWare ESXi Lab Improvements, separate storage network with Jumbo Frames enabled

I recently decided to upgrade my VSphere 5 Lab and move my storage off to a separate network. The following diagram describes my new topology.

Before doing this I had everything on the same network, by isolating all of the storage traffic I was able to enable Jumbo Frames and bring this environment a bit closer to VMWares best practices for NFS storage.

To create the new network first I changed the Iomega IX4 200D's network settings,

I put each Gigabit network card on a seperate network, the 192.x.x.x network is for managing the ESXi environment and the 10.x.x.x network is the storage network. Next I enabled Jumbo Frames on the NIC and set the size to 9000.

Following this change I created a new VMKernel on each ESXi host using the VSphere Client, I added 2 physical network cards to each VMKernel. 

I made sure to enable Jumbo Frames on both the new vSwitch that is created for the VMKernel and the VMKernel itself, I set them both to 9000 to match the Iomega settings.

I enabled NIC Teaming on the two network cards

Note: Although NIC Teaming will not increase speed for a single NFS Datastore, it will help when there are multiple NFS Datastores, VMWare recommends using multiple NFS Datastores.

Once the network and NAS settings are complete the NFS datastores can be created normally.


Sharepoint 2010 - Check assemblies for memory leaks / proper disposal

Found this tool today for checking all of the SPSite, SPWeb etc. objects in your custom code to ensure that proper disposal has been used. This tool can actually review a compiled assembly so this is great for checking your own code and any 3rd party tools.

" The output from the tool will contain messages that may indicate the SPSite and SPWeb Dispose() methods guidance are not being followed in the customers source code. While these messages need expert evaluation in order to determine if the software is not performing properly, in some cases just running the tool on your custom code can lead you to simple fixes that improve the quality and performance of custom code on SharePoint. "

The tool can be downloaded here - http://archive.msdn.microsoft.com/SPDisposeCheck

Best Practices for object disposal - http://msdn.microsoft.com/en-us/library/aa973248.aspx

Sharepoint 2010 - Hide the Quick Launch Navigation on a page

One possible way to hide the Quick Launch panel on a page is to modify the page layout for example of the default.aspx page.

<style type="text/css">
#LeftNavigationAreaCell { displaynone !important; }

Another method for hiding the Quick Launch is to add a Content Editor Web Part to the page and add the following code to the webpart.

<style type="text/css">

/*--Hide Quick Launch Panel--*/



The last method is to add the code to the Masterpage for the site (just before the closing head tag) and this will eliminate any extra space in the top left area. 



Passed the 70-567 PRO: Designing and Developing Microsoft Sharepoint 2010 Applications

This is the second Sharepoint 2010 Application Development Exam

Things to be proficient on

BCS - a few questions about setting up external lists, content types hosted in SQL or MS CRM, where to put the connection strings

Infopath - a few questions about Infopath forms, where to design your form and which version of Infopath to use - the client or Infopath services

Powershell - a few questions that have an answer of running a Powershell script to accomplish a task, I think every question that had this as an option that this was the answer. Know Add-SPUserSolution cmdlet

Authentication - know when to use NTLM, Kerberos, Claims and Forms based authentication

Site Columns - understand site columns and lookup columns

Content Types - understand Content Types, both internal and external, and Content Type hubs - syndication, know the Office Item Type option. Know what a sealed content type is, how to create it

Disposal - several questions about custom code and disposing of the objects you create, the answers were always to do your own garbage collection, do not rely on the managed framework to do this for you.

Logging - understand the ULS, what it is and where it is. Know what Event Log Flood Protection is

Exception Handling - a question that asks what you should do to trap an error, log it and throw an exception

Page Layouts - know when you can use a Page Layout and when you should use a Site Definition or Masterpage or a Site Theme

Performance - A few questions on optimization, know disk-based caching and Remote Blob storage and how to configure each. Know what filestream storage on the database server is an how to enable it

Workflow - know the differences between workflow types, Sequential and know what a Composite Activity is and a Task Form. One question on creating and validating a workflow in Visio, know how to do this

Object Model - know when to use the Sharepoint Foundation 2010 Managed Client Object Model in your application. Know what SP.UI.ModelDialog class is

Deployment - several questions about deploying a new version of your solution, webpart, workflow etc. Things like you already have a solution deployed and you don't want to affect existing users using the current version, how do you deploy a new version etc. Understand when to deploy a Sandboxed solution, know all of the limitations of this type of solution

Scope - huge thing to know, understand where to scope your solutions based on requirements e.g. Farm, Web Application, Site Collection, Site

Features - know how to create and deploy features, understand scope and how to upgrade to new versions. Understand feature dependencies

Found an excellent video series on Youtube that really helped with the exam preparation: http://www.youtube.com/watch?v=fEtOf7Hq4yw


Sharepoint 2010 Web Application Modes - Classic vs Claims

Sharepoint web applications can be configured in one of two modes for authentication, here are a few of the differences between these modes

1. Classic - supports Windows Authentication NTLM

2. Claims

  1. Windows Authentication NTLM
  2. Windows Authentication Kerberos
  3. Forms Based
  4. External Auth(e.g. Windows Live ID)
Microsoft's instructions for changing the mode of a Sharepoint web application

To convert Web applications to claims-based authentication

From the Windows PowerShell command prompt, type the following:

 $WebAppName = "http:// yourWebAppUrl"
 $account = "yourDomain\yourUser"
 $wa = get-SPWebApplication $WebAppName
 Set-SPwebApplication $wa -AuthenticationProvider (New-SPAuthenticationProvider) -Zone Default

At the Migration prompt, click Yes to continue.

From the Windows PowerShell command prompt, type the following to set the user as an administrator for the site:

 $wa = get-SPWebApplication $WebAppName
 $account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()

From the Windows PowerShell command prompt, type the following to configure the policy to enable the user to have full access:

 $zp = $wa.ZonePolicies("Default")
 $p = $zp.Add($account,"PSPolicy")

From the Windows PowerShell command prompt, type the following to perform user migration:

 $wa = get-SPWebApplication $WebAppName

Additional migration guidelines

After you perform the steps in the previous procedures, you might experience one or more of the following issues.

Users who submit valid credentials might be notified that they do not have permissions. If this occurs, the portalsuperuseraccount property and the portalsuperreaderaccount property of the Web application were probably configured prior to migration. If this is the case, you must update the portalsuperuseraccount property and the portalsuperreaderaccount property to use the new claims-based account name. After migration, you can find the new claims-based account name in the Web application policy for the migrated Web application.

If existing alerts are not invoked after migration, you might have to delete and recreate the alerts.

If Search crawl does not function after migration, make sure the Search crawl account lists the new converted account name. If the new converted account name is not listed, you must manually create a new policy for the crawl account.


VMWare Workstation 8 New Features

Just started playing with VMWare Workstation 8 today, lots of  really cool new features.

1. Connect to your VCenter and ESX(i) Hosts, manage autostart vms, configure roles and permissions
2. Copy VM's from Workstation to ESX(i) - Tested this with no issues, no timeouts etc.
3. Run workstation as a server - Nice for those vm's you want to leave running while users log on and off of host
4. 3d graphics, HD audio
5. USB 3 and Bluetooth support
6. Search for VMs
7. Live thumbnail bar
8. Virtual machine library
9. VM Sharing, can grant access to your virtual machines, for other team members etc.
10. P2V right from workstation - includes the latest version of VMWare Converter
11. New agent keeps all vmware tools up to date on all virtual machines
12. Connect to other workstation 8 installs on your network and manage them along side with your local VMs
13. Support for virtualized 64 bit ESX(i) guests
14. Map vmdk files to drive letters on your desktop, full read/write support
15. Teams are gone, folders have taken over, you can power on a folder - power all vms on or configure individually, you can drag and drop vms into folders
16. New interface has the look and feel of VSphere 5

Thats all for now, I'll list more as I start to become more familiar with it.


Index Adobe PDF Documents with Sharepoint 2010

Step one: Download the PDF iFilter currently in version 9.0 from Adobe's website

Run the installation on all query servers (web front ends)

Launch Central Administration | Application Management | Manage Service Applications

Select your Search Service Application

Select File Types under Crawling in the left navigation

Select New File Type, Enter pdf for the file extension and select OK

Using Open a command prompt and type Regedit, navigate to
\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\14.0\Search\Setup\Filters

Right-click the Filters folder and select New Key. Enter “.pdf” for the key value.

Add the following values to this key:

<String Value> Extension = pdf
<DWORD 32Bit> FileTypeBucket = 1
<String Value> MimeTypes = application/pdf

 The key should look like:

Navigate to: \\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\14.0\Search\Setup\ContentIndexCommon\Filters\Extension
Right-click the Filters  folder and select New Key. Enter “.pdf” for the key value.
Set the “default” value to {E8978DA6-047F-4E3D-9C78-CDBE46041603}
 The key should look like:

You can now add an image to be used for the icon for PDF documents:
Add an image (typically gif or png, use Google images to find an example) for the PDF icon to the folder:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES
Open the file docicon.xml from the location:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML
Add a link to map the pdf extension to the image by adding a link like the following to the ByExtension element:
                 <Mapping Key=”pdf” Value=”pdf_icon.gif” OpenControl=”"/>
Finally, issue an IISReset and restart the Windows services “SharePoint Foundation Search V4” and “SharePoint Server Search”.
Your PDF documents will now be indexed on the next crawl.

"An unhandled exception occurred in the silverlight application" error when attempting to create a new site in Sharepoint 2010

When trying to create a new site I receive this error

Resolution: From Central Administration select manage web applications | Select the correct web application | In General Settings | General Settings find the Security Validation setting and make sure it is set to on.


Automated Sharepoint 2010 Install - Auto SPInstaller

I know this tool has been around for a while but I just stumbled onto it, for a free utility you can't beat the functionality.


This tool will greatly simplify the database naming mess that Sharepoint leaves you with after an install, here's a screenshot of the default database names after a typical install...

And here's what the database names will look like after using AutoSPInstaller...

Much more manageable and far less confusing, no GUIDS in the naming conventions and short DB names.


GATEWAY DX4200-09 VMWare VSphere Whitebox

I built a VMware VSphere environment using 2 Gateway DX4200 machines, the machines were relatively inexpensive in 2009 and provide enough horsepower for my home lab. First thing I upgraded was the memory in each machine from 4GB to 8GB, then I disabled the on-board NICS and purchased Intel Pro 1000 Dual Port NICS. I purchased the 64 bit server NICS and found that you can use them on your 32bit non server motherboards, this is great because the server cards are far less expensive.

I recently upgraded the processors from the stock 1.8 GB Phenoms to 3.2 GHZ Phenom II's, found the procs on sale at Microcenter for about $95 a piece. I was worried that the procs would not work because the motherboards have socket AM+ and the new procs are AM3. The processors work fine but I do get a message from the BIOS stating AMD unknown processor and so ESXi reports the same thing. Unfortunately Foxconn never released any newer updates for the BIOS so I will always see this message but everything works perfectly.

The Gateway offers no on-board RAID controller which is good because most non-server motherboards on-board RAID controllers will not work with VMWare ESX. I used 2 Kingston 4GB USB drives to install ESXi 5.0 on and have no hard drives in my Gateway machines, this provides a very low power solution when combined with my IOMEGA IX4-200D NAS storage.

The machines currently host about 10 Virtual Machines, most running Windows Server 2008R2, I host a couple of websites in this environment but for the most part pretty low traffic. Performance is acceptable for me, I do get the occasional stutter or slowness but for the most part it runs great, I've never taxed the hosts so much that I was seeing performance degradation. 

IOMEGA IX4-200D Thoughts

I've owned the Iomega IX4 200D for almost 2 years now, since this is a core piece of my home infrastructure, I felt some feedback would be appropriate.

The NAS is not designed for speed, in most reviews I've read it's usually ranked near the bottom of the pack. That said I still think it's a great device with a ton of functionality, the unit ships with Seagate Barracuda hard drives that spin at 5900 RPM, they are the low power edition of the product line. I use mine (I actually own 2) for a VMWare ESXi 5.0 environment that I run, my environment consists of 2 - 3.2 GHZ Quad Core Phenom II white boxes each with 8GB of RAM and 5 Intel Pro 1000 NIC cards. The NAS comes with 2 Gigabit NICS that can be teamed for performance or used individually for redundancy, I found this to be pretty rare for most home NAS devices on the market.

The Iomega is certified with VMWare to run VSphere and supports both iSCSI and NFS. I purchased the unit with 4 500GB Seagate Barracudas and quickly ordered 4 2TB Barracudas to replace the original drives. Switching out the drives is actually not supported by Iomega and will void the warranty however, I kept the 500 GB drives so if I ever have to ship it back, I can put the original drives back in.

The operating system of the NAS is actually striped across all disks in the device so you must be careful to only switch one drive at a time until the array is completely rebuilt. I have had a drive fail once and it was very easy to install a new drive and let it rebuild the array, on an 8TB RAID 5 array about half full it takes about 24 hours to rebuild but the nice thing is that the array is still accessible during the reconstruction.

That's all I can think of right now, I'll keep adding to this post as I have time...


Passed the 70-668 PRO: Microsoft SharePoint 2010, Administrator Exam

I took this exam today and passed, I think it was definitely harder than the 70-667 exam, 65 questions in all, 16 break out portions that were based on a reusable customer requirements scenarios. There were about 10 questions that you had a list of items in the left box you had to drag the correct # of items and put them in the correct order.

A few I remember with the select-able steps - just basic idea here I don't remember much!
1. Configure a content deployment path. Choices were things like create a deployment path on server 1 or server 2, allow content deployment, create a quick deployment job, create a content deployment job etc.

2. You must create a new site at the top level of a site collection based on a saved template. Choices were save site as a template, import stp file and activate, save site template, import WSP file, etc.

3. They asked for you to add Excel and Visio services to your farm, requirements were best performance and redundancy. Choices were install a new app server, install Sharepoint 2010 into a SQL Cluster, install the enterprise version of Sharepoint on all servers using the /Complete option and then a configuration list in one box. I really hated the way this question was worded, probably missed it.

4. One question asked to configure servers for sandbox solutions, must as isolated as possible and redundant,  displayed a farm with 3 WFE's and one index server. Choices were stop sandbox service on WFE 01 & 02, stop sandbox service on WFE 03, start sandbox service on WFE01 & 02, start sandbox service on WFE03, start sandbox service on WFE03 & start sandbox service on QS01, stop sandbox service on WFE03 & start sandbox service on QS01

Things to be proficient on, when to use each type of authentication type, kerberos, claims, forms, integrated. How many servers, web apps, site colls, based on a given customer scenario. Different upgrade types and when to use each. Search - understand query server, query mirroring, crawl components, index partitions, how to isolate each part of search within your farm, authoritative pages, search federation etc. a couple of Infopath forms questions, several backup questions on perform a backup, granular backup, backup-spsite, backup-spfarm powershell cmdlets. A few BCS questions and a few talking about secure store service application, moving 2007 SSO farms into 2010. Memorize all of the web application general settings, all of the backup settings in CA and all the monitoring settings like diagnostic, trace log, web analytics, etc.

Passed the 70-667 TS: Microsoft SharePoint 2010, Configuring Exam

I took the exam a couple of days ago and passed with an 883/1000, like the 2007 exams the configuring is probably the easiest to pass, next on to the admin and then the dev exams. A couple of sites I used for study are listed below.

Free Practice Tests

Microsoft Learning Plan

Exam Details

Upgrade Sharepoint 2007 Shared Service Provider(s) to Sharepoint 2010

Working on a MOSS upgrade project I recently discovered the only complete upgrade method for the MOSS Shared Service Providers is an In Place Upgrade. The In Place Upgrade method will actually take the original SSP(s) and map them over into the new 2010 database architecture i.e. BDC database, Search Service Admin database, Search Service Gatherer database, Taxonomy database and User Profile database.

The Database Attach upgrade method can be used on a MOSS SSP however, only the User Profile data will be upgraded into Sharepoint 2010 User Profile database. All of the remaining items from the SSP will have to be manually created/configured using 2010 Service Applications.