vInfra.ch

Guillaume LACAILLE's Blog

Bug: VMM crash, « Unable to connect to the VMM Database »

Le service VMM crash avec le message « Unable to connect to the VMM database because of a general database failure. ». Un problème relatif à un compte AD.

Symptômes:

Considérez l’environnement suivant:

  • Vous avez un environnement System Center Virtual Machine Manager 2012 SP1, en mode standalone (1 serveur) ou en clusteur.
  • Vous avez plusieurs rôles utilisateurs de configurés, avec des groupes et des utilisateurs en tant que membres;
  • Vos utilisateurs sont connectés en utilisant AppController;
  • Vous renomez le compte utilisateur AD d’un membre du rôle utilisateur VMM.

Dans ce scénario, le service VMM s’arrête de fonctionner avec le message suivant dans les logs de VMM:

Cause:

Le service VMM s’arrête à cause d’une erreur retournée par une procédure stockée dans la base SQL suite à une incohérence entre le nom de l’utilisateur (renommé) utilisé pour lancer la procédure stockée, et le nom résolu à partir de son SID.

Détails:

SCVMM agit en deux étapes lors de l’authentification de l’utilisateur.

1) Lors du login de l’utilisateur dans la console, SCVMM crée un utilisateur SQL en utilisant le SID de l’utilisateur qui s’authentifie et en résolvant son nom à partir de ce SID. Cet utilisateur est utilisé pour accéder aux informations stockés dans la base SQL.

2) Lors du login de l’utilisateur, SCVMM lance une procédure stockée sur le serveur SQL qui rapatrie, pour l’utilisateur qui s’authentifie, la liste des rôles et permissions qui lui sont associées. Cette procédure stockée s’exécute en tant que l’utilisateur qui s’authentifie en faisant un impersonate (emprunt d’identité). Or, l’utilisateur correspondant au nom utilisé par la procédure stockée étant différente du nom créé dans l’étape 1, SQL Server retourne l’erreur

Cette erreur n’étant pas gérée par le service SCVMM, le service s’arrête donc sans pouvoir redémarrer correctement.

Note: Je n’ai pas été en mesure de reproduire l’erreur sur un environnement SCVMM 2012 R2.

Workaround

Le service VMM s’arrête uniquement quand l’utilisateur renommé se connecte. Selon les cas:

  • Vous savez quel utilisateur a été renommé: retirez-lui l’accès et créez un compte différent avec lequel il peut se connecter à VMM.
  • Vous ne savez pas de quel utilisateur il s’agit: fermez le port utilisé par la console VMM pour se connecter au service VMM (tcp 8100 par défaut).

Dans tous les cas, ouvrez un case chez Microsoft qui vous accompagnera dans la résolution de ce problème.

Conclusions

Je recommande systématiquement:

  1. D’éviter d’ajouter directement vos utilisateurs dans les Rôles de VMM. Utilisez plutôt des groupes de sécurité Active Directory dans lequel vous ajoutez vos utilisateurs. De plus vous pouvez réutiliser ce groupe pour installer la console VMM via SCCM par exemple si vous n’utilisez pas AppController.
  2. D’éviter de renommer un compte utilisateur dans Active Directory si celui-ci utilise SCVMM.

, , , ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *