ESXi stocke les fichiers disque d'une machine virtuelle dans une banque de données VMFS se trouvant sur un périphérique de stockage du SAN. Lorsque les systèmes d'exploitation invités de la machine virtuelle envoient des commandes SCSI à leurs disques virtuels, la couche de virtualisation SCSI traduit ces commandes en opérations de fichier VMFS.

Lorsqu'une machine virtuelle interagit avec son disque virtuel stocké sur un SAN, le processus suivant a lieu :

  1. Lorsque le système d'exploitation invité sur une machine virtuelle lit ou écrit sur le disque SCSI, il envoie des commandes SCSI au disque virtuel.

  2. Les pilotes de périphériques dans le système d'exploitation de la machine virtuelle communiquent avec les contrôleurs SCSI virtuels.

  3. Le contrôleur SCSI virtuel transmet la commande au VMkernel.

  4. Le VMkernel effectue les tâches suivantes :

    1. Recherche dans le volume VMFS, le fichier qui correspond au disque de la machine virtuelle invitée.

    2. Mappage des requêtes de blocs sur le disque virtuel sur les blocs sur le périphérique physique approprié.

    3. Envoi de la demande d'E/S modifiée à partir du pilote du périphérique du VMkernel vers l'initiateur iSCSI (matériel ou logiciel).

  5. Si l'initiateur iSCSI est un adaptateur iSCSI matériel (indépendant ou dépendant), l'adaptateur effectue les tâches suivantes :

    1. Encapsulation des demandes d'E/S dans les unités de données de protocole (PDU) iSCSI.

    2. Encapsulation des PDU iSCSI dans les paquets TCP/IP.

    3. Envoi des paquets IP via Ethernet au système de stockage iSCSI.

  6. Si l'initiateur iSCSI est un adaptateur iSCSI logiciel, les actions suivantes ont lieu :

    1. L'initiateur iSCSI encapsule les demandes d'E/S dans les PDU iSCSI.

    2. L'initiateur envoie les PDU iSCSI via des connexions TCP/IP.

    3. La pile TCP/IP VMkernel relaie les paquets TCP/IP vers un adaptateur réseau (NIC) physique.

    4. La carte réseau (NIC) physique envoie les paquets IP via Ethernet au système de stockage iSCSI.

  7. Selon le port utilisé par l'initiateur iSCSI pour se connecter au réseau, les commutateurs et les routeurs Ethernet achemine la demande jusqu'au périphérique de stockage auquel l'hôte souhaite accéder.