Slides delivered for the Virtualization Strategies session

advertisement
Best Practices for
Virtualizing Mission
Critical Applications
Christopher Kusek, vExpert
Twitter: @cxi
Blog: http://pkguild.com
Housekeeping
• When tweeting about the sessions use #
• Include commentary in this session to @cxi
• Other housekeeping matters
Virtualizing Tier 1 is Impossible
Maturity begets virtualization
32-bit Windows
64-bit Windows
900MB Database Cache
32+ GB Database Cache
4Kb block size
8Kb block size
High read/write ratio
1:1 read/write ratio
*Not officially supported*
70% reduction in disk I/O
64-bit Windows
32Kb block size
I/O pattern optimization
I/O reduced 50% more
Who ran first so I can run too?
• United States Navy/Marine Corps – 750,000
mailboxes
• University of Plymouth – 40,000 mailboxes
• VMware IT – 9,000 very heavy mailboxes
• University of Texas at Brownsville – 25,000 mailboxes
• EMC IT – 53,000 mailboxes
Where do I start?
Virtual Exchange Start here
• Refer to Support Policies, Recommendations and
Best Practice Documents
• Architect for the application, not for the
virtualization solution
• Pretend like you’re doing it physically… and Just
do it virtually
• Defaults unless requiring optimization!
Start Simple
• Deploy VMs with similar roles on separate hosts
– MBX VMs in same DAG should not co-locate
– Deploy with VMFS or Fixed Disk VHD
– Scale up and scale out
– Spread your CAS around
Licensing Exchange in the Virtual!!!
• One server license is required for each running
instance of Exchange Server 2010 – whether it is
installed natively on a physical machine or on a
virtual machine
• That’s pretty simple!
Configure Storage
• Review the Exchange Calculator to determine
your memory, spindle and IOPS requirement
• Configure your storage how you would handle it
physically, then present it to your VMs
• Size your MBX VHD or VMDK <2TB
– Some suggest 2040GB to be on the safe side
Configure Storage Continued
• Array Snapshots for any virtualization vendor are
not supported with Exchange Server
– Support and supportability needs to be
supplied by your storage vendor
• Live Migration and vMotion are supported with
Exchange Server, but not with DAGs*
• Do exactly the same virtually as you would
physically when it comes to allocation
Configure Storage Continued
• Take advantage of “Optimized for Virtualization”
acceleration technologies by storage vendors
– Storage Offloading (VAAI, ODX)
– Per VHD / VMDK Locking
• Unlike in the physical world, most data stores
host more than one VM so account for that IO
• Auto-tiering with small granularity (768k) can
result in significant storage savings
Exchange Best Practices
• Do not P2V your Exchange Servers
– Build new servers virtually and move
mailboxes
• Split your roles and size their CPU/Mem on a
role by role basis
• Analyze performance characteristics before and
after if performing migration
• Less physical servers != fewer resources
Exchange Best Practices
• Size Exchange VMs to fit within NUMA nodes for
best performance
• Do not over commit memory unless absolutely
required
• Consider DAG for local site HA, and SRM for site
resiliency/DR
• Virtual machine backup products that rely on
virtual machine snapshots are not supported
Get on the road to Virtual SQL
Virtual SQL Start here
• Refer to Support Policies, Recommendations and
Best Practice Documents
• Architect for the application, not for the
virtualization solution
• Pretend like you’re doing it physically… and Just
do it virtually
• Defaults unless requiring optimization!
Start Simple
• The average physical SQL Server uses 2 CPUs is
6% utilized, 3Gb Mem, 60% utilized, ~20 IOPS
• Light workload?
– Start with 2vCPUs, 3Gb ram
• Heavy workload?
– Start with 4vCPUs, 8Gb+ ram
• Really Heavy workload?
– Architect as if physical in the virtual
– Use a capacity planner tool to assist
Licensing SQL in the Virtual?!?
• Standard, Workgroup, Enterprise per proc
– You must license SQL for each virtual processor
• Standard, Workgroup per Server/CAL
– You must license each virtual operating system
• Enterprise per physical proc
– Licensing each physical processor entitles you to run
any number of SQL server instances
• 2012 switches to per core licensing!
• Unsure? Contact licensing professionals!
Virtualized SQL is blazing fast!
Configure Storage Correctly
• Database LUN needs enough spindles
• Log LUN needs enough spindles
• Mixing sequential (logs) and random (database)
can result in random behavior
– Avoid mixing workloads, refer to storage
vendor
• Fixed-size VHD or Eager-Zeroed Thick VMDK for
your Database and Log volumes
Configure Storage Continued
• Array Snapshots for any virtualization vendor are
not supported with SQL Server
– Support and supportability needs to be
supplied by your storage vendor
• Live Migration and vMotion are supported with
SQL Server
• Do exactly the same virtually as you would
physically when it comes to allocation
Configure Storage Continued
• Try to leverage Array Tiering and Acceleration
technologies if possible
– Use Array based caching to improve
performance
• Most DBs, even High IO ones are hot ~10-15%
of the database, the rest is cold IO
– Automatic Tiering makes for higher
performance and higher efficiency while
reducing cost
Migrating SQL
•
•
•
•
•
Analyze your existing environment
Perform a virtualization assessment
Pay attention to disk spindles not total space
Easy Migration: Use converter to clone server
Easier mgmt and provisioning: Use Templates
Database Best Practices
•
•
•
•
•
•
•
Follow Microsoft Best Practices for SQL Server
Evaluate workloads for SQL-intensive ops
Consider ScalingOut for high end deployments
Defrag SQL Databases
Design back-end to support workload (IOPS)
Monitor DB/Logs for Disk r/w, Disk Queues
Use Fibre-channel connectivity for storage
Configuring Physical Files
• Os/App, Data, Log and TempDB on separate
spindles – Separate LUNs on single datastore will
not provide IO separation
• Use RAID10 or RAID5 (read-only)
– Refer to your storage vendors best practices
• Pre-size data files, do not AUTOGROW
• Pre-size log files, ~10% of DB on average
Configuring TempDB
•
•
•
•
•
•
Move TempDB to dedicated LUN
# of TempDB files = # of CPU cores
All TempDB files should be equal in size
Pre-Allocate TempDB space for workload
Set file growth increment to minimize expand
Microsoft recommends FILEGROWTH incr 10%
SQL Failover Clustering Best Practices
• Failover clustering is supported with caveats
– Follow best practices guide for SQL Clustering
– Use RDMS for DB and Log volumes
– Use eagerthickzeroed disks
– Use separate vSCSI controller for OS and Data
– Use separate vSwitches for Public and
Heartbeat
– Team NICs for network redundancy
SQL Failover Clustering Best Practices
• SQL Database Mirroring (SQL 2008) or AlwaysOn
Availability Groups (2012) can provide similar
levels of availability as failover clusters but
without the strict requirements or vendor
support issues.
• Most DBs have no failover capability not
clustered. By making them virtual and letting
them take advantage of vSphere HA (or the
Hyper-V equivalent) adds availability not
possible with physical servers
General Best Practices
• Best Practices for
– Memory
– CPU
– Networking
– Operations
Memory is Key
Memory Practices
• Allocate your memory based upon your
application workload
• Database memory doesn’t dedupe well
• Do not over subscribe mission critical workloads
• Do NOT OVER SUBSCRIBE MISSION CRITICAL
WORKLOADS
– Use memory reservations for mission critical SQL
workloads to avoid memory contention issues.
VMware and Memory
• Enable memory ballooning and memory page
sharing
• Do not over-commit memory
• Set memory reserves to match VM config
– Setting reservations could limit vMotion
• Enable DRS* where supported
• Avoid swapping by configuring VM with greater
than average memory usage
Can has more CPU
CPU Practices
• Only allocate vCPUs which are being used
– Idle vCPUs will compete for system resources
• If workload is unknown, size for fewer vCPUs
– You can always add more later if reqs demand
• For Performance Critical VMs
– Try to ensure total number of vCPUs assigned to all
VMs is <= total number of cores on the host
– CPU load average of <=1. If greater, add more cpu
FCoTR is the key to the future
Networking Best Practices
• Separate LiveMotion/vMotion, Logging and
console traffic; or use VLAN tagging
• Use a paravirtualized vNIC for high performance
workloads
• Leverage 802.1q using Virtual Switch Tagging
(VST). - VST is most common configuration
• Follow networking design guidelines
• Do NOT use Jumbo Frames*
Operations
• Virtualizing Mission Critical Applications should
leverage Virtualization monitoring solutions like
– System Center
– vCenter Operations
Clusters
• Microsoft does not support migration of running
virtual machines running cluster software.
– Caveat*
Alignment
• Ensure your VMs have their disks aligned
– Boot alignment is auto in 2008, manual in
2003
– Application LUN is manual, follow application
and storage vendor best practices
Thank you!
Links if you don’t see presenter notes!
•
•
•
•
•
Microsoft Support Policies and Recommendations for Exchange Servers in Hardware Virtualization Environments
Exchange 2010 on VMware - Best Practices Guide
http://www.vmware.com/pdf/Virtualizing_Exchange2003.pdf
http://www.vmware.com/files/pdf/solutions/08Q4_VM_Exchange_Server_2007_VI3_WP.pdf
http://www.vmware.com/files/pdf/Exchange_2010_on_VMware_-_Best_Practices_Guide.pdf
•
•
•
•
Microsoft Virtualization Best Practices for Exchange
HP recommended configuration for Exchange Server 2010 and Hyper-V R2 for 5,000 users
Exchange Server 2007 and Hyper-V: Best Practices Blog Post
Policies and Recommendations for Exchange Servers in Virtualization Environments
•
•
•
•
Refer to these great blog series which covers Exchange and VMware
http://www.clearpathsg.com/blogs/2010/07/13/exchange-2010-vsphere-4-best-practices-part-1
http://www.clearpathsg.com/blogs/2010/07/29/exchange-2010-vsphere-4-best-practices-part-2
http://www.clearpathsg.com/blogs/2011/01/13/exchange-2010-vsphere-4-best-practices-part-3
•
•
Duncan Epping
http://www.yellow-bricks.com/2008/12/17/exchange-2007on-vmware/
•
•
•
•
•
•
•
•
Best Practices for SQL Server with VMware
Microsoft SQL Server and VMware Virtual Infrastructure Best Practices
Running SQL in a Hyper-V Environment
Consolidation Guidance for SQL Server
High Performance SQL Server Workloads on Hyper-V
SQL Server 2008 on Hyper-V - Best Practices & Performance
Licensing SQL
Alignment
Credits
• Christopher Kusek, vExpert, CISSP, MCT
• Twitter: @cxi
• Blog: http://pkguild.com
Download