Il est parfois utile d’accéder à un disque dur de manière physique (mode Raw) plutot que dans un contexte virtualisé. Par exemple pour pouvoir prendre un disque utilisé par des machines virtuelles, et le mettre directement dans un autre serveur qui ne sait pas lire les disques virtuels de VMware…

Lister les disques reconnus par ESXi

Dans un premier temps nous listerons les disques physiques reconnus par notre serveur ESXi


# esxcfg-mpath -l
sata.vmhba32-sata.0:0-t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281
Runtime Name: vmhba32:C0:T0:L0
Device: t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281
Device Display Name: Local ATA Disk (t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281)
Adapter: vmhba32 Channel: 0 Target: 0 LUN: 0
Adapter Identifier: sata.vmhba32
Target Identifier: sata.0:0
Plugin: NMP
State: active
Transport: sata

sata.vmhba0-sata.0:0-t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
Runtime Name: vmhba0:C0:T0:L0
Device: t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
Device Display Name: Local ATA Disk (t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH)
Adapter: vmhba0 Channel: 0 Target: 0 LUN: 0
Adapter Identifier: sata.vmhba0
Target Identifier: sata.0:0
Plugin: NMP
State: active
Transport: sata

ou

# ls /dev/disks/ -l
-rw------- 1 root root 60022480896 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
-rw------- 1 root root 4161536 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:1
-rw------- 1 root root 4293918720 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:2
-rw------- 1 root root 54784826880 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:3
-rw------- 1 root root 262127616 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:5
-rw------- 1 root root 262127616 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:6
-rw------- 1 root root 115326976 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:7
-rw------- 1 root root 299876352 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:8
-rw------- 1 root root 3000591900160 Oct 13 18:13 t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281
lrwxrwxrwx 1 root root 74 Oct 13 18:13 vml.0100000000202020202057442d574341575a32383437323831574443205744 -> t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281

lrwxrwxrwx 1 root root 74 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:1 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:1
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:2 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:2
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:3 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:3
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:5 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:5
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:6 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:6
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:7 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:7
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:8 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:8

On voit que l’hyperviseur ESXi a découvert 2 disques physiques:

  • un disque dur Western Digital de 3To (vml.0100000000202020202057442d574341575a32383437323831574443205744)
  • Un SSD OCZ Agility de 60Go

Ajout d’un disque virtuel à partir d’un disque physique

Pour pouvoir monter un disque via nos machines virtuelles, il nous faut une image virtuelle fournissant une sorte de passerelle vers notre disque physique.
Nous placerons ce fichier images dans la baque de données : “datastore1.

J’ai essayé d’utiliser la commande “vmkfstools” avec le paramètre “-r” mais cela m’a renvoyé une erreur en me disant que mon disque était trop gros (je pense qu’elle crée une image intermédiaire du disque dans le datastore1; mais ce n’est pas ce que je veux ici.


# vmkfstools -r /vmfs/devices/disks/t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281 /vmfs/volumes/datastore1/WD3To.vmdk

Alors j’ai essayé “vmkfstools” avec le paramètre “-z”, et la magie a opéré !


#vmkfstools -z /vmfs/devices/disks/vml.0100000000202020202057442d574341575a32383437323831574443205744 /vmfs/volumes/datastore1/WD3To.vmdk

Monter le disque sur une machine virtuelle (VM)

Dans Sphere vous pouvez maintenant ajouter ce disque dur à une machine virtuelle.

  • Faites click droit sur la machine virtuelle,
  • dans le menu contextuel “Modifier les paramètres”.
  • Puis “Ajouter…”
  • Choisissez “Disque dur”
  • Puis, “Utiliser un disque virtuel existant”
  • Allez chercher l’image disque précedement crée dans la banque (datastore) qui convient
  • Et pour finir “Suivant”, Terminer”.

Dans la liste des périphériques apparaitra alors un disque dur “Raw Lun mappé”. C’est gagné !


# cat /vmfs/volumes/datastore1/WD3To.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=fffffffe
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfsPassthroughRawDeviceMap"

# Extent description
RW 5860531055 VMFSRDM "WD3To-rdmp.vmdk"

# The Disk Data Base
#DDB

ddb.virtualHWVersion = "9"
ddb.longContentID = "a8a55ebb6d74b289bb71f6e3fffffffe"
ddb.uuid = "60 00 C2 94 81 45 db f1-f8 24 d1 ee ce 2e 54 bd"
ddb.geometry.cylinders = "364801"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "buslogic"