Tag Archives: CU

I Wanna Patch FAST

Want to patch your SharePoint farms faster?  Try running https://github.com/spjeff/sppatchify

 

The latest version (0.42) includes new PowerShell code for parallel execution of “Upgrade-SPContentDatabase.”  This was implemented with “Get-Job” and PowerShell job management to remote sessions. 

The more user content databases you have, the greater the time savings.  Below are summary statistics from patching a 9 server SharePoint 2013 farm with 200 SQL content databases in just 4 hours.  Each of the 9 servers will spawn 4 PowerShell remoting runspaces for “Upgrade-SPContentDatabase.”  With 36 concurrent worker threads, the queue of 200 content databases now becomes only 6 deep.  

Instead of waiting 200 units of time to process content databases serially, we now only wait 6 units of time for the upgrade database phase.

Larger farms with more user content (and databases) will see significant overall time savings considering how a majority of the traditional patching timeline is processing all content databases.    The binary EXE phase runs with all content databases  removed (Dismount-SPContentDatabase ) so PSCONFIG can complete sooner.    After that is done, content is introduced again (Mount-SPContentDatabase) and upgraded (Upgrade-SPContentDatabase).

 

Amazing speed!!!    Cheers 

 

 

Charts

 

image

 

image

 

image

 

Image result for i wanna go fast

 

 

SPPatchify

Open source hosted on GitHub

 

image

SPPatchify – CU patch entire farm from one script

Patching can be tedious and time consuming.   Why not automate that?  Who wants to be awake all night clicking “Next” and watching SP config wizard?  So  I coded a single PowerShell script to manage the full end-to-end patching process.

 

The script will …

  • Enable PowerShell client remoting.  Connects to farm peer machines.
  • Autodetect current user password from IIS pools
  • Download Microsoft Cumulative Update (CU) media (EXE +CAB) and copy to all servers.   Optionally, you can download to the \media\ sub folder manually.
  • Stop Distributed Cache (DC)
  • Stop SharePoint services
  • Run EXE binary in paralle
  • Wait for EXE to complete and reboot
  • Dismount-SPContentDatabase
  • Start SharePoint services
  • Run SharePoint Config Wizard serially
  • Mount-SPContentDatabase
  • Remove Microsoft Cumulative Update (CU) media from peer servers
  • Ensure IIS started
  • Launch Central Admin with IE
  • Reboot current PC

 

Duration from start to end is incredibly fast.    I tested a 4 server SharePoint 2013 farm and ran the entire process in just 45 minutes.   Stopping services and dismounting content databases speeds up patching significantly.    Automating serial (one-at-time) Configuration Wizard ensures minimal “think time” between steps.   Removing manual human process gives higher consistency while mitigating risk of error.

The script uses Get-SPServer to auto detect farm members.   That enables CU media copy sideways to peers and the stop/start of SharePoint services.   Get-SPContentDatabase is exported to a local CSV file to “snapshot” before patching and later Mount-SPContentDatabase step to present databases again.   The big goal isn’t zero downtime, but rather minimal downtime.  

The entire farm patching process can be managed from one PowerShell window.  Enjoy!  shades_smile 

Please leave a comment if you found this helpful.

 

Get Started

  1. https://github.com/spjeff/sppatchify
  2. Extract to “C:\SPPatchify” on any server in the farm
  3. RDP with farm account and run “C:\SPPatchify\SPPatchify.ps1”

 

Flow Diagram

6

 

Screenshots

image

5

image

image

image

image

References

Return to Top ▲Return to Top ▲