WeetA

Quand normalement rime avec rarement !

[Mise à jour] Bug Distribution dans le calculateur Exchange 2013 7.5 et 7.6 --> Corrigé dans la version 7.8

15.10.2015

La version 7.8 publiée ce jour inclus le correctif présenté ci-après.

20.06.2015

Microsoft a mis à jour son calculateur pour Exchange 2013 le 19 Juin en version 7.5.

Un bug empéchant d'afficher les résultats lorsque Site Resilience était désactivé et que Active/Active (Single DAG) était sélectionné a été corrigé le lendemain dans la version 7.6.

Par contre, le bug que j'ai rencontré dans l'onglet Distribution de la version 7.5 est toujours présent dans la 7.6.

J'ai trouvé, apporté une correction et envoyé le problème à Microsoft mais je n'ai eu aucun retour à ce jour.

C'est quoi le problème ?

Vous êtes Français ? Vous avez peut-être choisi votre langue maternelle comme langue de formatage des dates, nombres dans les paramètres régionaux. Et ça, c'est un problème. Ca empêche le simulateur de distribution des copies de bases de fonctionner correctement.

Dès que vous passez 1 serveur en Fail, vous vous retrouvez avec des bases HS et ce malgré les 4 copies par défaut.

Pourquoi ?

Parce que... la formule permettant de calculer le serveur hébergeant la copie active ne fonctionne pas avec le format Français (au moins).
Elle utilise la fonction TEXT avec le caractère de formatage d qui signifie "Day without leading zero". Hors, avec le format Français, il faudrait mettre j à la place. Mais si on met j, ça ne fonctionne plus avec un format English (US).

Comment on résout ?

La formule ne gère pas réellement de formatage de date. Il s'agit juste d'une feinte pour convertir un nombre en sa version texte. On peut donc remplacer le caractère de formatage d par celui des nombres #.

Allez dans le code VBA (Menu Developper, Visual Basic)

Ensuite, ouvrez le module1

Puis allez dans la fonction Build_Table

Trouvez le code ci-dessous

    'Cycle through each DB in the design
    'Populate formula to determine which server hosts the active copy of a DB
    'Create one cell formula that looks at DB copies from all sites
    'DAGQuroumStatus
    For x = StartRow To NumDataBases + StartRow - 1
        Formula1 = "=IF(OR(DAGQuroumStatus=""" & DAGStringFail & """,ISNA(MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0))),""FAILED"", IF(OR(IsSecSiteActive(),AND(IF(ISNA(MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)),MATCH(1," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0),MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0))<=calcNumAMBXServersDC1,MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)<=calcNumAMBXServersDC1),AND(IF(ISNA(MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)),MATCH(1," & DiagramStart(1) & x & ":"
        Formula2 = DiagramEnd(NumSites) & x & ",0),MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0))>17,MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)>17)),GetServer(MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)),""FAILED""))"

Remplacez toutes les occurences de

TEXT(VALUE(1),""d"")

par

TEXT(VALUE(1),""#"")

Enregistrez le tout et rafraîchissez l'onglet Distribution

Voila le résultat

Configurer le réseau sur CentOS 7

Lister les interfaces réseaux

[root ~]# nmcli d
DEVICE  TYPE      STATE      CONNECTION
ens160  ethernet  connected  ens160
ens192  ethernet  connected  ens192

Lancer l'interface utilisateur mode texte de Network Manager

[root ~]# nmtui

Sélectionner Edit a connection

Sélectionner l'interface réseau à configurer puis choisir Edit...

Editer la configuration et valider

Si vous souhaitez modifier la configuration des interfaces réseaux manuellement, il suffit d'éditer les fichiers ifcfg-<interfacename> situés dans le répertoire suivant :

/etc/sysconfig/network-scripts/

Dans les deux cas, il faut redémarrer le réseau

[root ~]# systemctl restart network

Réserver un port TCP et/ou UDP sur Windows 2008+

Avant Windows 2008, il fallait utiliser la clé de registre suivante pour réserver un port (KB 812873)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ReservedPorts

Windows 2012+ permet de réserver des ports TCP et/ou UDP à l'aide de la commande netsh:

netsh int <ipv4|ipv6> Add excludedportrange [protocol=]tcp|udp [startport=]<integer> [numberofports=]<integer> [[store=]active|persistent]

Windows 2008 et Windows 2008 R2 ne gère pas cette commande en natif. Il faut installer le hotfix fourni dans la KB 2665809

Rappel : Paramètres de wuauclt.exe

Ci-après les paramètres de wuauclt.exe

/DetectNow
/ReportNow
/RunHandlerComServer
/RunStoreAsComServer
/ShowSettingsDialog
/ResetAuthorization
/ResetEulas
/ShowWU
/ShowWindowsUpdate
/SelfUpdateManaged
/SelfUpdateUnmanaged
/UpdateNow
/ShowWUAutoScan
/ShowFeaturedUpdates
/ShowOptions
/ShowFeaturedOptInDialog
/DemoUI

Remove-WindowsFeature : Cannot remove Failover Clustering. This server is an active node in a failover cluster

Symptômes

Le rôle Failover Clustering ne peut être supprimé bien que vous ne l'ayez jamais configuré et que le service ClusSvc n'est pas démarré.

PS C:\> Remove-WindowsFeature Failover-Clustering
Remove-WindowsFeature : Cannot remove Failover Clustering This server is an active node in a failover cluster. Uninstalling the Failover Clustering feature on this node may impact the availability of clustered services and applications. It is recommended that you first evict the server from cluster membership.  This can be done through the Failover Cluster Management snap-in by expanding the console tree under Nodes, selecting the node, clicking More Actions, and then clicking Evict.
At line:1 char:22
+ Remove-WindowsFeature <<<<  Failover-Clustering
    + CategoryInfo          : InvalidOperation: (:) [Remove-WindowsFeature], Exception
    + FullyQualifiedErrorId : ConfirmActionOrVetoFailed,Microsoft.Windows.ServerManager.Commands.RemoveWindowsFeatureCommand
Remove-WindowsFeature : Remove was cancelled.
At line:1 char:22
+ Remove-WindowsFeature <<<<  Failover-Clustering
    + CategoryInfo          : OperationStopped: (:) [Remove-WindowsFeature], Exception
    + FullyQualifiedErrorId : AbortRemove,Microsoft.Windows.ServerManager.Commands.RemoveWindowsFeatureCommand

Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
False   No             Failed    {}

Résolution

Il faut forcer la suppression de la configuration du noeud du cluster

PS C:\> Import-Module FailoverClusters
PS C:\> Get-Cluster
Get-Cluster : The cluster service is not running.  Make sure that the service is running on all nodes in the cluster.
    There are no more endpoints available from the endpoint mapper
At line:1 char:12
+ Get-Cluster <<<<
    + CategoryInfo          : NotSpecified: (:) [Get-Cluster], ClusterCmdletException
    + FullyQualifiedErrorId : Get-Cluster,Microsoft.FailoverClusters.PowerShell.GetClusterCommand
PS C:\> Clear-ClusterNode

Clear-ClusterNode
Are you sure you want to forcefully clean up cluster node LABSERVER?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
PS C:\> Remove-WindowsFeature Failover-Clustering
WARNING: [Removal] Succeeded: [Failover Clustering] Failover Clustering. You must restart this server to finish the removal process.

Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True    Yes            Succes... {Failover Clustering}