Partager via


Optimiser les performances de votre service Elastic SAN

Cet article fournit des conseils généraux sur l’obtention de performances optimales avec un environnement qui utilise un SAN élastique Azure.

Optimisations côté client

Recommandations générales

Machines virtuelles Windows &Linux

  • Pour des performances optimales, déployez vos machines virtuelles et votre san élastique dans la même zone et la même région.

  • Les E/S de stockage de machines virtuelles vers des volumes SAN élastiques utilisent la bande passante réseau des machines virtuelles. Par conséquent, les limites de débit de disque traditionnelles sur une machine virtuelle ne s’appliquent pas aux volumes SAN élastiques. Choisissez une machine virtuelle qui peut fournir une bande passante suffisante pour les E/S de production/machine virtuelle à machine virtuelle et les E/S iSCSI pour les volumes Elastic SAN attachés. En règle générale, vous devez utiliser des machines virtuelles gen 5 (D/E/M) pour obtenir les meilleures performances.

  • Activez la mise en réseau accélérée sur la machine virtuelle lors de la création. Pour ce faire via Azure PowerShell ou Azure CLI ou pour activer la mise en réseau accélérée sur des machines virtuelles existantes, consultez Utiliser Azure PowerShell pour créer une machine virtuelle avec mise en réseau accélérée

Capture d’écran du flux de création de machine virtuelle, activation des performances réseau accélérées mise en évidence.

  • Vous devez utiliser 32 sessions par volume cible pour chaque volume pour atteindre ses limites maximales d’E/S par seconde et/ou de débit. Utilisez MPIO (Multipath E/S) sur le client pour gérer ces plusieurs sessions sur chaque volume pour l’équilibrage de charge. Les scripts sont disponibles pour Windows, Linux ou sur la page Se connecter au volume de vos volumes dans le portail Azure, qui utilise 32 sessions par défaut. L’initiateur iSCSI logiciel Windows a une limite maximale de 256 sessions. Si vous devez connecter plus de huit volumes à une machine virtuelle Windows, réduisez le nombre de sessions à chaque volume si nécessaire.

Azure VMware Solution

  • Déployer votre san élastique dans la même région et la même zone de disponibilité que votre cluster Azure VMware Solution

  • Configurer des points de terminaison privés avant de monter votre volume SAN élastique en tant que magasin de données externe

  • Si vous envisagez que votre environnement ait jamais 16 nœuds dans un cluster Azure VMware Solution, utilisez l’une des configurations suivantes, selon les hôtes que vous avez.

    • AV36, AV36P, AV52 - Six sessions iSCSI sur trois points de terminaison privés
    • AV64 - Sept sessions iSCSI sur sept points de terminaison privés
  • Si votre environnement n’a pas 16 nœuds, utilisez l’une des configurations suivantes.

    • AV36, AV36P, AV52 - Huit sessions iSCSI sur quatre points de terminaison privés
    • AV64 - Huit sessions iSCSI sur huit points de terminaison privés

    Remarque

    Lorsqu’un volume SAN élastique est attaché à un cluster, il est automatiquement attaché à tous les nœuds. Si vous avez 16 nœuds et que chaque nœud est configuré pour utiliser huit sessions iSCSI qui utilisent le nombre maximal de connexions (128). La configuration de vos nœuds pour utiliser sept sessions iSCSI garantit que si vous devez attacher un nœud supplémentaire (pour la maintenance), vous disposez de sessions iSCSI disponibles.

  • Utiliser l’allocation EZT (eager zeroed thick) lors de la création de disques virtuels

  • Taille de la passerelle ExpressRoute afin qu’elle puisse répondre à vos besoins en débit

  • Configurez votre SAN élastique pour qu’il dispose d’au moins 16 TiB pour sa taille initiale, afin que vous puissiez atteindre des performances optimales sur vos datastores SAN élastiques.

MPIO

Fenêtres

Utilisez les commandes suivantes pour mettre à jour vos paramètres :

# Enable multipath support for iSCSI devices
Enable-MSDSMAutomaticClaim -BusType iSCSI

# Set the default load balancing policy based on your requirements. In this example, we set it to round robin which should be optimal for most workloads.
mpclaim -L -M 2

# Set disk time out to 30 seconds
Set-MPIOSetting -NewDiskTimeout 30

Pour plus d’informations sur les applets de commande MPIO, consultez la référence MPIO.

Linux

Mettez à jour le fichier /etc/multipath.conf avec les commandes suivantes :

defaults {
    user_friendly_names yes		# To create ‘mpathn’ names for multipath devices
    path_grouping_policy multibus	# To place all the paths in one priority group
    path_selector "round-robin 0"	# To use round robin algorithm to determine path for next I/O operation
    failback immediate			# For immediate failback to highest priority path group with active paths
    no_path_retry 3			# To disable I/O queueing after retrying once when all paths are down
    polling_interval 5         # Set path check polling interval to 5 seconds
    find multipaths yes        # To allow multipath to take control of only those devices that have multiple paths 
}
devices {
  device {
    vendor "MSFT"
    product "Virtual HD"
  }
}

Azure VMware Solution

Microsoft gère les paramètres MPIO pour Azure VMware Solution. Les valeurs optimales sont définies lorsque vous créez un magasin de données.

iSCSI

Fenêtres

Mettez à jour les paramètres de Registre pour l’initiateur iSCSI sur Windows.

  1. Ouvrez l’Éditeur du Registre :
  2. Sélectionnez Démarrer, tapez regedit dans la zone de recherche, puis appuyez sur Entrée.
  3. Accédez à l’emplacement suivant : [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Microsoft iSCSI Initiateur)\Parameters]
  4. Mettez à jour les paramètres suivants. Cliquez avec le bouton droit sur chaque paramètre et sélectionnez Modifier. Remplacez Base par décimal, mettez à jour la valeur et sélectionnez OK.
Descriptif Paramètre et valeur
Définit les données maximales envoyées par l’initiateur dans un PDU iSCSI à la cible à 256 Ko MaxTransferLength=262144
Définit la charge utile SCSI maximale que l’initiateur négocie avec la cible à 256 Ko MaxBurstLength=262144
Définit le nombre maximal de données non sollicitées que l’initiateur peut envoyer dans un PDU iSCSI à une cible à 256 Ko FirstBurstLength = 262144
Définit la quantité maximale de données que l’initiateur peut recevoir dans un PDU iSCSI de la cible à 256 Ko MaxRecvDataSegmentLength=262144
Désactive le contrôle de flux R2T InitialR2T=0
Active les données immédiates ImmediateData=1
Définit la valeur du délai d’expiration pour les requêtes WMI à 30 secondes WMIRequestTimeout = 30 secondes
Définit la valeur du délai d’expiration pour le temps d’arrêt du lien à 30 secondes LinkDownTime = 30 secondes

Dans les configurations de cluster, assurez-vous que les noms d’initiateur iSCSI sont uniques sur tous les nœuds qui partagent des volumes. Dans Windows, vous pouvez les mettre à jour via l’application Initiateur iSCSI.

  1. Sélectionnez Démarrer, recherchez l’initiateur iSCSI dans la zone de recherche. Cela ouvre l’initiateur iSCSI.

  2. Sélectionnez Configuration pour afficher le nom de l’initiateur actuel.

    Capture d’écran de la configuration de l’initiateur iSCSI sur Windows.

  3. Pour le modifier, sélectionnez Modifier, entrez le nouveau nom de l’initiateur, puis sélectionnez OK.

    Capture d’écran de la mise à jour du nom de l’initiateur iSCSI sur Windows.

Linux

Mettez à jour les paramètres suivants avec les valeurs recommandées dans le fichier de configuration iSCSI global (iscsid.conf, généralement trouvé dans le répertoire /etc/iscsi) sur le client avant de lui connecter des volumes. Lorsqu’un volume est connecté, un nœud est créé avec un fichier de configuration spécifique à ce nœud (par exemple sur les machines virtuelles Ubuntu, il est disponible dans le /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port répertoire) qui hérite des paramètres du fichier de configuration global. Si vous avez déjà connecté un ou plusieurs volumes au client avant de mettre à jour le fichier de configuration global, mettez à jour le fichier de configuration spécifique au nœud pour chaque volume directement ou à l’aide de la commande suivante :

# Variable declaration
volume_iqn=<Elastic SAN volume IQN>
portal_hostname=<Elastic SAN volume portal hostname>
port=3260

# Set maximum data the initiator sends in an iSCSI PDU to the target to 256 KB
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.MaxXmitDataSegmentLength -v 262144

# Set maximum SCSI payload that the initiator negotiates with the target to 256 KB
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.MaxBurstLength -v 262144

# Set maximum unsolicited data the initiator can send in an iSCSI PDU to a target to 256 KB 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.FirstBurstLength -v 262144

# Set maximum data the initiator can receive in an iSCSI PDU from the target to 256 KB 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.MaxRecvDataSegmentLength -v 262144

# Disable R2T flow control 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.InitialR2T -v No

# Enable immediate data
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.session.iscsi.ImmediateData -v Yes

# Set timeout value for WMI requests
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].timeo.login_timeout -v 30
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].timeo.logout_timeout -v 15

# Enable CRC digest checking for header and data 
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.HeaderDigest -v CRC32C
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n node.conn[0].iscsi.DataDigest -v CRC32C 

Dans les configurations de cluster, vérifiez que les noms d’initiateur iSCSI sont uniques sur tous les nœuds qui partagent des volumes. Dans Linux, modifiez /etc/iscsi/initiatorname.iscsi pour mettre à jour le nom de l’initiateur. Capture d’écran mettant à jour le nom de l’initiateur iSCSI sur Linux.

Azure VMware Solution

Microsoft gère les paramètres iSCSI. Les valeurs optimales sont définies lorsque vous créez un magasin de données.

Optimisations DE SAN élastiques

Avant de déployer un san élastique, la détermination de la taille optimale du SAN élastique que vous déployez est nécessaire pour obtenir l’équilibre approprié des performances pour vos charges de travail et vos coûts. Procédez comme suit pour déterminer le meilleur dimensionnement pour vous :

Avec votre solution de stockage existante, sélectionnez un intervalle de temps (jour/semaine/trimestre) pour suivre les performances. Le meilleur intervalle de temps est un bon instantané de vos applications/charges de travail. Au cours de cette période, enregistrez le nombre maximal d’E/S par seconde et le débit combinés pour toutes les charges de travail. Si vous utilisez un intervalle supérieur à une minute ou si l’une de vos charges de travail a des goulots d’étranglement avec votre configuration actuelle, envisagez d’ajouter plus de capacité de base à votre déploiement SAN élastique. Vous devez laisser une marge de contrôle lors de la détermination de votre capacité de base, afin de tenir compte de la croissance. Le reste du stockage de votre SAN élastique doit utiliser une capacité supplémentaire pour économiser des coûts.

Pour plus d’informations sur les performances, consultez Les performances de san élastique et de machine virtuelle.