Ceci est une ancienne révision du document !
Avoir la liste des VMs enregistrer sur l’hôte (on obtient ainsi le VMid):
vim-cmd vmsvc/getallvms
Avoir la liste des VMs allumées sur l’hôte (on obtient ainsi le WorldID):
esxcli vm process list
Forcer l’arrêt propre d’une VM:
esxcli vm process kill -t soft -w <WorldID>
Forcer l’arrêt brutal d’une VM (en dernier recours):
esxcli vm process kill -t force -w <WorldID>
Avoir l’état d’une VM:
vim-cmd vmsvc/power.getstate <VMid>
Eteindre une VM:
vim-cmd vmsvc/power.off <VMid>
Allumer une VM:
vim-cmd vmsvc/power.on <VMid>
Redémarrer une VM:
vim-cmd vmsvc/power.reboot <VMid>
Recharger la configuration d’une VM (après modification du fichier .vmx):
vim-cmd vmsvc/reload <VMid>
Supprimer tous les Snapshots d’une VM:
vim-cmd vmsvc/snapshot.removeall <VMid>
Avoir une estimation de l’espace nécessaire pour consolider un Snapshot d’une VM:
vim-cmd vmsvc/get.spaceNeededForConsolidation <VMid>
Enregistrer une VM sur l’hôte:
vim-cmd solo/registervm /vmfs/volumes/datastore/VM2/VM2.vmx
Désenregistrer une VM d’un hôte:
vim-cmd hostsvc/unregister <VMid>
Avoir le résumé d’une VM:
vim-cmd vmsvc/get.summary <VMid>
Créer un disque virtuel:
vmkfstools -c 10G /vmfs/volumes/datastore1/VM3/VM3_1.vmdk
Ajouter un disque virtuel existant à une VM (en SCSI0:1):
vim-cmd vmsvc/device.addexisting <VMid> /vmfs/volumes/datastore1/VM3/VM3_1.vmdk 0 1
Ajouter un disque à une VM (l’équivalent des 2 précédentes commandes):
vim-cmd vmsvc/device.diskadd <VMid> 10G 0 1 datastore1
Convertir un disque virtuel de Thin en Thick:
vmkfstools -j /vmfs/volumes/datastore1/VM1/VM1.vmdk
Convertir un disque virtuel de Thick en Thin:
vmkfstools -K /vmfs/volumes/datastore1/VM1/VM1.vmdk
Agrandir la taille d’un disque virtuel:
vmkfstools -X 15G /vmfs/volumes/datastore1/VM1/VM1.vmdk
Réinitialiser la configuration en mode usine (comme à la fin de l’installation):
/sbin/firmwareConfig.sh –reset
Attribuer une licence à l’hôte:
vim-cmd vimsvc/license –set XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Mettre l’hôte en Mode Maintenance:
vim-cmd hostsvc/maintenance_mode_enter
Sortir l’hôte du Mode Maintenance:
vim-cmd hostsvc/maintenance_mode_exit
Synchroniser et sauvegarder la config de l’hôte (fichier généré dans /scratch/downloads):
vim-cmd hostsvc/firmware/sync_config vim-cmd hostsvc/firmware/backup_config
Restaurer la config d’un hôte (à partir du fichier /tmp/configBundle.tgz):
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Avoir la liste des patchs installés sur un hôte:
esxcli software vib list
Installer un patch manuellement (être en mode maintenance):
esxcli software vib update –depot=/vmfs/volumes/datastore1/ESXi500-201109001.zip
Autoriser un service sur le firewall de l’hôte:
esxcli network firewall ruleset set -r snmp -e true
Désactiver le firewall de l’hôte:
esxcli network firewall set -e false
Afficher la liste des codes erreur VMkernel:
vmkerrcode -l
Afficher la version de l’hôte:
esxcli system version get
Avoir la configuration des paramètres avancés:
esxcli system settings advanced list
Lancer l’interface DCUI (peut-être utile en SSH), faire un Ctrl + C pour quitter :
Dcui
Vérifier l’état du service « hostd »:
/etc/init.d/hostd status
Redémarrer le service « hostd »:
/etc/init.d/hostd restart
Redémarrer l’agent vCenter (« vpxa »):
/etc/init.d/vpxa restart
Redémarrer tous les services:
services.sh restart
Activer le SSH temporairement (jusqu’au prochain redémarrage):
/etc/init.d/SSH start
Activer et démarrer le SSH de façon permanente:
vim-cmd hostsvc/enable_ssh vim-cmd hostsvc/start_ssh
Avoir la configuration du démarrage automatique de tous les services
chkconfig -l
Avoir la liste des interfaces réseau physique:
esxcli network nic list
Créer un vSwitch:
esxcli network vswitch standard add -v vSwitch1
Ajouter une interface physique à un vSwitch:
esxcli network vswitch standard uplink add -u vmnic1 -v vSwitch1
Ajouter un PortGroup à un vSwitch:
esxcli network vswitch standard portgroup add -p LAN -v vSwitch1
Ajouter une interface physique à un PortGroup (définir les interfaces actives):
esxcli network vswitch standard portgroup policy failover set -a vmnic0,vmnic1 -p LAN
Définir le VLAN d’un PortGroup:
esxcli network vswitch standard portgroup set -v 40 -p LAN
Associer une interface VMkernel à un PortGroup:
esxcli network ip interface add -i vmk1 -p NFS
Définir l’IP d’une interface VMkernel:
esxcli network ip interface ipv4 set -i vmk1 -I 10.40.1.1 -N 255.255.255.0 -t static
Activer le CDP sur un vSwitch:
esxcli network vswitch standard set –cdp-status both -v vSwitch1
Modifier le MTU d’une interface VMkernel:
esxcli network ip interface set -m 9000 -i vmk1
Modifier le MTU d’un vSwitch:
esxcli network vswitch set -m 9000 -v vSwitch1
Afficher la liste des LUNs:
esxcli storage nmp device list
Afficher la liste des chemins:
esxcli storage nmp path list
Afficher la correspondance entre les LUNs et les VMFS:
esxcli storage filesystem list
Faire un Rescan du SAN sur toutes les HBAs:
esxcli storage core adapter rescan –all
Ou aussi, faire un Rescan du SAN:
vim-cmd hostsvc/storage/vmfs_rescan
Rafraichir les LUNs:
vim-cmd hostsvc/storage/vmfs_refresh
Afficher la liste des volumes non-montés (car détectés comme Snapshot):
esxcli storage vmfs snapshot list
Forcer le montage d’un VMFS:
esxcli storage vmfs snapshot mount VMFS1
Resigner un VMFS:
esxcli storage vmfs snapshot resignature VMFS2
Afficher la compatibilité VAAI des volumes:
esxcli storage core device vaai status get
Activer initiateur iSCSI software:
esxcli iscsi software set -e true
Faire une redécouverte iSCSI
esxcli iscsi adapter discovery rediscover -A vmhba33
Afficher la liste des volumes NFS montés:
esxcli storage nfs list
Ajouter un volume NFS:
esxcli storage nfs add -H 10.40.1.100 -s /vol/share -v Vol_NFS
Avoir la liste des VMs allumés avec leur WorldGroupID et leur disques:
vscsiStats -l
Démarrer la collecte des stats pour une VM (s’arrête automatiquement au bout de 30 min):
vscsiStats -w <WorldGroupID> -s
Afficher un histogramme de latences des performances collectées:
vscsiStats -w <WorldGroupID> -p latency
Arrêter la collecte des stats d’une VM:
vscsiStats -x <WorldGroupID> -s
| Commande | Description |
| vmkfstools | Cette commande permet de copier, convertir, renommer, importer, et modifier la taille des fichiers de disques virtuels vmdk. |
| esxtop | Permet d’afficher les performances en temps réel de l’hôte tel que l’utilisation cpu, mémoire, les I/O disques ou les I/O réseau. |
| esxcfg-nics | Cette commande permet de configurer les adaptateurs réseaux, notamment leur vitesse de transmission, de manière manuelle. |
| esxcfg-vswitch | Permet de configurer les vSwitch, créer des groupes de ports, associer une interface physique NIC, etc … |
| esxcfg-vswif esxcfg-vmknic Esxcfg-vswif | permet de configurer les interfaces réseaux liées à la console, et esxcfg-vmknic permet de configurer les interfaces réseaux liées au VMkernel (interfaces de management). |
| vmware-cmd | Cette commande permet d’afficher différentes informations relatives aux machines virtuelles hébergées sur l’hôte. |
| vimsh et vmware-vim-cmd | Vimsh est un shell interactif permettant d’exécuter de nombreuses commandes.Vmware-vim-cmd est une version simplifiée devimsh. |
| vihostupdate et esxupdate | |
| svmotion | Cette commande permet d’initier manuellement un VMotion. |
| esxcfg-mpath | Affiche les chemins réseaux d’accès au stockage de l’hôte. |
| esxcfg-rescan | Permet de rafraichir le stockage de l’hôte, si par exemple un nouveau stockage à été ajouté et n’est pas visible via esxcfg-mpath. |
| esxcfg-scsidevs et esxcfg-vmhbadevs | Affichent les informations sur les disques scsi locaux. |
| esxcfg-firewall Permet de configurer le firewall de l’hôte et de bloquer des ports TCP/IP entre la console et les autres adaptateurs réseaux. | |
| esxcfg-info | Affiche les informations de configuration de l’hôte (Summary) et permet de stocker ces informations dans un fichier texte. |
| esxcfg-auth | Configuration de l’authentification et du lien avec une source externe (ldap, AD …). |
| vm-support | Très utile pour troubleshooter, cette commande collecte de nombreuses informations sur l’hôte, le matériel, les machines virtuelles (y compris celles qui ont plantéJ) et stock le tout dans une archive. |
Les commandes suivantes, propres à ESXi, ne servent pas qu’à dépanner des systèmes. Elles seront utiles au quotidien pour les tâches de maintenance et de monitoring.
Les services ESXi sont gérés par cette commande de la même manière que les services Linux qui sont pris en charge par la commande services. On demande à services.sh d’exécuter une instruction stop, start ou restart pour arrêter, lancer ou relancer tous les services d’ESXi. Par exemple :
services.sh restart
Les scripts situés dans le répertoire /etc/init.d sont utilisables pour lancer ou arrêter les services éponymes un par un. Par exemple, pour ne relancer que l’agent vCenter Server Agent (alias le service vpxa), il suffirait d’écrire :
/etc/init.d/vpxa restart
A noter qu’il est possible de voir dans quel état se trouve chacun des services avec la commande :
cat /etc/chkconfig.db
Dérivée de la commande ping, la commande vmkping utilise la pile IP du noyau VMkernel pour envoyer des paquets ICMP sur les interfaces indiquées. Cette commande sert à envoyer des paquets Ping sur le réseau vMotion, plutôt que sur le réseau utilisé pour l’administration. Ainsi :
vmkping –I vmk1 10.10.10.1 => envoie des requêtes ICMP à 10.10.10.1 au travers de l’interface vmk1.
En association avec vmkping, la commande nc (qui signifie netcat) sert à confirmer la connectivité en un hôte ESXi et une IP en particulier. Si vmkping confirme l’existence d’une communication via des paquets ICMP, nc va plus précisément servir à confirmer que la communication se fait sur un port TCP en particulier, par exemple le port 3260 utilisé dans les connexions iSCSI. On réalisera cette tâche ainsi :
nc –z 10.10.10.10 3260
Cette commande sert à gérer des volumes VMFS. Elle permet de créer, cloner, étendre, renommer ou effacer les fichiers VMDK correspondants aux disques virtuels. Par exemple :
vmkfstools –i test.vmdk testclone.vmdk => réplique test.vmdk en testclone.vmdk.
Cet outil est celui qui donne le plus d’informations lorsqu’il s’agit de mesurer la performance d’un hôte ESXi ou de le dépanner. Similaire à la commande top de Linux, esxtop rassemble de relevés spécifiques à VMware et relatifs au processeur, aux interruptions, à la mémoire, au réseau, au contrôleur disque, aux disques eux-mêmes, aux images-disques des machines virtuelles et à la consommation d’énergie.
Cette commande sert à approfondir la mesure des performances sur les entrées-sorties du stockage (I/O). Elle produit un échantillon qui indique la taille des I/O et leur temps de latence. On se sert typiquement de vscsiStats lorsque l’on souhaite planifier sa capacité ou en amont d’une migration du stockage.
Cette commande, qui repose sur le processus hostd, permet de contrôler sous forme de script quasiment toutes les APIs de vSphere. A cette fin, vim-cmd dispose d’un certain nombre de sous-commandes ESXi adaptées à chacun des aspects de l’infrastructure virtuelle. A l’épreuve, elle est bien plus simple à utiliser que vimsh, l’interpréteur de ligne de commandes fourni par VMware.
La Direct Console User Interface (DCUI) de VMware est l’interface texte avec des des menus que l’on peut voir lorsque l’on se connecte la première fois à un hôte ESXi. Plusieurs fonctions y sont disponibles, comme l’administration de mot de passe Root, la définition du réseau ou encore diverses opérations de maintenance. Cette commande est utile lorsque l’administrateur n’a plus qu’un accès en SSH à l’hôte ESXi : il lui suffit de taper dcui depuis la ligne de commande pour accéder à la console DCUI.
Cette commande sert à récupérer toutes les informations de support et de log d’un hôte ESXi. Elle est celle que l’on lance lorsque l’on est en ligne avec le support de VMware.
La commande esxcli est si riche que nous ne devons lui consacrer plus d’un paragraphe. Elle permet de contrôler à peu près toutes les fonctions d’ESXi. Elle s’accompagne de mots clés, dont voici les principaux.
Le mot clé hardware permet à la commande esxi de lister les caractéristiques matérielles de l’hôte ESXi. Par exemple :
esxcli hardware cpu list => liste les informations liées aux processeurs (famille, modèle, quantité de cache). esxcli hardware memory get => récupère les informations liées à la mémoire, qu’il s’agisse de la mémoire disponible ou de la mémoire partagée NUMA.
Ce mot clé sert à surveiller et à administrer les configurations iSCSI aussi bien matérielles que logicielles. Ainsi :
esxcli iscsi software => active ou désactive l’initiateur iSCSI logiciel, esxcli iscsi adapter => configure les paramètres (Chap, Discovery, etc.) des adaptateurs iSCSI, matériels comme logiciels, esxcli iscsi sessions => liste les sessions iSCSI qui ont été établies au niveau de l’hôte ESXi.
19/ esxcli network. Le mot clé network sert à monitorer et à paramétrer tout ce qui a trait au réseau de vSphere, y compris les switches virtuels, les interfaces réseau du noyau VMkernel, les parefeux et les cartes réseau physiques (dites « NIC », pour Network Interface Card). Par exemple : esxcli network nic … sert à lister mais aussi à modifier les paramètres d’une carte réseau, comme son nom, sa vitesse, son fonction Wake on LAN,
esxcli network vm list … liste les informations réseau des machines virtuelles qui ont un port actif,
esxcli network vswitch … récupère, voire manipule, les options sur les switches virtuels distribués de VMware,
esxcli network ip … sert à gérer les ports du noyau VMkernel, dont ceux d’administration, de vMotion et des réseaux de tolérance de panne. Cette commande permet aussi de modifier dans la pile IP les DNS, l’IPsec et le routage.
20/ esxcli software. Ce mot clé est utilisé pour récupérer ou installer différents composants logiciels, dont des pilotes, sur l’hôte ESXi. Par exemple : esxcli software vib list … liste les logiciels et les pilotes actuellement installés sur l’hôte ESXi.
21/ esxcli storage. Il s’agit sans de l’une des commandes esxcli les plus utilisées. Elle permet de contrôler le stockage relié à vSphere. Par exemple : esxcli storage core device list … affiche la liste des équipements de stockage connectés,
esxcli storage core device vaai status get … indique le niveau de support VAAI sur les équipements de stockage. VAAI, ou « vStorage APIs for Array Integration » est une fonction de VMware qui permet de décharger l’hyperviseur de certaines fonctions avancées de stockage, comme le Thin Provisionning, si l’équipement de stockage les supporte nativement.
22/ esxcli system. Cette commande sert à contrôler les fonctions avancées d’ESXi, comme définir un syslog ou un mettre l’hôte dans un mode de fonctionnement particulier. Par exemple : esxcli system maintenanceMode set –enabled yes/no … met l’hôte en mode maintenance,
esxcli system settings advanced list -d … affiche tous les paramètres avancés qui n’ont plus leur valeur par défaut,
esxcli system syslog … accède aux informations et à la configuration du Syslog.
23/esxcli vm. Cette commande est utilisée à la fois pour lister les paramètres des machines virtuelles exécutées sur l’hôte, mais aussi les forcer à s’arrêter si nécessaire. Par exemple : esxcli vm process list … liste les informations des processus liés aux machines virtuelles en activité, avec leur numéro WorldNumber
esxcli vm process kill -t force -w N … force l’extinction de la machine virtuelle qui porte le numéro de WorldNumber N.
24/ esxcli vsan. Le mot clé vsan s’accompagne de fonctions pour paramétrer et assurer la maintenance d’une baie de stockage virtuelle vSAN, en termes d’espace de stockage, de réseau, de domaine ou encore de droits d’accès. Par exemple : esxcli vsan storage … configure un stockage local pour qu’il soit utilisé par vSAN, avec la prise en compte du retrait et de l’ajout de disques physiques,
esxcli vsan cluster get … donne des informations sur le cluster vSAN.
25/ esxcli esxcli. Hé oui, la commande esxcli a aussi un mot clé esxcli. Cette commande donne des informations détaillées sur chacune des fonctions liées à esxcli. Par exemple : esxcli esxcli command list …liste toutes les commandes esxcli possibles sur le système, avec les fonctions disponibles.
Ces commandes ne sont que les plus courantes parmi toutes celles qu’ESXi a à offrir. Elles disposent toutes d’options pour lancer des fonctions en particulier. Pour connaître ces options, il suffit d’indiquer « -h » à la suite du nom des commandes.
Il peut aussi être utile de connaître l’emplacement des différents fichiers de logs et leur rôle. Voici donc un tableau, récapitulant les fichiers de logs:
| Fichier logs | Contenu |
| /var/log/auth.log | logs les succès et les échecs d’authentification au shell ESXi |
| /var/log/dhclient.log | logs du service client DHCP client service, y compris la découverte, les demandes de bail d’adresse et les renouvellements |
| /var/log/esxupdate.log | logs d’installation des patchs et des mise à jour ESXi |
| /var/log/hostd.log | logs du service « Host management », incluant les taches et les événements sur l’hôte et ses VMs, les communications avec le client vSphere en direct et avec l’agent vCenter (vpxa), et les connections SDK |
| /var/log/shell.log | logs de l’utilisation en shell ESXi, incluant les activations/désactivations et toutes les commandes entrées |
| /var/log/sysboot.log | logs du démarrage VMkernel et du chargement des modules |
| /var/log/syslog.log | logs de l’initialisation du service de Management, la surveillance par les watchdogs, les taches planifiées et l’utilisation de la DCUI |
| /var/log/usb.log | les événement d’arbitrage des périphériques USB, comme la découverte et la transmission vers les VMs |
| /var/log/vob.log | observateur d’événements VMkernel, semblable à vob.component.event |
| /var/log/vmkernel.log | logs du « Core VMkernel », incluant la découverte de périphérique, les événements liés aux périphériques et aux drivers de stockage et réseaux, et le démarrage des VMs |
| /var/log/vmkwarning.log | le résumé des alertes et des messages d’erreurs extrait des logs VMkernel |
| /var/log/vmksummary.log | le résumé de la séquence d’arrêt/démarrage de l’hôte, l’heartbeat horraire avec l’uptime, le nombre VMs démarrées, et la consommation des ressources par les services |
| /var/log/vpxa.log | logs de l’agent vCenter (vpxa), incluant les communications entre le serveur vCenter Server et l’agent « Host Management » (hostd) |
| /var/log/fdm.log | logs du module High Availability, produit par le service “fdm” |