7 07 2014
Upgrade de SCVMM 2012 SP1 à SCVMM 2012 R2
Petite compilation de mes notes concernant l’upgrade d’un cluster SCVMM 2012 SP1 vers 2012 R2.
Dans cet article je vais résumer rapidement les points importants à suivre lors d’une mise à jour d’un cluster SCVMM 2012 SP1 vers R2, avec l’intégration d’un environnement VMware et la mise à jour du système vers 2012 R2 également.
Prérequis
Suite System Center
Avant de faire la mise à jour de Virtual Machine Manager, assurez-vous que les produits suivants sont bien à jour en version 2012 R2 AVANT de faire l’upgrade:
- Service Management Automation (SMA)
- Orchestrator (SCOrch);
- Service Manager (SCSM);
- Data Protection Manager (SCDPM);
- Operation Manager (SCOM) et la console installée sur le serveur SCVMM.
- Configuration Manager (SCCM).
Pour plus d’informations: http://technet.microsoft.com/en-us/library/dn521010.aspx
Sources
Avant de mettre à jour, je vous invites à récupérer les binaires suivants:
- Windows Server 2012 R2 (selon votre contrat de licence);
- System Center Virtual Machine Manager 2012 R2 (selon votre contrat de licence);
- Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 Update;
- Update Rollup 2 pour System Center 2012 R2 Virtual Machine Manager.
Documentation
Si vous avez la documentation de votre installation SCVMM 2012 SP1 (bien !), relisez-là et vérifiez que vous avez bien en main les éléments suivants (sinon NOTEZ-LES !):
- Nom du cluster SCVMM;
- Adresse IP du cluster SCVMM;
- Quorum du cluster (si fileshare);
- Nom de l’instance de la base de données SQL et Credentials de la base de donnée utilisé par SCVMM (ne doit PAS être votre compte utilisateur !!!);
- Nom de l’utilisateur qui fait tourner le service SCVMM ;
- Informations des différentes instances VMware (noms des vCenter servers, ESXis, Credentials);
Backups
Réalisez un backup de vos serveurs SCVMM avant la mise à jour. Si ce sont des serveurs virtualisés, c’est le moment de faire en plus un checkpoint (VM arrêtée).
Avant de commencer quoi que ce soit, faites un backup de votre base de donnée SCVMM. Dans la console SCVMM, dans l’onglet Settings, cliquez sur Backup dans le bandeau:
Puis entrez le share dans lequel stocker le backup. Cet emplacement ne doit pas être l’un de vos serveurs SCVMM bien entendu ! En ce qui me concerne, le backup faisait environ 800MB.
En cas de soucis pendant l’upgrade, vous pourrez toujours revenir au point de départ avec la procédure suivante en 3 étapes:
- Serveurs VMM arrêtés, ouvrez votre console SQL Server Management Studio et restaurez la base de donnée à partir du backup réalisé à l’instant.
- Faites un Apply (PAS DELETE), de votre checkpoint pour revenir au point de départ.
- Redémarrez vos serveurs VMM.
Procédure:
Je ne détaillerais que les points importants ici:
- Si vous avez des serveurs VMware vCenter Server, dans la console SCVMM, allez dans l’onglet Fabric, puis l’onglet vCenter Server. Sélectionnez chaque serveur vCenter Server et cliquez sur Remove. (http://technet.microsoft.com/en-us/library/dn469610.aspx).
- Fermez toutes vos consoles VMM puis arrêtez le cluster SCVMM depuis la console Failover Cluster Manager.
- Connectez-vous sur le noeud passif du cluster VMM (enfin, ça ne veut pas dire grand chose sur un cluster qui est arrêté…);
- Dans le Control Panel, sélectionnez Microsoft System Center 2012 Virtual Machine Manager et cliquez sur Uninstall.
- Sélectionnez Remove features.
- Sélectionnez VMM Management server Figure 3: Remove features et VMM Console.
- Cliquez sur Yes si l’assistant vous indique que ce serveur fait partis d’un cluster.
- Assurez-vous que Retain database est bien sélectionné et cliquez sur Next puis Uninstall.
- Une fois terminé, désinstallez Assessment and Deployment Kit.
- Recommencez sur les autres noeuds du cluster, toujours avec l’option Retain database cochée.
- Si vous souhaitez mettre à jour le système vers Windows Server 2012 R2 (in-place upgrade, je suis pas fan, mais ça fonctionne), continuez ici, sinon allez à l’étape 21.
- Dans la console Failover Cluster Manager, cliquez dans More Actions puis Destroy Cluster….
- Confirmez que vous souhaitez bien détruire le cluster.
- Arrêtez vos serveurs VMM puis réalisez à nouveau un checkpoint.
- Insérez l’ISO de Windows Serveur 2012 R2 puis suivez le wizard.
- Sélectionnez Upgrade: Install Windows and keep files, settings, and applications.
- Réalisez l’upgrade sur tous les noeuds du cluster VMM.
- Redémarrez les serveurs et installez les dernières mises à jour de Windows Update.
- Checkpoint.
- Depuis la console Failover Cluster Manager, recréez le cluster détruit précédemment.
- Installez Windows ADK 8.1 sur chaque serveur VMM.
- Sélectionnez uniquement Deployment Tools et Windows Preinstallation Environments (Windows PE) et cliquez sur Install.
- Sur le premier nœud du cluster VMM, insérez l’ISO de SCVMM 2012 R2.
- Sur l’écran d’accueil, sélectionnez Install.
- Sélectionnez les fonctionnalités VMM management server et VMM Console.
- L’assistant va vous demander si vous souhaitez l’installer en mode haute disponibilité, cliquez sur Yes.
- Suivez l’assistant jusqu’à l’écran Database Configuration, entrez toutes les informations de connexion à la base de donnée existante de VMM et sélectionnez Existing database.
- Quand vous avez le message The selected database is created by an older version of Virtual Machine Manager. Do you want to upgrade it ? cliquez sur Yes pour mettre à jour la base de données VMM.
- Poursuivez l’installation en renseignant les informations relatives à votre environnement (Cluster configuration, service account, library server, ports…) puis cliquez sur Install.
- A la fin de l’installation, décochez les cases Check for the lastest Virtual Machine Manager updates et Open the VMM console when this wizard closes.
- Installez l’Update Rollup 2 pour le serveur VMM (kb2932926_vmmserver_amd64.msp), et pour sa console (kb2932942_AdminConsole_amd64.msp).
- Réalisez la même installation sur tous les autres noeuds du cluster VMM. N’ouvrez pas la console tant que vous n’avez pas lancé le script sql de l’étape 33 !!!
- Dans la console SQL Management Studio, connectez vous à l’instance de la base de données VMM et lancez le script suivant:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140/* script starts here */ALTER Procedure [dbo].[prc_RBS_UserRoleSharedObjectRelation_Insert](@ID uniqueidentifier,@ObjectID uniqueidentifier,@ObjectType int,@RoleID uniqueidentifier,@UserOrGroup varbinary (85),@ForeignAccount nvarchar (256),@IsADGroup bit,@ExistingID uniqueidentifier = NULL OUTPUT)ASSET NOCOUNT ONSELECT @ExistingID = [ID] FROM [dbo].[tbl_RBS_UserRoleSharedObjectRelation]WHERE [ObjectID] = @ObjectID AND [RoleID] = @RoleIDAND-- Select owner OR Select all which matches ForeignAccount or UserOrGroup OR-- both ForeignAccount and UserOrGroup is NULL(([UserOrGroup] = @UserOrGroup OR [ForeignAccount] = @ForeignAccount) OR([UserOrGroup] IS NULL AND @UserOrGroup IS NULL AND [ForeignAccount] IS NULL AND @ForeignAccount IS NULL))/* Ignore duplicate entries */IF (@ExistingID IS NULL)BEGININSERT [dbo].[tbl_RBS_UserRoleSharedObjectRelation]([ID],[ObjectID],[ObjectType],[RoleID],[UserOrGroup],[ForeignAccount],[IsADGroup],[IsOwner])VALUES(@ID,@ObjectID,@ObjectType,@RoleID,@UserOrGroup,@ForeignAccount,@IsADGroup,0)ENDSET NOCOUNT OFFRETURN @@ERRORGOALTER PROCEDURE [dbo].[prc_WLC_IsVHDSharedByAnotherVmOnHost]@HostId [uniqueidentifier],@VHDId [uniqueidentifier],@VMId [uniqueidentifier]ASBEGINDECLARE @error intSET @error = 0SET NOCOUNT ON;SELECT TOP 1 1 FROM dbo.[fn_WLC_GetParentChildRelationForVHD](@VHDId) vcrJOIN dbo.tbl_WLC_VDrive vd ONvcr.VHDId = vd.VHDIdJOIN dbo.tbl_WLC_VObject vo ONvo.ObjectId = vd.ParentIdJOIN dbo.tbl_WLC_VMInstance vi ONvo.ObjectId = vi.VMInstanceIdWHEREvo.HostId = @HostIdANDvo.ObjectId <> @VMIdANDvi.RootVMInstanceId <> @VMIdSET @error = @@ERRORSET NOCOUNT OFFRETURN @errorENDGOIF EXISTS (SELECT * FROM dbo.sysobjectsWHERE id = OBJECT_ID(N'prc_ADHC_HostDisk_GetByClusterDiskIdAndHostId')AND OBJECTPROPERTY(id, N'IsProcedure') = 1)DROP PROCEDURE dbo.prc_ADHC_HostDisk_GetByClusterDiskIdAndHostIdGOCREATE PROCEDURE dbo.prc_ADHC_HostDisk_GetByClusterDiskIdAndHostId(@ClusterDiskID guid,@HostID guid)ASDECLARE @error intSET @error = 0SET NOCOUNT ONSELECT[DiskID],[Signature],[UniqueID],[HostID],[LibraryServerID],[StArrayID],[LastUpdatedDateTime],[DeviceID],[Index],[Capacity],[IsPassThroughCapable],[IsSanAttached],[ClusterDiskID],[Location],[StorageLUNID],[SMLunId],[SMLunIdFormat],[SMLunIdNamespace],[SANType],[Bus],[Lun],[Target],[Port],[IsVHD],[StClassificationId]FROM dbo.tbl_ADHC_HostDiskWHERE[HostID] = @HostIDAND[ClusterDiskID] = @ClusterDiskIDSELECT @error = @@ERRORSET NOCOUNT OFFRETURN @errorGO/* script ends here */ - Vérifiez que l’Update Rollup 2 est bien installé en vérifiant la version des DLL modifiées par cette mise à jour dans C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\bin. Elles doivent être en version 3.2.7634.0.
- Ouvrez la console et vérifiez sa version.
- Dans l’onglet Fabric, tous les noeuds doivent normalement être dans l’état Needs Attention. Pour mettre à jour l’agent VMM sur tous les serveurs Hyper-V, lancez le script suivant:
1234Ipmo virtualmachinemanager$Hosts = Get-VMMManagedComputer | ?{$_.AgentVersion -ne "3.2.7634.0" -and $_.RoleString -eq "Host"}$runAsAccount = Get-SCRunAsAccount -Name "VMM Runas Account"foreach ($VMHost in $Hosts) { Update-VMMManagedComputer -VMMManagedComputer $VMHost.Name -Credential $runAsAccount -RunAsynchronously} - Dans l’onglet Fabric, cliquez sur Networking puis Logical Network, puis dans le bandeau, sélectionnez Hosts.
- Pour tous les serveurs Hyper-V qui ne sont pas Fully Compliant, faites un clic-droit et sélectionnez Remediate.
- Enfin ajoutez vos serveurs vCenter Server et vos serveurs ESXi.
- Si vous avez installé AppController, mettez à jour immédiatement ce serveur, il doit être systématiquement dans la même version que SCVMM !
- Laissez tourner votre installation une semaine avant de supprimer les checkpoints, si cela ne fait pas partis d’un processus automatisé.
La procédure est un peu longue et doit être suivie scrupuleusement pour éviter tout problème (prévoir 1 journée de travail si vous avez tout documenté correctement).
NetApp: Convertir une Lun en un VHDX Activation automatique des VM sur Hyper-V 2012 R2