vInfra.ch

Guillaume LACAILLE's Blog

Shared VHDX ne peut pas être mis online

Lorsque vous créez un cluster avec des disques shared-VHDX, vous obtenez le message suivant: The request could not be performed because of an I/O device error.

Hier j’ai fais une tentative de migrer un cluster SQL Server virtuel, sur lequel il y avait des lun attachées en iSCSI, vers des disques en Shared-VHDX (dans le cadre d’une migration de stockage). Cluster ayant été créé initialement sous Hyper-V 2012.

Symptômes

Après conversion des lun en vhdx grâce aux outils NetApp, je migre les VMs vers un nouveau cluster Hyper-V 2012 R2, partage les VHDX et démarre les machines virtuelles.

Là, surprise !

  • Les volumes sont tous offline;
  • Lorsque j’essaye de mettre online le disque j’obtiens le message suivant:
Figure 1: I/O device error !??

Figure 1: I/O device error !??

Tentative de créer un nouveau VHDX depuis VMM et de le partager: même résultat.

Une histoire de secteurs

Le nouveau cluster Hyper-V est relié à une baie Violin-Memory, sur laquelle j’ai créé une LUN avec des blocs de 4096 bytes (4Kb, supporté depuis Windows Server 2012) au lieu des historiques 512 bytes pour de meilleurs performances.

Lorsque vous créez un VHDX, comme pour certains disques physiques récents, il existe 2 tailles de blocs:

  • PhysicalSectorSizeBytes: 4096 bytes par défaut (tous les 4096 bytes le bloc est écrit sur le disque physique);
  • LogicalSectorSize: 512 bytes par défaut (tous les 512 bytes, le bloc est écrit sur le disque virtuel);

Après vérification, les VHDX créés par l’outil de conversion de NetApp me donne un VHDX avec les tailles par défaut (4096-512).

Tentative de création d’un VHDX avec les 2 valeurs alignées sur la LUN (4096-4096-4096)….BINGO !

Dans la configuration Lun-Physical-Logical 4096-4096-512, le shared VHDX ne fonctionne pas.

Trios Lun-Physical-Logical

Après quelques tests, voici les trio qui fonctionnent:

LUN Sector Size VHDX PhysicalSectorSize VHDX LogicalSectorSize Result
512 512 512 OK
512 4096 512 OK
512 512 4096 OK
512 4096 4096 OK
4096 512 512 FAIL
4096 4096 512 FAIL
4096 512 4096 OK
4096 4096 4096 Ok

Je ne sais pas si c’est un fonctionnement by-design ou si c’est un bug, toujours est-il qu’il faut bien faire attention à la taille des secteurs logiques lorsque vous travaillez avec du Shared-VHDX. L’idéal étant d’aligner la taille des blocs Lun-physique-logique à la même taille afin d’obtenir les meilleurs performances (surtout vrai en 4Kb).

Créer un VHDX avec une taille de bloc

Pour créer un VHDX avec une taille de bloc particulière, il faut taper la commande suivante sur Hyper-V (non disponible dans SCVMM):

 

, , , , , ,

4 thoughts on “Shared VHDX ne peut pas être mis online

Répondre à 共有VHDX で I/O device error | mhiroblog Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *