VMWare Esxi Shell
source : http://www.vmnerds.fr/2012/01/13/liste-des-commandes-utiles-en-esxi/
Sommaire
Opérations sur les machines virtuelles
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>
Opérations sur les disques virtuels
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
Opérations sur l’hôte ESXi
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
Opérations sur les Services
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
Opérations sur la configuration réseau
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
Opérations sur le Stockage
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
Les fichiers de logs en ESXi
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 en ESXi 5.0:
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 » |