Copier un VHD depuis votre poste vers Azure (et inversement)

azure-banniere

Etant actuellement en mission sur Azure, vous devriez voir arriver plusieurs articles sur le cloud de Microsoft dans les prochaines semaines ! 🙂 – Dans tous ces articles je vais supposer que vous disposez dĂ©jĂ  d’un minimum de connaissances et que vous avez dĂ©jĂ  manipulĂ© le portail Azure (voir mĂŞme vous savez vous y connecter en PowerShell).

Aujourd’hui, je vous propose de voir ensemble comment se connecter en PowerShell Ă  Azure puis copier le VHD d’un de vos machines virtuelles en vue de rĂ©aliser un backup ou simplement de le copier pour mieux le rĂ©-utiliser et/ou dupliquer ainsi votre machine virtuelle. Nous verrons les 2 cas : copier le VHD de Azure vers votre poste local et inversement.

Etape 1 – Se connecter en PowerShell Ă  votre compte Azure

Login-AzureRmAccount

Cette première commande va démarrer une fenêtre dans laquelle vous pourrez vous identifier et ainsi accéder en PowerShell à vos différentes ressources Azure.

1

Pour un compte donné, vous pouvez disposer de plusieurs subscribtions Azure. Pour les voir, utilisez la commande suivante :

Get-AzureRmSubscription

Pour chaque subscribtion possĂ©dĂ©e, vous aurez alors le SubscribtionID, la SubscribtionName, State, TenantId et Ă©ventuellement d’autres informations.

Vous devez maintenant choisir la subscribtion sur laquelle vous souhaitez travailler. Pour ce faire, utilisez la CmdLet suivante :

Select-AzureRmSubscription -SubscriptionId "xxx-xxx-xxx"

Remplacez bien sĂ»r avec les donnĂ©es vous concernant. Dans mon cas, je vais me connecter Ă  la subscribtion qui dĂ©pend de mon compte MSDN. Elle est facile Ă  reconnaĂ®tre puisqu’elle porte un nom du style : Visual Studio Premium avec MSDN.

Etape 2 – Copier un VHD depuis Azure votre votre poste

Dans un premier temps, nous devons identifier le VHD de la machine virtuelle que vous souhaitez archiver. Pour ce faire, depuis le portail Azure, sélectionnez votre ResourceGroup puis la machine virtuelle concernée. Cliquez dans la sous-sections Disks et vous devriez voir le disque dur système associé à votre machine virtuelle.

2

Et si vous allez encore un peu sur la droite, vous verrez alors le chemin exact de stockage du VHD correspondant Ă  votre machine virtuelle. Copiez-collez ce lien, nous en aurons besoin pour plus tard.

3

Nous aurions bien sĂ»r pu rĂ©cupĂ©rer l’information de ce lien avec avec la CmdLet Get-AzureRMVM et quelques paramètres bien choisis ! 🙂

Il vous suffit alors d’utiliser la commande suivante (en ayant garder le mĂŞme prompt PowerShell dans lequel vous vous ĂŞtes identifiĂ©s et avez sĂ©lectionnĂ© la subscribtion souhaitĂ©e…) :

Save-AzureRmVhd -ResourceGroupName "resourcegroupname" -Source "https://xxxxx.blob.core.windows.net/vhds/maVMxxxx.vhd" -LocalFilePath "C:\temp\maVM_backup.vhd"

Ceci aura pour effet de rĂ©aliser une sauvegarde de votre VHD vers un chemin local de votre poste de travail (libre Ă  vous d’adapter vers un disque dur externe ou tout autre chemin de stockage bien entendu). Attention, vous devez disposer de suffisamment de place pour stocker l’ensemble du VHD sur votre poste sinon vous aurez un message d’erreur.

Après quelques instants et selon le type de connexion Internet dont vous disposez, vous retrouvez le VHD dans vos dossier (à titre indicatif en fibre optique, cela me prend entre 10 et 20 minutes pour 100 à 150 Go).

4

Vous pouvez maintenant ouvrir votre VHD depuis Windows Explorer ou l’ouvrir dans Hyper-V pour y effectuer toutes les modifications dont vous pourriez avoir besoin.

Etape 3 – Copier un VHD local vers Azure

Dans cette troisième Ă©tape, nous allons cette fois-ci effectuer l’opĂ©ration inverse. Nous avons prĂ©paré un VHD sur notre poste que nous souhaitons maintenant le transfĂ©rer sur Azure. L’objectif est donc de la transfĂ©rer depuis votre poste vers votre container sur Azure.

Pour ce faire, toujours dans votre ResourceGroup, vous devez repĂ©rer votre Storage Account ainsi que le container dans lequel vous souhaitez envoyer votre VHD. Depuis le portail, procĂ©dez comme indiquĂ© sur l’image ci-dessous.

5

Une fois que vous avez localisĂ© votre Storage Account et le container concernĂ©. Cliquez sur ce dernier et choisissez en haut Ă  droite Properties afin d’obtenir le lien vers lequel nous allons stocker notre VHD (dans mon cas c’est le mĂŞme mais je vous montre la dĂ©marche).

6

Il ne nous reste alors plus qu’Ă  utiliser la CmdLet suivante pour envoyer votre VHD local vers Azure dans ce container dont nous avons rĂ©cupĂ©rĂ© l’URL :

Add-AzureRmVhd -ResourceGroupName "resourcegroup" -Destination "https://xxxxxx.blob.core.windows.net/vhds/lenomdemonVHDsurAzure.vhd" -LocalFilePath "C:\temp\monVHDaUploader.vhd"

Comme d’habitude, n’oubliez pas de modifier les paramètres en fonction de votre cas de figure. Et notez Ă©galement, que vous devez donner un nom Ă  votre VHD sur Azure (libre Ă  vous de spĂ©cifier le mĂŞme nom ou non que le fichier en local).

Après quelques instants votre VHD est sur Azure.

L’avantage de cette mĂ©thode est qu’elle vous permet d’Ă©viter d’avoir Ă  utiliser les diffĂ©rentes clĂ©s pour accĂ©der au stockage puisque votre session PowerShell est identifiĂ©e comme gestionnaire de ce Storage Account.

Dans un prochain article, nous verrons comment utiliser un VHD personnalisé pour créer un nouvel objet Virtual Machine dans Azure. 🙂