Unblocking The Main Thread Solving ANRs and Frozen Frames
SharePoint 2010 High Availability - SPC2C
1. Architecting a Fault Tolerant and High Performance SharePoint 2010 Farm Michael Noel Convergent Computing (CCO.com) @MichaelTNoel
2. 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) – San Francisco Bay Area based Infrastructure/Security specialists for SharePoint, AD, Exchange, Security
3. What we will cover SharePoint 2010 Infrastructure Improvements SharePoint 2010 Databases and Database Optimization SharePoint 2007 vs. SharePoint 2010 Roles SharePoint 2010 Virtualization Guidelines and Models Rearchitecture of Site Collections and Content DBs Restructuring and Migration of Content SQL Database Mirroring for High Availability
6. SharePoint 2010 Infrastructure ChangesGoodbye Shared Services Provider! (and good riddance…) SSP concept replaced with Service Applications Each service runs independently, providing application isolation All SSP functionality moved to databases, so they can be consumed from multiple servers more easily New products use this framework
7. SharePoint 2010 Infrastructure ChangesImprovements to Central Admin Interface and PowerShell Ribbon interface added Still a Site Collection in a dedicated Content DB, so Best practices still apply as follows: Make redundant (install on multiple web role servers and Load Balance) Configure for Kerberos Configure for SSL (to protect PWs) PowerShell is King!
15. SharePoint 2010 Architecture‘The Six Server Farm’ 2 Web/Query Servers 2 Service Application Servers 2 Database Servers (Clustered or Mirrored) 2 Query components for each index partition 2 Crawlers for the Crawl DB, one on each Crawl server Search Admin Service on one Crawl server
16. SharePoint 2010 ArchitectureLarge Farm Multiple Dedicated Web Servers Multiple Dedicated Query Servers Multiple Dedicated Crawl Servers, with multiple Crawl DBs to increase parallelization of the crawl process Multiple distributed Index partitions (max of 10 million items per index partition) Two query components for each Index partition, spread among servers
18. Proliferation of Databases SharePoint 2010 has moved a large number of services to the data tier End result is a significantly higher number of databases, often more than 20 in a single farm Database IO needs also increase
24. SQL Database OptimizationContent Databases Distributed Between Multiple Volumes Break Content Databases and TempDB into multiple files (MDF, NDF), total should equal number of physical processors (not cores) on SQL server. Pre-size Content DBs and TempDB to avoid fragmentation Separate files onto different drive spindles for best IO perf. Example: 100GB total Content DB on Four-way SQL Server would have four database files distributed across four sets of drive spindles = 25GB pre-sized for each file.
25. SQL Database OptimizationTempDB Tips TempDB is critical for performance Pre-size to 20% of the size of the largest content database. Break into multiple files across spindles as noted Note there is a separate TempDB for each physical instance Note that if using SQL Transparent Data Encryption (TDE) for any databases in an instance, the tempDB is encrypted.
26. Remote BLOB Storage (RBS) Remote BLOB Storage (RBS) allows for the documents (BLOBs) to be stored outside of the content DB, resulting in DBs that are 80-90% smaller. BLOBs can be stored on lower tier of disk Really a data management tool, less of a performance tool Must be managed and understood Can use FILESTREAM, but preference is to use third party
29. Additional Service Applications Office Web Apps Excel Calculation Services Word Viewing Service PowerPoint Service Project Server 2010 Third Party (Newsgator, etc.)
30. Service Application Groups Can be granular per Web Application Multiple Instances of a Service App can be Deployed in a Farm Can create custom Service App ‘Group’ to target specific ones to Web Apps
31. Physical Isolation for Service Apps Use different application pools to isolate the service app pool. Uses significantly more resources for each app pool (800MB+ RAM)
32. Cross-farm Service Applications Service Applications can be shared across multiple farms Create cross-farm service application connections
33. Service Apps that Access External Data Sources Delegated Windows Identity used for the following Service Apps: Excel Services PerformancePoint Services InfoPath Forms Services Visio Services If not in the same domain, access to external data will fail from these data sources Use the Secure Store Service to store service credentials to access these data sources
34. Caution: Do NOT Enable All Service Applications unless Needed! Do NOT use the Configuration Wizard for production farms Configuration Wizard assumes defaults, creates GUID databases, etc. Too easy to enable all Service Applications Only turn on those Service Applications that you need! Memory and Proc are used for every one that is turned on Just because you’ve purchased it doesn’t mean it needs to be turned on.
49. Mirroring vs. Clustering Clustering is Shared Storage, can’t survive storage failure, makes Mirroring more attractive Clustering fails over quicker Mirroring is not supported for all databases, but Clustering is Both Clustering and Mirroring can be used at the same time
50. SQL Database MirroringProviding for HA and DR for SharePoint Content Introduced in SQL 2005 SP1 Greatly improved in SQL 2008 and now SQL 2008 R2 Available in Enterprise and Standard (Synchronous only) editions Works by keeping a mirror copy of a database or databases on two servers Can be used locally, or the mirror can be remote Can be set to use a two-phase commit process to ensure integrity of data across both servers Can be combined with traditional shared storage clustering to further improve redundancy SharePoint 2010 is now Mirroring aware!
52. Mirroring Guidelines Use the same version of SQL on Principal and Target Copy Security from Principal to Target Each Mirrored DB uses two threads…don’t overload the server Database model must be set to FULL (Watch for logs growth.) Set the mirror location of each DB by using PowerShell $db = get-spdatabase | where {$_.Name -eq "database name"} $db.AddFailoverServiceInstance("mirrored database name") $db.Update()
53. Mirroring Limitations Some Service Apps store data outside of the data tier, including: Excel Services Application Access Services If a Service App Server hosting these functions goes down, the end user is affected (for that session only.) They can still use another server to re-initiate the session
57. Single Site HA Mirrored Farm Single Site Synchronous Replication Uses a SQL Witness Server to Failover Automatically Mirror all SharePoint DBs in the Farm Use a SQL Alias to switch to Mirror Instance
58. Cross-Site Mirrored HA Farm Two Sites 1 ms Latency 1GB Bandwidth Farm Servers in each location Auto Failover
59. Two Farm / Mirrored Content DBs Two Sites Two Farms Mirror only Content DBs Failover is Manual Must Re-index More details…
60. Session Takeaways Build SharePoint 2010 Environment in Tandem with SharePoint 2007 Plan for the increased number of databases in SharePoint 2010 Design 2010 to be Highly Available and Redundant Consider FAST Search for enhanced Search Functionality Highly Consider Virtualization for the SharePoint Roles Consider Site Collection and Content DB Restructuring Migrate / Upgrade with restructuring in mind if possible Highly Consider SQL Database Mirroring for SharePoint 2010 Databases
61. Your Feedback is Important Please fill out a session evaluation form drop it off at the conference registration desk. Thank you!