33

Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Embed Size (px)

Citation preview

Page 1: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance
Page 2: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

IntroductionIntroduction

Architectures des serveursArchitectures des serveurs

Windows et NUMAWindows et NUMA

SQL Server 2005 et NUMASQL Server 2005 et NUMA

Consolidation et performanceConsolidation et performance

Stockage et performanceStockage et performance

Page 3: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

WIE – équipe d’architectes seniors qui WIE – équipe d’architectes seniors qui travaille avec Microsoft depuis plus de 10 travaille avec Microsoft depuis plus de 10 ans:ans:

Optimisation du noyau pour les architectures Optimisation du noyau pour les architectures ItaniumItaniumOptimisation de la génération du code pour Optimisation de la génération du code pour les compilateurs Itaniumles compilateurs ItaniumEtude des futures architecturesEtude des futures architecturesAccès aux codes sources de WindowsAccès aux codes sources de Windows

WIE - équipe responsable de la WIE - équipe responsable de la Performance et Benchmark sur le campus Performance et Benchmark sur le campus MicrosoftMicrosoft

En charge de la publication des benchmarks En charge de la publication des benchmarks Windows / SQLWindows / SQLParticipation au travail d’amélioration des Participation au travail d’amélioration des capacités de “Scale-Up” de Windowscapacités de “Scale-Up” de WindowsAccès aux codes source de Microsoft SQL en Accès aux codes source de Microsoft SQL en vue d’améliorer la scalabilité de SQL sur les vue d’améliorer la scalabilité de SQL sur les serveurs hauts de gammeserveurs hauts de gamme

Page 4: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance
Page 5: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Pour les configurations “High-End” le Pour les configurations “High-End” le serveur et le stockage ne peuvent plus serveur et le stockage ne peuvent plus être considérés comme des boites être considérés comme des boites noiresnoires

Serveurs:Serveurs:Symmetric Multi ProcessingSymmetric Multi Processing

Non Uniform Memory AccessNon Uniform Memory Access

Architecture (Bus I/O, FSB, …)Architecture (Bus I/O, FSB, …)

Stockage:Stockage:ContrôleursContrôleurs

CacheCache

Nombre de disquesNombre de disques

VirtualisationVirtualisation

Page 6: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Symmetric Multi ProcessorSymmetric Multi Processor

Non Uniform Memory AccessNon Uniform Memory AccessMemoire interleaveMemoire interleave

Memoire localeMemoire locale

CPUCPU

CPU

CPU

MemoryMemo

ryMemory

Controller

CPUCPU

CPU

CPU

Memory

CPUCPU

CPU

CPU

CPUCPU

CPU

CPU

Memory

Memory

Memory

Memory

Memory

CPU

Memory

CPU

Memory

Memory

CPU

NODE

CELL

CROSS BAR

HYPER TRANSPORT

CPU/MEM

CPU

Memory

Page 7: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Complexe de Superdome

Partition 1

XB

ar

XB

ar

XB

ar

XB

ar

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

Cell (4P/Mem/IO)

CPU

CPU

CPU

CPU

MemoryMemor

yCell / Memory

Controller

Cell

ToXBar

Accès à la mémoire locale: de meilleurs temps de latence quand le processor accède à la mémoire de la cellule.

Accès à la mémoire distante: Les temps de latence sont supérieurs quand un processeur accède à la mémoire disponible dans une cellule différente.

Page 8: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Noeud ou cellule

Stockage

Partition

Chassis I/O

Complexe

CrossBar

Page 9: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

La table ACPI SRAT définit les attributs NUMA La table ACPI SRAT définit les attributs NUMA du serveur.du serveur.

Relation {Processeur:Noeud} membershipRelation {Processeur:Noeud} membershipRelation {Mémoire:Noeud} membershipRelation {Mémoire:Noeud} membershipNote: pas d’affinité pour les E/S {I/O:Node} Note: pas d’affinité pour les E/S {I/O:Node}

NT user mode NUMA APIsNT user mode NUMA APIsGetNumaHighestNodeNumberGetNumaHighestNodeNumberGetNumaProcessorNode pour un processeur GetNumaProcessorNode pour un processeur donnédonnéGetNumaNodeProcessorMask pour un nœud GetNumaNodeProcessorMask pour un nœud donnédonnéGetNumaAvailableMemory pour un nœud donnéGetNumaAvailableMemory pour un nœud donné

Page 10: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Mem Available per Cell

2500

2600

2700

2800

2900

3000

3100

3200

3300

3400

3500

1 2 3 4 5 6

t

MB Cell 0

Cell 1

for (i=0; i<1000000000000;i++){

malloc(10000000);}

Cell 0

Cell 1

GetNumaAvailableMemory

Page 11: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Windows 2003 (32 et 64bit) est Windows 2003 (32 et 64bit) est “NUMA aware”“NUMA aware”

NUMA APINUMA API

SQL Server 2005 and NUMASQL Server 2005 and NUMADétection du mode NUMA dans l’ErrorlogDétection du mode NUMA dans l’ErrorlogUn “buffer cache” par nœud (cellule)Un “buffer cache” par nœud (cellule)Une thread Lazywriter par nœud (cellule)Une thread Lazywriter par nœud (cellule)Affinité Client/nœud : un client peut être associé à un nœud Affinité Client/nœud : un client peut être associé à un nœud (cellule)(cellule)Affinité des threads à un nœudAffinité des threads à un nœud

Répartition de la charge sur les processeurs du nœudRépartition de la charge sur les processeurs du nœud

SuperLatches: validé automatiquement sur les SuperLatches: validé automatiquement sur les serveurs à plus de 32 processeursserveurs à plus de 32 processeurs

SQL recopie une page sur tous les nœuds NUMA (après y SQL recopie une page sur tous les nœuds NUMA (après y avoir accède un certain nombre de fois)avoir accède un certain nombre de fois)

Cell (4P/Mem/IO)

Superdome ComplexPartition 1

XB

ar

Partition

Page 12: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Un serveur d’application peut être associé à un groupe Un serveur d’application peut être associé à un groupe de processeurs en fonction du port TCP/IP utilisé.de processeurs en fonction du port TCP/IP utilisé.

Serveurs d’applicationServeurs d’application

Serveur de base de donnéesServeur de base de données

IP 1/port IP 2/port IP 3/port

NoeudNoeud

Stockage

PartitionPartition

SQLSQL

Page 13: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

ERRORLOGERRORLOG2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2002]2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2002]2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2001]2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2001]2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2000]2005-08-16 12:10:02.86 Server Server is listening on [ 'any' <ipv4> 2000]

Port

Masque

Page 14: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

PartitionPartition

Cellule

Moteur SQL Server 2005

SQL Listeners

Noeud logique

Checkpoint

Reporting

Page 15: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration]NodeConfiguration]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\NodeConfiguration\Node0]NodeConfiguration\Node0]

"CpuMask"=hex:03"CpuMask"=hex:03[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\

NodeConfiguration\Node1]NodeConfiguration\Node1]"CpuMask"=hex:0c"CpuMask"=hex:0c[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\

NodeConfiguration\Node2]NodeConfiguration\Node2]"CpuMask"=hex:30"CpuMask"=hex:30

Page 16: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Pour chaque “Soft node”, SQL crée un Pour chaque “Soft node”, SQL crée un ”I/O completion port” pour gérer les E/S ”I/O completion port” pour gérer les E/S réseauxréseaux

Disponible également sur serveur SMPDisponible également sur serveur SMP

Les “Soft Nodes” sont définies au Les “Soft Nodes” sont définies au niveau du serveur (pas de l’instance)niveau du serveur (pas de l’instance)

Un “Soft Node” ne peut pas être défini Un “Soft Node” ne peut pas être défini sur plusieurs “Hard Nodes”sur plusieurs “Hard Nodes”

Un « Soft Node » considère locale la Un « Soft Node » considère locale la mémoire disponible dans le « Hard mémoire disponible dans le « Hard Node »Node »

Page 17: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Affinité de processeur (CPU Affinity)Affinité de processeur (CPU Affinity)Moyen de contrôler le nombre de processeurs Moyen de contrôler le nombre de processeurs (thread) assigné à SQL Server(thread) assigné à SQL Server

SQL Server 2005 supporte l’ajout et la suppression SQL Server 2005 supporte l’ajout et la suppression de processeur en lignede processeur en ligne

Utiliser des processeurs Utiliser des processeurs Appartenant au même nœud pour éviter l’accès à Appartenant au même nœud pour éviter l’accès à la mémoire distantela mémoire distante

Appartenant au même « chip » (processeur à Appartenant au même « chip » (processeur à plusieurs cœurs)plusieurs cœurs)

Limiter la mémoire (max memory) à la Limiter la mémoire (max memory) à la mémoire disponible dans les nœuds choisismémoire disponible dans les nœuds choisis

Attention Attention àà l’ l’éénumeration des threadsnumeration des threads

Page 18: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

SQL Server Buffer Node counters SQL Server Buffer Node counters Database pages Database pages Number of pages in Number of pages in

the buffer pool on this node with the buffer pool on this node with database content.database content.

Foreign pages Foreign pages Number of pages that Number of pages that come from a different NUMA node.come from a different NUMA node.

Free pages Free pages Total number of free Total number of free pages on this node.pages on this node.

Page life expectancy Page life expectancy Number of Number of seconds a page will stay in the buffer seconds a page will stay in the buffer pool on this node without references.pool on this node without references.

Stolen pages Stolen pages Number of pages used Number of pages used for miscellaneous server purposes for miscellaneous server purposes (stolen from the buffer pool) on this (stolen from the buffer pool) on this node.node.

Target pages Target pages Ideal number of pages Ideal number of pages in the buffer pool on this node.in the buffer pool on this node.

Total pages Total pages Total number of Total number of committed pages in the buffer pool on committed pages in the buffer pool on this node.this node.

Seulement disponible avec le

HardNUMA

Page 19: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

70000

71000

72000

73000

74000

75000

76000

77000

78000

79000

80000

Run 1 Run 2 Run 3 Run 4 Run 5

ms

Node 0

Node 1

Node 2

Node 3

Environnement de testEnvironnement de testConfiguration du serveurConfiguration du serveur

4 Cellules (Nœuds) – 32 cœur – HT on (64 threads)4 Cellules (Nœuds) – 32 cœur – HT on (64 threads)

128 Gb (32 Gb par nœud)128 Gb (32 Gb par nœud)

Base de données de testsBase de données de tests

Le chargement de la table est forcé dans la Le chargement de la table est forcé dans la mémoire de la cellule 0.mémoire de la cellule 0.

Requête: « select (count(*)) from table » Requête: « select (count(*)) from table » 

Page 20: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Manufacturing Instance

Marketing Instance

Payroll Instance

•Manufacturing DB•Marketing DB•Payroll DB

Windows 2003 Server (64P)

EnterpriseStorage &Backup

Scenario 3:Consolidation de serveursPlusieurs instances de l’OS, plusieurs instances de SQL - Même modèle que le scenario 1 avec option de repartionnement des ressources.

Scenario 2:Consolidation d’instance SQLUne instance de l’OS, plusieurs instances de SQL- Plus de souplesse et de contrôle des ressources CPUs et mémoires. Operations de maintenance effectuées par instance

Scenario 1:Consolidation de bases de donneesUne instance de l’OS, une instance de SQL, plusieurs bases de donnees- Utilisation maximale des ressources

SQL 2005 ServerWindows 2003 Server (64P)

Payroll Server

MarketingServer

Manufacturing Server

Windows 2003 Server (24P)

Windows (8P)

Windows 2003 Server (32P)

IsolationUtilisation

Page 21: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Ajout de mémoire à chaudAjout de mémoire à chaud

La modification des paramètres mémoire La modification des paramètres mémoire ne nécessite plus un redémarrage de ne nécessite plus un redémarrage de l’instancel’instance

Ajout et suppression de processeurs Ajout et suppression de processeurs (CPU Affinity) à la volée(CPU Affinity) à la volée

Support du Multi-instances: jusqu’a 50 Support du Multi-instances: jusqu’a 50 (24 avec MSCS)(24 avec MSCS)

Windows System Resource Manager Windows System Resource Manager (Microsoft)(Microsoft)

Pay Per Use (HP Integrity)Pay Per Use (HP Integrity)

Page 22: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Limiter le nombre d’instancesLimiter le nombre d’instances

Une instance par profil de chargeUne instance par profil de chargeOLTP – OLAPOLTP – OLAP

« Max degree of parallelism »« Max degree of parallelism »

Windows System Resource ManagerWindows System Resource Manager

Affinité de CPU (Attention aux licences)Affinité de CPU (Attention aux licences)

« Lock pages in memory » pour éviter le page « Lock pages in memory » pour éviter le page outout

Configurer “Max Memory” pour laisser Configurer “Max Memory” pour laisser suffisamment de mémoire pour Windows (1 suffisamment de mémoire pour Windows (1 to 4 GB)to 4 GB)

Page 23: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Un composant essentielUn composant essentiel

Une histoire de compromis :Une histoire de compromis :Performance, Redondance et CoutPerformance, Redondance et Cout

PerformancePerformance

Haute Haute disponibilitédisponibilité CoutCout

Page 24: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Profile des I/OsProfile des I/OsAléatoire ou séquentielAléatoire ou séquentiel

Taux d’accès simultanés Taux d’accès simultanés Surtout pour le transactionnelSurtout pour le transactionnel

DébitDébitTransaction LogTransaction Log

Backup & RestoreBackup & Restore

Microsoft SQL Server™ database – Accès Microsoft SQL Server™ database – Accès aléatoire en lecture écriture 8KBaléatoire en lecture écriture 8KB

Aléatoire pour les data files (8KB par I/O)Aléatoire pour les data files (8KB par I/O)

Séquentiel pour les Transaction Logs (taille des Séquentiel pour les Transaction Logs (taille des I/Os variable)I/Os variable)

Page 25: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Un charge I/O se caractérise:Un charge I/O se caractérise:Ratio Lecture/EcritureRatio Lecture/Ecriture

Ratio Accès séquentiel/Accès aléatoireRatio Accès séquentiel/Accès aléatoire

La taille des block transférésLa taille des block transférés

Il y a quelques grandes familles de Il y a quelques grandes familles de profils de chargeprofils de charge

On connait les capacités de notre On connait les capacités de notre stockage (ou on les mesure!!!)stockage (ou on les mesure!!!)

Page 26: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Dimensionner avec une approche Dimensionner avec une approche performance et non capacitéperformance et non capacitéDB I/O pattern, Log replay, TempDB, Snapshot, DB I/O pattern, Log replay, TempDB, Snapshot,

BackupBackup

Isoler les « Database files » et les Isoler les « Database files » et les « Transaction Log »« Transaction Log »

Eviter les profiles d’ accès aléatoires et Eviter les profiles d’ accès aléatoires et séquentiels sur le même group d’axesséquentiels sur le même group d’axes

Utiliser plusieurs « SQL data files » et striper Utiliser plusieurs « SQL data files » et striper avec les « file groups »avec les « file groups »

Paramétrage des drivers HBA (la valeur par Paramétrage des drivers HBA (la valeur par default du « Queue Length » est trop basse)default du « Queue Length » est trop basse)

Attention si l’unité de stockage est partagéAttention si l’unité de stockage est partagé

Eviter le RAID 5Eviter le RAID 5

Page 27: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

TotalIOPS = 1/[1 –( TotalIOPS = 1/[1 –( RaidPenatly-1/RaidPenalty*PercentRead) RaidPenatly-1/RaidPenalty*PercentRead) ] * ] * (NumberOfDisks / RAIDPenalty) * (NumberOfDisks / RAIDPenalty) * DriveMaxIOPSDriveMaxIOPS

Exemple: “Disk Group” de 116 disques 15K Exemple: “Disk Group” de 116 disques 15K (VRAID-1) 50-50 Read/Write:(VRAID-1) 50-50 Read/Write:

Total IOPS = 1/[1 – ¼ ] * (116 / 2) * 170 IOPsTotal IOPS = 1/[1 – ¼ ] * (116 / 2) * 170 IOPs

Total IOPS =13,147 pour le « disk group « Total IOPS =13,147 pour le « disk group « Ou une moyenne de Ou une moyenne de 113113 IOPS par disque. IOPS par disque.

Attention 170 <> 113 ;-)Attention 170 <> 113 ;-)

RAID 1: RaidPenalty=2RAID 1: RaidPenalty=2

Page 28: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Disk Group

Enterprise Virtual Array

vdisk2

Vdisk 1 (Vraid 1)

Vdisk 2 (Vraid 5)

vdisk1

SANSAN

• Les disques physiques sont organisés dans des pools “Disk Groups”

• Les “Virtual Disks” sont caractérisés par:

• Un « Disk Group »

• Une taille (GB)

• Un niveau de RAID

• Un “Virtual Disk” (Vdisk) est présenté à un serveur en tant que LUN

Page 29: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

30

Symptômes possible:

• Le nombre insuffisant d’axes limite le nombre d’I/O• Plus d’espace disponible

VRAID 0 ++

Solution:… ajouter des disquesVRAID 0VRAID 0

VRAID 1VRAID 1

VRAID 5VRAID 5

VRAID 0VRAID 0

VRAID 1VRAID 1

VRAID 5VRAID 5

Free space ( virtual space = 4 Disk)Free space ( virtual space = 4 Disk)

Page 30: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

Utiliser des configurations simplesUtiliser des configurations simples

Avoir une bonne connaissance de la Avoir une bonne connaissance de la chargecharge

SizingSizingUtiliser les outils fournis par les vendeursUtiliser les outils fournis par les vendeurs

Qualifier, tester et validerQualifier, tester et validerSQLIOSQLIO

SQLIOSimSQLIOSim

Page 31: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

La couche de gestion du stockage a connaissance La couche de gestion du stockage a connaissance de l’architecture NUMAde l’architecture NUMA

Affinité d’interruption.Affinité d’interruption. Les pilotes des HBA Les pilotes des HBA pourront spécifier les CPUs à utiliser pour la gestion pourront spécifier les CPUs à utiliser pour la gestion des interruptions.. des interruptions..

Amélioration des APIs NUMA notamment pour Amélioration des APIs NUMA notamment pour l’allocation de mémoire dans un nœud spécifié -l’allocation de mémoire dans un nœud spécifié -VirtualAllocExNuma -VirtualAllocExNuma -

I/O chassis

Node

Node

Page 32: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

SQL Server 2005 est prêt pour les SQL Server 2005 est prêt pour les solutions d’entreprisesolutions d’entreprise

SQL Server 2005 est le moteur de base SQL Server 2005 est le moteur de base de données le plus performant sur de données le plus performant sur serveurs HP (TPC-C)serveurs HP (TPC-C)

HP est très impliqué dans le tuning et HP est très impliqué dans le tuning et l’optimisation de SQL Server 2005 sur l’optimisation de SQL Server 2005 sur les serveurs “high end”les serveurs “high end”

Avoir une bonne connaissance du Avoir une bonne connaissance du hardware est recommandée pour le hardware est recommandée pour le tuning avancétuning avancé

Page 33: Introduction Architectures des serveurs Windows et NUMA SQL Server 2005 et NUMA Consolidation et performance Stockage et performance

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.