9/11/2010 1
Virtualization of SharePoint 2010
Michael NoelConvergent ComputingTwitter: MichaelTNoel
Michael Noel
• Author of SAMS Publishing titles “SharePoint 2010 Unleashed,” “SharePoint 2007 Unleashed,” “SharePoint 2003 Unleashed”, “Teach Yourself SharePoint 2003 in 10 Minutes,” “Windows Server 2008 R2 Unleashed,” “Exchange Server 2010 Unleashed”, “ISA Server 2006 Unleashed”, and many other titles .
• Partner at Convergent Computing (www.cco.com / +1(510)444-5700) – Bay Area based Infrastructure/Security specialists for SharePoint, AD, Exchange, Security
What we will cover
• Why Virtualize?• SharePoint 2010 Virtualization Guidelines and
Models• Virtualization of SharePoint Roles• Virtualization of SQL Server• Memory Limitations and Guidelines for Guests• Performance Monitoring for Virtual Machines• Microsoft Virtualization Software Options• Windows Server 2008 Hyper-V• System Center Virtual Machine Manager 2008• Third Party Virtualization Product Support• Microsoft Licensing for Virtual Servers
Why Virtualize?
Why Virtualize?• Direct Server over consumption / Utility Bills / “Greener” technology
• Less Physical space to consume • Less cost to cool multiple servers
Reduce Costs
• Reduce number of physical servers• Get rid of legacy hardware• Get rid of legacy hardware• Dedicated specialty servers
Consolidate / Dedicate
• Idle Servers free up their memory for other servers• No proliferation of disk volumes• Very large number of servers can run on a single box
Optimise Investment
SharePoint 2010 Virtualization Guidelines
Virtual Host Guidelines• Dedicated hosts for SharePoint Virtual Guests• Assume 1GB of memory taken by host OS
(Hyper-V), 3rd party varies• No Software on Host OS! (Except A/V or Backup)
General
• Allocate Direct / Passthrough NICs when possible• Create dedicated NIC for Management• Create dedicated NIC for Failover
NICs
• Dedicated spindles for SharePoint• Dedicated volume for Host OS• Dedicated volume for Guest OS VHDs• Dedicated volume for Databases and Logs
Disk
• Do not overallocate (applies to memory as well)• No more than 2 vCPUs for every Core on host• Ideally closer to 1:1 for most critical systems
2:1 Core/vCPU Ratio
SP2010 Role Virtualization
• Excellent Virtualization Candidate• Can be easily provisioned via templatesWeb
• Higher proc/mem requirements, but still good candidate• Often paired with SP2010 Web Role• Requires 2nd Disk for Index
Query/Crawl
• Higher proc/mem requirements, but still good candidate• Low disk requirements compared to other rolesApp
• Requires the most memory, proc, and disk IO• Be cautious when virtualizing, make sure host is scaled• If virtual, be sure to use pass-through or fixed size disks
DB
vCPU RAM (Minimum)
RAM (Recommended)
Web Only* 2 6GB 8GB
Service Application Roles Only
2 6GB 8GB
Search/Query Only 2 8GB 10GB
Combined Web/Query/Service Apps
4 10GB 12GB
Database* 4 10GB 16GB
SharePoint Guest Guidelines
SharePoint Role VM Guidelines• Fixed size Disk a minimum• Pass-through (raw) disk is recommended, but not
required.• Address Disk I/O (Dedicated spindles, etc.)
Disk
• Created dedicated virtual switch for SharePoint• Use VLAN tagging for Security• Ensure host has redundant network links• Highly consider passthrough NICs
Network
• Load balance like servers across hosts• Install Integration components on servers (Win2008 R2
automatically does for Hyper-V)General
SQL Server VM Guidelines• Passthrough Disk (Raw) strong recommendation• Dedicated volumes for Logs, DB, OS• Follow best practices for tempDB, others Disk
• Install in same virtual switch as SP Roles• Use multipathing on hosts• Ensure host has redundant network links• Passthrough NICs dedicated to SQL Important
Network
• Be sure your hosts have the necessary capacity, or you will have performance bottlenecks
• SQL Mirroring and Clustering now supported on virtual guests (KB 956893)
General
SharePoint 2010 Virtualized Farm Architecture
Allows Organizations that wouldn’t normally be able to have a test environment to run one
Allows for separation of the database role onto a dedicated server Can be more easily scaled out in the future
Virtualized Farm ArchitectureCost-effective Virtual Environment / No HA
Server Memory Processors Disk
Virtual host 24GB RAM 2 quad-core (8 cores)
C drive: OS - Windows Server 2008 R2 with Hyper-V; 50GB dedicated volume
D drive: dedicated volume for OS VHDs E drive: 500GB dedicated volume for
SQL Database VHDs F drive: 100GB dedicated volume for
SQL Logs VHDs.
SQL server 10GB RAM 4 virtual processors
C drive: OS - 100GB fixed-size VHD D drive: fixed-size VHD (100GB)
dedicated for SQL logs E drive: fixed-size VHD (500GB)
dedicated for SQL Data
SharePoint Web/Query/App
10GB RAM 4 virtual processors
C drive: OS and Transport Queue Logs; 100GB fixed-size VHD
E drive: 100GB fixed-size VHD for Index/Query
Virtualized Farm ArchitectureCost-effective Virtual Environment / No HA
High-Availability across Hosts
All components Virtualized
Uses only two Windows Ent Edition Licenses
Virtualized Farm ArchitectureHighly Available Farm with only Two Servers
Server Memory Processor DiskVirtual hosts 48GB RAM 2 quad-core (8
cores) C drive: OS; Windows Server 2008 R2
with Hyper-V; 50GB dedicated LUN D drive: dedicated LUN for VHDs Raw volume: 100GB dedicated LUN for
SQL Logs Raw volume: 2TB dedicated LUN for
SQL Databases
SQL Servers 16GB RAM 4 virtual processors
C drive: OS; 50GB fixed-size VHD D drive: pass-through dedicated LUN
(100GB) for SQL Logs E drive: pass-through dedicated LUN
(2TB) for SQL Data
SharePoint Web/App Servers
12GB RAM 2 virtual processors
C drive: OS; 100GB fixed-size VHD
SharePoint Search/Query Servers
12GB RAM 2 virtual processors
C drive: OS; 100GB fixed-size VHD D drive: 200GB fixed-size VHD for
Index/Query
SQL Witness Server
2GB RAM 1 virtual processor
C drive: OS; 50GB fixed-size VHD
Virtualized Farm ArchitectureHighly Available Farm with only Two Servers
Highest transaction servers are physical
Multiple farm support, with DBs for all farms on the SQL cluster
Virtualized Farm ArchitectureBest Practice Virtual/Physical with HA/Perf
Virtualized Farm ArchitectureLarge Virtual Farms
NUMA Memory Guidelines
NUMA Memory Limitations and Guidelines
• Non-Uniform Memory Access (NUMA) Boundaries exist at the hardware level.
• Virtual guests that are allocated more memory than exist within a single NUMA memory boundary have significantly impacted performance
• NUMA boundaries vary by processor and motherboard vendor, but good rule of thumb to calculate boundaries is to divide the amount of memory in the system by the total number of cores.
• i.e. Dual Quad-core host (2x4 cores = 8 cores) with 64GB of RAM on the host would mean NUMA boundary is 64/8 or 8GB.
• In this example, allocating more than 8GB for a single guest session would result in performance drops.
NUMA Memory Limitations and Guidelines
• Keeping NUMA boundaries in mind, this means that you will get significantly better performance provisioning two SharePoint front-ends with half the amount of RAM as a single front-end with twice as much RAM.
• This applies to any Virtualization platform, as the limitation is hardware specific. NUMA allocation specifics will vary by vendor, however.
• Refer to MS Whitepaper on Virtualization of SharePoint (http://tinyurl.com/virtualsp) for more specifics.
NUMA Example: 2x Quad Core, 64GB RAM
8GB 8GB 8GB 8GB
Proc 1
8GB 8GB 8GB 8GB
Proc 2
NUMA Example: 2x Quad Core, 8GB RAM
1GB 1GB 1GB 1GB
Proc 1
1GB 1GB 1GB 1GB
Proc 2
Virtualization Performance Monitoring
Virtualization Performance MonitoringCollect Performance Data
• Manually with Perfmon counters• Collect data over a week minimum to look
for trends throughout the week• Consider using System Center Operations
Manager 2007 R2 for long-term performance analysis and threshold alerting
Virtualization Performance MonitoringPerformance Counters and Thresholds on Hosts
• Processor - <60% Utilization = Good - 60%-90% = Caution - >90% = Trouble• Available Memory - 50% and above = Good - 10%-50% = OK - <10% = Trouble• Disk – Avg. Disk sec/Read
or Avg. Disk sec/Write - Up to 15ms = fine - 15ms-25ms = Caution - >25ms = Trouble
• Network Bandwidth – Bytes Total/sec– <40% Utilization = Good– 41%-64% = Caution– >65% = Trouble
• Network Latency - Output Queue Length– 0 = Good– 1-2= OK– >2 = Trouble
Virtualization Performance MonitoringPerformance Counters and Thresholds on Guests
• Processor (N/A)• Available Memory - 50% and above = Good - 10%-50% = OK - <10% = Trouble• Disk – Avg. Disk
sec/Read or Avg. Disk sec/Write
- Up to 15ms = fine - 15ms-25ms = Caution - >25ms = Trouble
• Network Bandwidth – Virtual NIC Bytes Total/sec– <40% Utilization = Good– 41%-64% = Caution– >65% = Trouble
• Network Latency - Output Queue Length– 0 = Good– 1-2= OK– >2 = Trouble
SharePoint Virtualization Support
Microsoft Support of SharePoint Virtualization
• Microsoft’s official SharePoint support stance is that any SharePoint role or service is supported for hardware Virtualization, including SQL Server 2005, SQL Server 2008, or SQL Server 2008 R2. There are only three requirements for Virtualization that must be satisfied, these are as follows:
• Hardware-assisted Virtualization, which is available in processors that include a Virtualization option—specifically processors with Intel Virtualization Technology (Intel VT) or AMD Virtualization (AMD-V) technology.
• Hardware-enforced Data Execution Prevention (DEP) is available and enabled.
• Either deployed on Microsoft Hyper-V (RTM or R2 version) or a validated third-party hypervisor that is part of the Server Virtualization Validation Program (SVVP) – KB 897615
What does this mean for SharePoint on Third party?
• SharePoint supported on VMware ESX/ESXi, Citrix XenServer, or others in the SVVP
• This only covers Hypervisor products, so excludes products such as VMware Workstation or VMWare Server
• Less need to reproduce problems in physical environment
Windows Server 2008 R2 Hyper-V
Hyper-V R2 for SP2010Overview • Hyper-V Introduced shortly after released of
Windows Server 2008 RTM• Hyper-V R2 included with Windows Server 2008 R2• Installs on any edition (Std., Ent, Datacenter)
Versions
• 4x Hyper-V v1 Performance• Support for up to 384 Guests or 512 VPs, whichever
comes first• Core Parking to reduce resource consumption
Performance
• Hot Add Storage• Processor Compatibility (Intel-Intel or AMD-AMD)Flexibility
• Multipathing for network availability• Cluster Shared Storage Support• Live Migration host high availability with VMM 2008• Active/Active failover with no guest downtime
Availability
System Center Virtual Machine Manager 2008 R2
System Center Virtual Machine Manager (VMM)
• Virtualization Host and Guest Management Platform
• Part of the System Center Management Suite, which includes the following:
• System Center Operations Manager 2007• System Center Data Protection Manager 2007• System Center Configuration Manager 2007 R2• System Center Mobile Device Manager 2007• System Center Essentials 2007• System Center Capacity Planner 2007• System Center Service Manager 2010
System Center Virtual Machine Manager (VMM) 2008 R2
• New version out (VMM 2008 R2)• VMM 2008 R2 has P2V (Physical to virtual migration) and V2V (VMware
Guest migration to Hyper-V) tools• For SharePoint, allows for creation of SharePoint template servers that
can be quickly provisioned for test farms or for new farm members in production
• Can manage both Hyper-V and VMware guests (though must ‘go through’ a Virtual Center server to manage VMware guests.)
• Self-Service Portal allows end users and remote admins to be able to provision their own virtual machines based on templates
• PowerShell support allows for scripted provisioning of SharePoint 2010 or other servers into a farm
Quick SP2010 Farm Provisioning with VMM 2008 R2
1. Create new Virtual Guest (Windows Server 2008 R2)
2. Install SP2010 Binaries. Stop before running Config Wizard
3. Turn Virtual Guest into Template, modify template to allow it to be added into domain
4. Add PowerShell script to run on first login, allowing SP to be added into farm or to create new farm
Voila! 15 minute entire farm provisioning…
QUICK FARM PROVISIONING WITH VMM 2008 R2
Live Demonstration
37
Farm Provisioning Script(Thanks to Muhanad Omar, MVP)
$configType = read-host "Do you wish to join an existing Farm? (Y/N)"if ($ConfigType -eq "Y") { $DatabaseServer = read-host "Sounds good. Please specify the name of your SQL Server"; $ConfigDB = read-host "Next, specify the name of your Farm Configuration Database"; $Passphrase = read-host "Finally, please enter your Farm passphrase" -assecurestring } else { $DatabaseServer = read-host "In that case, let's create a new Farm. Please specify the name of your SQL Server"; $FarmName = read-host "Please specify a name for your Farm (ex. SP2010Dev)"; $ConfigDB = $FarmName+"_ConfigDB"; $AdminContentDB = $FarmName+"_Admin_ContentDB"; Write-Host "Please enter the credentials for your Farm Account (ex. CONTOSO\SP_Farm)"; $FarmAcct = Get-Credential; $Passphrase = read-host "Enter a secure Farm passphrase" -assecurestring; $Port = read-host "Enter a port number for the Central Administration Web App"; $Authentication = read-host "Finally, specify your authentication provider (NTLM/Kerberos)"; }if ($ConfigType -eq "Y") { Add-PSSnapin Microsoft.SharePoint.PowerShell; Connect-SPConfigurationDatabase -DatabaseName $ConfigDB -DatabaseServer $DatabaseServer -Passphrase $Passphrase} else { Add-PSSnapin Microsoft.SharePoint.PowerShell; Write-Host "Your SharePoint Farm is being configured..." New-SPConfigurationDatabase -DatabaseName $ConfigDB -DatabaseServer $DatabaseServer -AdministrationContentDatabaseName $AdminContentDB -Passphrase $Passphrase -FarmCredentials $FarmAcct}Initialize-SPResourceSecurityInstall-SPServiceInstall-SPFeature -AllExistingFeaturesNew-SPCentralAdministration -Port $Port -WindowsAuthProvider $AuthenticationInstall-SPHelpCollection -AllInstall-SPApplicationContentWrite-Host "Your SharePoint 2010 Farm has been created!"if ($ConfigType -eq "N") { $WebAppCreation = read-host "Would you like to provision a Web Application using the default Team Site Template? (Y/N)"; if ($WebAppCreation -eq "Y") { $HostHeaderQ = read-host "Would you like to specify a host header? (Y/N)"; if ($HostHeaderQ -eq "Y") { $HostHeader = read-host "Please specify a host header for your Web Application (ex. intranet.contoso.com)"; $URL = "http://"+$HostHeader; Write-Host "Creating your Web Application..."; New-SPWebApplication -Name "SharePoint 2010 Team Site" -Port 80 -HostHeader $FQDN -Url $URL -ApplicationPool "Content_AppPool" -ApplicationPoolAccount (Get-SPManagedAccount $FarmAcct.UserName) -DatabaseServer $DatabaseServer -DatabaseName $FarmName+"_TeamSite_ContentDB_01"; New-SPSite $URL -OwnerAlias $FarmAcct.UserName -Language 1033 -Template "STS#0" -Name "Team Site"; Write-Host "Configuration completed."; } else { Write-Host "Creating a Web Application using the default Team Site Template..." } } else { Write-Host "Configuration completed."; } }Write-Host "Press any key to continue..."$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Virtualization Licensing
$ £ ¥ €
Virtualized Farm ArchitectureMicrosoft Virtualization Licensing Primer
• Windows Server Virtualization Licensing• Standard Edition: One virtual guest (if host is dedicated to Virtualization
role)• Enterprise Edition: Four virtual guests (if host is dedicated to Virtualization
role) / Guests can be Std/Ent• DataCenter Edition: Unlimited Number of Virtual Guests / Per processor
socket license• Virtualization OS licensing applies to Hyper-V or any virtual host software
listed in SVVP (KB 897615)• System Center Virtualization Licensing• System Center Management Suite Standard Edition License: Gives DPM,
OpsMgr, ConfigMgr, and VMM Agents for 1 server.• System Center Management Suite Enterprise Edition License: Gives
unlimited DPM, OpsMgr, ConfigMgr, and VMM Agents for all virtual guests on the host.
• Check with Microsoft for Specifics…
Microsoft Virtualization Guest Licensing Model
• Guests can run any combination of downlevel licenses (i.e. Datacenter host, Ent or Std edition guests)
• Applies not only to OSes running Virtualized with Windows Virtualization, but it also applies to 3rd party Virtualization as well!
Session Takeaways
• Consider Virtualization for SharePoint, but architect host and guest environments very carefully.
• Best performance comes from dedicated virtual hosts, dedicated passthrough NICs (RDM), and dedicated passthrough disks (RDM) and by not overcommitting resources.
• Monitor performance metrics to look for bottlenecks• KB897615 outlines MS Support for 3rd Party Virtualization such
as VMware and XenServer…• Windows Server 2008 R2 Hyper-V technology gives high
performance and is a very cost competitive option• MS Licensing has new Virtualization support, and Datacenter
edition will provide for unlimited guests under a single host.
For More Information
SharePoint 2010 Unleashed (SAMS Publishing) (http://www.samspublishing.com)Windows Server 2008 R2 Unleashed and/or Hyper-V Unleashed (http://www.samspublishing.com)Microsoft ‘Virtualizing SharePoint Infrastructure’ Whitepaper (2007) (http://tinyurl.com/virtualsp) Microsoft ‘Virtualizing SQL Server’ Whitepaper (http://tinyyurl.com/virtualsql)Microsoft’s Guidance on Virtualization Monitoring (2007) (Brian Wilson, MCS) http://tinyurl.com/monitorsp Contact us at CCO.com
PLEASE COMPLETE THE SESSION SURVEY
Thank You!
Thank You To Our Sponsors!Thank You To Our Sponsors!
Thanks for attending!
Questions?
Michael NoelTwitter: @MichaelTNoel
www.cco.com