VMWARE ESXI 5.5: utiliser un disque dur réel dans une VM avec le RAW DEVICE Mapping (RDM)

Utiliser un serveur sous ESXi pour faire tourner des machines virtuels présente de nombreux avantages. Cependant par défaut, ces dernières utilise des datastore contenant uniquement des disques dur virtuels. Par soucis de simplicité (ex: pouvoir récupérer un disque dur physique et le brancher sur n’importe quel PC), il peut être intéressent de rendre visible un disque réel directement dans une VM.

Ce procédé est tout à fait possible dans ESXI pour cela, il suffit de mapper votre disque physique dans un data store existant et cela se fait en une poignée de commande et quelques minutes Clignement d'œil

Connectez vous en SSH sur ESXI et connectez vous avec le compte root.

Tapez maintenant:
cd /dev/disks

Maintenant faire un ls –l pour afficher la liste des disques.
Repérer l’identifiant (ID RAW) du disque que vous voulez mapper.

Exemple: dans ce cas
-rw——-    1 root     root     3000592982016 Sep 26 01:43 t10.ATA_____WDC_WD30EFRX2D68EUZN0_________________________WD2DWMC4N2838863

ESXI_List_Disk

Tapez maintenant et appuyez sur Entrée
cd /vmfs/volumes

A cet endroit, vous verrez les datastore locaux déjà présent dans ESXi.
Si vous n’avez pas déjà créé  un datastore au paravent, vous ne pourrez pas mapper le RDM en pass-through.
Il est donc indispensable d’utiliser comme hôte un datastore existant.

Notez le datastore que vous voulez mapper. Dans mon exemple, j’utiliserais celui nommé LUN_ESXI_VM

ESXI_Lun_Disk

Tapez maintenant la commande suivante:
vmkfstools -z /vmfs/devices/disks/<nom ID du disque RAW noté dans l’étape1> <nom data store existant>/<nom RDM>.vmdk

Ou  le nom du RDM.vmdk est le nom du fichier qui sera mappé. Mettez le nom de votre choix (ex : DD1_3To.vmdk )

Les guillemets sont nécessaire uniquement si il y a un espace dans le nom de votre vmdk.

Exemple:

vmkfstools -z /vmfs/devices/disks/t10.ATA_____WDC_WD30EFRX2D68EUZN0_________________________WD2DWMC4N2838863 "/vmfs/volumes/LUN_ESXI_VM/DD1_3To.vmdk"

Si cela à bien fonctionné faire un LS vous devriez voir votre disque monté sous la forme d’un fichier .vmdk

ESXI_Lun_Disk_RDM_Mount

Vous avez maintenant la possibilité d’ajouter votre disque mappé RDM dans une machine virtuelle (VM).

Ouvrez votre client vSphere et cliquez sur la VM à laquelle vous voulez ajouter le disque. (télécharger vSphere sur cette page du site de VMWare)
Clique droit > Modifier les paramètres

vSphere_Client_ajouter_disque_dur

Cliquez sur le bouton Ajouter > Disque Dur > Suivant

vSphere_Client_add_disk

Utiliser un disque virtuel existant > suivant

vSphere_Client_ajouter_disque_dur_RDM_RAW

Cliquez sur parcourir > rentrer dans le dossier ou vous avez mappé le VMDK > OK > Suivant

ESXI_Lun_Disk_RDM_Mount_vmdk
Assurez vous d’assigner le disque sur un controller SCSI différent que celui déjà existant.
Mode: Cochez indépendant + persistant si vous ne voulez pas que les snapshots prenne en compte ce disque >

Terminer > OK

vSphere_Client_ajouter_disque_dur_RDM_RAW

Il ne vous reste plus qu’à démarrer votre machine virtuelle et initialiser votre disque depuis l’OS hébergé.

Exemple ici sous Open Media Vault: le nouveau disque dur physique est bien mappé sur la VM au côté des disques virtuel.

ESXI_OpenMediaVault

Il ne reste plus qu’à initialiser le système de fichier pour votre disque (« formater »), par exemple en EXT4 (ce qui le rendra lisible par n’importe quel distrib LINUX)

Sous OMV > Système de fichier > Créer > Périphérique > sélectionner vos disques > donner un libellé > choisir le système de fichiers

ESXI_OpenMediaVault_format_disk
Patienter le temps du formatage et votre disque est prêt à être utilisé!

6 Comments

  1. Bonjour,

    Vos explications sont très intéressantes car je veux faire la même chose (présenter des disques physiques sous ESXI à une VM openMediaVault). Si les 2 disques que je veux présenter à OMV sont en raid 1 (logiciel car récupérés d’un OMV physique), celà fonctionne t il ?

    • Lister tout le hardware :
      Utiliser l’outils lshw, d’abord installer les dépôts avec la commande,
      • apt-get install lshw
      Ensuite lancer la commande,
      • lshw

      Obtenir les infos de tous les storages :
      Après avoir installé lshw lancer la commande suivante ;
      • lshw -class disk -class storage
      *-disk
      description: ATA Disk
      product: ST3000DM001-1CH1
      vendor: Seagate
      physical id: 0.0.0
      bus info: scsi@3:0.0.0
      logical name: /dev/sda
      version: CC27
      serial: Z1F41BLC
      size: 2794GiB (3TB)
      configuration: ansiversion=5 sectorsize=4096

      Pour obtenir les ID des stockages :

      • ls -l /dev/disk/by-id/ ou sur un périphérique précis
      • ls –l /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F41BLC

      lrwxrwxrwx 1 root root 9 Jan 21 10:10 /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F41BLC -> ../../sda

      Assigner un disque physique a une KVM :
      Lancer la commande qm set -sata ? /dev/sd ? ou qm set -sata ? /dev/disk ID
      • qm set 100 -sata0 /dev/sda
      • qm set 100 –sata0 /dev/by-id/ata-WDC_WD800JD-60LSA5_WD-WMAM9LY30214
      • update VM 100: -sata0 /dev/disk/by-id/ata-WDC_WD800JD-60LSA5_WD-WMAM9LY30214
      Le premier est à éviter au cas où le disk name changerais ! Ne pas utiliser le port Sata2 réservé au CD-Rom !

Répondre à Eric78 Annuler la réponse

Votre adresse de messagerie ne sera pas publiée.


*