Exchange Queue & AJournaux des transactions, Cmdlets, gestion à distance et plus encore

KC Lemson and Nino Bilic

Q Pourquoi avez-vous réduit la taille du journal des transactions à 1 Mo dans Microsoft® Exchange Server 2007 ?

R Hé bien, dans Exchange 2007 nous avions ce truc sympa appelé envoi de journaux, qui correspond à la technologie inhérente à quelques nouvelles fonctionnalités appelées réplication continue locale (Local Continuous Replication, LCR) et réplication continue en cluster (Clustered Continuous Replication, CCR). Une fois l’envoi activé au niveau groupe de stockage (SG), les journaux des transactions du SG sont copiés à partir du SG de production en cours au SG de copie. Les journaux du SG de copie sont rejoués dans la base de données pour qu’elle soit à jour. Certes, cette explication du processus est simplifiée, mais elle donne une vision d’ensemble.

Le fait est que les journaux des transactions ne peuvent pas être envoyés au SG de copie sauf si le journal est fermé sur le SG de production. En d’autres termes, le journal e00 ( le journal actuel dans le premier groupe de stockage) ne peut pas être envoyé tant qu’il n’est pas complet, fermé et renommé. En outre, il existe des paramètres de contrôle du nombre de journaux en retard dans ce processus, car un compromis doit exister entre disponibilité et performance. (Ces paramètres sont disponibles en exécutant la cmdlet Set-MailboxServer dans Exchange Management Shell. Le fichier d’aide fournit des détails sur les paramètres exacts nécessaires.)

En résumé, nous avons diminué la taille de journal des transactions pour réduire la quantité de données pouvant être désynchronisées entre deux copies du groupe de stockage. Par exemple, lors d’incidents de disque dur de la base de données de production, vous aurez besoin de prendre des mesures pour démarrer le SG de la copie. En diminuant la taille des journaux des transactions, les chances de perdre des donnés sont réduites.

Cela ne veut pas dire que nous pouvons garantir que vous ne perdrez qu’1 Mo de données. En considérant ces fichiers comme des journaux de transactions, il est possible que la perte d’un fichier journal d’1 Mo puisse contenir, par exemple, une transaction VALIDER de 5 Mo de données. Dans ce cas, ces 5 Mo de données manqueraient sur la copie (bien que vous puissiez avoir reçu cinq des journaux contenant les données elles-mêmes, le dernier journal contenant une petite partie des données et la transaction VALIDER nécessaire est essentiel).

En fin de compte, c’est à vous d’évaluer le risque au vu des besoins de votre entreprise. Une perte de données mineure avec un temps de récupération de seulement quelques minutes pourraient être parfaitement acceptable comparé à un travail de restauration des données pouvant nécessiter plusieurs heures. Nous approfondirons plus en détail ce sujet à l’avenir !

Q Les journaux de transactions étant plus courts maintenant, va-t-on « manquer » de journaux de transactions plus rapidement ?

R Dans le contexte d’Exchange, « manquer » fait référence aux noms de journaux de transactions. Dans Exchange Server 2003, les journaux des transactions sont nommés comme suit :

E nn fffff.log

Le nn est le préfixe qui change de SG à SG. Puisque nn reste identique pendant la durée de vie du SG, le nombre de journaux de transactions nommés de manière unique pouvant être créés pour le groupe de stockage est représenté essentiellement par la valeur « fffff », qui correspond à peu près à un million de journaux (note personnelle : mettre le petit doigt sur le coin de la bouche et ricaner). Certains de nos clients ont atteint cette limite sur des serveurs de messagerie occupés.

Depuis Exchange Server 2000, nous avons fourni un correctif pour afficher un événement dans le journal des applications à l’approche de cette limite. (Pour obtenir plus d’informations sur ce sujet, voir support.microsoft.com/kb/896001).

Ceci étant dit, qu’en est-il d’Exchange 2007 ? Nous venons de dire que les journaux des transactions sont passés de 5 Mo (taille dans les versions précédentes d’Exchange) à 1 Mo (taille dans Exchange 2007). Cela signifie-t-il qu’il faille juste un cinquième des données pour épuiser les noms de journaux des transactions uniques ?

La réponse est : non. Dans Exchange 2007, le nom du journal des transactions est sous le format suivant :

E nn ffffffff.log

Notez que nous pouvons travailler avec des journaux « ffffffff », plutôt que « fffff » comme dans les versions précédentes d’Exchange. Pour des raisons de calcul du moteur de stockage extensible (Extensible Storage Engine, ESE), Exchange 2007 ne peut pas créer tous les journaux « ffffffff ». Au lieu de cela, il crée des journaux « 7fffffec » ce qui représente encore un grand nombre (convertissez ceci de sextuple en décimal si vous ne nous croyez pas) !

Qu’est ce que tout cela signifie en pratique ? En pratique, cela signifie qu’avec Exchange 2007 vous pouvez créer environ 2048 fois plus de journaux que dans les versions précédentes d’Exchange. Factorisons maintenant les journaux d’un cinquième de taille :

2048 / 5 = 409.6

Comme vous pouvez le voir, le nouveau schéma d’appellation de journal peut gérer 409 fois plus de données que l’ancien ! Souvenez-vous, par SG et non par serveur, parce que chaque groupe de stockage aura un préfixe de fichier journal différent (tel que e00, e01 et ainsi de suite). Reste à mentionner que vous pouvez créer 50 SG par serveur sur la version Entreprise d’Exchange 2007 ? Nous estimons qu’il y a peu de chance que quelqu’un puisse manquer de journaux des transactions dans un avenir proche !

Q Comment puis-je gérer à distance mes serveurs Exchange 2007 ?

R Il existe quelques options pour gérer à distance les serveurs Exchange 2007. Premièrement, vous pouvez installer les outils d’administration Exchange 2007 sur une autre machine d’Exchange server, aussi longtemps que cette machine exécute la version 32 bits ou 64 bits de Windows Server® 2003 Service Pack 1 (SP1) ou plus récente, Windows Server 2003 R2, ou Windows XP SP2 ou plus récente. Notez que l’installation de rôles de serveur (accès client, boîte aux lettres, Edge etc.) sur un matériel 32 bits n’est pas prise en charge dans des environnements de production, mais seulement pour l’installation d’outils de gestion sur une machine 32 bits. Notez également que depuis la version initiale d’Exchange Server 2007, les outils de gestion ne sont pas pris en charge sur Windows Vista™.

Dans certaines organisations, le département informatique crée un seul serveur censé être le serveur de gestion, en installant tous les outils de gestion nécessaires aux divers produits sur ce serveur. Ensuite les administrateurs ayant besoin d’utiliser ces outils accèdent au serveur de gestion via le serveur Terminal Server afin de pouvoir exécuter l’administration à distance. Suivant d’autres paramètres, les utilisateurs installent les outils de gestion sur leurs propres poste de travail.

À partir de la console ou de l’interpréteur de commandes, vous pouvez effectuer des opérations sur les serveurs de votre organisation. Les serveurs sont visibles sur la console de sorte que vous pouvez exécuter des opérations à distance sur n’importe lequel. Sur l’interpréteur de commandes, plusieurs tâches prennent en charge un serveur de type indicateur de filtrage au cas où vous vouliez étendre une opération à un seul serveur. Il existe toutefois quelques exceptions, pour les commandes devant être exécutées localement, telles que la commande Get-NetworkConnectionInfo.

Q Dans votre dernière chronique, vous avez donné quelques précisions au sujet de la taille de mémoire vive (RAM) recommandée pour un serveur Exchange 2007. Qu’en est-il de la taille du fichier d’échange ?

R Afin d’empêcher des erreurs potentielles d’insuffisance de mémoire virtuelle sur les serveurs Exchange 2007, nous recommandons les indications suivantes pour déterminer la taille de votre fichier d’échange système.

Si le serveur a moins de 8 Go de mémoire vive (RAM), la taille minimale du fichier d’échange doit correspondre à la quantité de RAM plus 10 Mo. Pour un serveur avec 4 Go de mémoire vive (RAM), la taille minimale doit être de 4 Go plus 10 Mo. La taille recommandée du fichier d’échange, cependant, correspond à la quantité de mémoire vive (RAM) multipliée par 1,5. Donc pour un serveur de 4 Go, la taille est égale à 6 Go.

De plus, la taille minimale pour le fichier d’échange est calculée de la même manière pour un serveur ayant plus de 8 Go de mémoire vive (RAM) , c’est-à-dire, la quantité de RAM plus 10 Mo. Cependant, la taille recommandée est définie de manière différente. Fondamentalement, sur un serveur ayant plus de 8 Go de mémoire vive (RAM), vous ne pouvez utiliser qu’une fois et demie la quantité de mémoire vive (RAM) si vous recevez de messages d’erreur d’insuffisance de mémoire virtuelle avec des fichiers d’échange plus petits.

Notez que les erreurs mentionnées dans ce cas n’ont rien à voir avec la fragmentation de la mémoire virtuelle (ce problème existe avec les serveurs Exchange 2000 et Exchange 2003). Il s’agit d’erreurs contextuelles réelles enregistrées par le système indiquant que la taille du fichier d’échange est augmentée ou que le fichier d’échange est trop petit.

Q J’aimerais apprendre à utiliser Exchange Management Shell, mais je n’ai jamais utilisé de ligne de commande pour administrer mes systèmes auparavant. Par où dois-je commencer ?

Abordons en premier quelques principes fondamentaux. Dans Exchange Management Shell, chaque cmdlet comprend un seul verbe et un seul nom. Exchange Management Shell n’utilise qu’un petit nombre de verbes : « Get » est utilisé pour récupérer des propriétés d’objets, « Set » pour modifier les propriétés d’objet, « New » pour créer de nouveaux objets, et ainsi de suite. Les substantifs utilisés dans Exchange Management Shell incluent un grand nombre de concepts connus de tous les administrateurs d’Exchange (par exemple, Mailbox, Contact, Queue et OWAVirtualDirectory). Il existe également des concepts nouveaux dans Exchange Server 2007 (tels que TransportRule, StorageGroupCopy et UMAutoAttendant). Donc, dans la pratique, une cmdlet de base ressemblera à ceci New-Mailbox (pour créer une nouvelle boîte aux lettres) ou bien Get-Mailbox (pour récupérer une liste de boîtes aux lettres de l’organisation).

La plupart des cmdlets, cependant, exigera plus de détails sur ce que vous essayez d’accomplir. Si vous voulez modifier une propriété sur une boîte aux lettres, par exemple, vous devrez spécifier la boîte aux lettres et la propriété. Pour ce faire utilisez des paramètres. Si New-Sandwich était une cmdlet, alors les paramètres pourraient être -NumberOfTomatoSlices 4, -Bread Wheat et divers options similaires qui spécifient plus en détail la forme du sandwich (-FlufferNutter $true-ahhhh yum).

Une fois que vous avez compris la division verbe-nom, vous pouvez utiliser la ligne de commande dans l’assistant Exchange Management Console (EMC) pour vous familiariser avec les opérations que les cmdlets exécutent. Utilisez l’assistant Exchange Management Console (EMC) pour créer un nouvel utilisateur. À la fin de l’assistant, une fois l’opération complétée, vous verrez une copie de la commande que l’assistant a exécuté en coulisses (voir la figure 1). Appuyez sur Ctrl+C pour copier le contenu de la boîte de dialogue pour pouvoir coller la cmdlet dans le bloc-notes et assembler vos propres fichiers batch.

Figure 1 Exposition de la ligne de commande pour créer un nouvel utilisateur

Figure 1** Exposition de la ligne de commande pour créer un nouvel utilisateur **(Cliquer sur l'image pour l'agrandir)

Si vous voulez vous entraîner à utilise des cmdlets (sans causer de dommages), une bonne astuce consiste à placer -WhatIf à la fin de la commande. Le système vous indiquera comment la commande sera exécutée sans faire aucune modification au système.

Une fois familiarisé avec les cmdlets de base telles que *-Mailbox, vous voudrez probablement en essayer d’autres. Pour trouver d’autres cmdlets, utilisez la cmdlet Get-ExCommand. Une liste de toutes les cmdlets de gestion Exchange s’affichera. (Vous devez le faire en exécutant Exchange Management Shell. Une simple ouverture d’Exchange Management Shell ou de Windows PowerShell™ ne vous permettra pas de le faire ni d’effectuer d’autres tâches de gestion d’Exchange). Le liste est énorme, servez-vous donc de la correspondance générique pour trouver ce que vous recherchez. Par exemple, Get-ExCommand *base de données* renvoie une liste de toutes les cmdlets d’Exchange ayant « base de données » dans le nom telles Dismount-Database, Move-DatabasePath et New-MailboxDatabase.

Si vous pensez connaître une partie du nom que vous cherchez, vous pouvez afficher tour à tour les options. Par exemple, vous pouvez taper Get-Mailbox puis appuyer sur la touche de tabulation pour parcourir toutes les cmdlets avec le nom mailbox dans le nom de la tâche. Vous pouvez même combiner correspondance générique et tabulation. Par exemple, vous pouvez taper Get-*Mailbox* et tabuler les options possibles.

Il est également possible d’utiliser une invite Chaque cmdlet est dotée d’une série de paramètres requis par défaut, les paramètres de base nécessaires pour exécuter l’opération. Les cmdlets « Get », telles que Get-Mailbox, ne nécessitent aucun paramètre. Par défaut, Get-Mailbox renvoie une liste de toutes les boîtes aux lettres de l’ensemble de l’organisation. (Par défaut la liste contient une nombre maximal de 1000. Pour modifier ce maximum, vous pouvez taper Get-Mailbox -ResultSize 2000, par exemple.) Des cmdlets qui créent ou modifient des objets (Set ou New) vous inviteront à entrer l’information nécessaire sur l’objet à créer ou à modifier. Si vous exécutez New-Mailbox, par exemple, l’interpréteur de commandes vous invitera tour à tour à entrer le mot de passe, la base de données, le nom et ainsi de suite.

Pour en savoir plus sur les paramètres possibles d’une cmdlet donnée, utilisez le système d’aide : Aide sur Move-DatabasePath. (Vous pouvez également taper Move-DatabasePath, Move-DatabasePath -? et ainsi de suite, nous essaierons de tous les passer en revue). L’aide vous donnera une description de la cmdlet et une liste des paramètres avec l’objet de chacun d’eux. L’aide est accessible également à partir de la cmdlet Get-Help. (Quel plaisir de simplement taper Get-Help ? Ne souhaitez-vous pas que votre entourage puisse simplement exécuter cette cmdlet dans la vie de tous les jours) ?

Une autre façon de découvrir les paramètres possibles sur une cmdlet consiste à utiliser la tabulation sur les noms de paramètre. Tapez Get-Mailbox -S puis appuyer sur la touche de tabulation ; vous parcourrez les paramètres possibles commençant par S.

Bien sûr, il y a aussi le système d’aide complet. Si vous ne trouvez pas ce que vous recherchez hors ligne, n’oubliez pas de consulter régulièrement le contenu d’aide mis à jour à go.microsoft.com/fwlink/?linkid=79421 et le guide de référence rapide à go.microsoft.com/fwlink/?linkid=64647.

Ceci vous permettra de mettre en route Exchange Management Console, bien que ces informations donnent juste un avant-goût de la flexibilité et de la puissance de la ligne de commande. Nous l’examinerons plus en détail dans les prochaines chroniques.

Q Dans Exchange Server 2003 ESM (Exchange System Manager), nous pouvions facilement observer la taille des boîtes aux lettres de tous les utilisateurs. Cette fonctionnalité semble avoir disparu dans Exchange 2007. Est-il possible d’obtenir cette information dans Exchange 2007 ?

R Dans la nouvelle console d’Exchange 2007, vous pouvez obtenir la taille d’une boîte aux lettres sur la page de propriétés générales de la boîte aux lettres elle-même. Pour afficher cette information pour plusieurs utilisateurs, vous devez utiliser Exchange Management Shell.

Si vous exécutez Get-MailboxStatistics, vous obtenez les données sur l’ensemble d’un serveur (pas juste une base de données spécifique). Par défaut, la taille n’est pas affichée, vous devez exécuter la cmdlet avec Format-List pour l’obtenir :

get-mailboxstatistics | format-list

Il est même préférable de choisir ce que vous voulez voir et le transférer dans une table. Dans cet exemple, nous obtenons le nom affiché de la boîte aux lettres, la taille totale de l’élément , la taille totale de l’élément supprimé et la base de données de la boîte aux lettres :

Get-MailboxStatistics | Select-Object 
displayname,totalitemsize,
totaldeleteditemsize,databasename 
| Format-Table

Selon les informations que vous recherchez, vous pouvez afficher les résultats sous différents formats. Dans cet exemple, Format-Table semble fonctionner mieux que Format-List

KC Lemson est responsable en chef de programme de l’équipe Exchange Server. Son numéro d’identification de distributeur automatique est 0000, mais ne dépensez pas tout en un seul endroit

Nino Bilicest responsable technique, il consacre le plus clair de son temps libre à collectionner les chèques de 1 000 $ de Bill en guise de remerciement pour le transfert de son message électronique

© 2008 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.