Monter rapidement un VHD sous Azure Resource Manager (Windows et Linux)

La plateforme Cloud Azure repose sur le système de virtualisation Microsoft Hyper-V. Cela signifie que vous pouvez effectivement migrer vos machines virtuelles existantes qui ont été créées sous l’hyperviseur de Microsoft, par exemple de votre site à demeure vers le Cloud. Vous pourrez ainsi tirer profit des nombreux bénéfices du Cloud, comme la scalabilité de vos instances pour n’en citer qu’un. De plus, la procédure est valable aussi bien pour des machines virtuelles opérant sous Windows que sous Linux.
Dans ce cas de figure, quelle est la façon la plus simple et la plus rapide pour réaliser votre migration et tester votre VHD ?
La question, bien qu’élémentaire, soulève plusieurs points d’attention, en particulier sur le nouveau mode Azure Resource Manager qu’on appelle communément Azure v2. En effet, la logique des Resource Groups implique un certain nombre de composants pour instancier une machine virtuelle :
- un espace de stockage,
- un réseau virtuel,
- un sous-réseau,
- une interface réseau,
- une adresse IP publique.
D’autre part, sur le nouveau portail Azure, vous remarquerez qu’il n’est pas possible de rattacher directement un disque VHD lors de la création d’une machine virtuelle. Faut-il créer un maximum d’éléments via le portail ? Faut-il passer systématiquement sur des commandes PowerShell pour réaliser cette opération ? Je vais présenter dans cet article la méthode la plus facile à aborder, même si vous faites vos premiers pas sur Azure.
La procédure comporte trois étapes-clés :
- Vérifier le disque virtuel (disque OS) que l’on veut migrer de notre Hyper-V à Azure,
- Uploader le disque virtuel sur un espace de stockage Azure,
- Créer la machine virtuelle.
Vérification du disque virtuel
Il y a deux éléments simples mais importants à vérifier en ce qui concerne le disque virtuel à migrer. Le disque virtuel doit être sous le format VHD, le format VHDX n’étant pas encore pris en charge par Microsoft Azure. A partir du gestionnaire Hyper-V, il est possible d’effectuer simplement la conversion de VHDX vers VHD si nécessaire.
Ensuite, il faut vérifier que l’assignation de l’adresse IP est bien dynamique sur la machine virtuelle à migrer, car l’instance va de cette façon récupérer automatiquement une adresse IP de la plateforme Cloud.
Pour les machines sous Linux, quelques informations intéressantes (précisées sur ce lien) :
- Pour le système Linux, il est recommandé d’utiliser des partitions standards plutôt que des partitions de type LVM,
- Il n’est pas nécessaire d’avoir une partition swap sur le disque virtuel car cela sera géré par Azure,
- Vérifier que le service SSH est bien installé et activé, c’est de cette façon que vous vous connecterez à la machine virtuelle, avec un compte existant.
Upload du VHD
Pour préparer votre souscription Azure, connectez-vous sur le portail Azure v2 et créez un Resource Group, qui constitue un regroupement logique de vos composants Azure. Pour la région, vous pouvez sélectionner une zone proche de vos activités, par exemple West Europe. Dans ce Resource Group, créez un espace de stockage, en renseignant également une localisation géographique. Au niveau du type de réplication, vous pouvez partir sur une réplication locale dans un premier temps, le but étant toujours de s’assurer que vous pouvez instancier rapidement une machine virtuelle à partir de votre VHD.
C’est sur cet espace de stockage que vous allez donc charger votre VHD sur le Blob Storage Azure. Pour effectuer l’upload, vous pouvez utiliser Azure Storage Explorer, téléchargeable sur ce lien.
Après installation, vous pouvez entrer vos identifiants de connexion à votre compte Azure. Cet outil présente l’avantage de pouvoir naviguer graphiquement dans vos espaces de stockage. Retrouvez alors l’espace de stockage que vous avez initialisé et créez un container, que vous pouvez par exemple appeler « vhds ».
Dans ce container, charger votre VHD en cliquant sur le bouton « Upload ». Il faut spécifier qu’il s’agit d’un blob de type Page Blob, en effet votre VHD sera soumis à des accès aléatoires de votre VM.
Une fois le chargement terminé, entrez dans les propriétés du blob. Vous pouvez noter l’URI du disque virtuel ainsi uploadé, cela sera utile pour la configuration du déploiement sur Azure.
Déploiement de votre machine virtuelle
Pour effectuer le déploiement de votre machine virtuelle, il existe plusieurs solutions, dont le déploiement par PowerShell, très puissant et qui permet d’apporter énormément de personnalisation. Dans cet article, je vous oriente vers un déploiement à partir d’un template existant. En effet, l’avantage du modèle ARM v2 est de disposer d’un grand nombre de templates partagés par la communauté, et qui apporte une interface adaptée pour effectuer un test rapide. La liste des templates est disponible sur le lien suivant et sur github.
Le template en question est le suivant.
En cliquant sur le bouton Deploy, vous serez redirigé vers le portail Azure, et il y aura juste à remplir les différents paramètres pour personnaliser votre déploiement :
- location : West Europe pour l’Europe de l’Ouest, North Europe pour l’Europe du Nord…
- osDiskVhdUri : l’URI que vous avez noté à l’étape précédente,
- osType : Windows ou Linux en fonction du système d’exploitation de votre machine,
- vmSize : la taille de la machine virtuelle, vous pouvez rester sur la taille par défaut, ou bien choisir Standard_A2 pour des capacités medium par exemple,
- vmName : un nom pour votre machine virtuelle.
Une fois les paramètres renseignés, il n’y a plus qu’à lancer le déploiement ! Après quelques minutes, si votre déploiement est en succès, vous pouvez cliquer sur la machine virtuelle que vous avez créée et vous y connecter en RDP en cliquant sur « Connect », ou en SSH à partir de l’adresse IP disponible dans les propriétés de votre instance.
Quelques remarques pour terminer
L’objectif de cette procédure est de fournir une solution rapide pour tester un déploiement rapidement, ou pour prendre en main la plateforme à ceux qui découvrent Microsoft Azure et qui sont peu familiers avec les différentes briques qui composent ce Cloud. Bien entendu, pour une solution à moyen et long terme, PowerShell est plus que recommandé pour l’industrialisation de cette procédure et pour bénéficier de tous les paramétrages.
D’autre part, nous avons utilisé un template existant par simplicité, mais l’idée est de personnaliser le template selon vos besoins, une fois que vous avez pu vérifier la migration et le bon fonctionnement sur Azure. Vous pourrez ainsi apporter de nombreuses optimisations, dans le nommage des composants ou dans l’ajout de règles comme les Security Groups, pour avoir un meilleur contrôle sur vos instances déployées.