J'ai de gros problèmes avec mon réseau iSCSI et je n'arrive pas à le faire fonctionner aussi vite qu'il le pourrait.
J'ai donc essayé à peu près tout pour tirer le meilleur parti de mon SAN, après avoir impliqué des spécialistes de VMware et d'EMC.
Une brève description de mon équipement: 3 cartes réseau intégrées HP DL360 G7 / vSphere 5.5 / 4/4 cartes réseau Intel PCIe pour iSCSI 2 x HP 2510-24G 1 x processeurs de stockage EMC VNXe 3100/2, chacun avec 2 cartes réseau dédiées iSCSI / 24 x 15 RAID SAS 10 / 6x SAS RAID6 7.2k
J'ai suivi les meilleures pratiques et mis les pools de stockage uniformément sur les deux serveurs iSCSI. J'ai créé 2 serveurs iSCSI, un sur chaque processeur de stockage. Veuillez voir l'image pour ma configuration iSCSI.
Le trafic iSCSI est séparé via VLAN (interdiction définie pour les autres VLAN), je l'ai même essayé avec un autre commutateur HP de la série 29xx. Le contrôle de flux est activé (également essayé désactivé), Jumbo est désactivé. Aucun routage n'est impliqué.
Sur les hôtes ESX, tous les NIC iSCSI sont utilisés car j'ai utilisé le paramètre Round Robin pour chaque magasin de données. Je l'ai également essayé avec une politique de changement de chemin de 1 E / S car tant d'autres semblent avoir gagné en performances de cette façon. J'ai également essayé les cartes réseau internes (Broadcom), mais il n'y a aucune différence. Sur les commutateurs, je peux voir que les ports sont utilisés de manière très uniforme, côté ESX et côté VNXe. J'ai un équilibrage de charge parfait, cependant: je ne peux pas dépasser 1 Gbit au total. Je comprends que le VNXe est optimisé pour plusieurs connexions et Round Robin en a également besoin, mais même lorsque je fais un stockage vMotion entre 2 hôtes et 2 banques de données (en utilisant différents serveurs iSCSI), je peux voir une ligne droite autour de 84 MBit / s via l'interface Web Unisphere. Je peux voir cette ligne si souvent à exactement la même valeur que je ne peux pas croire que mes disques ne le feraient pas t livrer plus ou les tâches ne sont pas assez exigeantes. C'est de mieux en mieux: avec un seul câble sur chaque hôte et chaque processeur de stockage, j'atteins les mêmes performances. J'ai donc eu beaucoup de redondance mais pas de vitesse supplémentaire du tout.
Comme j'ai vu pas mal de gens parler de leurs performances iSCSI, je cherche désespérément ce qui ne va pas avec ma configuration (qui a été testée et vérifiée par des personnes qualifiées de VMware et EMC). Je suis reconnaissant pour chaque opinion!
ÉDITER:
Oui, j'ai configuré vMotion pour utiliser plusieurs cartes réseau. Outre ce stockage, vMotion passe toujours par les adaptateurs iSCSI, et non par les adaptateurs vMotion. J'ai joint des captures d'écran de ma configuration.
Je sais que le stockage vMotion n'est pas une référence, mais j'ai dû en faire beaucoup ces derniers jours et la limite supérieure a toujours été d'environ 80 Mo / s. Un pool de 6 disques SAS 15k de 600 Go en RAID 10 devrait facilement pouvoir en faire beaucoup plus, n'est-ce pas? J'ai fait un test IO Meter pour vous - j'en ai essayé certains, le plus rapide était 256 KiB 100% Read. J'ai obtenu 64,45 Mo / s - mon Unisphere affiche également la même vitesse. C'est dans une machine virtuelle qui est stockée sur un pool de disques SAS 6x 15k 300 Go (RAID 10) qui n'a pratiquement aucune autre activité cette heure-ci.
EDIT2:
Désolé pour les noms d'utilisateur en double, mais j'ai écrit cette question au travail et il n'a pas utilisé mon nom d'utilisateur que j'ai déjà obtenu à Stock Overflow. Cependant, voici la capture d'écran montrant mes paramètres Round Robin. C'est la même chose sur tous les hôtes et tous les magasins.
la source
Réponses:
Il est possible que vous ne génériez pas suffisamment d'E / S par seconde pour que cela démarre vraiment.
Jetez un œil ici sur la façon de changer le paramètre de 1'000 IOPS par défaut à une valeur plus petite. (Ceci est spécifique à Symmetrix, mais vous pouvez faire la même chose pour le fournisseur VMWare Round Robin)
Je ne suis cependant pas encore convaincu s'il est vraiment capable d'utiliser plus d'un lien totalement en parallèle avec un seul magasin de données. Je pense que vous devez faire le test IOMeter sur plusieurs banques de données en parallèle pour voir les avantages. (Pas sûr à 100% cependant)
la source
Créez une règle SATP pour le fournisseur de stockage nommé EMC, définissez la stratégie de chemin d'accès comme Round Robine et IOPS par défaut de 1000 à 1. Ce sera la persistance lors des redémarrages et chaque fois qu'un nouveau LUN iSCSI EMC est présenté, cette règle sera récupérée. Pour que cela s'applique aux LUN iSCSI EMC existants, redémarrez l'hôte.
J'ai joué avec le changement des IOPS entre 1 et 3 et je trouve les meilleures performances sur une seule machine virtuelle. Cela dit, si vous avez beaucoup de VM et beaucoup de banques de données, 1 n'est peut-être pas optimal ...
Assurez-vous que chaque interface du VNXe est définie sur 9000 MTU. En outre, le vSwitch avec vos interfaces iSCSI doit être défini sur 9000 MTU avec chaque VMKernel. Sur votre VNXe, créez deux serveurs iSCSI - un pour SPA et un pour SPB. Associez une adresse IP pour chacun initialement. Affichez ensuite les détails de chaque serveur iSCSI et ajoutez des adresses IP supplémentaires pour chaque interface active par SP. Cela vous donnera la performance de tournoi à la ronde que vous recherchez.
Créez ensuite au minimum deux banques de données. Associez un magasin de données à iSCSIServer-SPA et un à iSCSIServer-SPB. Cela garantira que l'un de vos SP n'est pas assis au ralenti.
Enfin, toutes les interfaces côté ESX qui sont utilisées pour iSCSI doivent aller vers un vSwitch distinct avec toutes les interfaces actives. Cependant, vous souhaiterez un VMkernel pour chaque interface côté ESX dans ce vSwitch désigné. Vous devez remplacer l'ordre de basculement vSwitch pour chaque VMKernel pour avoir un adaptateur actif et tous les autres inutilisés. Il s'agit de mon script de déploiement que j'ai utilisé pour provisionner les hôtes ESX. Chaque hôte dispose d'un total de 8 interfaces, 4 pour le LAN et 4 pour le trafic iSCSI / VMotion.
une. # DNS esxcli network ip dns search add --domain = mydomain.net
esxcli network ip dns server add --server = XXXX
esxcli network ip dns server add --server = XXXX
b. # définir la mise à jour du nom d'hôte en conséquence
ensemble de noms d'hôte du système esxcli --host = server1 --domain = mydomain.net
c. # ajouter des liaisons montantes à vSwitch0 réseau esxcli vswitch liaison montante standard ajouter --uplink-name = vmnic1 --vswitch-name = vSwitch0
esxcli network vswitch standard uplink add --uplink-name = vmnic4 --vswitch-name = vSwitch0
esxcli network vswitch standard uplink add --uplink-name = vmnic5 --vswitch-name = vSwitch0
ré. # créer vSwitch1 pour le stockage et définir MTU sur 9000
esxcli network vswitch standard add --vswitch-name = vSwitch1
esxcli network vswitch standard set --vswitch-name = vSwitch1 --mtu = 9000
e. # ajouter des liaisons montantes à vSwitch1
esxcli network vswitch standard uplink add --uplink-name = vmnic2 --vswitch-name = vSwitch1
esxcli network vswitch standard uplink add --uplink-name = vmnic3 --vswitch-name = vSwitch1
esxcli network vswitch standard uplink add --uplink-name = vmnic6 --vswitch-name = vSwitch1
esxcli network vswitch standard uplink add --uplink-name = vmnic7 --vswitch-name = vSwitch1
F. # définir la carte réseau active pour vSwitch0
Ensemble de basculement de stratégie standard vswitch du réseau esxcli --vswitch-name = vSwitch0 --active-uplinks = vmnic0, vmnic1, vmnic4, vmnic5
g. # définir la carte réseau active pour vSwitch1
esxcli network vswitch standard policy failover set --vswitch-name = vSwitch1 --active-uplinks = vmnic2, vmnic3, vmnic6, vmnic7
h. # créer des groupes de ports pour iSCSI et vmkernels pour ESX01 et non ESX02
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1
ajout de l'interface IP du réseau esxcli --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk2 --ipv4 = 192.158.50.152 --netmask = 255.255.255.0 --type = static
hôtes vim-cmd vc / vmotion / vnic_set vmk2
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1
interface IP du réseau esxcli ajouter --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk3 --ipv4 = 192.158.50.153 --netmask = 255.255.255.0 --type = static
hôtes vim-cmd vc / vmotion / vnic_set vmk3
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1
ajout de l'interface IP du réseau esxcli --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk6 --ipv4 = 192.158.50.156 --netmask = 255.255.255.0 --type = static
hôtes vim-cmdvc / vmotion / vnic_set vmk6
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1
ajout de l'interface IP du réseau esxcli --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk7 --ipv4 = 192.158.50.157 --netmask = 255.255.255.0 --type = static
hôtes vim-cmd vc / vmotion / vnic_set vmk7
je. # créer des groupes de ports pour iSCSI et vmkernels pour ESX02 et non ESX01
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1
ajout de l'interface IP du réseau esxcli --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk2 --ipv4 = 192.168.50.162 --netmask = 255.255.255.0 --type = static
hôtes vim-cmd vc / vmotion / vnic_set vmk2
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1
interface IP du réseau esxcli ajouter --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk3 --ipv4 = 192.168.50.163 --netmask = 255.255.255.0 --type = static
hôtes vim-cmd vc / vmotion / vnic_set vmk3
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1
ajout de l'interface IP du réseau esxcli --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk6 --ipv4 = 192.168.50.166 --netmask = 255.255.255.0 --type = static
hôtes vim-cmdvc / vmotion / vnic_set vmk6
esxcli network vswitch standard portgroup add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1
ajout de l'interface IP du réseau esxcli --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000
esxcli network ip interface ipv4 set --interface-name = vmk7 --ipv4 = 192.168.50.167 --netmask = 255.255.255.0 --type = static
hôtes vim-cmd vc / vmotion / vnic_set vmk7
j. # définir une carte réseau active pour chaque noyau virtuel iSCSI
esxcli network vswitch standard portgroup policy failover set --portgroup-name = iSCSI-vmnic2 --active-uplinks = vmnic2
esxcli network vswitch standard portgroup policy failover set --portgroup-name = iSCSI-vmnic3 --active-uplinks = vmnic3
esxcli network vswitch standard portgroup policy failover set --portgroup-name = iSCSI-vmnic6 --active-uplinks = vmnic6
esxcli network vswitch standard portgroup policy failover set --portgroup-name = iSCSI-vmnic7 --active-uplinks = vmnic7
k. # créer des groupes de ports
esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork1 --vswitch-name = vSwitch0
esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork2 --vswitch-name = vSwitch0
esxcli network vswitch standard portgroup add --portgroup-name = VMNetwork3 --vswitch-name = vSwitch0
l. # définir VLAN sur des groupes de ports VM
esxcli network vswitch standard portgroup set -p VMNetwork1 --vlan-id ##
esxcli network vswitch standard portgroup set -p VMNetwork2 --vlan-id ##
esxcli network vswitch standard portgroup set -p VMNetwork3 --vlan-id ###
m. # supprimer le groupe de ports VM par défaut
esxcli network vswitch standard portgroup remove --portgroup-name = "VM Network" -v = vSwitch0
n. # activer l'adaptateur logiciel iSCSI
esxcli iscsi software set --enabled = true
esxcli iscsi networkportal add -A vmhba33 -n vmk2
esxcli iscsi networkportal add -A vmhba33 -n vmk3
esxcli iscsi networkportal add -A vmhba33 -n vmk6
esxcli iscsi networkportal add -A vmhba33 -n vmk7
o. # renommer le magasin de données local
nom d'hôte> $ var =
vim-cmd hostsvc / datastore / rename datastore1 local-
$var
p. #Définissez le plug-in de type tableau de stockage multi-chemins natif pour EMC VNXe 3300 et réglez les IOPS à tour de rôle de 1000 à 1
esxcli storage nmp satp rule add --satp = "VMW_SATP_DEFAULT_AA" --vendor = "EMC" -P "VMW_PSP_RR" -O "iops = 1"
q. # actualiser le réseautage
actualisation du pare-feu du réseau esxcli
vim-cmd hostsvc / net / refresh
une. Configuration -> Configuration de l'heure -> Propriétés -> Options -> Paramètres NTP -> Ajouter -> ntp.mydomain.net -> Cochez "Redémarrer le service NTP pour appliquer les modifications" -> OK -> attendez… -> Sélectionnez «Démarrer et arrêter avec l'hôte» -> OK -> Cochez «Client NTP activé -> OK
Redémarrer l'hôte
Continuez avec EMC VNXe Storage Provisioning, revenez à ce guide une fois terminé
Connectez-vous au client vSphere par hôte
Mettre à niveau chaque banque de données vers VMFS-5
une. Configuration -> Stockage -> Highlight Datastore -> Mettre à niveau vers VMFS-5
la source
Malheureusement, je pense que rien ne va mal avec votre configuration. Vous ne pouvez tout simplement pas utiliser plus de 1 Go / s pour une seule machine virtuelle.
Le point ici est que vous ne voulez pas simplement utiliser deux (ou plus) NIC, vous voulez les utiliser simultanément , dans une configuration de type RAID-0.
802.3ad, la norme sur l'agrégation au niveau des liens et que je pense que vous avez configurée sur vos commutateurs, ne peut généralement pas être configurée pour répartir une seule connexion sur différentes cartes réseau. Cela est dû au fonctionnement de la sélection d'interface: elle est basée sur les MAC et / ou IP / ports src et dst, et une seule connexion aura toujours les mêmes MAC / IP / ports .
Cela ne signifie pas que votre configuration ne peut pas pousser des nombres plus élevés (à la fois comme tput et IOPS), mais cela met une limite stricte sur les performances qu'une seule machine virtuelle peut extraire. Essayez de charger 2 ou 4 instances IOMeter sur 2/4 machines virtuelles différentes: je parie que le débit agrégé sera bien supérieur à celui de la machine virtuelle unique, mais aucune machine ne passera par la limite de 1 Go / s.
Le pontage Linux et certains commutateurs haut de gamme prennent en charge différentes méthodes d'agrégation de liens et permettent des interfaces réseau agrégées par bandes complètes. Cependant, cela a des ramifications non triviales sur la façon dont les autres commutateurs / systèmes interagissent avec ces méthodes d'agrégation "non standard".
Quoi qu'il en soit, pour le réseau de stockage, vous devez vraiment activer les trames jumbo, si elles sont prises en charge.
la source