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. 🙂